x为图像,W为权重值,f输出对于该图像的得分值
以图片(图像以32323=3072为例)分类(10类)为例:
f值(101)就是对一张图像的类别打分值;
W(103072)包含对3072个像素点每一点的权重值;
x(30721)图像的列向量;
b(101)每一个类别的偏移量(感觉像消除误差的)
以3类图像,图像为2*2的为例
结果的得分值可以指出模型的当前效果,有多好或是多差!
损失函数Li (越小越好,越大表示分类效果越差)中sj 为该图像在其他类别中的得分值,syi 为该图像在自己类别中的打分;其中+1是为了防止得分比较近的时候,使得误判损失为0(如:第一幅图打分为3.2,3.15,-1.7,则计算cat和car之间的损失时,不加1,输出为0,表示两者无误差,但实际是不对的),也就是让正确类别比错误类别高于1以上才无损失。
R(W)为所有权重阵的平方和,λ惩罚系数,越大表示不希望过拟合,削减奇异值,越小表示削减程度小点。
使得得分值的范围归到0-1之间
第一列为类别的得分值;第二列为exp(得分);第三列为归一化(第二列每个值都除以所有的求和值),最后求-log(越接近0表示损失越小,分类越好)
链式求导法则
图中,绿色表示相应的输入量,红色表示链式求导的逆向输出值(如:1/x的导数为-1/x2 ,x=1.37,输出为下面的-0.53)
该图表示:加法的导数都为1,MAX的导数是输入最大的变量导数为整个输出;
乘法导数互换。
隐藏层:对输入的每个数据都附上权重值(几个圆(神经元)代表有多少种权重)。
每一隐藏层后都进行非线性变化(激活函数,如sigmoid,max)。
神经元越多过拟合程度也越大,效果可能越好,但速度越慢
斯坦福大学可视化神经网络训练
惩罚力度越大过拟合效果越弱。
隐藏层神经元一般为64,128,256,512。可见神经元数目越多过拟合越大
sigmoid函数当自变量过大会出现梯度消失,变为0.
形成权重矩阵(D*H的矩阵)
在每一层中随机选取少量神经元参与计算,以此避免过拟合。
总结:
输入数据经过预处理,*W1——>激活函数…*Wn——>激活函数,输出。
之后计算损失函数,通过反向传播对每一个参数进行求导,以修正参数值。
输入不再是列向量,而直接是一张图像
三通道图像:每一通道都进行卷积,之后相加。
有多个卷积核就会输出几层特征图。(图中bias表示w*x+b中的b偏移量)
降低特征图的大小,也称压缩或下采样
在每个区域选择最大的值,只将特征图中重要的特征提取出来。
上图为一个七层的卷积神经网络(只有带参数计算的才算一层:6个卷积+1个全连接层FC),在最后的池化和FC之间还有一步将三维的特征块,转化成列/行向量(即下图中转换)。
图中表示:input经过一次卷积,输出为粉色区域,第二次卷积输出为一个粉色格。
所需参数个数:77C中C表示输入为C层,C*(77C)左侧C表示需要C个卷积核。右同。
对于层数越多效果反而不好的,采取Resnet残差网络。
即,在本来流程中的每一层(经卷积)中都加入一个直接连接到下一层的线路,保证当网络经过训练后,本层中权重参数不适合时,去掉后不影响之后的网络(保证不会比层数少的时候效果差)。
h表示每个时刻的结果,即当前隐藏状态,作为下一时刻的输入。
即对每一个特征进行打分[-1,1],最后形成向量形式。
参考资料:神经网络入门到实战