小白带你反向传播算法训练神经网络和CNN
小白带你反向传播算法训练神经网络
1.反向传播方法中,采用梯度下降的技术来训练神经网络
W(t+1)=W(t)-η∇C(W(t))
- η是学习率 可以固定为0.01 或者0.001
- W(t+1)和W(t)分别是第(t+1)和第(t)次迭代时的权值向量。
- ∇C(W(t))是损失函数(cost function)或残差函数(error function)针对权值矩阵W在第(t)次迭代时的梯度。权重或者偏置w∈W的算法可以如下表示:
梯度下降学习方法的核心依赖针对每个权重值对损失函数的梯度计算。
如果y=f(x),z=f(y) 那么 z=f(f(x)) ,下面公式也可以成立。
如果输出值是连续的,那么损失函数C可以定义为预测差的平方:
最终的反向传播网络图
公式最终推导出
预测的误差(y-y’)与对应的**函数和权值组合,以计算每个层权值梯度,被反向传播。也就是反向传播网络的由来。
2.CNN
CNN(Convolutional Neural Network) 是图像和音频数据处理。
通过【图】CNN架构图,图片兔子,进过多次卷积-**-池化操作,将图片的空间分辨率减低,然而每一层的输出特征图的个数一直在增加。卷积层的每个输出特征图都有一个对应的滤波核函数(filter kernel) 它的权重是通过CNN的训练过程学习得到的。
例如:
一个2×2的区域可以获得4个邻域特征图信息。对于最大池化(max-pooling)操作,4个特征数值中的最大值被选为输出。对于均值池化(average pooling),以4个特征数值中的平均值作为输出。池化减少了特征的空间维度。
例如:
对一个480×480大小的特征进行2×2区域的池化操作,那么输出的特征维度被减少至240×240。
如果用传统的全连接神经网络,那么它的权重值会是480X480X480X480,我们如果用2*2的滤波函数,那么权重就是4个,如果用3*3的滤波函数,那么权重就是9个,这样在处理图像和音频的时候大大简化操作。