吃瓜第五章 神经网络 2023-12-23

神经网络

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 感知机算法

感知机由两层神经元。假设计算
y = f(\sum_i w_ix_i - \theta)f是阶跃函数,y的值是0或1。

感知机

其中x是样本的特征向量,是感知机的输入,w是权值,\theta是阈值。
阈值可以看作一个输入固定为-1的”哑节点“的权值。

损失函数:


损失函数

若分类全部正确,则损失函数值一定为0。
学习使用随机梯度下降,则每次更新参数只使用一个误分类点。若当前输出为y,则新的权值是:
w_i \leftarrow w_i + \eta (y-\hat{y}) x_i \theta \leftarrow \theta - \eta (y-\hat{y})不断更新,直至对所有样本点都分类正确。

2.3 多层感知机

但是,单层感知机只能解决线性分类问题,要解决非线性可分问题,需要使用多层感知机。

线性可分

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

3 反向传播算法BP

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


对隐藏层的每个节点,要算它与l个输出节点和d个输入节点分别的连接权重,以及自己的阈值。对每个输出节点,还要算自己的阈值。所以一共有(d+l+1)q+l个参数参与计算。

w_{hj}权重更新:



得到w_{hj}=w_{hj}-\eta g_jb_h权重的更新值为学习率×g_j×隐藏层第h个神经元的输出。
类似可得

其中theta_j是输出层第j个神经元的阈值,v_{ih}是输入层第i个到隐藏层第h个的权重,\gamma _h是隐藏层第h个神经元的阈值。
e_h
e_h

标准BP流程(每次针对一个样例进行更新):
误差逆传播算法

标准BP算法往往需要更多次迭代,才能到达累计误差最小点。累积BP算法参数更新的频率小的多,但是在很多任务中,当累计误差下降到一定程度之后,进一步下降会非常缓慢,这是标准BP往往更快获得较好的解。

解决过拟合:

  • 早停:用训练集来更新参数,验证集用来估计误差。如果训练集误差降低了但验证集误差升高了,就停止。
  • 正则化:损失函数里加与模型规模相关的惩罚项。

参考:

  1. 南瓜书https://www.bilibili.com/video/BV1Mh411e7VU/?p=1&vd_source=32ad22ca1aa5a882c8b7fe1b7878657f
  2. 《机器学习》周志华
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容