分享一下最近接触到的神经网络的知识:TensorFlow神经网络实战
-
- 神经网络
人工智能(大概念)
机器学习+搜索策略
IBM深蓝战胜世界冠军(国际象棋)采用传统的搜索策略
机器学习综合搜索策略或算法领域都会用到
alpha go zero 从0开始 启发式搜索中的思路 打败原来的alpha go
2015年tf开源
2016年alpha go打败李世石
2017年alpha go zero 从空白状态学起自学围棋打败前辈
腾讯 AI围棋绝艺登台亮相
国内外各大公司都纷纷宣布将人工智能作为下一个重要的战略重心
人工智能,深度学习,机器学习
深度学习是机器学习的一种方法
深度学习是指多层神经网络上运用各种机器学习算法解决图像,文本等各种问题的算法集合。深度学习从大类上可以归入神经网络,不过在具体实现上有许多变化。深度学习的核心是特征学习,旨在通过分层网络获取分层次的特征信息,从而解决以往需要人工设计特征的重要难题。深度学习是一个框架,例如TensorFlow就是深度学习框架
-
-
- 背景
-
诞生于20世纪中叶,是一种仿生学产品
兴起的三大驱动要素:算法、大数据、计算力
主要功能:分类
图像 密集型矩阵 自动驾驶
语音 语音助手
文本 稀疏矩阵 新闻推送 百度app
-
-
- 神经网络的结构
-
节点和层
输入到输出整个预测过程
正向学习,反向参数调校
4个神经元
神经元
h()激励函数:提供规模化的非线性能力,激励函数某种意义上是模拟大脑神经元被激发的一种概念,有一个状态变化是非线性的
常用的激励函数有:sigmoid、tanh、ReLu三种
sigmod 优点整个区间都可导,反向传播整个区间可导性好不是原点对称
tanh 将sigmod平移到原点避免sigmod做数据中心化,表现会更好,但不足是
当趋向无限大变化很小,学习效率小,周期长
ReLu函数当大于0线性 在0区间段导数为0有改进版取小的斜率,线性的
一般用框架做都选用ReLu
当做二分类时用sigmod也可以
学习过程中产生的函数值(预测值)和训练集真值(label特征)有差异这个就是损失函数要做的事
-
-
- 神经元
- 二输出神经元:一个神经元
- 神经元
-
神经元:最小的神经网络
逻辑回归:最简化的网络结构
y=W*X 线性处理
h()激化函数 非线性处理
W*x->h(W*x+b) 其实是一个整体
x=[x1,x2,x3]
W=[
w1,
w2,
w3]
b=[b1,b2,b3]
W是权重 矩阵乘法
h是激活函数 非线性变换
b是偏置
x 是特征样本
例如
x=[房屋面积,房屋价格,评分]
x=[100,100w,6]
x=[3,1,2] x为3个特征
W=[0.4,0.6,0.5] 系数对应3个
h(a)=a/100 h(a) 激活函数
y=W*x=3*0.4+1*0.6+2*0.5=28 一个输出
h(W*x)=h(28)=0.28
二分类:估计是0
忽略b 干扰
神经元激活函数 sigmod 解决二分类问题
0,1之间的值是一个概念
P(Y=0|x) 为0概率估计
P(Y=1|x) 为1概率估计
这就是二分类逻辑回归模型
-
-
-
- 多输出神经元
-
-
加神经元就可多输出,这里2个神经元做3分类逻辑回归模型
W从向量扩展为矩阵
输出W*x则变成向量
例如
X=[3,1,2] X为3个特征 X(1,3)
W=[[0.4,0.6,0.5],[0.3,0.2,0.1]] w为2行3列矩阵 W(2,3)
Y=[y0,y1]=[2.8,1.3]
Y[0]=W[0]*X
Y[1]=W[1]*X
Y= W.T.dot(X)
如何将二分类扩展为多分类?
二分类Y只有一个输出
分母相同,做归一化,指定W*x做多输出就可以了
实现二分类转换多分类的逻辑回归模型
多输出神经元的softmax()函数回归
Y=[y0,y1]=[2.8,1.3]
exp(Y)=[exp(-2.8),exp(-1.3)]=[0.06,0.27]
sum=1+0.06+0.27=1.33
P(Y=0|x)=0.06/1.33=0.045
P(Y=1|x)=0.27/1.33=0.203
P(Y=2|x)=1.00/1.33=0.752
-
- TensorFlow实现逻辑回归模型
Mnist数据集介绍和获取
TensorFlow中逻辑回归使用的函数
代码实现
判断识别率 准确率是多少
图片的10分类任务
-
-
- 认识MNIST数据集
- 简述
- 认识MNIST数据集
-
Tensorflow框架在tensorflow.contrib.learn.python.learn.datasets包中提供多个机器学习的数据集。这里介绍的是MNIST数据集,其功能都定义在mnist.py模块中。MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片:
它也包含每一张图片对应的标签,告诉我们这个是数字几。比如,上面这四张图片的标签分别是5,0,4,1
-
-
-
- 结构
-
-
外观
one-hot 独热编码 (0,0,0,1,0,0,0,0,0,0) 表示3
Image部分:手写体的图片 (让学生来写的)
Label部分:图片代表哪个数字 (学生写的正确答案)
属于监督学习
-
-
-
- 加载
-
-
有两种方式可以获取MNIST数据集:
1) 自动下载
TensorFlow框架提供了一个函数:read_data_sets&