本博客为自己学习斯坦福大学Andrew Ng教授机器学习课程(CS229)的笔记整理。
并试图对一些课上提出的重要算法给出MATLAB仿真代码。
Lecture1 课程介绍
第一课主要是对于本课程的介绍,包括必要的先修课程等,这里就不多说了。
我们可以想象一下传统意义的编程该怎么做?我们应该根据下棋的规则,利用搜索方法,用计算机给出向前推理若干步的棋盘局势,并根据一些相应的处理策略(我们提前编好的代码),这样实现博弈。这样的程序不具有学习能力。而具有学习能力的程序能够在和对手对弈的过程中,去学习策略,最终应用。我们只需要制定相应的学习策略并用代码实现,就能够让程序在实战中去学习,最终超越作者。
接下来是机器学习的分类。Andrew Ng教授将机器学习课程涉及的内容分为四类,本课程便围绕这几部分展开:
(1)有监督学习(Surpervised Learning)
例如良性肿瘤和恶性肿瘤的分类问题。
(2)无监督学习(Unsurpervised Learning)
例如聚类问题(鸡尾酒会问题)。
在这里,Ng举了一个实际例子,便是通过两个独立的录音设备通过聚类成功将音源的声音从背景噪音中分离出来。
(3)机器学习理论(Learning Theory)
(4)强化学习(Reinforcement Learning)
不同于前面的问题,强化学习解决的是在一个(控制)过程中的一系列的决策问题,例如直升机模型的自动驾驶,机器人的自动避障等。
接下来的文章中,将深入课程当中,详细讲解机器学习的相关问题。