林轩田 《机器学习基石》学习笔记

article/2025/11/7 0:23:23

参考资料:

除了redstone的笔记较好之外,还有豆瓣的https://www.douban.com/doulist/3381853/的笔记也比较好
--------------------------------------
1. 什么时候机器可以学习?
2. 为什么要要使用机器学习?
3. 机器怎么可以学习到东西?
4. 机器学习如何还能做的更好?


 Lecture 1 The Learning Problem

豆瓣笔记:https://www.douban.com/note/319636155/
redstone笔记:https://redstonewill.com/65/
——————————————————————————
Lecture1 学习问题:
1. Courese Introduction 课程介绍          
2. 什么是机器学习?                         
         (1) 人类从观察→学习→skill;机器从数据→ML→skill (skill就是performance measure)机器学习的技能就是提高了性能指标,如预测准确性
         (2)  为什么要使用机器学习呢?
                  如识别一棵树——设计可编程的规则去识别一棵树太复杂了,太难了。 3岁小孩是靠观察去认识一棵树的。所以机器也可以从数据中去学习认识一棵树。所以机器学习可以帮助建立复杂的系统。如在火星上做导航、语音识别、视觉识别、证券等高频交易、千人千面个性化推荐。
         (3)机器学习的三个关键,判断是否能进行机器学习的三要素
                  a. 事务本身存在某种潜在规律,必须存在一个pattern模式可以学习。且有一个目标可以达到,如评价指标。
                  b. 这个pattern难以用简单的编程和设计规则来准确定义
                  c. 存在关于该pattern的足够数据

3. 机器学习的应用
         举例:costomer向量与movie向量;关键:如何设计出特征向量!因为只要两个向量相关求和,就能知道。但是已知数据是排名,如何从数据中去设计出特征向量——特征工程,是最重要的!
4. 机器学习的组成部分 
          x, y, f, data, h, g. 
          机器学习两个输入:从理想目标函数f产生的训练数据D,假设集H。然后学习算法A在H中选择一个最好的g,g是近似于f的。           
5. 机器学习与其他领域
——————————————————————————————

 

 


Lecture2 Learning to Answer Yes/No 机器学习如何做是非题?

豆瓣笔记:https://www.douban.com/note/319669984/
1. 感知机假设集:x features,w权重。h(x)=sign(wx),线性分类器
2. PLA算法:初始化w=0→找到一个分错的数据→调整w的权重:w=w+yi*xi→循环前两步,直到没有任何分类错误,迭代停止。
          PLA算法一定能停止吗?一定能迭代终止吗?一定能收敛吗?一定能收敛到最优值吗?
3. PLA能否正常终止?分两种情况:数据线性可分 vs 数据线性不可分
       (1)线性可分时:评价指标 内积 {w_f}^Tw_t越大,wf和wt越接近。同时还要去除|wf|和|wt|的影响。发现其下限与迭代次数T有关,且有上限。所以随着迭代次数T的增大,内积越来越接近上限。即越来越达到收敛。所以PLA是可以迭代停止的
       (2)数据线性不可分:Pocket Algorithm
                 迭代次数有限(提前设定);随机寻找分错的数据(而不是遍历循环);只有新得到的w比之前的wg要好,才更新权重。

T是迭代T次,所以T的迭代次数是有限的,因为有上限1.


Lecture3 机器学习的种类

豆瓣笔记:https://www.douban.com/note/319684224/


Lecture4 机器学习学习的可行性分析

豆瓣笔记:https://www.douban.com/note/319700228/

1. 学习是可能的吗?        NFL:不可能。因为不存在唯一解——必须要做出合理的假设才能有一个解。
2. PAC概率统计                N样本很大时,采样才能是PAC的。概率近似相等。h(x)与f(x)假设函数与目标函数才能是PAC的。霍夫丁不等式
3. PAC与学习的联系         N很大时,Ein≈Eout。才是PAC的,才能保证泛化能力。要让Eout很小,在PAC的前提下,让Ein小就可以了。所以PAC+Ein小=Eout小,保证泛化能力+训练误差较小。
4. 与实际学习的联系
           Bad sample:很差的训练数据——将使得训练误差和泛化误差差别很大。
           训练数据质量太差时,偏向于Ein=0的数据就会很多。这样就导致满足Ein的很多,但是Ein和Eout因为数据的原因差别很大,Bad Data的情况就很多。所以Bad Data的存在,在大量的假设h下,情况会更糟糕。
           因此,我们希望我们面对的假设空间h,训练数据对于其中的任何假设h都不是Bad Data。
                      根据下面的公式:当M有限,N足够大时。我们能确保Bad Data的概率较小。Bad Data的概率PD(BAD D)一定要小。就需要控制M和N。
                      

 所以,当假设空间有限时(大小为M)时, 当N 足够大,发生BAD sample 的概率非常小。此时学习是有效的。

当假设空间无穷大时(例如感知机空间),我们下一次继续讨论。(提示:不同假设遇到BAD sample 的情况会有重叠)


Lecture5 Training vs Testing

豆瓣笔记:https://www.douban.com/note/323455696/ 

——————————————————
以下两条保证机器学习的可行性:H有限 + 训练数据N足够大——霍夫丁不等式,才不会出现Bad Data。
(1)M的大小至关重要。用一个有限的值mH(H)来代替M。因为假设之间有重叠,所以UnionBound估计过高。
(2)成长函数:mH(H)及其Break Point。样本量达到多少时,有mH(H)<2^N。
(3)用成长函数mH(H)可以代替M,下节课详细介绍。
---------------------------------------

 

Lecture6 Theory of Generalization 归纳理论

参考资料:https://zhuanlan.zhihu.com/p/59113933
豆瓣笔记:https://www.douban.com/note/323562697/
红色石头:https://redstonewill.com/217/

1. Break Point 突破点的限制
2. 边界函数 Bounding Function:Basic cases B(N,k) 等突破点为k时的最大mH(N)是多少。
3. 推导VC界:https://www.zhihu.com/question/38607822/answer/157787203
4. 只要Break Point存在(mH(H)的上限是k的多项式,所以M是有限的,N是足够大的),机器学习就是可行的。
      VC bound:mH(N)。VC界是保证机器学习可行性的关键

Lecture7 VC维理论

https://www.douban.com/note/323572623/
https://redstonewill.com/222/

1. VC维的定义:假设空间H有突破点k,且N足够大,那么算法就有很好的泛化能力
2. VC维:假设集H能够shatter的最多inputs的种类数,即最大完全正确分类的能力。
3. VC维:VC维 == break point - 1
4. 一个假设集的dvc VC维确定了,就能满足机器学习的第一个条件 Eout=Ein,与算法、样本数据分布和目标函数都没有关系
5. 感知机的VC维:dvc == d + 1;
6. VC维的物理意义:反映了H的强大程度,VC维越大,H越强。可以打散更多的点,覆盖更多的样本分布情况。VC维与假设参数w的自由变量数目大约相等。dvc=d+1. d就是空间的自由度,也就是w的自由度。就是特征的维度。

这就是对泛化能力最基本的保证:只要确定了假设集H的VC维。与算法、样本数据分布和目标函数都没有关系。 

VC维太小,可以保证BadData概率降低;但是选择又太少,不容易实现第二点,即训练误差较小。
VC维太大,增加了Bad Data的概率;但是选择较多,容易得到训练误差较小的模型。

模型复杂度的惩罚:与样本数量、假设空间的VC维度和e都有关。

 


http://chatgpt.dhexx.cn/article/5tpNGLxd.shtml

相关文章

【机器学习】机器学习基石-林轩田-1-机器学习介绍

