【读书笔记】周志华 机器学习 第五章 神经网络

1 神经元模型

在生物神经网络中,一个神经元A与其他神经元相连。当它兴奋时,会向相连的神经元B发送化学物质改变相连神经元B的电位。相连神经元B的电位超过阈值则会被激活开始兴奋,然后向相连的神经元C发送化学物质。
MP神经元模型
∑ i = 1 n w i x i \sum\limits_{i = 1}^{n} w_ix_i i=1nwixi表示相连神经元对当前神经元电位的影响, f ( ∑ i = 1 n w i x i − θ ) f(\sum\limits_{i = 1}^{n} w_ix_i - \theta) f(i=1nwixiθ)表示当前神经元电位超过或没超过阈值时的输出。这里的函数f称为激活函数。理想激活函数应该是阶跃函数,即电位超过阈值时输出为1,没超过阈值时输出为0。但是阶跃函数不连续不光滑,不利于后期参数学习,因此使用sigmoid函数以及其他函数作为激活函数。

2 感知机和多层网络

学习了神经元模型之后,开始学习如何利用神经元模型构建神经网络模型。先从最简单的感知机模型和逻辑回归模型开始学习。在李航《统计学习方法》中,感知机模型的数学表达式为: y = ∑ i = 1 n w i x i + b y = \sum \limits_{i = 1}^{n}w_ix_i + b y=i=1nwixi+b,逻辑回归模型数学表达式为: y = 1 1 + e − ∑ w i x i + b y = \frac{1}{1 + e^{-\sum w_ix_i + b}} y=1+ewixi+b1
感知机
如果上图所示神经网络模型使用的激活函数是恒等函数,那么该神经网络模型等价于感知机模型;如果使用的激活函数是sigmoid函数,那么该神经网络模型等价于逻辑回归模型。数学证明,对于线性可分问题,两层的感知机模型一定可以求解。对非线性可分问题,可以通过增加网络层数、使用非线性激活函数等方法进行求解。非线性问题求解的本质是对特征空间进行变换,将非线性问题转为线性问题

3 误差反向传播算法

多层网络的学习使用误差反向传播算法BP网络
BP推导
BP伪代码
这里的伪代码是根据每个样本的误差更新一次参数,这是标准BP算法;还有一种算法是根据所有样本的累计误差更新一次参数,称为累计误差BP算法。累计误差BP算法更新次数少,但是当累计误差下降到一定程度时,后续下降会非常缓慢,此时标准BP表现较好,下降速度较快。
BP神经网络学习能力强大,理论上只要隐藏层神经元个数做够多,就可以学得任意复杂度的连续函数。但是学习能力太强容易过拟合,有两种方法可以避免过拟合。一种是早停,使用训练集训练,使用验证集判断是否过拟合。当训练误差减小,但是验证误差增大时,认为网络模型开始过拟合,停止训练。一种是正则化,在目标函数中加入模型复杂度的惩罚项以均衡模型复杂度和误差。

4 局部极值点和鞍点

BP算法使用梯度下降法更新参数,当参数更新到局部极小值点或者鞍点处,梯度为零,没法继续更新参数。可以通过随机初始化点、随机梯度下降法(给梯度附加一个随机值)来避免进入局部极值点和鞍点。

5 其他神经网络

其他与标准神经网络不同,不同的地方包括激活函数不同,如RBF网络;网络结构不同,如Elman网络;目标函数不同,如玻尔兹曼机;
深度学习中的神经网络隐藏层层数较多而非隐藏层神经元数目较多。这样的好处是不仅有更多的神经元,而且激活函数之间还有嵌套,更有利于学习非线性函数。但是网络层数较多时,反向传播不容易收敛,可以通过无监督逐层训练(DBN)或者权值共享(CNN)来解决。

6 参考文献

周志华 机器学习 清华大学出版社
谢文睿、秦州 机器学习公式详解 人民邮电出版社
李航 统计学习方法第二版 清华大学出版社
部分图片源自网络和书本,如有侵权联系删除

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 什么是泛化能力?泛化能力和过拟合之间有什么关系? 泛化能力是指模型在新的、未见过的数据上的表现能力。模型的泛化能力与其对训练数据的拟合程度有关,通常来说,过拟合的模型泛化能力较差。 2. 什么是交叉验证?交叉验证的作用是什么? 交叉验证是一种通过将数据集分成若干个子集来进行模型评估的方法。具体地,将数据集分成k个子集,每个子集都轮流作为测试集,其余子集作为训练集,重复k次,最终得到k个模型的评估结果的平均值。交叉验证的作用是提高模型评估的可靠性和泛化能力。 3. 留出法、k折交叉验证和留一法的区别是什么?它们各自适用于什么情况? 留出法是将数据集分成两部分,一部分作为训练集,另一部分作为测试集。留出法适用于数据集较大的情况。 k折交叉验证是将数据集分成k个子集,每个子集都轮流作为测试集,其余子集作为训练集,重复k次,最终得到k个模型的评估结果的平均值。k折交叉验证适用于数据集较小的情况。 留一法是k折交叉验证的一种特殊情况,即将数据集分成n个子集,每个子集都作为测试集,其余子集作为训练集,重复n次。留一法适用于数据集较小且样本数较少的情况。 4. 为什么要对数据进行预处理?数据预处理的方法有哪些? 数据预处理可以提高模型的表现,并且可以减少过拟合的风险。数据预处理的方法包括:标准化、归一化、缺失值填充、特征选择、特征降维等。 5. 什么是特征选择?特征选择的方法有哪些? 特征选择是指从所有特征中选择出对模型预测结果有重要贡献的特征。特征选择的方法包括:过滤式方法、包裹式方法和嵌入式方法。其中,过滤式方法是基于特征间的关系进行特征选择,包裹式方法是基于模型的性能进行特征选择,嵌入式方法是将特征选择嵌入到模型训练中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值