神经网络
神经网络: 大量结构简单的,功能接近的神经元节点按一定体系架构连接成的网状结构,就是大脑的结构
神经网络的作用: 分类,模式识别,连续值预测
建立输入与输出的映射关系
生物神经元
生物神经元的结构大致描述如下图所示,生物神经元之间相互连接,从而让信息传递
人工神经元
神经元模型: 每个神经元都是一个结构相似的独立单元,它接收前一层传来的数据,并将这些数据的加权和输入非线性作用函数中,最后将非线性作用函数的输出结果传递给后一层。
激活函数
链式求导:
人工神经网络
基础神经网络: 神经元,输入向量x,权重向量w,偏值标量b,激活函数sigmoid
浅网络 :3~5层,优化(梯度下降),BP后向传播
层的通俗理解
-
层实现了输入到输出空间线性或非线性变换
-
假设输入时碳原子和氧原子[C;O],输出三个变量
-
通过改变权重的值,可以获得若干个不同的物质(提取不同的特征)
-
右侧节点数决定了想要获得多少种不同的新物质(提取特征的个数)
神经网络是由大量神经元节点按一定体系架构连接成的网状结构,一般都有输入层,隐含层和输出层,传统的浅层网络,一般有3~5层
前馈神经网络
前馈神经网络,是人工神经网络的一种,各神经元从输入层开始,接收前一级输入,并输出到下一级,直至输出层。整个网络中无反馈,可用一个有向无环图表示。前馈神经网络采用一种单向多层结构。其中每一层包含若干个神经元,同一层的神经元之间没有互相连接,层间信息的传送只沿一个方向进行。其中第一层称为输入层。最后一层为输出层.中间为隐含层。隐含层可以是一层,也可以是多层。
Delta学习规则
目标函数
对于一系列训练样本X,期望输出t=(t1,…,tc),网络实际输出z=(z1,…,zc)
梯度下降
这是一个表示参数w与目标函数J(w)的关系图,红色部分是表示J(w)有着比较高的取值,需要能够让J(w)的值尽量的低。也就是深蓝色的部分。w1,w2表示w向量的两个维度
先确定一个初始点,将w按照梯度下降的方向进行调整,就会使得J(w)往更低的方向进行变化,如图所示,算法的结束将是在w下降到无法继续下降为止。
梯度下降示意
想象一下,你如何能在被蒙住眼睛的情况下,从山上走下来?先用你灵巧的脚,探一探脚下的山地,哪个方向坡度最陡?(计算梯度方向)。朝着这个方向迈一步;(沿梯度方向下降)。一大步,还是一小步?(学习速率)。持续这个过程直到平地(迭代)。可不能有悬崖哦…(目标函数处处可导)
输出层权重改变量
隐藏层权重改变量
误差传播迭代公式
输出层
隐含层
**输出层和隐藏层的误差传播公式可统一为:**权重增量 = -1学习步长目标函数对权重的偏导数;目标函数对权重的偏导数=-1残差当前层的输入;残差=当前层激励函数的导数*上层反传来的误差;上层反传来的误差=上层残差的加权和。
隐藏层误差反向传播示意图
简单的BP算例
批量梯度下降(BGD)
每迭代一步,都要用到训练集所有的数据,它得到的是一个全局最优解,但是如果m很大,那么可想而知这种方法的迭代速度! !
随机梯度下降(SGD)
**通过每个样本来迭代更新一次,如果样本量很大的情况,那么可能只用其中部分的样本,就已经迭代到最优解了。但是,SGD伴随的一个问题是噪音较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。
**
小批量随机梯度下降(Mini-batch Gradient Descent)
mini-batch Gradient Descent的方法是在“批量梯度下降”和"随机梯度下降”两种方法中取折衷,每次从所有训练数据中取一个子集(mini-batch)用于计算梯度。广义条件下,SGD指的就是MBGD。
典型的机器学习步骤
从开始的通过传感器来获得数据
然后经过预处理,特征提取,特征选择,再到推理,预测或者识别。
最后一个部分,也就是机器学习的部分,绝大部分的工作是在这方面做的。
特征对学习的影响
一般而言,机器学习中特征越多,给出信息就越多,识别准确性会得到提升;但特征多,计算复杂度增加,探索的空间就大,训练数据在全体特征向量中就会显得稀疏,影响相似性判断;更重要的是,如果有对分类无益的特征,反而可能干扰学习效果。结论:特征不一定越多越好,获得好的特征是识别成功的关键。需要有多少个特征,需要学习问题本身来决定。
深度学习的特征
深度学习是一种基于无监督特征学习和特征层次结构的学习模型,其实对神经网络模型的扩展
连接主义 的兴衰史
某种意义上说,AI的兴衰史,其实就是连接主义(感知机→神经网络→深度学习)的兴衰史
深度学习与神经网络的区别
- 网络架构:3层以上→可达上千层
- 层间连接:通常是全连接→形式多样:共享权值,跨层的反馈等
- 目标函数:MSE→CE等
- 激活函数:sigmoid等→ReLU等
- 梯度下降的方法:GD等→Adam等
- 避免过拟合:凭经验→Dropout等