03.03 如何看懂神经网络图?

visionstory


神经网络的图还是比较容易看懂的,比电路图什么的要好懂多了。只是刚开始接触有些不习惯罢了,多看一些就好了。

下面举几张神经网络图作为例子(由简单到复杂)。

简单的3层网络

下图是一个非常简单的3层网络。

首先,我们注意到有一些圆形,它们表示神经元。然后,竖着看,这些神经元组成的“列”称为网络层。灰色的神经元构成输入层输出层,中间黑色的神经元构成隐藏层

然后,神经元之间有一些线互相连接,这些线称为连接。在上图中,每层中的每个神经元都和下一层中的每个神经元连接,这称为全连接层(Full Connected,FC)。准确地说,这些线是一些箭头,这些箭头指示前向传播的方向。

VGG

当然了,实际的神经网络包含成千上万的神经元,不可能在神经网络图中把这些神经元和连接都画出来。因此,往往是用方块表示一个神经网络层(而不是像上图一样把每层中的神经元都画出来)。

er the entire ImageNet training set).

上图中,黑色方块表示使用ReLU激活的卷积层,红色表示最大池化,蓝色表示使用ReLU激活的全连接层,黄色表示softmax层。

Inception和ResNet

有的时候,整个网络很复杂,或者,有的神经网络可以作为组件堆叠起来,或者嵌入更大、更复杂的神经网络,这时候,往往只画出网络的一部分。比如,下图为Google在2014年提出的Inception模块:

上图中,每个方块都表示一个网络层,比如,红色是3x3最大池化层,黄色是1x1卷积层,同样,用箭头表示连接(只不过不再是神经元中的连接,而是网络层间的连接)。

下图为ResNet的网络结构图,同样,只画出一个组件,方块表示网络层,箭头表示连接。


MSDNet

下图是MSDNet(多尺度密集网络)的神经网络图。相对而言,这个神经网络图比较复杂,不过,一般这种比较复杂的神经网络图,都会有相应的图例和说明。

看这种比较复杂的网络图,首先要搞明白图例,比如,绿色椭圆表示分类器,黄色方块表示特征映射,红线表示卷积,蓝线表示步进卷积,浅黄色虚框表示层。

然后,盯住输入和输出。上图输入(猫图)传给第一层(l = 1),输出为绿色的分类器。从输入和输出两头分别往中间推,比较容易看清流向,搞明白整个网络的架构。

(思考题:你有没有发现上图中有些地方有点浪费,或者说,这个图可不可简化一下?评论告诉我你的想法。)


论智


神经网络很简单,只需要了解一下y=kx+b在神经网络图上是怎么表达的就行了,如果还想了解怎么求k、b,那么就用五个样本,按照公式带进去,就知道k、b是怎么迭代计算出来了。所有知识都是这样,从最简单举例开始。


分享到:


相關文章: