深度学习第三天--卷积神经网络。

     博客是写给自己看的。  可以提醒自己回过来看这些错误,浅显的思想。 

    上一次讲到了深度学习的卷积神经网络的卷积过程,现在我们需要做的就是将卷积神经网路给全部讲清楚。

    卷积过程已经清楚之后,接着就需要连接到FC全连接层,就是跟一般神经网络一样的层,接着就是一般的输出结果了。由于卷积处理后的结果是一张张特征图,讲这些特征图像我们最开始处理一般神经网络那样经过向量化之后再输入到fc中。感性上来看很清晰,可是到了要一个数据一个数据的分析就很抽象。

    卷积神经网络的反向计算了。从FC层开始反向计算,跟我们一般神经网络一样,由梯度下降法逐渐反馈过来。来到了卷积层的反向传播。FC连接的反向传播返回的是一个梯度向量,其对应着最后一层卷积层的的反向输入。反向计算的时候,会将所有特征图的梯度都计算出来然后再求和。我知道这里自己没有表达清楚,是因为我自己对这点也是比较模糊的,以后一定会在此复习这个地方。

  在卷积过程中,为了能够充分利用数据,也采用了pading的操作。为了增加特征的明显性,在一个或多个卷积操作之后,往往会增加一个池化层,有MAX和AVERAGR两种操作,就是对制定大小的区域进行求最大操作或者求平均操作来代替那一块区域。一般来说会将单张特征图的大小减小一半,然后特征图的个数不会减少。这样可以帮助将特征更明确。并且,池化层的反向传播也很简单。MAX操作就将更改后的值所对应的位置置为该值,其他地方补0就可。AVERAGE操作就直接是每个位置的值都一样,取平均值。

    还有一个区别就是,卷积层的权重系数是共享的,就是说单一张权重系数内部都是一样的,无论你的pading到哪里,对应的FILTER都是哪一个,只要大家都在同一张特征图里。这样就可以大大的减少系数的个数,不然,系数的个数将会非常的大。实践证明,这样得到的结果是可以接受的。最后你会发现,其实计算中权重系数主要集中在FC层中。于是就有人设计了DROP-OUT功能,就是在某次计算过程中,包括该次计算的前向和反向操作 ,随机舍弃掉一些神经元,其结果是可以接受的,并且减少了收敛时间。

    终于我回忆完了整个卷积神经网络,对于我这个初学者,很难将这个网络的原理讲得很清楚,很抱歉。可惜就可惜在自己之前没有上过计算机算法的课程,对python的了解也不多,就是知道很厉害的语言而已。

   这个博客是写给自己看的。

你可能感兴趣的:(深度学习第三天--卷积神经网络。)