机器学习-第五章神经网络读书笔记(周志华)

前言

博主第一次接触机器学习,内容可能有许多原文复现,但是我尽量用自己的话来讲,觉得写得还行的话点个喜欢,谢谢!吐舌头

读书笔记第一目的是为了总结,第二是顺便在博客上记录我的学习历程,同时也希望读者能有一点点收获吧~如果不对的地方,还请多多指教!

正文

周志华的机器学习第五章讲的是关于神经网络这一方面,内容上包括了基本神经网络的组成与基本概念,常见的神经网络学习算法以及相关优化问题,在后面简单介绍了几种常见的神经网络例如RBF网络,SOM网络,级联相关网络等,可以作为入门的基础资料进行阅读。

1.神经元模型

本章主要讲的是神经网络,从其组成来看,其最基本的组成成分为神经元,这也就对应了神经网络一词中的“神经“。而网络:顾名思义就是由这些神经元组成的广泛并行互连的网络。

神经网络的提出也是得益出于生物神经网络的思考,模拟生物大脑的网络处理方式。在生物神经网络中,每个神经元之间互连,当神经元接收了外部的输入,其神经元电位处于较高时,神经元会处于“兴奋”状态时会向其他神经元传递化学物质。而人工神经网络正是出于这种思考,我们假设每个神经元电位高于某个“阈值”时会处于兴奋,则对于每个神经元,如图5.1所示,我们可以通过将神经元的输入的线性组合量减去该阈值化作为函数变量的函数来量化是否处于兴奋状态,这个函数我们常常称之为激活函数。而这个模型在业界称为"M-P神经元模型"。

对于激活函数,理想的激活函数应当是阶跃函数,因为阶跃函数能够将输入值映射为“0”或者“1”,这两个输出结果很好的对应了“兴奋”与“抑制”状态。但是由于阶跃函数具有不连续,不光滑等不太友好的数学性质,会导致后期最优解问题的棘手,估在神经网络的激活函数不采用阶跃函数,而是采用sigmod函数,两者在坐标轴如图5.2所示。

将单个神经元以一定的层次结构连接起来就得到神经络,如图5.6所示.

2.神经网络的雏形-感知机与多层网络

首先介绍一个非常简单的二层神经网络结构-感知机。

如图5.3所示,图中是一个只有2个输入x1,x2的感知机网络。当然输入不限制,文中只是举例只有2个输入的感知机网络。

感知机的结果非常简洁明了,输入层接收外界信号,输出层接收由输入层接的信号的线性组合,并通过激活函数输出结果y。

那么这样一个简单神经网络应该如何训练我们在这里通过用感知机实现“与或非”运算来讲解一个神经网络应当如何训练:

显然输出层的神经元是一个M-P神经元,则对于该神经元的输出我们可以公式化为:同时为了便于讲解,我们假设激活函数f为阶跃函数。

由两个输入变量的与或非的真值表,我们可以通过设定

### 关于周志华机器学习第五章5.5节的内容解读 #### 5.5 集成方法 (Ensemble Methods)机器学习领域,集成方法是一种通过组合多个模型预测结果的技术,旨在提高整体性能并减少泛化误差。该章节主要探讨了几种重要的集成策略及其理论基础。 #### 提升算法(Boosting) 提升算法是一类迭代式的集成技术,在每一轮训练过程中赋予不同样本不同的权重,使得分类器更加关注之前被错误分类的数据点。AdaBoost作为最早也是最著名的代表之一,通过调整误分实例权值得到一系列弱分类器,并最终加权投票形成强分类器[^1]。 #### Bagging 和随机森林(Random Forest) Bagging即Bootstrap Aggregating, 是一种基于重采样的集成方式。对于给定数据集,bagging会创建若干子样本用于独立训练基估计量;而随机森林则是在决策树基础上进一步引入特征随机选取机制,从而降低过拟合风险并增强多样性。 #### Stacking Stacking 或堆叠泛化是一种更复杂的元学习框架,允许利用初级层多种类型的个体学习者输出作为次级层输入来进行更高层次的学习任务建模。这种方法能够充分利用不同类型模型的优势,达到更好的表现效果。 ```python from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, random_state=42) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) rf_clf = RandomForestClassifier() ada_clf = AdaBoostClassifier() rf_clf.fit(X_train, y_train) ada_clf.fit(X_train, y_train) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值