吴恩达斯坦福大学机器学习 CS229 课程学习笔记(一)

说到机器学习总绕不过几个鼎鼎大名的人物,他们都创造了不少的机器学习资料,斯坦福吴恩达Andrew Ng的公开课CS229;Google李飞飞的CS231、周志华的、李航的《统计学习方法》、林轩田的《机器学习基石》、Peter Harringtond 的《机器学习实战》、周志华的《机器学习》(西瓜书,书中都是拿西瓜举例子)。

CS229的官方网站是http://cs229.stanford.edu/,网易公开课视频地址是http://open.163.com/special/opencourse/machinelearning.html,可以同时下载打包的课件,b站也可以看https://www.bilibili.com/video/av9909092/index_25.html。知乎大神CycleUser翻译了笔记,托管在github上https://github.com/Kivy-CN/Stanford-CS-229-CN/,还上传了百度云:https://pan.baidu.com/s/1kV4vDEv#list/path=%2F。百度文库也有一份个人笔记:https://wenku.baidu.com/view/99b86f70650e52ea54189862.html。知乎上面有人对机器学习的资源进行了整理机器学习该怎么入门? - 张松阳的回答 - 知乎https://www.zhihu.com/question/20691338/answer/53910077,但我觉得还是不要图多,好好钻研才重要。

本课程主要介绍机器学习和统计模式识别。主题包括:监督学习(生成/鉴别学习、参数/非参数学习、神经网络、支持向量机support vector machines);无监督学习(聚类clustering、降维、核方法);学习理论(偏差/方差权衡;风险投资理论VC theory;大的利润);强化学习和自适应控制。该课程还将讨论机器学习的最新应用,如机器人控制、数据挖掘data mining、自主导航、生物信息学、语音识别、文本和web数据处理。

第一课中,前半部分Ng主要照着handout简单说了一些课程的设置,需要掌握基础的统计知识,说明会有project,项目要求掌握matlab或者Octave。现在看来Python应该会是更好的选择,不仅可以调用matlab模块,还可以调用现成的机器学习算法包scikit-learn:http://scikit-learn.org/stable/。然后,Ng讲了什么是机器学习。1959年Arthur samuel定义机器学习是在不直接针对特定问题编程的情况下让机器具有特定学习能力的的领域。他写了一个下棋的程序,在程序自己和自己下了很多遍之后,程序可以知道说明会导致输赢。这也反驳了程序只会做明确指定的功能的言论。在1998年Tom Mitchell做了一个更加现代的定义:

对一个计算机来说,在拥有经验E和评价标准P,可以自己提升对任务T的性能,就可以称作机器学习。在表述中不仅做出了定义,还很押韵。

接下来对课程做一个整体的把握。分成四个部分

第一部分是有监督的学习supervised Learning。Ng举了一个房屋价格的例子。有一些是统计出来的,房屋面积和价格一一对应。当我们想要知道一个新的房屋价格,却只知道它的面积时,就可以根据之前采集的数据画出的曲线来预测。之前的几组数据看作是标准答案,所以叫监督,我们希望机器学习输入和标准答案之间的对应关系。这种问题就是回归问题,Regression Problem,Regression这个词也反映了我们预测的数据是连续的。另一个监督学习类的问题是分类问题。在分类问题中是离散的。Ng举了肿瘤的例子。为了简单起见,只考虑肿瘤的大小,和对应是否是良性肿瘤。而实际中输入的特征往往是多维的,比如肿瘤的大小,患者的年龄,肿块厚度等。通过学习现有的数据,判断新来的病人的肿瘤是否是良性。多维输入的情况下,我们不能将点画在平面中,可以用支持向量机SVM映射到计算机内存中

第二部分,Learning Theory。Ng的一般数学家朋友致力于揭示宇宙中的真美,但是Ng希望用机器学习解决实际的问题。什么样的算法可以近似不同的函数,需要多少训练数据。它只是一种工具,和木匠的锤子一样,真正的木匠能用工具解决其他人无法解决的问题。

第三部分是Unsupervised Learning,非监督学习。这中无监督的学习中我们事先不知道输入数据的标准答案,只能自己找到一些有趣的数据结构。有一个学生用聚类技术对图像的像素进行分类。进阶地,利用聚类的结果,实现了通过单幅图像建立了3D模型。还有社交网络分析,市场分析,宇宙星系分析。还有一个例子是鸡尾酒会,很多人在谈话,希望把感兴趣的人的声音单独分离出来。用matlab的一行代码就可以解决,实现了ICA算法。

第四部分是Reinforcement Learning,预测肿瘤属性的例子中,错判的代价是很大的。Ng展示了他做的无人直升机的例子。直升机可以实现四脚朝天飞的特技。这很难由人工之间直接写程序来实现。背后的一个基本概念是reward function汇报函数,就像像训练狗一样,做对事情的时候,就给以奖励。这时候我们只需要定义什么是好的积极的行为,机器会学习如何获得最大的回报。

还有很多人对机器学习不以为然,其实机器学习确实只是一种工具,还是需要建立在专业知识之上。好的木匠在动手之前在脑海中已经有一件伟大的作品了。




你可能感兴趣的:(知乎,读书笔记)