神经网络
1 神经元模型
1.1 M-P神经元

M-P神经元模型
“在这个模型中,神经元接收到来自其他n个神经元传递过来的输入信号,这些信号通过带权值的连接进行传递,神经元把接收到的总收入值与阈值进行比较,然后通过激活函数处理来产生输出。“——《机器学习》周志华
1.2 激活函数
常用Sigmoid函数,把在较大范围内变化的输入值挤压到(0, 1)输出范围内。

sigmoid
更多的激活函数请见https://zh-v2.d2l.ai/chapter_multilayer-perceptrons/mlp.html 中4.1.2节。
- 单个M-P神经元:感知机(sgn作激活函数)、对数几率回归(sigmoid作激活函数)
- 多个M-P神经元:神经网络
2 感知机与多层网络
2.1 感知机
从几何角度说,给定一个线性可分的数据集T,感知机的学习目标是求得能对数据集T中正负样本完全正确划分的超平面。
2.2 感知机算法
感知机由两层神经元。假设计算
,
是阶跃函数,
的值是0或1。

感知机
其中
阈值可以看作一个输入固定为-1的”哑节点“的权值。
损失函数:

损失函数
若分类全部正确,则损失函数值一定为0。
学习使用随机梯度下降,则每次更新参数只使用一个误分类点。若当前输出为,则新的权值是:
不断更新,直至对所有样本点都分类正确。
2.3 多层感知机
但是,单层感知机只能解决线性分类问题,要解决非线性可分问题,需要使用多层感知机。

线性可分
神经网络是层级结构,每层神经元与下层全互连,不存在同层连接的,称为多层前馈神经网络。
分为输入层、隐藏层、输出层。

前馈神经网络
3 反向传播算法BP
反向传播是实现梯度下降的一种具体方式。
假设如下网络(激活函数是Sigmoid):

对隐藏层的每个节点,要算它与
权重更新:


得到
类似可得

其中

e_h
标准BP流程(每次针对一个样例进行更新):

误差逆传播算法
标准BP算法往往需要更多次迭代,才能到达累计误差最小点。累积BP算法参数更新的频率小的多,但是在很多任务中,当累计误差下降到一定程度之后,进一步下降会非常缓慢,这是标准BP往往更快获得较好的解。
解决过拟合:
- 早停:用训练集来更新参数,验证集用来估计误差。如果训练集误差降低了但验证集误差升高了,就停止。
- 正则化:损失函数里加与模型规模相关的惩罚项。
参考: