刚刚步入研二,研一的时候由于各种原因单单接触到的只是人工的特征,以及基础的机器学习类的知识。直到这学期才开始直到了解CNN及各种深度学习方面的知识。
博主话不多说,这篇博客是我的第一篇博客,希望能给自己开个好头吧。
由于在深度学习方面我只是单单的接触到了CNN,所以我想就我看到的资料来给自己总结一下CNN的过程及内部细节。
注:本文大部分都是采取摘录的方式进行总结。
一、NN (神经网络)
顾名思义,由各个神经一样组成的网络。
人的神经系统有860亿个神经元,每个神经元从树突接受信号,从轴突传递信号。信号(x0)顺着轴突传递信号,受到了激励变成了w0x0,我们认为这其中的w0是可以学习到的。然后将这些信号进行汇总,如果超过了某个阈值则表明可以被激活。
总结下:每个神经元对输入信号x0和权重w0做内积,加上bias,通过sigmoid激励函数,输出结果。
常用激励函数:
1、sigmoid
公式:σ(x)=1/(1+e−x)
当年用sigmoid的特别多,这两年没有了几乎。
主要缺点如下:
1、实际梯度下降过程中,容易饱和和终止梯度传递。由于反向传播过程依赖于梯度,而一元函数中梯度就是斜率,如图可见在x很大或者很小的时候,斜率为0。我们最后的梯度是中间这些梯度相乘得到的,故如果中间梯度较小,则会将最终结果拉为0。
2、函数输出没有中心化。如果输出的结果均值不为0,那么反向传播的梯度要么全为正,要么全为负。这带来的后果是:反向传播得到的梯度用来更新权重时得到不是平缓的迭代变化,而是锯齿形的变化过程。
相对比,第一个缺点更严重些。