多层神经网络MLP快速入门
神经网络学习交流报告
a
1
目录
CONTENTE
1 神经元模型 2 感知机与多层神经网络 3 应用一:MLP分类器 4 应用二:MLP的3D可视化
a
2
神经元模型
人工神经网络(ann)是一种计算模型,启发自人类大脑处理信息的生物神 经网络。人工神经网络在语音识别、计算机视觉和自然语言理领域取得了一 系列突破,让机器学习研究和产业兴奋了起来。
然后我们看一个案例。
a
11
感知机与多层神经网络
我们通常在感知器的输出层中使用 Softmax 函数作为激活函数,以保证输出 的是概率并且相加等于 1。 Softmax 函数接收一个随机实值的分数向量,转化成多个介于 0 和 1 之间、 并且总和为1 的多个向量值。所以,在这个例子中:
概率(Pass)+概率(Fail)=1
3. 输出节点:输出节点总称为「输出层」,负责计算,并从网络向外部世界 传递信息。
在前馈网络中,信息只单向移动——从输入层开始前向移动,然后通过隐藏 层(如果有的话),再到输出层。在网络中没有循环或回路(前馈神经网络 的这个属性和递归神经网络不同,后者的节点连接构成循环)。
a
8
感知机与多层神经网络
此网络从一个 28 x 28 的手写数字图像接受 784 个数字像素值作为输入(在 输入层有对应的 784 个节点)。
后向传播:这些输出会和我们已知的、期望的输出进行比较,误差会「传播」
回上一层。该误差会被标注,权重也会被相应的「调整」。该流程重复,直
到输出误差低于制定的标准。
a
10
感知机与多层神经网络
上述算法结束后,我们就得到了一个学习过的人工神经网络,该网络被认为 是可以接受「新」输入的。 该人工神经网络可以说从几个样本(标注数据)和其错误(误差传播)中得 到了学习。
多层感知器(Multi Layer Perceptron,即 MLP)包括至少一个隐藏层(除 了一个输入层和一个输出层以外)。单层感知器只能学习线性函数,而多层 感知器也可以学习非线性函数。
a
9
感知机与多层神经网络
训练我们的多层感知器
BP算法(backpropagation),反向传播误差算法,是几种训练人工神经网 络的方法之一。这是一种监督学习方法,即通过标记的训练数据来学习(有 监督者来引导学习)。
a
7
感知机与多层神经网络
一个前馈神经网络可以包含三种节点:
1. 输入节点:输入节点从外部世界提供信息,总称为「输入层」。在输入节 点中,不进行任何的计算——仅向隐藏节点传递信息。
2. 隐藏节点:隐藏节点和外部世界没有直接联系(由此得名)。这些节点进 行计算,并将信息从输入节点传递到输出节点。隐藏节点总称为「隐藏层」。 尽管一个前馈神经网络只有一个输入层和一个输出层,但网络里可以没有也 可以有多个隐藏层。
a
3
神经元模型
还有配有权重 b(称为「偏置(bias)」或者「阈值(threshold)」) 的输入 1。
a
4
神经元模型
函数 f 是非线性的,叫做激活函数。激活函数的作用是将非线性引入神经元 的输出。因为大多数现实世界的数据都是非线性的,我们希望神经元能够 学习非线性的函数表示,所以这种应用至关重要。
每个(非线性)激活函数都接收一个数字,并进行特定、固定的数学计算 。 在实践中,可能会碰到几种激活函数: Sigmoid(S 型激活函数):输入一个实值,输出一个 0 至 1 间的值 σ(x) = 1 / (1 + exp(−x)) tanh(双曲正切函数):输入一个实值,输出一个 [-1,1] 间的值 tanh(x) = 2σ(2x) − 1 ReLU:ReLU 代表修正线性单元。输出一个实值,并设定 0 的阈值(函数 会将负值变为零)f(x) =max(0, x)
a
5
神经元模型
将上述情形抽象,就是一直沿用至今的“M-P”神经元模型。在这个模型 中,神经元收到来自n个其他神经元传递来的输入信号,这些输入信号 通过带权重(w)连接进行传递,神经元接收到的输入值将与神经元的 阈值进行比较,然后通过“激活函数”得到神经元的输出。
a
6
感知机与多层神经网络
前馈神经网络是最先发明也是最简单的人工神经网络。它包含了安排在多个层 中的多个神经元(节点)。相邻层的节点有连接或者边(edge)。所有的连接 都配有权重。
a
14
应用一:MLP分类器
a
15
应用一:MLP分类器
a
16
应用一:MLP分类器
a
17
应用一:MLP分类器
a
18
应用一:MLP分类器
a
19
应用一:MLP分类器aFra bibliotek20应用一:MLP分类器
a
21
应用一:MLP分类器
a
22
应用一:MLP分类器
a
23
应用二:MLP的3D可视化
Adam Harley 创造了一个多层感知器的 3D 可视化 (http://scs.ryerson.ca/~aharley/vis/fc/),并已经开始使用 MNIST 数据库 手写的数字进行训练。
神经网络(neural networks)方面的研究很早就已经出现,今天“神经网络” 已是一个相当大的、多学科交叉的学科领域。
神经网络中最基本的成分是神经元(neuron)模型,一般称作「节点」 (node)或者「单元」(unit)。节点从其他节点接收输入,或者从外部源 接收输入,然后计算输出。每个输入都辅有「权重」(weight,即 w), 权重取决于其他输入的相对重要性。节点将函数 f(定义如下)应用到加权 后的输入总和,如图 1 所示:
由前向传播和后向传播构成。
简单说来,BackProp 就像「从错误中学习」。监督者在人工神经网络犯错 误时进行纠正。学习的目的是为分配正确的权重。通过输入向量,这些权重 可以决定输出向量。
前向传播:最初,所有的边权重(edge weight)都是随机分配的。对于所 有训练数据集中的输入,人工神经网络都被激活,并且观察其输出。
a
12
感知机与多层神经网络
a
13
感知机与多层神经网络
如果我们现在再次向网络输入同样的样本,网络应该比之前有更好的表现, 因为为了最小化误差,已经调整了权重。如图 7 所示,和之前的 [0.6, -0.4] 相比,输出节点的误差已经减少到了 [0.2, -0.2]。
这意味着我们的网络已经学习了如何正确对第一个训练样本进行分类。