机器学习基石第一讲:the learning problem
Andrew Ng的Machine Learning比较简单,已经看完。林田轩的机器学习基石更多的是从概率论的角度来介绍机器学习,之前的视频已经听了大半,但好多都是模棱两可。现在从头开始,认真整理笔记,笔记的结构遵从课程视频的结构。
下面是机器学习基石的第一讲:the learning problem
Course Introduction
机器学习是一门理论和实践相结合的课程。这门课程从基础入手,介绍机器学习的一些核心理论、核心技巧和实际应用。林田轩老师说要像讲故事一样来讲机器学习,实际上呢还是包含很多很难的推导,而作业实在是太难,且网上又找不到答案参考,实在痛苦。
- When can machines learn? (illustrative + technical)
- Why can machines learn? (theoretical + illustrative)
- How can machines learn? (technical + practical)
- How can machines learn better? (practical + theroetical)
What is Machine Learning
首先,我们说人的学习(learning)是从观察出发,经过大脑的理解思考等活动,最终转化为我们掌握了的知识技能。而机器学习则是将数据输入给计算机,然后计算机经过一系列的计算处理过程,最终输出我们想要的一些数据。例如我们将近十年的股票数据输入到计算机,计算机经过分析计算等机器学习过程,输入给我们一些数据,而这些数据能够指导我们更好得去炒股。
我们通过一个树木识别的例子来引出为什么要使用机器学习。按照常规的方法,我们很难通过写一段程序来识别一张图片中的事物是不是树。而机器学习则是通过分析已有的数据,然后自己“学会”怎么判断是不是树。下面给出几种适合使用机器学习的领域:
- when human cannot program the system manually, e.g. navigating on Mars(在火星上我们可能遇到各种各样的问题,但我们不可能提前预判所有的问题并写出程序,因此我们可以使用机器学习的方法让计算机在遇到问题时主动探寻解决方法。)
- when human cannot ‘define the solution’ easily, e.g. speech/visual recognition(在这些领域,我们很难比较具体清晰的去分析问题)
- when needing rapid decisions that human cannot do, e.g. high-frequency trading(对于这种需要在几秒钟之内做出选择的问题,用人工去处理的话估计都是在拍脑门)
- when needing to be user-oriented in a massive scale, e.g. consumer-targeted marketing(个性化的服务等等)
下面是机器学习的三个要素,有了这三个要素才适合使用机器学习。
- exist some ‘underlying pattern’ to be learned, so ‘performance measure’ can be improved(就是说,问题存在某种潜在的规律可循)
- but no programmable (easy) definition, so ‘ML’ is needed(就是说,很难用以前的编程方法来解决)
- somehow there is data about the pattern, so ML has some ‘inputs’ to learn from(就是说,要有输入)
最后是本小节的一道测试题:
Applications of Machine Learning
这一小节给出了机器学习在食、衣、住、行、教育、娱乐六个方面的应用。
- 食:通过分析Twitter上的数据来给出去某一家餐饭吃饭而食物中毒的几率
- 衣:通过销量和客户调查来为顾客推荐商品
- 住:通过分析已有建筑的特点和能耗来预测新设计的建筑的能耗
- 行:通过分析不同的信号灯来实现自动识别交通信号,再如现在很火的无人驾驶
- 教育:在线测试系统通过分析学生的测试成绩来预测学生的学习程度,例如我们向机器输入来自3000名学生的900,000条记录,然后机器自动地去预测学生的学习情况和新的测试题的难易程度。
- 娱乐:根据用户对已经看过的电影的评分情况来向用户推荐电影,这里举了Netflix的例子(因为已经了解推荐系统,所以不再展开)
最后是本节小测试:
Components of Machine Learning
这一小节使用信贷发放系统的例子来继续介绍机器学习,信贷发放系统根据银行已有的客户信息来决定要不要发给顾客信用卡。首先我们来定义一些变量,这些变量在机器学习中是通用的。用x来表示输入,这里是用户的信息,用y来表示输出,这里是最终要不要发放信用卡(发放的$y=1$,不发的话$y=0$)。目标函数(target function)f,其为从输入x到输出y的一个映射,能够百分百准确地解决问题,在这里就是能准确的判断要不要给某用户发放信用卡。机器学习用到的数据data是银行已有的信用卡发放的资料。hypothesis则是我们通过data训练得到的一个东西,用g来表示,我们希望它能够特别接近f,从而能够准确的处理未知信息。
下图给出了机器学习的流程图。需要注意的是,目标函数f是未知的,是我们的目标,其能百分百解决我们的问题;g是我们最后实际得到的,与f存在差距。
存在一个集合H,里面包含大量的hypothesis,机器学习算法的任务就是从这个集合中找到最好的一个hypothesis,“最好”的标准我们会在以后的课程中给出。最后给出了机器学习的一个定义:use data to compute hypothesis g that approximates target g。
本节小测试:
Machine Learning and Other Fields
这一小节介绍机器学习与其他领域的区别。
首先是机器学习与数据挖掘(data mining)的差别。总体来说,二者很难区分彼此。
接下来是机器学习与人工智能(Artificial Intelligent)。应该说,机器学习是实现人工智能的一种方法。
然后是机器学习与统计学(statistics)。应该说,统计学是机器学习得以实现的一个数学基础。
最后是本小节问题: