开发者学堂课程【神经网络概览及算法详解:神经网络学习规则】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/40/detail/921
神经网络学习规则
连续感知器学习规则:δ规则
Delta 学习规则(δ Learning Rule ):1986年,由认知心理学家 McCleland 和 Rumelhart 在神经网络训练中引入了学习规则。一种简单的有导师学习算法,该算法根据神经元的实际输出与期望输出差别来调整连接权。
Delta 学习规则的思路如下:系统首先用一个输入向量,输入网络结构,得到一个输出向量;每个输入向量都有一个对应的期望输出向量、或者称作是目标向量;比较实际输出向量与期望输出向量的差别,若没有差别,就不再继续学习;否则,连接的权重修改对应的差值( delta 差)
1.损失函数
损失函数( Loss Function ):用于衡量最优的策略,通常是一个非负实值函数。机器学习试图通过不断的学习,建立一个可以很好预测现实结果的模型,损失函数则是用来衡量预测结果和真实结果之间的差距,其值越小,代表预测结果和真实结果越一致。损失函数越合适,通常模型的性能越好。通过各种方式缩小损失函数的过程被称作优化。损失函数记做 L ( Y , f (×))。不同的损失函数可以衡量不同模型的这个最终效果了。比如常见的有这种零一损失函数。
(1)0-1损失函数(0-1 LF ):预测值和实际值精确相等则“没有损失”为0,否则意味着“完全损失”,为1预测值和实际值精确相等有些过于严格,可以采用两者的差小于某个阈值的方式。
对于相同的预测结果,两个损失函数严格程度不同。
对于相同的预测结果,两个损失函数严格程度不同。设 T =0.5,则有:
我们通常也可以使用两者的差小于某个这个预值的方式。这是严格的方式,上边边是小于某个阈值,假如说如果两个值的差小于一个数啊。我们就把它认为是理由就是精确,就是没有损失。如果是大于这个数,我们认为它是有损失的。
如果是一个y值是实际值,那f(x)是预期期望输出那y是实际输出。那对L来讲就是精确匹配呢,就是严格要求的L ( Y , f (×))来讲,比如说我的阈值是0.5。那意味着说实际输出和我期输出的差的绝对值小于0.5的话,就认为没损失大于零点五,认为有损失。那对L来讲,严格的来讲的话,两个不严格相等就认为有损失。
(2)绝对值损失函数( Absolute LF ):预测结果与真实结果差的绝对值。简单易懂,但是计算不方便。公式如下:
L ( Y , f ( X )= IY - f ( X ) I
(3)平方损失函数( Quadratic LF ):预测结果与真实结果差的平方。其公式如下:
L ( Y , f ( X )=( Y - f ( X ))
相较于绝对值损失函数,平方损失函数优势有:
①每个样本的误差都是正的,累加不会被抵消说什名亜万对于大误差的惩罚大于小误差
②数学计算简单、友好,导数为一次函数
(4)折叶损失函数( Hinge LF ):也称铰链损失,对于判定边界附近的点的惩罚力度较高,常见于 SVM,其公式如下:
L ( f ( x ))=тах(0,1-f( x ))
不同的损失函数有不同的特点,适用于不同的场景:
①0-1:理想状况模型
②Log :逻辑回归、交又熵
③Squared :线性回归
④Exponential : AdaBoosting
⑤Hinge : SVM 、soft margin
2.损失函数优化:梯度下降法
梯度( Gradient ):是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向变化最快,变化率最大。
梯度下降法( Gradient Descent ):一种最优化算法,也称为最速下降法。沿着负梯度方向去减小函数值从而接近目标值。
确定了损失函数,就需要对损失函数进行优化,求最小值,以平方损失函数( Quadratic LF )为例:
L ( y . f ( x ))=1/2(y- f ( x ))
求 L 的梯度:
假设激活函数选用了sigmoid 函数 ,求出此时 L 的梯度:
2.δ规则
(1)δ规则的学习信号为:
(2) δ规则的推导:由输出值与期望输出值的最小二次方误差条件,推导δ规则输出值与期望输出值的二次方误差为:
(3) 学习的目的就是为了让实际输出值与期望输出值的差最小,即求使 E 最小的权值 W 。
根据之前的损失函数和梯度、梯度下降法可以知道, w 沿着梯度的负方向(最小值)按照步长 η(学习速率)变化,会快速逼近最小值,即有: