MLP(多层感知机)只是CNN(卷积网络)的一个特例

  很多书或论文也将MLP和CNN区别开来,但是实际MLP只是CNN的一个特例,也就是说MLP本身也是CNN,以下为简要的论述。

MLP(多层感知机)只是CNN(卷积网络)的一个特例_第1张图片
  上图为CNN的计算过程,这里的输入为 3x3 的图片,卷积核大小也为 3x3 ,这里的stride为0,计算公式为:

O i = ∑ i = 1 3 ( K i ⨂ I ) + b i O_i=\sum_{i=1}^3(K_i\bigotimes I)+b_i Oi=i=13(KiI)+bi
  下图为MLP的计算过程(为了方便MLP的计算过程图权重W被拆开了实际为9x3的矩阵,而输入计算时应该先转置,输出也是需要转置,即 1x9 dot 9x3 = 1x3)

MLP(多层感知机)只是CNN(卷积网络)的一个特例_第2张图片
  计算公式为(点号为点乘,dot)

O i = W i ⋅ I + b i O_i=W_i\cdot I+b_i Oi=WiI+bi
  上面我们可以看到,CNN和MLP计算过程实际对应数值标号是完全一致的,也就是说上两图MLP和CNN计算过程完全等价,可以互相转换。

  显然可以推导出,当CNN卷积核大小与输入大小相同时其计算过程等价于MLP,也就是说MLP等价于卷积核大小与每层输入大小相同的CNN(如输入图片为100x100,卷积核大小为100x100),所以MLP是CNN的一个特例。而卷积核大小与每层输入大小相同会直接丢失非常多的输入空间信息,所以MLP这种运行模式不适合图像这种空间信息丰富的数据。

  所以理论上我们只需要研究CNN就可以了,当然相对而言MLP比CNN更简单,更容易研究。

你可能感兴趣的:(machine,learning)