机器学习西瓜书和南瓜书第5章学习笔记

一、M-P神经元

        M-P神经元是一个用来模拟生物行为的数学模型。它接收n个输入(通常来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值\theta比较(作减法),最后经过激活函数(模拟抑制和激活)处理得到输出(通常输入其他神经元)。

y=f(\sum_{i=1}^{n}w_{i}x_{i}-\theta )=f(\boldsymbol{w}^{T}\boldsymbol{x}-\theta )

        单个M-P神经元有感知机(sgn作激活函数)、对数几率回归(sigmoid作激活函数)等;多个M-P神经元组成神经网络。

二、感知机

        感知机是用sgn(阶跃函数)当激活函数的M-P神经元。其中sgn公式为

y=sgn(\boldsymbol{w}^{T}\boldsymbol{x}-\theta )=\left\{\begin{matrix}1,\boldsymbol{w}^{T}\boldsymbol{x}-\theta \geqslant 0 \\ 0,\boldsymbol{w}^{T}\boldsymbol{x}-\theta < 0 \end{matrix}\right.

其中\boldsymbol{x}为特征向量,是感知机的输入;\boldsymbol{w}\theta是感知机的参数,\boldsymbol{w}为权重,\theta为阈值。从几何角度来看,给定一个线性可分的数据集T,感知机的学习目标是求能对T正负样本完全划分的超平面,其中\boldsymbol{w}^{T}\boldsymbol{x}-\theta=0为超平面方程。

        感知机学习策略为随机初始化\boldsymbol{w}b,将训练样本代入模型找出误分类样本组成集合M,对于任意误分类样本(\boldsymbol{x},y)而言,都有

(\widehat{y}-y)(\boldsymbol{w}^{T}\boldsymbol{x}-\theta )\geqslant 0

所以其损失函数为

L(\boldsymbol{w},\theta )=\sum_{(\boldsymbol{x},y)\epsilon M}^{}(\widehat{y}-y)(\boldsymbol{w}^{T}\boldsymbol{x}-\theta )

给定数据集T=\left \{ (\boldsymbol{x}_{1},y_{1}),(\boldsymbol{x}_{2},y_{2}),...,(\boldsymbol{x}_{N},y_{N}) \right \},其中y_{i}\in \left \{ 0,1 \right \}。将-\theta作为哑节点看作(-1\times w_{n+1}),进而看作x_{n+1} w_{n+1},则损失函数变为

L(\boldsymbol{w})=\sum_{(\boldsymbol{x},y)\epsilon M}^{} (\widehat{y}-y)\boldsymbol{w}^{T}\boldsymbol{x}

argmin_{\boldsymbol{w}}\sum_{(\boldsymbol{x}_{i},y)\epsilon M}^{}(\widehat{y}_{i}-y_{i})\boldsymbol{w}^{T}\boldsymbol{x}_{i}。误分类样本越少、离超平面越近,损失函数越小。

        当误分类样本固定时,L(\boldsymbol{w})的梯度为\sum_{(\boldsymbol{x}_{i},y_{i})\epsilon M}^{} (\widehat{y}_{i}-y_{i})\boldsymbol{x}_{i},采用随机梯度算法。其中\boldsymbol{w}的更新公式为

\boldsymbol{w}\leftarrow \boldsymbol{w}+\Delta \boldsymbol{w}

\Delta \boldsymbol{w}=\eta (y_{i}-\widehat{y}_{i})\boldsymbol{x}_{i}

解出来的\boldsymbol{w}不唯一。

三、神经网络

        感知机等单个神经元只能分类线性可分的数据集,而神经网络可以分类线性不可分的数据集。只要包含足够多神经元的隐层,多层前馈网络(一种经典的神经网络)就能以任意精度逼近任意复杂度的连续函数。因此神经网络既能作回归,也能作分类,且不需要复杂的特征工程。

        多层前馈网络中每层神经元与下一层神经元互连,神经元中不存在同层连接,也不存在跨层连接。神经网络可以看作一个特征加工函数(记为NN),将加工后的特征向量套入线性回归作回归或套入对数几率回归作分类。假设多层前馈网络中激活函数全为sigmoid函数,且要完成一个多输出的回归任务,损失函数可以用均方差(分类任务则用交叉熵)E_{k}=\frac{1}{2}\sum_{j=1}^{l}(\widehat{y}_{k}^{j}-y_{k}^{j})^{2}

        误差逆传播算法(BP算法)是基于随机梯度下降的参数更新算法,更新公式为

\boldsymbol{w}\leftarrow \boldsymbol{w}+\Delta \boldsymbol{w}

\Delta \boldsymbol{w}=-\eta \bigtriangledown _{w}E

以输入层第i个神经元与隐层第h个神经元之间的连接权\upsilon _{ih}为例推导如下:

j个输出神经元输入为

\beta _{j}=\sum_{h=1}^{q}w_{hj}b_{h}

h个隐层神经元输入为

\alpha _{h}=\sum_{i=1}^{d}\upsilon _{ih}x_{i}

E_{k}=\frac{1}{2}\sum_{j=1}^{l}(\widehat{y}_{k}^{j}-y_{k}^{j})^{2}

\frac{\partial E_{k}}{\partial v_{ih}}=\sum_{j=0}^{l}\frac{\partial E_{k}}{\partial \widehat{y}_{j}^{k}}\frac{\partial \widehat{y}_{j}^{k} }{\partial \beta _{j}}\frac{\partial \beta _{j} }{\partial b_{h}}\frac{\partial b_{h}}{\partial \alpha _{h}}\frac{\partial \alpha _{h}}{\partial v_{ih} }

g_{j}=-\frac{\partial E_{k}}{\partial \widehat{y}_{j}^{k}}\frac{\partial \widehat{y}_{j}^{k} }{\partial \beta _{j}} =\widehat{y}_{j}^{k}(1-\widehat{y}_{j}^{k})(y_{j}^{k}-\widehat{y}_{j}^{k} )

\frac{\partial E_{k}}{\partial v_{ih}} =-b_{h}(1-b_{h})\sum_{j=1}^{l}g_{j}w_{hj}x_{i}

        本文公式推导过程参考自周志华《机器学习》和https://www.bilibili.com/video/BV1Mh411e7VU?p=8&vd_source=bf244e193683634d74ec4694f6a67393并结合自己理解完成。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可爱的希格玛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值