多层感知器 MLP
MLP是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个节点层组成,每一层连接到下一层
- 解决的问题:分类问题
- MLP是神经网络中最基础、最简单的
- 其余神经网络还有
- 误差反向传播神经网络(BP)
- 卷积神经网络(CNN——用于图像识别)
- 时间递归神经网络(LSTM——用于语音识别)
- 其余神经网络还有
12.1 神经网络的结构
- 输入层
- 隐层
- 输出层
- 不同层之间不是全连接的
- 全连接:上一层的任何一个神经元与下一层的所有神经元都有连接
12.2 神经网络的训练和学习
神经网络的三个基本要素
-
权重
- 神经元之间的连接强度由权重表示,权重的大小表示可能性的大小
-
偏置(阈值)
- 偏置的设置是为了正确分类样本,是模型中的重要参数
- 保证通过输入算出的输出值不能随便激活
-
激活函数
-
起非线性映射的作用,可以将神经元的输出幅度限制在一定范围内,一般限制在(-1,1)或(0,1)之间。
-
最常用的激活函数是Sigmoid函数,可将(-∞,+∞)的数映射到(0,1)
-
-
tanh也属于激活函数,映射到(-1,1)
-
-
-
下层单个神经元的值与上层所有输入之间的关系
-
-
注意:在最后需要减掉偏置(阈值),以排除掉一些不符合条件的上层输入
-
-
识别过程(以数字识别为例):
-
读取图片,以像素点为单位分解
-
归一化每个像素点的灰度值,如果值越大就越亮,值越小就越暗
- 将每行像素点拼接成一维作为这张图片的特征
-
输出由10个神经元组成,分别表示(0-9)十个数字,每个神经元的值也在(0-1)之间表示灰度
- 神经元的值越大表示输入经判断后是该数字的可能性越大,作为结论
-
-
如图有两个隐层,每个隐层有16个偏置
-
那么总共需要 784×16 + 16×16 + 16×10 = 13002个参数,也就是每条边的权值
- 神经网络的学习也就是通过训练集来不断训练得到更加合适的权值(参数)和偏置(阈值)
-