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

article/2025/11/7 2:13:22

本节介绍了机器学习中三个重要原则,包括奥卡姆剃刀原理,样本偏差,数据窥探;并对16课程所学知识进行了总结。


系列文章

机器学习基石01:机器学习简介
机器学习基石02:感知器算法(Perceptron Algorithm)
机器学习基石03:机器学习的类型(Types of ML)
机器学习基石04:机器学习的可行性(Feasibility of ML)
机器学习基石05:训练与测试(Training versus Testing)
机器学习基石06:泛化理论(Theory of Generalization)
机器学习基石07:VC维(The VC Dimension)
机器学习基石08:噪声和误差(Noise and Error)
机器学习基石09:线性回归(Linear Regression)
机器学习基石10:逻辑回归(Logistic Regression)
机器学习基石11:线性模型分类(Linear Models for Classification)
机器学习基石12:非线性变换(Nonlinear Transformation)
机器学习基石13:过拟合风险(Hazard of Overfitting)
机器学习基石14:正则化(Regularization)
机器学习基石15:交叉验证(Cross Validation)
机器学习基石16:三个重要原则(Three Learning Principles)


文章目录

  • 系列文章
  • 16. Three Learning Principles
    • 16.1 Occam's Razor
    • 16.2 Sampling Bias
    • 16.3 Data Snooping
    • 16.4 Power of Three
      • 三个应用领域
      • 三个约束理论
      • 三个线性模型
      • 三个关键工具
      • 三个重要原则
      • 三项未来工作


16. Three Learning Principles

16.1 Occam’s Razor

entia non sunt multiplicanda praeter necessitatem(entities must not be multiplied beyond necessity) – William of Occam (1287-1347)

这边是奥卡姆剃刀原理(Occam’s razor)的出处。一句话总结:“如无必要,勿增实体。”

机器学习中 奥卡姆剃刀原理 的意思是 应尽可能选择简单的模型进行设计。

看一个模型选择例子:
在这里插入图片描述

左边的模型虽然可能有分错的情况,但模型简单,满足需求;右边的模型虽然都分类正确,但过于复杂。依据奥卡姆剃刀原理,选择左边的模型作为设计的模型。考虑以下两个问题:

  • 简单模型中的“简单”是如何界定的?
  • 为什么简单模型比复杂模型要好?(奥卡姆剃刀原理为什么在机器学习中适用?)

先看第一个问题:简单模型中的“简单”是如何界定的?
在这里插入图片描述
由上图可知,“简单”有两个方面:

  • 对于单个假设函数 h h h 来说,参数越少意味着越简单。如上图中左边的分类超平面只用圆心和半径就能表达,因此参数很少,这就是“简单”的,而右边的超平面则过于复杂,包含很多高次项,参数量很多,因此并不“简单”;
  • 对于假设空间 H H H 来说,有效假设的数量越少意味着越简单。

二者是密切相关的,一个假设空间 H H H 中的假设函数 h h h 的数量 ∣ H ∣ = 2 l |H| = 2^l H=2l;如果假设空间 H H H 中的模型复杂度 Ω ( H ) \Omega(H) Ω(H) 很小,则假设函数的模型复杂度 Ω ( h ) \Omega(h) Ω(h) 也会很小。

接下来,看第二个问题:为什么简单模型比复杂模型要好?

假设一个数据集的规律性很差,如样本的标记都是随便标记的,此种情况,很少有甚至没有假设函数能使得该样本的 E i n ≈ 0 E_{in} \approx 0 Ein0 。如果一个数据集能被某个模型分开,则该数据集的规律性不会特别差。在使用简单模型将数据大致分开时,则可以确定该数据集是具有某种规律性的;如果用复杂模型将某数据集分开,则无法确定是数据集具有规律性还是模型足够复杂将数据集分开。因此,在实际应用中,应该尽量先选择简单模型,例如最简单的线性模型。


习题1:
在这里插入图片描述


16.2 Sampling Bias

用一个例子说明:1948年美国总统大选的两位热门候选人是Truman和Dewey。一家报纸通过电话采访,统计人们把选票投给了Truman还是Dewey。经过大量的电话统计显示,投给Dewey的票数要比投个Truman的票数多,所以这家报纸就在选举结果还没公布之前,信誓旦旦地发表了“Dewey Defeats Truman”的报纸头版,但结果却是Truman赢得了大选的胜利。

为什么会出现跟电话统计完全相反的结果呢?因为当时电话比较贵,有电话的家庭比较少,而有电话的人大多都支持Dewey,没有电话的人大多都支持Truman。也就是说样本选择偏向于有钱人那边,不具有广泛的代表性,才造成Dewey支持率更多的假象。

这个例子表明,抽样的样本会影响到结果,用一句话表示:如果抽样有偏差,则学习的结果也会产生偏差。这种情形称为 抽样偏差(Sampling Bias)。从技术上来说,就是训练数据和验证数据要服从同一个分布,最好都是独立同分布的,这样训练得到的模型才具有代表性。


习题2:
在这里插入图片描述


16.3 Data Snooping

之前提到过,在选择模型时,应该尽量避免数据偷窥(Data Snooping),因为这样会人为地倾向于某种模型,而不是根据数据进行随机选择。所以应该自由选取,最好不要偷窥原始数据。在使用数据的任何过程中,都算是间接地偷窥了数据,然后在进行模型的选择或者决策的时候,就会增加模型复杂度(model complexity),也就是引入了污染。下面举例说明。

假如有8年的货币交易数据,希望通过这些数据来预测货币的走势。前6年数据作为训练数据,后2年数据作为测试数据训练模型。输入20天的数据,预测第21天的货比交易情况。
在这里插入图片描述
上图中,红线表示使用8年的数据建立模型预测后两年的收益情况;蓝线表示使用前6年的数据建立模型预测后两年的收益情况。

由图中曲线可知,使用8年数据进行训练的模型对后2年的预测的收益更大,似乎效果更好。但是这是一种自欺欺人的做法,因为训练的时候已经使用了后2年的数据,用这样的模型再来预测后2年的走势是不科学的。这种做法属于间接偷窥数据。

在机器学习过程中,避免“偷窥数据”非常重要,但完全避免很困难。实际操作中,有一些方法可以辅助避免偷窥数据。

  • “看不见”数据。在选择模型的时候,尽量用经验和知识做选择,而不是通过数据选择。先选模型,再看数据。
  • 保持怀疑。时刻保持对别人的论文或者研究成果保持警惕与怀疑,要通过自己的研究与测试来进行模型选择,这样才能得到比较正确的结论。

在这里插入图片描述


习题3:
在这里插入图片描述


16.4 Power of Three

本部分是对机器学习基石系列课程(16节课程,每节4小节)的总结,课程介绍的内容都与数字“3”有关,小节题目因此得名。

本课程介绍了机器学习的如下内容:

三个应用领域

在这里插入图片描述

  • 数据挖掘(Data Mining)
  • 人工智能(Artificial Intelligence)
  • 数理统计(Statistics)

三个约束理论

  • 霍夫丁不等式(Hoeffding)
  • 多箱霍夫丁不等式(Multi-Bin Hoeffding)
  • VC 限制理论

在这里插入图片描述


三个线性模型

  • 线性感知器算法/pocket算法(PLA/pocket )
  • 线性回归(linear regression)
  • 逻辑回归(logistic regression)

在这里插入图片描述


三个关键工具

  • 特征变换(Feature Transform)
  • 正则化项(Regularization)
  • 交叉验证(Cross Validation)

在这里插入图片描述


三个重要原则

  • 奥卡姆剃刀原理(Occam’s Razer)
  • 样本偏差(Sampling Bias)
  • 数据偷窥(Data Snooping)

在这里插入图片描述


三项未来工作

在这里插入图片描述


林轩田老师的机器学习基石课程笔记至此整理完结。

接下来会继续学习整理林老师的机器学习技法课程相关笔记。


参考:
https://www.cnblogs.com/ymingjingr/p/4306666.html
https://github.com/RedstoneWill/HsuanTienLin_MachineLearning


http://chatgpt.dhexx.cn/article/bAIoFHIy.shtml

相关文章

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

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

Wireshark抓包数据

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

Wireshark抓包数据分析

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

网络数据包分析与抓取

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

如何进行数据的抓包

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

WireShark基本抓包数据分析

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

网络抓包及分析

今天我们主要来讲一下网络抓包的教程,我们用WireShark来说明 我们先说明下抓包工具界面 我们现在本地机子上用上面两个比较多 上面是抓无线网卡,就是你访问外网的包 下面是抓环回地址 ,就是你访问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(用户…

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

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

WireShark抓包分析

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

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

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

wireshark抓包分析TCP数据包

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

wireshark抓ping数据包以及简单分析

目录 相关知识 1.Ping原理 2.ICMP报文协议 3.wireshark 一、wireshark抓数据包 二、报文分析 三、总结 相关知识 1.Ping原理 Ping是一句DOS 命令,一般用于检测网络通与不通 ,也叫时延,其值越大,速度越慢 PING (Packet Inte…

wireshark抓包数据:理解与分析

注明:本文为原创文章,转载请注明出处。参考文章见本文末尾。 wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理。 有不当之处,欢迎指正 1.SYN,F…

WireShark抓包后数据分析

在分析数据之前,我们先了解一下我们传输数据的结构体系,如下图: 这是两种体系,我们常用的一般都是TCP/IP体系结构。 TCP/IP体系架构分析 不难发现,TCP/IP体系中包含着很多我们熟悉的协议,比如说&#xff1…

Wireshark --> 抓包(网络分析)工具

前言 贴一张wireshark抓包的总图,便于理解分析网络分层 ​ 为了让大家更容易「看得见」 TCP,我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。 接下来丢包、乱序、超时重传、…

Wireshark抓包工具使用以及数据包分析

多年之后,愿你有清风与烈酒,也有人是你的归途。 打开Wireshark抓包工具开始抓包会看到如下展开内容: 这里我是对wlan进行抓包,192.168.2.112是我当前wifi的ip地址。 点击某个包,可以查看具体内容,差不多刚…

使用wireshark抓网络报文(抓包)并分析其中数据

如何使用wireshark抓网络报文(抓包) 1、 物理层数据帧2、 数据链路层以太网帧头部信息3、 互联网层 IP 包头部信息4、 传输层 TCP 数据段头部信息 本文包内容分析转载自下午茶的芬芳,感谢作者的分享。 网络下载好wireshark打开软件按下开始捕…

wireshark抓包分析数据怎么看 wireshark使用教程

大家都知道Wireshark是非常流行且知名的网络抓包数据分析工具,可以截取各种网络数据包,并显示数据包详细信息,常用于开发测试过程各种问题定位、网络故障排查等情况。但是很多网友不清楚如何使用Wireshark抓包看数据,下面IT备忘录…

Wireshark网络抓包分析

目录 1. 以太网协议头(数据链路层) -- 14byte 2. IP数据头(网络层) -- 20byte 3. ARP抓包分析 3.1 ARP介绍 3.2 报文格式 3.3 抓包分析 3.3.1 先arp -d把arp表清空。 3.3.2 过滤ARP协议的数据包 3.3.3 Ping 目标IP 3.3.4 第一个数据包请求分析 3.3.5 第二个数据包应…