神经网络
整体架构
中间的相相当于是权重,第一列的线,前面三个输入,后面四个输出,即权重W为34的矩阵,第二列的线,输入是4,输出也是4,所以W权重矩阵是44的,第三列同样。隐藏层一的结果是xw1,然后经过第二层后是【xw1】*w2,经过第三层得到输出结果。
但是,为什么要有多层W权重呢,一个不可以吗?
下面解释为什么要有多层W权重,因为加入只有一个W 那么就是一个线性方程,那样的话分类只能分线性的,不利于分类结果准确性。加上多个权重W后,变成非线性方程,max是激活函数,在每一层都可以加激活函数。
激活函数
sigmoid函数
最开始神经网络就是拿sigmoid当激活函数,但是由于当x大于10或者小于-10的时候,取值都非常小,会发生梯度消失现象,层数特别深的时候就会导致没法再更新(因为W太小了),现在已经不怎么用了。
ReLu函数
替代了sigmoid函数。
演示实例
神经网络演示实例:http://cs.stanford.edu/people/karpathy/convnetjs/demo/classify2d.html
改变其中神经元的个数,会使得分类效果变化,越多分类效果越好。但是会造成过拟合。
解决过拟合
λ=0.1时的泛化能力强。在λ=0.001时,那些突出的红尖尖部分,虽然很好的把红点划分出去了,可是这个位置出现绿色的概率比较大,当这个地方出现一个绿点和容易判断为红点,这就是过拟合了。
神经网络整体流程。
数据预处理
数据处理
图2使均值为0;图3使方差变小。
权重初始化
注意:w不能使用均值或零进行初始化。B的初始化可以为0。
drop-out
全连接,容易导致过拟合。
使用drop-out方法,每次随机不选一些神经元。