深度学习中的隐藏层

隐藏层的意义

要说明隐藏层的意义,需要从两个方面理解,一个是单个隐藏层的意义,一个是多层隐藏层的意义。

单个隐藏层的意义

隐藏层的意义就是把输入数据的特征,抽象到另一个维度空间,来展现其更抽象化的特征,这些特征能更好的进行线性划分。

举个例子,MNIST分类。
输出图片经过隐藏层加工, 变成另一种特征代表 (3个神经元输出3个特征), 将这3个特征可视化出来。就有了下面这张图, 我们发现中间的隐藏层对于”1″的图片数据有了清晰的认识,能将”1″的特征区分开来。
《深度学习中的隐藏层》

多个隐藏层的意义

多个隐藏层其实是对输入特征多层次的抽象,最终的目的就是为了更好的线性划分不同类型的数据(隐藏层的作用)。

下面通过一个例子来了解什么是隐藏层,假如区分以下三张图片哪个是人脸,也就是人脸识别,神经网络模型应该怎么建立呢?为了简单起见,输入层的每个节点代表图片的某个像素,个数为像素点的个数,输出层简单地定义为一个节点,标示是还是不是。
《深度学习中的隐藏层》
那么隐含层怎么分析呢? 我们先从感性地角度认识这个人脸识别问题,试着将这个问题分解为一些列的子问题,比如,

在上方有头发吗?
在左上、右上各有一个眼睛吗?
在中间有鼻子吗?
在下方中间位置有嘴巴吗?
在左、右两侧有耳朵吗?

假如对以上这些问题的回答,都是“yes”,或者大部分都是“yes”,那么可以判定是人脸,否则不是人脸。但是,这种判断忽略了某些特殊情况,比如某个人没有长头发,某个人的左半边脸被花丛遮挡了等等,等处在这些环境中时,这种方法的判断可能会有问题。

承上,将原问题分解为子问题的过程如果用神经网络来表达的话,可以这样表示,方框表示为某个子网络:
《深度学习中的隐藏层》
以上每个子网络,还可以进一步分解为更小的问题,比如判断左上是一个眼睛吗的问题,可以分解为:

有眼球吗?
有眼睫毛吗?
有虹膜吗?

因此,在左上是否有一个眼睛的子网络,可以进一步分解为如下:
《深度学习中的隐藏层》
以上,这个子网络还可以进一步分解,.一层又一层地分解,直到,回答的问题简单到能在一个单独的神经元上被回答。

总结下这个过程,输入层是一些列的像素节点,然后刚开始这些层回答了关于输入像素点的很简单、很具体的问题,然后经过很多层,建立了更复杂和抽象的概念,这种带有两个或多个隐含层的神经网络,称为深度神经网络,deep neural networks,简称为 DNN。

    原文作者:CV-杨帆
    原文地址: https://blog.csdn.net/WhiffeYF/article/details/105005051
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