01 | 机器学习导论 ¶
约 3823 个字 预计阅读时间 15 分钟
课程信息
- 课程时间:2024 年秋冬
- 课程教师:赵洲
- 考核内容:2 次书面作业 +2 次编程作业 Kaggle(45%)+15 次随机签到(15%)+1 次期末摸底考试 +1 次期末考试
; (40%) - 课本:西瓜书
- 课程时间:2024 年秋冬
- 课程教师:陈艳姣
- workload:
Artificial Intelligence is a scientific field concerned with the development of algorithms that allow computers to learn without being explicitly programmed
• Machine Learning is a branch of Artificial Intelligence, which focuses on methods that learn from data and make predictions on unseen data
人工智能基础 - 鹤翔万里的笔记本 (tonycrane.cc)
02:贝叶斯定理 - 小角龙的学习记录 (zhang-each.github.io)
命题逻辑 - Jerry's Blog (wxxcl.tech)
导论 ¶
什么是机器学习
以数据作为经验的载体,利用经验数据不断提高性能的计算机系统 / 程序 / 算法
最理想的机器学习技术是学习到 概念 (⼈类学习,可理解的)
- supervised learning :分类任务(离散
) ,回归任务(连续) ;学习一个映射函数 \(x\rightarrow \mathbf{y}\) - unsupervised learning :找到标签或者模式,聚类、降维
- reinforcement learning:强化学习(相当于是监督学习)
PAC 模型
预测误差很小的概率大于 1-δ
iid 保证了统计意义上可以使用机器学习
而 \(\epsilon\) 表示了泛化能力
概率近似正确:以很高的概率得到一个很接近真实值的结果
Fundamental Concepts in Machine Learning
- Sample, instance, and example refer to the same concept, which is a single data point used for training or testing a machine learning model.
- instance don't contain the label
- example: instace + label
- A feature is an attribute or aspect of the data used to describe a data point.
- Representation refers to the process of converting data into a form that a computer can process, such as a vector or a matrix.
- A predictor is a model or function used to predict the target variable.
- A label is the true category or value of the data, used in supervised learning.
- A target is the variable that the model is intended to predict.
- A pattern class is a category or grouping of data.
- A class is a group of data points that belong to the same pattern.
- Training data is the dataset used to train the model.
- \((x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\) represent individual data points in the training data, where \(x_i\) is the feature and \(y_i\) is the label.
- A model is a mathematical structure used to describe data or predict the target.
- A classifier is a model used for categorizing data, with a discrete output representing the category.
- A regressor is a model used for regression analysis, with a continuous output representing the numerical value.
- Test data is the dataset used to evaluate the performance of the model.
- \((x_1, y_1), (x_2, y_2), \ldots, (x_n, y_n)\) represent individual data points in the test data, where \(x_i\) is the feature and \(y_i\) is the label.
训练集上用来调参数的集合
机器学习术语 | 疾病诊断例子 |
---|---|
数据集,特征,标记 | 某疾病患者⼈群 |
假设空间 | 所有可能的药 |
版本空间(跟训练集一致的“假设集合”) | 能治好的药 |
归纳偏执 | 偏执:中药西药,副作用大小,费用高低 |
没有免费午餐 | 没有特效药,万能药 |
inductive bias | 归纳偏好 : 机器学习算法对于某些假设的倾向性,存在多条曲线符合数据时候,算法的倾向性叫做 inductive bias
Occam's Razor | 奥卡姆剃刀原理:在所有可能的解释中,最简单的解释最有可能是正确的(大道至简)
算法的优越性来自于算法的 assumption 和数据的匹配程度
No Free Lunch Theorem: 一个算法A在某个问题上表现比B好,比存在另一个问题,B比A好 脱离具体问题,空泛谈论“什么学习算法更好”毫无意义
脱离数据分布和输出去谈学习算法,是没有意义的
什么时候使用机器学习 ¶
there should be some patterns in the data
- we know the patterns,but don't know how to use
- ML can discover the pattern themselves
机器学习是大胆假设和小心求证的折衷
pipeline¶
pipeline,中文意为管线,意义等同于流水线。土味一点 你把它 翻译成 一条龙服务;专业一点,叫它 综合解决方案
- 定义问题: 是有监督还是无监督?是分类还是回归?
- 收集数据:
- 数据预处理 transform data & get features:找到 x 和 y
- 创建模型(具体到模型也有相应的 Pipeline, 比如模型的具体构成部分:比如 GCN+Attention+MLP 的混合模型)
- 评估模型结果
- 模型调参
是一个迭代的过程
generalization 泛化 ¶
机器学习最重要的能力就是 generalization,最重要的就是要学习到一些概念
概率和似然 ¶
这两个概念我经常有点糊涂
所谓概率就是已知参数 \(\theta\) 的情况下,求 \(X\) 的分布
而似然是指在给定 X 的情况下,去预估参数 \(\theta\),
根据已有的数据 ( 相当于 \(\textbf{X}\)) 学到相应的分布 ( 即 \(\theta\)), 此概念对应 training 阶段 , 即在训练阶段 , 是根据已有的 \(X\) 来估计其真实的数据分布服从什么样的分布 \(\theta\)
一个质量不均的骰子,投了很多次,求一个分布
性能 ¶
\(经验性能E \approx 泛化性能E^*\)
iid 假设:训练集和测试集是独立同分布的 identical and independently distributed
定义 ¶
"Training Error and Test Error" - Training error is the error alculated on the training data. - Test error is the error calculated on the test data.
use test error to evaluate the quality of model
不同的算法就是在用不同的方式去达到平衡点
overfitting 过拟合
更复杂的模型:更小的 training error
- 优化目标,加入正则化项,使得模型更简单
- early stopping
Ridge Regression:
$$ min_{omega} sum_{i=1}^n (y_i - omega^T x_i)^2 + lambda |omega|^2 $$ 简介:岭回归
欠拟合:对训练样本的一般性质没有学好 - 决策树:拓展分支 - 神经网络:增加训练轮数
评估方法 ¶
理解方法:题库出小测题目
hold-out:¶
- 直接将数据集划分为两个互斥集合——训练集和测试集。在划分训练集和测试集时,要尽可能保持数据分布的一致性。
- 使用分层采样(stratified sampling)方法,以保持类别比例一致。
- 一般进行若干次随机划分,重复实验并取平均值。
- 训练集和测试集的样本比例通常为 2:1 或 4:1,效果还不错。
交叉验证法¶
- 分层采样划分数据集:将数据集分层采样划分为 K 个大小相似的互斥子集。
- 训练和测试:每次使用 K-1 个子集的并集作为训练集,剩下的一个子集作为测试集。
- 重复实验:重复上述过程 K 次,每次都使用不同的子集作为测试集。
- 计算平均值:最终返回 K 个测试结果的平均值
LOO leave-one-out:留一法,最接近于理想情况,开销太大,NFL
猜测进教室性别问题
男生多猜男生,女生多猜女生
自助法 bootstrap ¶
包外估计,有 36.8% 不出现
- 改变了数据的分布
调参数¶
- 模型参数:算法计算
- 超参数:用户提供 , 轮数,
性能度量 ¶
作为设计自己度量的一种启发
回归 ¶
- MSE:
- MAE:
memory consumption
platform required for running
CPU vs GPU
server,workstation
混淆矩阵 ¶
先介绍一下混淆矩阵(T/F: 预测是否正确,P/N:预测是正类还是负类) - TP:预测为正类,实际为正类,预测正确。 - FP:预测为正类,实际为负类,预测错误。 - FN:预测为负类,实际为正类,预测错误。 - TN:预测为负类,实际为负类,预测正确。
准确率 | Accuracy
正类和负类中预测正确的数量占总数量的占比。
\(Accuracy=\frac{T P+T N}{T P+F P+F N+T N}\)
准确率不可导,无法作为 cost function 去做训练,只能用作评估。
正类和负类预测正确的重要性不一样,比如对于癌症检测来说,可能负类 ( 没有患癌症 ) 预测正确的数量非常大,就导致 Accuracy 的分子非常大,得到的 Accuracy 就非常大,但是可能正类 ( 患癌症 ) 预测正确的数量非常小,就导致虽然模型的准确率很高,但根本检测不出癌症。
解决问题的方案:采用精确率或者召回率
查准率和查全率
- 查准率:即你认为是 True 的样本中,到底有多少个样本是真为 True。
- 查全率:即在预测样本中属于 True 的样本,你真的判断为 True 的有几个。
-
真阳性率(True Positive Rate,TPR)通常也被称为敏感性(Sensitivity)或召回率(Recall
) 。它是指分类器正确识别正例的能力。真阳性率可以理解为所有阳性群体中被检测出来的比率 (1- 漏诊率 ),因此 TPR 越接近 1 越好。它的计算公式如下:\(precision=\frac{T P}{TP+FP}\) -
假阳性率 (False Positive Rate, FPR) 假阳性率(False Positive Rate,FPR)是指在所有实际为负例的样本中,模型错误地预测为正例的样本比例。假阳性率可以理解为所有阴性群体中被检测出来阳性的比率(误诊率),因此FPR越接近0越好。它的计算公式如下 FP = frac{FP}{FP+TN}
P-R 曲线绘制原理及代码实现 _ 求 p-r 曲线的代码 -CSDN 博客
F1 度量:
\(F 1=\frac{2 \times \text { precision } \times \text { recall }}{\text { precision }+\text { recall }} = 、\frac{2\times TP}{总数 + TP -TN}\)
F1 是 P 和 R 的调和平均
对查准率、查全率有不同的偏好 \(F_\beta = \frac{(1+\beta^2)\times P\times R}{(\beta^2 \times P) + R}\) \(\beta = 1\):标准F1
\(\beta > 1\): 偏重查全率(逃犯信息检索)
\(\beta < 1\): 偏重查准率,商品推荐系统
ROC & AUC¶
绘制方法:给定 \(m^+\) 个正样本和 \(m^-\) 个负样本,对于每个样本,计算其预测概率,然后按照概率从大到小排序,然后逐个样本计算 TP rate 和 FP rate,然后绘制 ROC 曲线。
预测准确,增加 y 值;预测错误,增加 x 值;
AUC
AUC(ROC 曲线下面积)是 ROC 曲线下的面积,用于衡量分类器性能。AUC 值越接近 1,表示分类器性能越好;反之,AUC 值越接近 0,表示分类器性能越差。在实际应用中,我们常常通过计算 AUC 值来评估分类器的性能。
理论上,完美的分类器的 AUC 值为 1,而随机分类器的 AUC 值为 0.5。这是因为完美的分类器将所有的正例和负例完全正确地分类,而随机分类器将正例和负例的分类结果随机分布在 ROC 曲线上。
综上,ROC 曲线和 AUC 值是用于评估二分类模型性能的两个重要指标。通过 ROC 曲线,我们可以直观地了解分类器在不同阈值下的性能;而通过 AUC 值,我们可以对分类器的整体性能进行量化评估。
性能评价 ¶
- 测试性能不等于泛化性能
- 测试性能随着测试集的变化而变化
假设检验: 有多少把握在统计意义上说这个模型是好的
bias and variance decomposition¶
偏差 & 方差
- bias: 最好的模型和 ground truth 之间的差距 ; 模型的上限 ; training error
- variance: 最优的模型和最差的模型之间的差距;模型的下限 ; the difference between training error and test error
prediction error = bias + variance + noise
- high bias, low variance: underfitting
- low bias, high variance: overfitting
- low bias, low variance: good model
改进策略
underfitting: - add more features - use more complex model - descrease regularization
overfitting: - decrease model complexity - decrease number of features - add more regularization - add more data
train val test
60% 20% 20% - training set: train the model - validation set: tune the hyperparameters - test set: evaluate the model
学习资源 ¶
Machine Learning in Practice Crash Course | Jinming Hu (conanhujinming.github.io)
实用的机器学习 第一课 机器学习导论 2024summer_ 哔哩哔哩 _bilibili
机器学习 2023-10-19 第 6-8 节 (zju.edu.cn)
CS229: Machine Learning (stanford.edu)
深度学习
CS231n Convolutional Neural Networks for Visual Recognition:deep learning for CV
我在心灵学 ML 系列 doge
再次入门 deep learning 以及一些回忆(更新第二部分) - CC98 论坛
再次入门 deep learning,这次直接上重点(完结篇) - CC98 论坛
孔院🐕🦁课
2022-2023 秋冬人工智能与机器学习线上考试回忆卷(和大佬们发重了) - CC98 论坛
会议论文 ¶
- ICML (International Conference on Machine Learning)
- NeurIPS (Neural Information Processing Systems)
- KDD (ACM SIGKDD Conference on Knowledge Discovery and Data Mining)
- AAAI (AAAI conference on Artificial Intelligence)
本人农学博士,科研接触的机器学习,之前有计算机的导师领入门了。个人目前遇到最好的教程是吴恩达的视频课程,因为他充分考虑到了学生的水平,把需要的数学知识也讲了,先看了吴恩达早期的机器学习(反向传播的那节讲的不是很好
我是入门看的咱们学校的机器学习课程,对机器学习大概有个了解,没太关心数学。 说实话这些算法(ml 里不包含 dl 的那些)我科研上用到的比较少,后来随着科研的深入会去思考这些算法后面的数学原理,就去参考李航的机器学习,西瓜书。更加高屋建瓴一点的教材就是 PRML 了。 我比较推荐 UCB 的 CS188,从整个人工智能的角度讲问题,机器学习是其中的一个部分。编程项目有趣连贯。用的教材也是经典,一些思想现在也不过时。
pipeline
完成实用机器学习的所有作业
完成赵洲老师的所有作业 + 大作业