神经网络原理简介
1,类比生物神经元2,层次结构
输入层,隐藏层(1,2),输出层;线可以理解为权重参数w。在神经网络中需要指定w的大小(矩阵的大小)
神经网络的流程:输入数据;前向传播计算损失值;反向传播计算梯度;使用梯度更新参数
3,非线性结构(**函数)
**函数作用于前一层权重参数后:
4,**函数
4.1 Sigmoid**函数
反向传播中的求导操作:
当x的绝对值较大时,则导数接近为0,则在链式法则中易出现梯度消失,使得权重参数无法进一步更新,神经网络也无法收敛,因此后来的神经网络大多不采用此函数作为**函数。
4.2 ReLU**函数
ReLU**函数一方面可以解决梯度消失的问题,另一方面求导方便,因此后来的神经网络中通常使用该函数作为**函数。
5,正则化项在神经网络中的重要作用
由于一些异常点,神经网络较易出现过拟合现象,正则化惩罚项可以有效抑制过拟合现象,增强神经网络的泛化能力。
越多的神经元(相当于权重参数),就越能够表达能复杂的模型,但过拟合的风险越大
6,数据预处理
以0为中心化(都减去均值),然后归一化处理(除以标准差来消除x,y轴浮动不同)。
7,权重w和偏置项b的初始化
权重不能以相同值来初始化,否则反向传播后都是朝一个方向更新,相当于神经网络迭代太慢。通常采用高斯初始化或随机初始化
b可以用常值(0或1)来初始化。
8,Drop-out
全连接:对n-1层和n层而言,n-1层的任意一个节点,都和第n层所有节点有连接。即第n层的每个节点在进行计算的时候,**函数的输入是n-1层所有节点的加权。
全连接是一种不错的模式,但是网络很大的时候,训练速度会很慢,并且易出现过拟合的现象。
为了解决上述问题在每次训练时随机不考虑部分神经元(对一些权重参数不进行更新),即Drop-out操作如下图:
虽然参与训练的参数减少,但是我们可以加大迭代步数来弥补这一缺陷。