# 目录
* [ 1. 什么是机器学习](#1)
* [ 2. 什么神经网络](#1)
* [ 3. tensorflow介绍](#2)
</br>
<h2 id="1">1. 什么是机器学习</h2>
利用**计算机**从**历史数据**中找出**规律**,并把这些规律用到对**未来不确定场景的决策**。
+ 场景:
确定性场景 vs 不确定性场景
日升日落
下一个月的销售额
+ 主角:计算机
避免由于人的经验,知识水平的依赖
+ 历史数据: 通常比较大,大于50条
+ 规律:
通过一系列机器学习的算法,找出一个数学函数,实现y=f(x)
数学函数通过计算机自动生成,而不是通过编程用类似if-else般的 实现
找规律,传统的做法:从总体中抽取样本,计算各种统计学指标,用来代表整体的指标。
问题: 不能真实的表现总体的情况,需要做验证:->抽样->描述统计->假设检验
大数据时代: 直接对全量的数据做处理。
**机器学习发展的原动力**
+ 从历史数据中找出规律, 把这些规律用到对未来自动做出决定
+ 用数据代替export
+ 经济驱动,数据变现
**典型应用**
1. 购物篮分析 : 尿不湿与啤酒, 亚马逊购物
2. 聚类 : 精准营销-用户细分
3. 朴素贝叶斯: 垃圾邮件识别,贷款审核
4. CTR预估: 互联网广告,推荐系统-经常一起购买的商品
5. 自然语言处理
(1) 情感分析
(2) 实体识别: 内容提取
6. 图片识别:(目前深度学习的主要应用方向)
7. 自动驾驶
8 语音识别,人脸识别,个性化医疗,手势识别,虚拟助力,智能机器人,机器实时翻译(谷歌翻译)
</br>
**机器学习解决问题的框架**
确定目标 : 业务需求 -> 数据 -> 特征工程
训练模型 : 定义模型 -> 定义损失函数 -> 优化算法
模型评估: 交叉验证 -> 效果评估
(准确率,召回率 ……)
</br>
<h2 id="2">2. 什么是神经网络</h2>
[参考链接](http://blog.csdn.net/zzwu/article/category/243067)
</br>
<h2 id="3">3. tensorlow介绍</h2>
2015年11月9日谷歌开源了人工智能系统TensorFlow,同时成为2015年最受关注的开源项目之一。TensorFlow的开源大大降低了深度学习在各个行业中的应用难度。TensorFlow的近期里程碑事件主要有:
2016年11月09日:TensorFlow开源一周年。
2016年09月27日:TensorFlow支持机器翻译模型。
2016年08月30日:TensorFlow支持使用TF-Slim接口定义复杂模型。
2016年08月24日:TensorFlow支持自动学习生成文章摘要模型。
2016年06月29日:TensorFlow支持Wide & Deep Learning。
2016年06月27日:TensorFlow v0.9发布,改进了移动设备的支持。
2016年05月12日:发布SyntaxNet,最精确的自然语言处理模型。
2016年04月29日:DeepMind模型迁移到TensorFlow。
2016年04月14日:发布了分布式TensorFlow。
TensorFlow是一种基于图计算的开源软件库,图中节点表示数学运算,图中的边表示多维数组(Tensor)。TensorFlow是跨平台的深度学习框架,支持CPU和GPU的运算,支持台式机、服务器、移动平台的计算,并从r0.12版本开始支持Windows平台。
TensorFlow 是一个编程系统, 使用图来表示计算任务. 图中的节点被称之为 op (operation 的缩写). 一个 op 获得 0 个或多个 Tensor, 执行计算, 产生 0 个或多个 Tensor. 每个 Tensor 是一个类型化的多维数组. 例如, 你可以将一小组图像集表示为一个四维浮点数数组, 这四个维度分别是 [batch, height, width, channels].
一个 TensorFlow 图描述了计算的过程. 为了进行计算, 图必须在 会话 里被启动. 会话 将图的 op 分发到诸如 CPU 或 GPU 之类的 设备 上, 同时提供执行 op 的方法. 这些方法执行后, 将产生的 tensor 返回. 在 Python 语言中, 返回的 tensor 是 numpy ndarray 对象。
</br>
<h3 id="3.1">3.1 安装</h3>
Tensorflow提供了各种安装方式,包括Pip安装,Virtualenv安装,Anaconda安装,docker安装,源代码安装。
首先安装 pip (或 Python3 的 pip3 ):
```
# Ubuntu/Linux 64-bit
$ sudo apt-get install python-pip python-dev
# Mac OS X
$ sudo easy_install pip
```
Linux系统下,使用Pip的安装流程如下:
```
# Ubuntu/Linux 64-bit, CPU only, Python 2.7:
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7. Requires CUDA toolkit 7.5 and CuDNN v4.
# For other versions, see "Install from sources" below.
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
```
TensorFlow会安装到/usr/lib/python2.7/site-packages/tensorflow目录下。
</br>
MacOS
```
# Mac OS X, CPU only:
$ sudo easy_install --upgrade six
$ sudo pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.8.0-py2-none-any.whl
```
</br>
<h3 id="3.2">3.2 常用API</h3>
使用 TensorFlow, 你必须明白 TensorFlow:
+ 使用图 (`graph`) 来表示计算任务.
+ 在被称之为 会话 (`Session`) 的上下文 (context) 中执行图.
+ 使用 tensor 表示数据.
+ 通过 变量 (`Variable`) 维护状态.
+ 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据.
tf.random_uniform([1], -1.0, 1.0):
构建一个tensor, 该tensor的shape为[1],该值符合[-1, 1)的均匀分布。其中[1]表示一维数组,里面包含1个元素。
tf.Variable(initial_value=None):
构建一个新变量,该变量会加入到TensorFlow框架中的图集合中。
tf.zeros([1]):
构建一个tensor, 该tensor的shape为[1], 里面所有元素为0。
tf.square(x, name=None):
计算tensor的平方值。
tf.reduce_mean(input_tensor):
计算input_tensor中所有元素的均值。
tf.train.GradientDescentOptimizer(0.5):
构建一个梯度下降优化器,0.5为学习速率。学习率决定我们迈向(局部)最小值时每一步的步长,设置的太小,那么下降速度会很慢,设的太大可能出现直接越过最小值的现象。所以一般调到目标函数的值在减小而且速度适中的情况。
optimizer.minimize(loss):
构建一个优化算子操作。使用梯度下降法计算损失方程的最小值。loss为需要被优化的损失方程。
tf.initialize_all_variables() / tf.global_variables_initializer():
初始化所有TensorFlow的变量。
tf.Session():
创建一个TensorFlow的session,在该session种会运行TensorFlow的图计算模型。
sess.run():
在session中执行图模型的运算操作。如果参数为tensor时,可以用来求tensor的值。
<h2 id="99">附录</h2>
1. [TensorFlow官方链接](https://www.tensorflow.org/)</br>
2. [极客学院:TensorFlow 官方文档中文版](http://wiki.jikexueyuan.com/project/tensorflow-zh/)</br>
3. [官方GitHub仓库](https://github.com/tensorflow/tensorflow)
4. [中文版 GitHub 仓库](https://github.com/jikexueyuanwiki/tensorflow-zh)