机器学习技法笔记-Lecture 12 Neural network

介绍神经网络的基本概念以及Backprop的推导。算法

 

输入为x, 首先对x作一个线性变换到s,而后对s作(一般是非线性的)变换,做为下一层的输入。若是对s也是线性的,那整个网络就是线性的,就不须要那么多层了。api

对 s 常常使用的一个是双曲余弦的变换tanh网络

在离原点比较远的地方,它比较像阶梯函数,在接近原点的地方,接近线性函数。app

 

网络的计算过程函数

能够分两步看,一个是算score,一个是作transform.学习

 

如何学习网络中的权重呢?优化

学习的最终目标仍然是让Ein最小,Ein能够看作是关于所有的w_ij的函数,使用梯度降低法对w_ij进行迭代。url

如何计算spa

这里的关键一点是对s_j的偏导能够由后一层的全部s_k的偏导得来。orm

因此对w_ij的更新是从后向前进行的,叫作backpropagation

 

NN的最优化问题,首先不是凸优化,另外不一样的初始值会让结果收敛在不一样的局部最优处,对初值是比较敏感的。

若是w_ij比较大,tanh函数就会在比较靠近+-1的地方,这时候梯度变化很是小,那么更新很缓慢。

 

NN的VC维大体等于神经元乘以权重的个数.

只要神经元个数足够多,就能拟合任何函数,固然也会overfit.

 

NN的正则化

L1正则不可微,一般选用L2正则,L2是一种weight decay的方法,一般会对大的weight进行更大的shrink,小的weight进行小的shrink。这里但愿能达到L1特征稀疏的效果,就采用了一种 scaled L2,在小的weight上也进行一个中等的shrink,最后这些小的weight就会消失掉。

 

另一个正则方法是 early stopping. 进行GD的步数能够看作vc维的一个反映。可使用validation来选择走多少步。

全部和GD有关的算法都能使用early stopping.

相关文章
相关标签/搜索