第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》

神经网络

目录

  • 神经网络
    • 1.神经元模型
      • 1.1 M-P神经元模型
      • 1.2 激活函数
    • 2.感知机与多层神经网络
      • 2.1 感知机
      • 2.2 多层前馈神经网络
    • 3.误差逆传播算法(BP算法)
    • 参考文献:

1.神经元模型

1.1 M-P神经元模型

第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第1张图片
输出函数: y = f ( ∑ i = 1 n ( ω i x i − θ ) ) y=f(\sum^{n}_{i=1}(\omega_ix_i-\theta)) y=f(i=1n(ωixiθ))
其中 θ \theta θ为阈值, ω i \omega_i ωi为第i个神经元的连接权重, x i x_i xi为来自第i个神经元的输入。

1.2 激活函数

阶跃函数:
理论上我们使用阶跃函数。将输入值映射为输出值为0/1,显然1为神经元兴奋,0为神经元抑制
函数: s g n = {   1 , X ≥ 0   0 , X < 0 sgn=\begin{cases} \ {1,X\geq0} \\ {\ 0,X<0} \end{cases} sgn={ 1,X0 0,X<0
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第2张图片
Sigmoid函数
因为阶跃函数不连续,所以我们使用替代品sigmoid函数(有时候又称为挤压函数):
函数:
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第3张图片

第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第4张图片
可以看到当sigmoid的输入很大或很小时,其梯度几乎趋近于0。
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第5张图片

再来看tanh激活函数,
函数为:
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第6张图片

如下图所示:

第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第7张图片

由上图可以看出,tanh激活函数和sigmoid激活函数非常相似,只不过tanh激活函数将输入值压缩到了-1到1之间,由其梯度图像可以看出,当输入很大或很小时梯度也是趋于0的。

最后让我们来看一下relu激活函数
函数为:
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第8张图片
如下图所示:
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第9张图片

从上图中可以看出,relu激活函数在0到正无穷上会随着输入的增大而无限增大,在小于0的区间上其值全为0,但是我们还可以看到其梯度在0到正无穷上永远为1。

由于神经网络最后对于损失函数的优化也是使用梯度下降,因此在实际运用中,我们基本上会经常用relu激活函数,因为sigmoid激活函数以及tanh激活函数从上面的图像中已经可以看出,其存在梯度消失的问题,我们知道,当我们使用梯度下降去优化某个损失函数时,是需要求梯度的,但是如果输入过大(可能初始化权重过大,也可能特征过大)并且采取的是sigmoid或tanh激活函数,那么当我们在输入位置求取梯度时其梯度值趋近于0,而我们对于参数的更新量也趋近于0,因此最终会因为梯度消失的问题造成收敛过慢,因此我们会使用relu激活函数来加快收敛速度,但relu激活函数的精度不如sigmoid激活函数。

2.感知机与多层神经网络

2.1 感知机

感知机由两层神经元构成,输入层接受外界信号后传递给输出层,输出层为M-P神经元,亦称“阈值逻辑单元”
从几何角度来说,给定一个线性可分的数据集T,感知机的学习目标是构筑一个在n维空间将数据集T中正负样本完全正确划分的超平面,其中 ω T x − θ \omega^Tx-\theta ωTxθ为超平面方程
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第10张图片训练逻辑:
对训练样例(x,y),若当前感知机的输出为y^,则这样调整:
ω i ← ω i + Δ ω i Δ ω i = η ( y − y   ) x i {\omega_i\leftarrow\omega_i+ \Delta\omega_i} \\{\Delta\omega_i=\eta(y-y^\ )x_i} ωiωi+ΔωiΔωi=η(yy )xi
其中 η ∈ ( 0 , 1 ) \eta \in(0,1) η(0,1)称为学习率,若预测正确则不调整,若错误,则根据错误的程度进行调整。
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第11张图片

2.2 多层前馈神经网络

单隐层前馈神经网络
第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第12张图片

优秀笔记:多层感知机与神经网络学习总结

3.误差逆传播算法(BP算法)

原理视频:【算法思想】14分钟了解BP神经网络
线性回归更新算法: ω = ω + ( y − d y ) d x \omega=\omega+(y-dy)dx ω=ω+(ydy)dx
个人理解:本算法首先关键字是逆向,及由预测结果的错误程度去反馈,去修改 ω \omega ω的值(注, ω \omega ω可以为常数也可为矩阵),
算法推导:

第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第五章 / 周志华《机器学习》_第13张图片

参考文献:

  1. 单隐层前馈神经网络
  2. BP算法介绍

你可能感兴趣的:(Datawhale吃瓜教程,机器学习)