《机器学习》西瓜书第四章 神经网络(南瓜书辅助)

5.1 M-P神经元

M‑P神经元(一个用来模拟生物行为的数学模型):接收n个输入(通常是来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值 进行比较(作减法),最后经过激活函数(模拟“抑制”和“激活”)处理得到输出(通常是给下一个神经元)
y = f ( ∑ i = 1 n w i x i − θ ) = f ( w T x + b ) y=f\left(\sum_{i=1}^{n} w_{i} x_{i}-\theta\right)=f\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right) y=f(i=1nwixiθ)=f(wTx+b)
单个M‑P神经元:感知机( sgn ⁡ \operatorname{sgn} sgn 作激活函数,阶跃函数小于0取0,大于零取1)、对数几率回归( sigmoid ⁡ \operatorname{sigmoid} sigmoid作激活函数)多个M‑P神经元:神经网络

5.2 感知机

  • 从代数角度

感知机模型(二分类判断0,1样本):激活函数为 sgn ⁡ \operatorname{sgn} sgn​​ (阶跃函数)的神经元
y = sgn ⁡ ( w T x − θ ) = { 1 , w T x − θ ⩾ 0 0 , w T x − θ < 0 y=\operatorname{sgn}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right)= \begin{cases}1, & \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta \geqslant 0 \\ 0, & \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta<0\end{cases} y=sgn(wTxθ)={1,0,wTxθ0wTxθ<0
其中, x ∈ R n \boldsymbol{x} \in \mathbb{R}^{n} xRn 为样本的特征向量,是感知机模型的输入, w , θ \boldsymbol{w}, \theta w,θ 是感知机模型的参数, w \boldsymbol{w} w 为权重, θ \theta θ 为阈值。

超平面:对于一维空间超平面就是点,二维空间是一条线,三维空间是一个面

  • 从几何角度

给定一个线性可分(就是在二维空间可以找到一条线把正负样本分开)的数据集 T T T ,感知机的学习目标是求得能对数据集 T T T 中的正负样本完全正确划分的超平面,其中 w T x − θ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta wTxθ 即为超平面方程。

5.2.1感知机学习策略

将全体训练样本代入模型找出误分类样本,误分类样本集合为 M M M ,对任意一个误分类样本 ( x , y ) (x, y) (x,y) 来说

w T x − θ ⩾ 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\geqslant0 wTxθ0 时,模型输出值为 y ^ = 1 \hat{y}=1 y^=1 ,样本真实标记为 y = 0 y=0 y=0

w T x − θ < 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta<0 wTxθ<0 时,模型输出值为 y ^ = 0 \hat{y}=0 y^=0 ,样本真实标记为 y = 1 y=1 y=1

综合两种情形可知,以下公式恒成立
( y ^ − y ) ( w T x − θ ) ≥ 0 (\hat{y}-y)\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right) \geq 0 (y^y)(wTxθ)0
损失函数为
L ( w , θ ) = ∑ x ∈ M ( y ^ − y ) ( w T x − θ ) L(\boldsymbol{w}, \theta)=\sum_{\boldsymbol{x} \in M}(\hat{y}-y)\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}-\theta\right) L(w,θ)=xM(y^y)(wTxθ)
显然,此损失函数是非负的。如果没有误分类点,损失函数值是0。而且,误分类点越少,误分类点离超平面越近,损失函数值就越小。

具体地,给定数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } T=\left\{\left(\boldsymbol{x}_{1}, y_{1}\right),\left(\boldsymbol{x}_{2}, y_{2}\right), \ldots,\left(\boldsymbol{x}_{N}, y_{N}\right)\right\} T={(x1,y1),(x2,y2),,(xN,yN)}
求参数 w , θ \boldsymbol{w}, \theta w,θ ,使其为极小化损失函数的解:
min ⁡ w , θ L ( w , θ ) = min ⁡ w , θ ∑ x i ∈ M ( y ^ i − y i ) ( w T x i − θ ) \min _{\boldsymbol{w}, \theta} L(\boldsymbol{w}, \theta)=\min _{\boldsymbol{w}, \theta} \sum_{\boldsymbol{x}_{i} \in M}\left(\hat{y}_{i}-y_{i}\right)\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}-\theta\right) w,θminL(w,θ)=w,θminxiM(y^iyi)(wTxiθ)
若将阈值 看作一个固定输入为 -1 ⁡ \operatorname{-1} -1 的“哑节点”,即
− θ = − 1 ⋅ w n + 1 = x n + 1 ⋅ w n + 1 -\theta=-1 \cdot w_{n+1}=x_{n+1} \cdot w_{n+1} θ=1wn+1=xn+1wn+1
根据该式,可将要求解的极小化问题进一步简化为
min ⁡ w L ( w ) = min ⁡ w ∑ x i ∈ M ( y ^ i − y i ) w T x i \min _{\boldsymbol{w}} L(\boldsymbol{w})=\min _{\boldsymbol{w}} \sum_{\boldsymbol{x}_{i} \in M}\left(\hat{y}_{i}-y_{i}\right) \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i} wminL(w)=wminxiM(y^iyi)wTxi

