1.softmax函数
softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!
跑了softmax反向传播的代码。
2.全连接层梯度反向传播
公式为S=XW+b,首先向前计算分值矩阵,每一行是一个样本的分值向量。随机生成分值矩阵的梯度dscores后,计算dX和dW。db中的每个元素是dscores每行之和,计算db的每个元素,有N条路径,N条路径之和就是db元素的值。
3.激活层梯度反向传播
sigmoid激活函数,把输入的实数值“压缩”到(0,1)区间,负数端趋近零,正数端趋近1。sigmoid函数的应用曾非常广泛,因为它能很好地解释神经元的激活:从不完全激活(输出0)到完全激活(输出1)。但现在已经很少使用了,因为它有一个很大的缺点:饱和特性使梯度消失。网络在激活函数接近于零的区域学习困难。
而RELU函数在学习率较小时,能很好的克服该特点。RELU函数=max(0,x)
而ELU函数的反向传播代码只需要将倒数第二行换成dhidden_data[hidden_data<=0]*=(hidden_data+1)
就好了。
4.卷积层的反向传播
这个,说起来简单,想起来还是有点复杂的…让我再看看