神经网络

多层感知机(multilayer perceptron)

/ MUL-tee-lay-er per-SEP-tron /

多层感知机,简称 MLP,是最基础的一种神经网络:一排排的人工神经元一前一后地叠在一起,信息从输入笔直流向输出。想象一条由「拿主意的人」组成的流水线。第一排读入原始输入,每个神经元做出自己那点加权的判断,把数字传给下一排,下一排把这些判断综合成更抽象的判断,如此层层推进,直到最后一排给出答案。这里没有回路,也没有捷径——只有一条干净的、向前的级联,这也正是它又被称为前馈网络的原因。

MLP 与它的祖先、单个感知机的区别,在于中间的隐藏层——那些既非输入、也非输出的排。孤零零一个感知机只能用一条直线去切分数据,并以在 XOR 这类简单模式上栽跟头而出名。在输入与输出之间塞进一个隐藏层,再在每个神经元处加上一个非线性激活函数,网络忽然就能把它的决策边界弯折成几乎任何形状。从一层到多层的这一跃,正是让神经网络真正强大起来的关键。

一层中的每个神经元,通常都与下一层的每个神经元相连——这就是全连接层,MLP 的标志。这种稠密既是它的长处也是它的短处:它能学到输入之间丰富的关系,却没有任何对结构的内建感知,所以它会把一张被打乱的图像和一张有序的图像同等对待。对于具有空间或序列结构的数据,专门的网络(卷积或循环)通常表现更好。不过 MLP 仍是概念上的根基——理解了它,你就理解了大多数深度学习底下的那副骨架。

一个预测房价的小型 MLP,也许有 4 个输入神经元(面积、卧室数、房龄、到市区的距离),一个含 8 个神经元的隐藏层把这些事实揉合成「吸引力」之类的抽象概念,再加 1 个给出价格的输出神经元。把一栋房子的这四个数字喂进去,它们便层层向前流动,直到末端蹦出一个单一的价格数字。

一个 MLP:输入 → 全连接的隐藏层 → 输出,信息单向流动。

「多层感知机」这个名字有点名不副实:它的神经元使用平滑的激活函数、靠反向传播来学习,与最初那个阶跃函数的感知机并不相同。这名字是出于历史原因才沿用下来的,并非技术上的准确。

又称
MLPfeedforward neural networkfully-connected network多层感知机多層感知器前馈神经网络