• 机器学习笔记(一)理解机器学习
  • 2025-10-21 23:32:24
  • 目录导读概述阅读专业书小技巧理解机器学习什么是学习?什么是机器学习中的“学习”?机器学习的学习方式有哪些?

    导读

    我的专业为网络空间安全,研究方向为密码学协议。经过一段时间的学习,我发现单纯的密码学知识并不能引起我的科研兴趣以及发挥我的科研特长。所以,我想掌握一下机器学习领域的知识,旨在能够在机器学习赋能密码学的交叉方向开展一些有意思的研究。为此,我将我学习机器学习的笔记记录并分享出来,希望能够为更多人提供灵感。

    概述

    本系列笔记的主要参考教材:《Machine Learning with Python: Theory and Implementation》。该书由Amin Zollanvari教授编写,是面向本科生和研究生的机器学习教科书。该书是英文版本,没有过多的生僻词汇,便于阅读和理解。

    本书共包含15章,下面这个思维导图对本书的内容作了一个简要概括(随便看看):

    阅读专业书小技巧

    这里顺便分享一个阅读专业书的小技巧(也可以用于论文阅读)(from: 你的同桌狗兄):

    浏览全书:拿到一本书,先一页一页的翻,不要去关注具体的内容,就是浏览,翻到一些图表的时候就看一下,看不懂也没关系。

    目录:打开一本书的目录,从头到尾浏览一下标题,更加深入地掌握整本书的架构。

    读课后题(如果有):有的专业书每一节后面是有习题的,阅读习题可以让大脑知道接下来要学习的重点是什么。有的专业书是没有课后题的,那么这一步可以跳过。

    读小标题:每一节内容都有对应的小标题,或者总结性的语句,可以让我们更加细化的了解专业书的架构。

    精读+笔记:前四步是侦察兵,第五步是正式作战。经过前四步,大脑已经对这本书的架构、重点和难点有一个整体的了解,第五步就应该精读这本书并且做好笔记。这个时候,我们的大脑已经搭起来架子了,接下来就可以垒砖、搭建起自己的知识宫殿!

    理解机器学习

    什么是学习?什么是机器学习中的“学习”?

    要理解学习这一概念,最好的参考对象就是我们人类自己。我们回忆一下自己的学习过程:首先,面对一本专业书,人类通过阅读将知识输入给大脑,大脑骄傲地说,我都理解了。这个时候,为了检验大脑是真的懂了,我们给大脑出一道关于该知识的测试题,如果大脑能够正确说出答案,那才证明大脑理解了,懂得都懂。

    上述就是一个不严谨的大脑学习过程:输入知识,理解知识(内化),运用理解的知识(输出)。当前,理解知识对于我们普通人来说就像一个黑盒,我们并不知道我们的大脑究竟是如何理解知识的。如果我们把这个黑盒看作是一个模型,那么,其实我们学习的过程就可以理解为将知识输入给一个黑盒,黑盒经过一番骚操作过后(人类很难解释)进化了。为了检验黑盒确实进化了,我们给模型输入一个测试题,如果黑盒给出了正确的答案,我们就认为这个黑盒进化了。

    实际上,机器学习中的“学习”过程就是构建一个不错的黑盒的过程,使得它尽可能准确的回答好测试问题。

    以上是我个人的理解,对于机器学习的概念并没有统一的定义,虽然概念上很容易理解,但是牵涉范围过于宽泛并不容易以一概之。下面是《Machine Learning with Python: Theory and Implementation》作者给出的定义。作者将“学习”定义为估计一个映射的过程,也就是我说的构建一个还不错的黑盒。

    Learning refers to estimating a mapping or individual parameters of a mapping from an input space to an output space using data.

    机器学习的学习方式有哪些?

    机器学习的学习方式可以分为四种:

    监管学习(Supervised Learning):监管学习比较容易理解,指的是有明确目标的学习过程,也就是说,我们知道机器最后给出的是一个什么类型的结果。例如,邮件分类问题,首先,给模型一些邮件数据,每封邮件上已经标记好了是否为垃圾邮件(这个标记在机器学习中也称为标签),模型在学习完这些邮件之后,给它一封未知标记的邮件,让机器来判断这个邮件的标记是什么。

    监管学习分为两种类型的学习任务:分类(classification)和回归(regression),我们后面再详细解释。

    无监管学习(Unsupervised Learning):无监管学习是一种与监管学习相对的学习方式,指的是一种没有明确目标的学习过程,也就是说,数据没有标签,模型要自学。假设你是B站的一个UP主,你非常想了解你的粉丝组成是什么样子的,你就让B站的程序员帮你使用聚类算法解决这个问题。使用聚类算法之后,你可能会发现,关注你的60%是青少年,经常在深夜观看,喜欢鬼畜等等。

    半监管学习(Semi-supervised Learning):半监管学习是监管学习和无监管学习的结合,指的是喂给模型的数据一部分有标签,但是大部分是没有标签的。(例子后面补充)

    强化学习(Reinforcement Learning):强化学习是对自然学习过程的一个形式化描述,它认为当下的决策依赖于过去的经验。比如,你前面两段感情遇到的都是渣男,你从这两段感情中,摸索出了渣男具有的共性。突然有一天,一个男孩跟你表白了,过去的经验告诉你,这个boy大查不查全部符合你总结出来的渣男的特征,所以,你拒绝了他。两个月后,这个渣男渣了别的女孩。(你看,如果没有之前的经验,你可能会接受这个男孩;但是,因为有了之前的经验,你才会在这一次做了正确的决策)这,就是强化学习!

    上面的这个例子并不友好,我重新举一个例子。比如,大家肯定都有过面试的经历,假设现在有两名面试者,分别为名校毕业、拿着顶会Paper、有过竞赛经历、有过多次实习经历的A同学和只是三本毕业的B同学。面试官根据以往的面试经历,肯定会毫不犹豫的选择A同学,因为这种选择是good decision的概率更高。(尽管B同学可能具有更好的天赋)

    以上就是我读了第一章之后的总结,或许有很多不正确的地方,恳请大家批评指正,望大家共同进步!

    参考:

    [1] https://ninghao.net/blog/5607