5.2.2感知机学习算法

损失函数的梯度为
∇ w L ( w ) = ∑ x i ∈ M ( y ^ i − y i ) x i \nabla_{\boldsymbol{w}} L(\boldsymbol{w})=\sum_{\boldsymbol{x}_{i} \in M}\left(\hat{y}_{i}-y_{i}\right) \boldsymbol{x}_{i} wL(w)=xiM(y^iyi)xi
感知机的学习算法采用的是随机梯度下降法,随机从 M M M 选取一个误分类点使其梯度下降

权重 w w w 的更新公式为
w ← w + Δ w Δ w = − η ( y ^ i − y i ) x i = η ( y i − y ^ i ) x i \begin{gathered} \boldsymbol{w} \leftarrow \boldsymbol{w}+\Delta \boldsymbol{w} \\ \Delta \boldsymbol{w}=-\eta\left(\hat{y}_{i}-y_{i}\right) \boldsymbol{x}_{i}=\eta\left(y_{i}-\hat{y}_{i}\right) \boldsymbol{x}_{i} \end{gathered} ww+ΔwΔw=η(y^iyi)xi=η(yiy^i)xi
通常解出来的最小值不唯一, w w w 也不唯一

5.3 神经网络

由于像感知机这种单个神经元分类能力有限,只能分类线性可分的数据集,对于线性不可分的数据集则无能为力,但是多个神经元构成的神经网络能够分类线性不可分的数据集。

通用近似定理:只需一个包含足够多神经元的隐层,多层前馈网络(最经典的神经网络之一)就能以任意精度逼近任意复杂度的连续函数。因此,神经网络既能做回归,也能做分类,而且不需要复杂的特征工程。

5.3.1 多层前馈网络

多层前馈网络:每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。(隐层阈值 γ h \gamma_{h} γh ,输出层阈值 θ j \theta_j θj

image-20220328001920606将神经网络(记为 N N \mathrm{NN} NN)看作一个特征加工函数,将 x \boldsymbol{x} x n n n 维转化为 l l l
x ∈ R d → N N ( x ) → y = x ∗ ∈ R l \boldsymbol{x} \in \mathbb{R}^{d} \rightarrow \mathrm{NN}(\boldsymbol{x}) \rightarrow \boldsymbol{y}=\boldsymbol{x}^{*} \in \mathbb{R}^{l} xRdNN(x)y=xRl

  • (单输出)线性回归: N N \mathrm{NN} NN 后面接一个 R l → R \mathbb{R}^{l} \rightarrow \mathbb{R} RlR 的神经元,例如:没有激活函数的神经元

y = w T x ∗ + b y=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}^{*}+b y=wTx+b

  • 分类:后面接一个 R l → [ 0 , 1 ] \mathbb{R}^{l} \rightarrow[0,1] Rl[0,1] 的神经元,例如:激活函数为 sigmoid ⁡ \operatorname{sigmoid} sigmoid 函数的神经元

y = 1 1 + e − ( w T x ∗ + b ) y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}^{*}+b\right)}} y=1+e(wTx+b)1

假设多层前馈网络中的激活函数全为 sigmoid ⁡ \operatorname{sigmoid} sigmoid 函数,且当前要完成的任务为一个(多输出)回归任务,因此损失函数可以采用均方误差(分类任务则用交叉熵)。对于某个训练样本 ( x k , y k ) \left(\boldsymbol{x}_{k}, \boldsymbol{y}_{k}\right) (xk,yk) ,其中 y k = ( y 1 k , y 2 k , … , y l k ) \boldsymbol{y}_{k}=\left(y_{1}^{k}, y_{2}^{k}, \ldots, y_{l}^{k}\right) yk=(y1k,y2k,,ylk) ,假定其多层前馈网络的输出为 y ^ k = ( y 1 k , y 2 k , … , y l k ) \boldsymbol{\hat{y}_{k}}=\left(y_{1}^{k}, y_{2}^{k}, \ldots, y_{l}^{k}\right) y^k=(y1k,y2k,,ylk) ,则该单个样本的均方误差(损失)为
E k = 1 2 ∑ j = 1 l ( y ^ j k − y j k ) 2 E_{k}=\frac{1}{2} \sum_{j=1}^{l}\left(\hat{y}_{j}^{k}-y_{j}^{k}\right)^{2} Ek=21j=1l(y^jkyjk)2
误差逆传播算法(BP算法):基于随机梯度下降的参数更新算法
w ← w + Δ w Δ w = − η ∇ w E \begin{gathered} w \leftarrow w+\Delta w \\ \Delta w=-\eta \nabla_{w} E \end{gathered} ww+ΔwΔw=ηwE
其中只需推导出 ∇ w E \nabla_{w} E wE 这个损失函数 E E E 关于参数的一阶偏导数(梯度)即可(链式求
导)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值