深度学习之TensorFlow学习(二)
一定要坚持,不然时间一长什么都忘记了,继续补充中。
从网上看到了很多CNN的例子,很生动形象,有必要记录下来备忘。
对比前面介绍过的一般神经网络和卷积神经网络有什么区别呢?
从这张图上看,整个过程还是不少神似,通过不同的网络层进行连接,加权之后计算得到最后的结果。但是卷积神经网络后面好像明显没有那么密密麻麻,网络之间的连接似乎少了很多。没错,对于全连接网络(Full Connection),位于相邻两层网络上的任意两个节点都是连接的,即每个节点都对下一层的节点产生贡献,而卷积神经网络(CNN)的相邻两层之间,只有部分节点相连,部分区域的节点对下一层产生贡献。
下面按照这个思路来梳理下卷积神经网络中几个重要的概念:
1,卷积
获取特征图(Feature Map)
激活函数(Activation Functions)
1、sigmoid 函数
sigmoid(x)=1/(1+pow(e,-x))
一个实数压缩至0到1之间,当输入的数字非常大的时候,结果会接近1,当输入非常大的负数时,则会得到接近0的结果。在早期的神经网络中使用得非常多,因为它很好地解释了神经元受到刺激后是否被激活和向后传递的场景(0:几乎没有被激活,1:完全被激活)
2、tanh 函数
tanh(x)=[pow(e,x)-pow(e,-x)]/[pow(e,x)+pow(e,-x)]
3、ReLU函数
ReLU(x)=max(0,x) if(x>0) ReLU(x)=x; else ReLU(x)=0;
ReLU是修正线性单元(The Rectified Linear Unit)的简称,近些年来在深度学习中使用得很多,可以解决梯度弥散问题,因为它的导数等于1或者就是0。相对于sigmoid和tanh激励函数,对ReLU求梯度非常简单,计算也很简单,可以非常大程度地提升随机梯度下降的收敛速度。
4、Leaky ReLU 函数
LeaskyReLU(x)=max(0.1x,x)
当然还有其他的一些激励函数。
池化函数(Pooling)
1,最大化 max
2,均值化 avg