赞
踩
神经网络中隐层有确切的含义吗?
还是说神经网络的内部结构只能是黑盒,我们无从得知自己训练的每一个隐层节点权重的确切含义呢。
先解释一层隐层网络就是一层特征层次这一点,有一点拗口。这在传统的神经网络中还不是很明显,在CNN中尤为明显。要明白这一点,首先得理解感受野。感受野是指CNN卷积核在卷积过程中关注的区域,比如第一层5×5的卷积核关注的区域大小就是5×5,卷积核关注的区域很小,所以浅层的网络关注的是细节特征,比如颜色、角点、直线曲线等等。但是由于CNN有池化采样的操作,feature map会逐渐变小,假如你第一层做了一个2×2的pooling池化,你第二层再做5×5的卷积核的卷积操作时,你关注的区域就是原图中的10×10的大小了,感受野变大了。以此类推,高层的卷积核关注的区域(感受野)就会越来越大,关注了也为更加抽象的局部/全局特征,比如中层的胳膊、大腿、白色的皮包、车轮等等;高层的比如人、飞机、大象等等。就用下面这张图来近似表示一下吧,不严谨但大概就是这个意思。概括一下就是浅层的隐层网络更加关注局部的细节特征,高层的隐层网络更加关注全局的抽象特征,也就是不同的特征层次。
再解释一个神经元可以等效为一个属性这一点,这一点题主可以自己去做下实验,训练一个分类网络,输入一张图片,把中间隐层的值给打印出来,做完BN之后,你会发现大部分的值都是0,少部分的值会零点几或者1这就代表这一层的某些特征被激活了,浅层的比如直线、纹理、颜色等等,中层的比如白色的皮具、黄色的动物毛、黑色的头发等等;高层的比如猫、狗、人等等。推荐大家去看下黑科技!GalaxyNet - 深度学习模型可视化_腾讯视频,这个视频可视化了CNN分类的过程,下面这个是一张截图可以看出两类四张不同的类别激活了不同的特征属性,甚至有的一层只激活了一个属性,另外一点同一类的两张图因为有不一样的地方所以中间有些特征属性激活是不一样的,这也就是网络在学些什么,另外一点同一类的两张图因为有不一样的地方所以中间有些特征属性激活是不一样的,这也就是网络在学些什么,两个相同类别的图片激活的神经元也大体相同。
神经网络确实是黑箱,让我每天都在work和不work之间苦苦冥想烧香拜佛,阿Q般的work就是自己牛逼,不work就是数据质量不好,但是大家还是在研究可视化技术尽量来探寻里面的真理。根据任务目标来做些调整,比如识别问题可以选择Resnet的top层特征,但是你做颜色识别问题那么用Resnet浅层的卷积层特征做fine-tuning反而可能会更加有效
如果你把他看成黑盒, 就意味着不去管每层隐藏层的含义, 这样, 就是样神经网络自己自动调参啦. 下图是最普遍的一种搭建方式, 中间的 hidden 就是黑盒了.
如果不把它看成黑盒, 就意味着你尝试将每层隐藏层拆开来看待, 上一个隐藏层输出变成了下一个隐藏层的输入. 我们等会按照这样的逻辑来想. 这样的理解方式, 每个隐藏层就是一个 特征代表层 (feature representation).
“将黑盒用手电照亮, 看看里面缠绕的电线是怎么连的”
下图有两层hidden layers,
所以你可以想象每层隐藏层在做的事就是将数据变成另一种 格式/模式/ feature representation.
关于你说的每个节点的含义如何理解:
我们不能只看单个节点, 应该要看这一层中所有的节点. 这一层中所有节点的就代表了之前所有数据的 representation. 下图是我的机器学习短视频 (莫烦 Python) 中的一张 AutoEncoder 神经网络的截图:
正中间那一个节点是简化的一个神经层, 里面有着对原数据的简化特征代表(feature reperentation), 那我们对他进行可视化的时候, 你就能发现: “噢, 原来是这么回事”.
可视化实验(莫烦 Python): 将原数据(手写数字图片所有像素点)经过隐藏层加工, 变成另一种特征代表 (3个神经元输出3个特征), 将这3个特征可视化出来. 就有了下面这张图, 我们发现中间的隐藏层对于"1"的图片数据有了清晰的认识, 能将"1"的特征区分开来.
这就是你需要了解的隐藏层的内涵了.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。