神经元可以理解为W参数后面要连接的东西
神经网络
w1左边连接输入层, 右边连接隐层1,为3x4的矩阵
对于这个神经网络,他的得分函数为w3[w2(w1x1)]=out(还要加激活函数)
对于该模型需要指定w1,w2,w3的shape的大小,比如w1为3x4大小的。
那么为什么要存在隐层呢?
非线性!!单单的wx是一个线性的方程,而神经网络可以任意伸展。
max或者是其他的函数称为激活函数。为了给神经网络添加非线性,需要激活函数,经典的激活函数sigmoid
sigmoid是一个曲线的,可以将任意值压缩到0-1的区间。事实上在hidden layer1当中,不光是w1x1,还需要加激活函数,于是隐层hidden layer1当中就是sigmoid[w1x1],后面的层以此类推.
sigmoid激活函数的缺点
当层数比较深的时候,之前反向传播说到为了求w0对loss的影响,需要先求w4对loss的影响然后w3、w2、w1,然后每一次都要求偏导,对sigmoid函数来说,当数值比较大或比较小的时候,导数就会很小,累乘接近于0,而导致梯度消失w0没法更新,sigmoid已经被淘汰。
ReLU激活函数
过拟合问题
正则化惩罚项的大小的作用,惩罚大一点,泛化能力会大一点。
整体流程
数据预处理
为了将图像压缩到0-1(标准化)
1、先进行减mean操作,以0为中心
2、然后除以标准差
权重初始化
不能全为0或者均值,一般随机或高斯初始化。(DxH矩阵)
b也得初始化,一般0值初始化。
DROP-OUT
A模型叫做全连接,X到L1、L2都是全连接,当神经元个数多的时候,容易出现过拟合
B为DROP-OUT,每一层都随机(40%或者60%等)舍弃一些神经元,剩下的依旧全连接,下一次再舍弃另外的一些神经元,可以防止部分过拟合以及提高计算效率,可以用迭代次数弥补舍弃神经元的问题。