机器学习笔记:导论

 

最近在复习Machine Learning,发现对于很多平时觉得“理所应当”的东西,其背后还有很多深入的理论细节需要深入思考。于是拿出了李宏毅老师机器学习课程的相关资料仔细学习。

这一系列Post将会围绕Machine Learning/Deep Learning的一系列基本概念进行回顾和整理。参考资料以李宏毅老师的机器学习课程为主,也会有其他的内容和一些自己的理解等。

Introduction of Machine Learning

人工智能是一个目标,而机器学习则是达成这个目标的手段,深度学习则是这个手段的一种方法。

在出现深度学习和机器学习之前,生物如何进行“智能”?一是先天本能,二是后天学习。对于机器来说也是相同:机器的先天本能是机器的创造者(人类)预先设计好,而后天学习则是利用机器学习来进行。

生物界很多动物具备本能。例如河狸在听到有流水声时,通过本能的反映就是构筑水坝。这就相当于河狸天生内置了一种程序:

if 听到流水声:
    构筑水坝

此时如果进行一个实验:将扬声器放在水泥板下面,河狸在听到声音之后就会在水泥板上盖满树枝。

与此类似,当我们想要实现一个聊天机器人Chat-bot。通过一些预先编设好的“程序”(hand-crafted rules)来赋予机器进行对话的“本能”:例如可以对机器说“Can you turn off the music?”,机器能够关闭音乐。同样这种本能也可以被欺骗:很多算法当用户对机器说 “Please don’t turn off the music”时,机器仍然会关掉音乐。

利用Hand-crafted Rules有很多缺点:

  1. 规则必须要考虑所有情况。
  2. 永远不会超过规则编写者的能力。
  3. 需要花费大量人力成本。

与之相对,我们应该设计实现一个能够具备自主学习能力的机器。即“You write the program for learning”。对于一个智能的系统,我们并不应该写程序教会它如何做事,而是应该写程序教会他如何“学习”做事,然后再“教”它进行学习。

形式化一些来说,机器学习就是从Data中寻找一个Function。

例如语音识别,我们需要找一个函数f:f(语音信号)=识别出的文本。例如图像识别函数f:f(输入图像)=识别出的图像类别。例如围棋AI函数f:f(当前局面)=下一步下棋的方法。例如聊天机器人函数f:f(一句话)=响应。这些f非常复杂,想要直接用Hand-crafted Rules来进行几乎是不可能的。

机器学习的基本框架

以图像识别为例。

首先世界上存在一个function的集合: $f_1, f_2, \cdots$。有的function比较“好”,有的则比较“差”。例如$f_1(猫的图片)=猫,f_2(猫的图片)=狗$,那么$f_1$相比$f_2$应该比较“好”。

这个评价$f$好坏的标准,就是数据集。只有判断正确的function,才是好的function,反之则是差的function。这种方式叫做有监督学习 (Supervised Learning)。

但只知道评价function的好坏还不够,因为这个function的集合非常巨大,所以我们需要一个高效的方法来从集合中所有的function中迅速找到好的function: $f^*$。

学习路线图

  1. Supervised Learning
    1. Regression
    2. Classification
      • Types:
        • Binary Classification: 垃圾邮件过滤. $f$(email)=Yes/No
        • Multi-class Classification: 新闻分类. $f$(news)=politics/economy/sport
      • Models:
        • Linear Model
        • Non-linear Model
          • Deep Learning
          • SVM, decision tree, K-NN, etc.
    3. Structured Learning
      • 输出一个有结构的信息,而不只是做选择或输出数字。
      • 例如
        • 语音识别,输出的是文本序列
        • 定位图片中的人脸位置等
      • Regression和Classification只是基础技术,Structured Learning才是现实中的应用。
  2. Semi-supervised Learning
    1. 只有少量有标注数据
    2. 有大量无标注数据
  3. Transfer Learning
    1. 只有少量有标注数据
    2. 剩下大量数据与已有数据domain完全不同
  4. Unsupervised Learning
    1. 用完全没有标注的数据,让机器学到无师自通
    2. 例如:
      • 从文本中学习词汇表示
      • 从图片学会生成新图片
  5. Reinforcement Learning
    • 有一个决策序列
    • 只有最后一个结果表示critics。即只知道最终结果,并不知道中间哪个决策导致结果。

参考资料

  1. 李宏毅深度学习视频:ML Lecture 0-1: Introduction of Machine Learning