梯度递减-单层感知器 以及sigmoid 激活函数
1. 单层感知器的梯度递减
1.1 目的
替代了原来的学习法则
用梯度下降去寻找假设空间
假设空间:转自:https://blog.csdn.net/zmdsjtu/article/details/52689392
1.2 重新定义了错误测量
感知器原则不再适用因为其不可微
1.3 梯度训练法则
沿着错误下降最快的方向(错误沿权重下降最快的方向因为调节的是权重) 即梯度的反
为了理解梯度下降我们显化所有权重和相关联的错误值
error surface must be parabolic with a single global minimum
下面演示为什么是沿着梯度的反方向趋近全局或者局部最小值
梯度即为方向导数即为正负代表递增或递减
因此如果递增那之后的越来越大误差肯定不是最小因此将权重减小倒回去找
如果递减那之后误差越来越小因此将权重增加往前面去找 总之和梯度相反。
1.4 梯度递减公式的推导
其中Oe =Wi 与 Xie 乘积 wi 对应的是 其中一个权重(单一权重) xie对应的是一个输入pattern中于Wi相连的那个输入部分 其它的部分都不含Wi就省去了
1.41 批次更新
注意这里是把所有的权重更新加起来最后再更新
1.42 增量梯度递减
上述的梯度递减面对两个问题:
- 收敛时间很长因为每次加的太多了可能跳过了最优解(每次都是在旧的权重上计算)
- 如果有很多局部最小值很可能会找不到那个全局最小值因为掉进局部最小陷阱中了
Whereas the gradient descent rule updates the weights after calculating the whole error accumulated from all examples, the incremental version approximates the gradient descent error decrease by updating the weights after each training example
简而言之梯度递减法则等所有example跑完后更新一次权重而增量则每次example都更新
2. Sigmoid 激活函数
2.1 目的:
单层感知器的功能太局限因此用sigmoid引入非线性
2.2 Sigmoid 作为激活函数的梯度递减
基本原理没变
变的是在求导过程中激活函数sigmoid包装的那一层输出
最终结果多了一个封装的 激活函数的导数 注意负号被放进去了
激活函数的导数为:
注意真正的应该是去掉一个负号
2.13 增量Sigmoid 梯度递减
2.14 批次梯度递减和增量梯度递减
批次的是把所有的pattern带来的权重改变相加在更新这导致每次都是沿着最深梯度下降不会有很大的抖动
而增量是每个pattern 更新一次因此会有很大的抖动比如上一个加下一个减但总体趋势是向梯度递减的有可能帮助跳出局部最小值
3. 感知器训练法则与梯度递减的比较
- 梯度递减最小化平方误差和而不是误差(target-out)
- 感知器能准确划分并保证找到解(线性可分) 梯度递减精度差并不保证找到最优解
- 梯度下降不需要线性可分而感知器必须线性可分