机器学习基石-1-机器学习介绍 本节内容What is Machine Learning&#xff1f;What is skill?Why use machine learning?When use machine learning?Key Essence of Machine LearningFun TimeApplications of Machine LearningComponents of Machine Learning相关术语Leanin…

机器学习基石 作业0

机器学习基石 作业0 1 Probability and Statistics2 Linear Algebra3 Caculus网上没找到作业0的答案,这是自己做的版本,有一些可能会有错误,欢迎讨论。 1 Probability and Statistics 用数学归纳法。N=1时满足,假定N=n满足,当N=n+1同样满足。得证。 10个挑4个正面 C 10 4…

机器学习基石 作业三

机器学习基石 作业三 代入计算 线性回归得到的映射函数 H H H的性质问题。显然映射多次与映射一次效果一样。其它的可以根据 H H H的性质,秩为d+1,显然不可逆。特征值的部分不是非常清楚,大概是根据 I − H I-H I−H的迹等于 N − ( d + 1 ) N-(d+1) N−(d+1)得到的。3. PLA…

机器学习基石笔记

文章目录 一. 机器学习什么时候用二. 机器学习的基本流程三. 什么是机器学习四. 机器学习的可行性NFL定理从统计学中找到可行的方法统计学与机器学习产生联系 一. 机器学习什么时候用 事物本身存在某种潜在规律某些问题难以使用普通编程解决有大量的数据样本可供使用 二. 机器…

机器学习基石 作业二

机器学习基石 作业二 1 计算一下本来预测对与预测错时加上噪音导致的错误率然后相加即可。 2 选择一个 λ \lambda λ的值让 μ \mu μ的系数为0。 3 根据VC bound 公式带入计算即可,N=46000的时候error最接近0.05。下面的代码可以计算不同的N与目标error之间的差距。 def …

机器学习基石2-Learning to Answer Yes-No

注&#xff1a; 文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程。 笔记原作者&#xff1a;红色石头 微信公众号&#xff1a;AI有道 上节课&#xff0c;简述了机器学习的定义及其重要性&#xff0c;并用流程图的形式介绍了机器学习的整个过程&#xff1a;根据模型\(…

机器学习基石-林轩田-第一周笔记

Lecture 01 - The Learning Problem When Can Machine Learn ?Why Can Machine Learn ?How Can Machine Learn ?How Can Machine Learn Better ? What is Machine Learning 什么是“学习”&#xff1f;学习就是人类通过观察、积累经验&#xff0c;掌握某项技能或能力。就…

机器学习基石16:三个重要原则(Three Learning Principles)

本节介绍了机器学习中三个重要原则&#xff0c;包括奥卡姆剃刀原理&#xff0c;样本偏差&#xff0c;数据窥探&#xff1b;并对16课程所学知识进行了总结。 系列文章 机器学习基石01&#xff1a;机器学习简介 机器学习基石02&#xff1a;感知器算法&#xff08;Perceptron Alg…

机器学习基石1(ML基本概念和VC dimension)

文章目录 一、什么是机器学习?二、什么时候可以使用机器学习?三、感知机perceptron四、机器学习的输入形式五、机器真的可以学习吗&#xff1f;六、vc dimension 一、什么是机器学习? 其实第一个问题和第二个问题是穿插到一块儿回答的&#xff0c;首先机器学习要解决的是常规…

Wireshark抓包数据

首先官网下载Wireshark&#xff0c;下载好后&#xff0c;用浏览器打开桂林生活网&#xff0c;无需注册&#xff0c;输入账号密码。 打开Wireshark&#xff0c;用命令提示符查看本机ip 在Wireshark的过滤搜索中输入ip10.34.152.44&#xff0c;找到http类型的数据查看&#xff0…

Wireshark抓包数据分析

