神经网络框架
一、激活函数
线性操作分类能力不强,而非线性表达可以分开数据。
神经网络中隐层就是增加了激活函数,使得神经网络表达出更强大的效果。
Sigmoid可作为激活函数,但容易引起梯度消失(导数趋近于0)。
max(0,x)就是ReLU激活函数,可以解决梯度消失问题,导数简单,已经常用的神经网络激活函数。
(JavaScript可以写网页版的神经网络)
二、过拟合
λ越小,过拟合越严重,把离群点作为单独数据群拟合,λ调整至合适值,保证模型的泛化能力。
神经元越多,越能表达复杂模型,但也越容易出现过拟合降低模型泛化能力。
最后每一个操作都要经过激活函数(activation function)作用,才能使最终结果产生非线性。
神经元就是权重参数w。
三、数据预处理
原始数据样本都减去均值得到以0为中心化的数据,此时x、y轴浮动大小不一致,需要消除他们的差异,做归一化,得到[0,1]范围的数据。
四、权重初始化
一般采用高斯初始化或随机初始化,常用随机初始化。
b一般用0值初始化,也可以用1初始化。
五、DROP-OUT
每次随机迭代,不是一次把所有的神经元进行迭代。可以降低过拟合风险。
一般训练过程中出现过拟合是正常的,不出现反而可能是异常的。