机器学习笔记
前言
章节目录
见左侧或书本
导读
首先需要叠甲,本人非专业人士,仅作为自己的理解构建此项目笔记,其中难免出现错误,请你以自己的理解为主,当然可以友善在主页找到联系我的多个方式向我反馈,非常感谢理解!文末可以提供友情赞助(广告位招租!)
笔记书本视频为数据,学习过程即为训练,只不过训练的是自己这个模型!
在监督学习中输入和输出对称为样本,在无监督学习中输入是样本。
注意在介绍输入空间,输出空间等概念的时候,以及这一章的很多部分都会有个帽子,
监督学习中
, 书中也明确了本书主要讨论监督学习的问题
,最后的概要总结部分对监督学习有这样的描述:监督学习可以概括如下:从给定有限的训练数据出发,假设数据是独立同分布的,而且假设模型属于某个假设空间,应用某一评价准则,从假设空间中选取一个最优的模型,使它对已给的训练数据以及未知测试数据在给定评价标准意义下有最准确的预测。
理解下这里的假设。在贝叶斯学习部分,提到
将模型、为观测要素及其参数用变量表示,使用模型的先验分布是贝叶斯学习的特点。
注意这里面先验是模型的先验分布。一些约定俗成的符号:
泛化误差的估计函数:\( \hat{f} \)
最优估计函数:\( f^* \)
向量:\( \vec{x} \) 或者 \( x \)
最优向量解:\( \vec{x}^* \) 或者 \( x^* \)
最后在推荐一下其他超级经典的书籍(由于李航统计学方法太硬核,可以搭配其他书一起使用):
ESL: "The Elements of Statistical Learning",通常被称为"ESL",由Trevor Hastie, Robert Tibshirani和Jerome Friedman撰写。这本书涵盖了统计学习的基础,包括监督学习、无监督学习以及一些高级主题。
PRML: "Pattern Recognition and Machine Learning",由Christopher M. Bishop撰写。这本书是模式识别和机器学习领域的经典之作,详细介绍了各种机器学习算法和理论。
DL: "Deep Learning",由Ian Goodfellow, Yoshua Bengio和Aaron Courville撰写。这本书是深度学习领域的权威指南,涵盖了深度学习的基础理论、方法和应用。
PGM: "Probabilistic Graphical Models: Principles and Techniques",由Daphne Koller和Nir Friedman撰写。这本书专注于概率图模型,包括贝叶斯网络、马尔可夫随机场等。
西瓜书: 这是中国学者周志华教授撰写的《机器学习》,因其封面设计而被亲切地称为"西瓜书"。这本书以通俗易懂的方式介绍了机器学习的基本概念和算法。
Sutton的强化学习: "Reinforcement Learning: An Introduction",由Richard S. Sutton和Andrew G. Barto撰写。这本书是强化学习领域的经典教材,详细介绍了强化学习的基础理论和算法。2018年出版的第二版更新了内容,包括新的算法和应用案例。
实现统计学习方法的步骤
统计学习方法三要素:模型,策略,算法:
得到一个有限的训练数据集合
确定包含所有可能的模型的假设空间,即学习模型的集合
确定模型选择的准则,即学习的策略
实现求解最优模型的算法,即学习的算法
通过学习方法选择最优的模型
利用学习的最优模型对新数据进行预测或分析
统计学习分类(部分内容过于简单已省略)
基本分类
监督学习
无监督学习
强化学习
按模型分类
概率模型与非概率模型
在监督学习中,概率模型是生成模型,非概率模型是判别模型
按算法分类
在线学习和批量学习,在线学习通常比批量学习更难(推荐算法、涉及下一个大坑召回过滤,spark流式处理,期待🤩)
按技巧分类
贝叶斯学习
核方法
统计学习方法三要素
模型
模型是什么?
在监督学习过程中,模型就是所要学习的条件概率分布或者决策函数。注意书中的这部分描述,整理了一下到表格里:
假设空间 \(\mathcal{F}\) | 输入空间 \(\mathcal{X}\) | 输出空间 \(\mathcal{Y}\) | 参数空间 | |
---|---|---|---|---|
决策函数 | \(\mathcal{F} = \{f_{\theta}\}\) | \(Y = f_{\theta}(x), \theta \in \mathbf{R}^n\) | 变量 | 变量 |
条件概率分布 | \(\mathcal{F} = \{P\}\) | \(P_{\theta}(Y \mid X), \theta \in \mathbf{R}^n\) | 随机变量 | 随机变量 |
书中描述的时候,有提到条件概率分布族,这个留一下,后面章节有提到确认逻辑斯谛分布属于指数分布族。(后面章节写完会在这里打链接)
策略
损失函数与风险函数
损失函数度量模型一次预测的好坏,风险函数度量平均意义下模型预测的好坏。
损失函数(loss function)或代价函数(cost function)损失函数定义为给定输入$X$的预测值$f(X)$和真实值$Y$之间的非负实值函数,记作$L(Y,f(X))$
风险函数 \( R_{\text{exp}}(f) \) 或期望损失可以表示为: \[ R_{\text{exp}}(f) = \mathbb{E}_p[L(Y, f(X))] = \int_{\mathcal{X} \times \mathcal{Y}} L(y, f(x)) P(x, y) \, \text{d}x \, \text{d}y \]
模型 \( f(X) \) 关于联合分布 \( P(X,Y) \) 的平均意义下的损失(期望损失)。
其中 \( P(x, y) \) 可以转换为: \[ P(x, y) = \frac{\nu(X = x, Y = y)}{N} \] 以便于更直观的理解
经验风险(empirical risk)或经验损失(empirical loss):\[ R_{\text{emp}}(f) = \frac{1}{N} \sum_{i=1}^{N} L(y_i, f(x_i)) \]模型$f$关于训练样本集的平均损失根据大数定律,当样本容量N趋于无穷大时,经验风险趋于期望风险
结构风险(structural risk):\[ R_{\text{srm}}(f) = \frac{1}{N} \sum_{i=1}^{N} L(y_i, f(x_i)) + \lambda J(f) \]
$J(f)$为模型复杂度, $\lambda \geqslant 0$是系数,用以权衡经验风险和模型复杂度。
常用损失函数
损失函数数值越小,模型就越好
0-1损失:\[ L(Y, f(X)) = \begin{cases} 1, & \text{if } Y \neq f(X) \\0, & \text{if } Y = f(X)\end{cases}\]
平方损失:$L(Y,f(X))=(Y-f(X))^2$
绝对损失:$L(Y,f(X))=|Y-f(X)|$
对数损失:$P(Y|X)\leqslant 1$,对应的对数是负值,所以对数损失中包含一个负号(为什么不是绝对值?因为肯定是负的,$L(Y,P(Y|X))=-\log P(Y|X)$)
ERM与SRM
经验风险最小化(ERM)与结构风险最小化(SRM)
极大似然估计是经验风险最小化的一个例子:当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计
贝叶斯估计中的最大后验概率估计是结构风险最小化的一个例子:当模型是条件概率分布,损失函数是对数损失函数,模型复杂度由模型的先验概率表示时,结构风险最小化等价于最大后验概率估计
算法
这章里面简单提了一下,具体可以参考后续关于学习算法的描述(后面章节写完会在这里打链接)
模型评估与模型选择
训练误差和测试误差是模型关于数据集的平均损失。提到一句, 统计学习方法具体采用的损失函数未必是评估时使用的损失函数
,这句理解下。参考下在数据科学比赛中给出的评分标准,与实际学习采用的损失函数之间的关系。
过拟合与模型选择
在经验风险最小化策略下,我们的目标是找到权重 \( \mathbf{w} \) ,以最小化多项式回归模型 \( f_M(x, \mathbf{w}) = \sum_{j=0}^{M} w_j x^j \) 与训练数据之间的误差。经验风险 \( L(w) \) 定义为预测值与实际值之差的平方和的一半: \[ L(w) = \frac{1}{2} \sum_{i=1}^{N} (f(x_i, \mathbf{w}) - y_i)^2 \] 通过将模型代入经验风险公式并求 \( \mathbf{w} \) 的偏导数,我们得到一个线性方程组 \( \nabla_{\mathbf{w}} L(w) = 0 \)。这可以表示为矩阵形式 \( \mathbf{A} \mathbf{x} = \mathbf{b} \),其中 \( \mathbf{A} \) 是设计矩阵,\( \mathbf{x} \) 是权重向量,\( \mathbf{b} \) 是常数向量。 求解此线性方程组通常使用矩阵分解方法,如奇异值分解(SVD): \[ \mathbf{A} = \mathbf{U} \Sigma \mathbf{V}^T \] 通过计算 \( \mathbf{A} \) 的伪逆 \( \mathbf{A}^- \) 并用它来求解 \( \mathbf{x} \): \[ \mathbf{x} = \mathbf{A}^+ \mathbf{b} = \mathbf{V} \Sigma^+ \mathbf{U}^T \mathbf{b} \] 其中 \( \Sigma^+ \) 是 \( \Sigma \) 的伪逆,忽略零奇异值后的对角元素取倒数;
正则化与交叉验证
正则化
在损失函数中添加一个惩罚项来减少模型复杂度,从而防止过拟合。正则化技术包括L1正则化(Lasso)和L2正则化(Ridge),它们分别通过惩罚参数的绝对值和平方来实现。正则化需要选择合适的正则化系数,以平衡模型的复杂度和拟合度。
交叉验证
用于估计模型在未知数据上的表现,以验证模型的泛化能力。它通过将数据集分割成多个部分,然后轮流使用其中一部分作为测试集,其余部分作为训练集,重复进行训练和评估。常见的交叉验证方法包括K折交叉验证和留一法交叉验证。
K 折交叉验证(K-Fold Cross-Validation):将数据集平均分割成 K 个子集,然后轮流使用每个子集作为测试集,其余作为训练集,进行 K 次训练和评估。
留一法交叉验证(Leave-One-Out Cross-Validation, LOOCV):每次训练使用除了一个样本之外的所有数据,然后将模型应用于留下的那个样本上。
看书的时候有个问题:验证集和测试集有什么区别?其实类比于考试,训练集相当于是课后作业或者小考试,验证集就是期中期末考试,测试集就是最后的中考(或者类比读研的平时读书会、期末大读书会、毕业答辩)
泛化能力
现实中采用最多的方法是通过测试误差来评价学习方法的泛化能力
统计学习理论试图从理论上对学习方法的泛化能力进行分析
学习方法的泛化能力往往是通过研究泛化误差的概率上界进行的, 简称为泛化误差上界(generalization error bound)
注意泛化误差的定义,书中有说事实上,泛化误差就是所学习到的模型的期望风险
生成模型与判别模型
监督学习方法可分为生成方法(generative approach)与判别方法(discriminative approach)
生成方法
generative approach
可以还原出联合概率分布$P(X,Y)$
收敛速度快, 当样本容量增加时, 学到的模型可以更快收敛到真实模型
当存在隐变量时仍可以用
判别方法
discriminative approach
直接学习条件概率$P(Y|X)$或者决策函数$f(X)$
直接面对预测, 往往学习准确率更高
可以对数据进行各种程度的抽象, 定义特征并使用特征, 可以简化学习问题
分类问题、标注问题、回归问题
Classification, Tagging, Regression
分类问题
预测数据属于哪个预定义的离散类别,广泛应用于垃圾邮件识别和疾病诊断等领域(统计分类 - 维基百科 --- Statistical classification - Wikipedia)
标注问题
标注问题则专注于为文本数据中的实体或词语分配类别标签,如在自然语言处理中的命名实体识别或词性标注(语音部分标记 - 维基百科 --- Part-of-speech tagging - Wikipedia)
回归问题
回归问题旨在预测一个连续的数值,例如房价或股票价格预测(回归分析 - 维基百科 --- Regression analysis - Wikipedia)
2024-08-20 15:04:35
Comments | NOTHING