姓名:郭效杨 学号:17021223258
【嵌牛导读】:平时在机器学习算法中我们听过感知器法则以及被提的最多的梯度下降,那么什么是梯度下降呢?本文讲述了梯度下降和感知器法则。
【嵌牛鼻子】:神经元,神经网络,感知器法则,梯度下降。
【嵌牛提问】:什么是感知器法则?什么是梯度下降?适用于什么情况?
【嵌牛正文】:
神经网络是一门重要的机器学习技术。它是目前最为火热的研究方向--深度学习的基础。学习神经网络不仅可以让你掌握一门强大的机器学习方法,同时也可以更好地帮助你理解深度学习技术。
1.前言
让我们来看一个经典的神经网络。这是一个包含三个层次的神经网络。红色的是输入层,绿色的是输出层,紫色的是中间层(也叫隐藏层)。输入层有3个输入单元,隐藏层有4个单元,输出层有2个单元。后文中,我们统一使用这种颜色来表达神经网络的结构。
设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定;
神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;
结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。
2.结构
神经元模型是一个包含输入,输出与计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。
下图是一个典型的神经元模型:包含有3个输入,1个输出,以及2个计算功能。
注意中间的箭头线。这些线称为“连接”。每个上有一个“权值”
通常情况下,输入都不能为0,因此我们要把其中的第一个输入设为1,权值用w表示,输入用x表示,如上图对所有的输入乘以权值w,然后求和,设定阈值,如果超过阈值则神经元被激活,否则将会处于休眠状态。
在一般情况下,对于线性可分问题,我们最早用的是感知器法则,wi=wi+Δwi,其中∆wi=η(t-o)xi ,η代表学习率,是一个很小的常数,t是训练样例的实际输出,o是训练样例的期望输出,对于每个w我们都用这样的方法去更新,最终会得到收敛到正确的权值。
当对于训练样例不是线性可分的时候,我们不能采用这种方法,出现了delta法则与梯度下降,简单的认为是训练一个无阈值的感知器。
先指定一个度量标准来衡量假设(权向量)相对于训练样例的训练误差(training error)。
其中D是训练样例集合,td是训练样例d的目标输出,od是线性单元对训练样例d的输出。E(w)是目标输出td和线性单元输出od的差异的平方在所有的训练样例上求和后的一半,方便求导。我们定义E为w的函数,是因为线性单元的输出o依赖于这个权向量。
为了确定一个使E最小化的权向量,梯度下降搜索从一个任意的初始向量开始,然后以很小的步伐反复修改这个向量。每一步都沿误差曲线产生最陡峭的下降方向修改权向量,继续这个过程直到得到全局的最小误差点。可以通过计算E相对向量w的的每个分量的导数来得到这个方向。这个向量导数被称为E对于W的梯度(gradient),记作ΔE(w).确定了方向后:
其中:
对于每个wi
因此,训练线性单元的梯度下降算法如下:选取一个初始的随机权向量;应用线性单元到所有的训练样例,然后根据公式计算每个权值的Δwi;通过加上Δwi来更新每个权值,然后重复这个过程。