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是怎么迭代计算出来了。所有知识都是这样,从最简单举例开始。