文章目录 准备数据链路层实作一 熟悉 Ethernet 帧结构实作二 了解子网内/外通信时的 MAC 地址实作三 掌握 ARP 解析过程 网络层实作一 熟悉 IP 包结构实作二 IP 包的分段与重组实作三 考察 TTL 事件 传输层实作一 熟悉 TCP 和 UDP 段结构实作二 分析 TCP 建立和释放连接 应用层…

网络数据包分析与抓取

多年的网络数据包分析与抓取经验&#xff0c;闲话少说&#xff0c;上干货。先列举数据包的种类&#xff1a;1、Http数据包&#xff1b;2、UDP数据包&#xff1b;3、TCP数据包&#xff1b;4、ARP数据包&#xff1b;其实数据包的概念是很泛的&#xff0c;在软件可逆领域&#xff…

如何进行数据的抓包

抓包 抓包就是对网络传输中发送与接收的数据包进行截获、重发、编辑、转存等操作。 前提&#xff1a;抓取的数据包是从网卡设备中进行抓取的&#xff1b; win wiresharkLinux tcpdump命令 从上图我们就可以了解到tcpdump就是我们使用的一个工具&#xff1b; 我们在使用它时有…

WireShark基本抓包数据分析

WireShark抓包数据分析&#xff1a; 1、TCP报文格式 源端口、目的端口&#xff1a;16位长。标识出远端和本地的端口号。 顺序号&#xff1a;32位长。表明了发送的数据报的顺序。 确认号&#xff1a;32位长。希望收到的下一个数据报的序列号。 TCP协议数据报头DE 头长&#xff…

网络抓包及分析

今天我们主要来讲一下网络抓包的教程&#xff0c;我们用WireShark来说明 我们先说明下抓包工具界面 我们现在本地机子上用上面两个比较多 上面是抓无线网卡&#xff0c;就是你访问外网的包 下面是抓环回地址 &#xff0c;就是你访问127.0.0.1或localhost的包 我们抓上面WLAN…

Wireshark数据抓包分析之UDP协议

目录 预备知识1.UDP协议概述2.什么是UDP协议3.UDP协议的特点 实验目的实验环境实验步骤一1.配置TCP&UDP测试工具2.配置服务器端3.配置客户端4.获取UDP数据包 实验步骤二1.UDP首部格式2.分析UDP数据包 预备知识 1.UDP协议概述 UDP是User Datagram Protocol&#xff08;用户…

常见的几种网络抓包及协议分析工具

常见的几种网络抓包及协议分析工具 引言 网络工程师必备技能-抓取网络数据。 在本篇博客中&#xff0c;我们将集中记下几个问题进行探讨&#xff1a; 如何抓取电脑本机发送/接收的网络数据&#xff1f;如何在主机 A 上抓取 主机 B 上的网络数据&#xff1f;如何使用第三方设…

WireShark抓包分析

简述&#xff1a;本文介绍了抓包数据含义&#xff0c;有TCP报文、Http报文、DNS报文。如有错误&#xff0c;欢迎指正。 1、TCP报文 TCP&#xff1a;&#xff08;TCP是面向连接的通信协议&#xff0c;通过三次握手建立连接&#xff0c;通讯完成时要拆除连接&#xff0c;由于TCP …

抓包分析数据(Charles以及HttpCanary)

在开发小程序时&#xff0c;我们经常需要检查线上的请求&#xff0c;但是小程序并没有提供这方面的入口&#xff0c;本文为大家详细说一下我工作中使用到的关于抓包的经验&#xff0c;包括pc配合手机以及直接用手机抓包 一.pc配合手机实现抓包&#xff08;Charles&#xff09;…

wireshark抓包分析TCP数据包

1、直接从TCP的三次握手开始说起 三次握手就是客户与服务器建立连接的过程 客户向服务器发送SYN&#xff08;SEQx&#xff09;报文&#xff0c;然后就会进入SYN_SEND状态服务器收到SYN报文之后&#xff0c;回应一个SYN&#xff08;SEQy&#xff09;ACK&#xff08;ACKx1&…