机器学习基石第一讲:The Learning Problem 笔记
此系列博客将记录我在学习《机器学习基石》课程时的学习笔记。《机器学习基石》课程由国立台湾大学林轩田老师在Cousera网站上开设,试图从概率论的角度介绍机器学习。我曾在16年夏季学期在Cousera网站上跟过此课程。当时因为懒惰,没有记录笔记。如今半年过去,课程内容已被我忘记大半。如今从头开始,认真整理笔记。目的是帮助我自己更好地理解和记忆课程知识,同时也希望能给学习本课程的同学提供一些帮助。
第一讲:The Learning Problem
Course Introduction
课程将会像讲故事一样,阐述四个问题:
- When Can Machines Learn? (illustrative + technique)
- Why Can Machines Learn? (theoretical + illustrative)
- How Can Machines Learn? (technical + practical)
- How Can Machines Learn Better? (practical + theoretical)
What is Machine Learning
什么是学习: 什么是机器学习:
上面两个定义中都提到了技巧(Skill)这个概念,那么技巧是什么意思呢?
技巧就是一种表现的增进(比如预测精度的增进)。
这里提到了一个机器学习的应用场景:通过输入历史股票价格数据到机器,机器能够通过机器学习算法预测未来的股票走势,向我们建议好的投资方案。当我们按照这个方案去投资,就能获得更多的投资回报。
那么我们为什么要用机器学习,而不用其他理工科的工具呢?这里又有另一个机器学习的例子:辨识树。让你写一个程序,来辨识一个图里面有没有一棵树。那么如果你要用100条规则定义一棵树,这个任务将很难完成。而想一下我们小时候是怎么学习辨认树的:绝不是父母一下告诉我们100规则,然后我们通过这100条规则来辨认树。而是我们通过每天的观察,逐渐总结出来一些经验学习到的。这个例子也提醒我们:在完成有些任务(比如辨识树),特别是比较复杂的任务时,可能构造一个基于机器学习的系统比构造一个基于手写规则的系统更简单。
前面的例子启发我们,机器学习可能会应用在下列场景中:
- When human cannot program the system manually. 比如为一个探索火星的机器人编程。人们从来没有到过火星,不可能写程序来应对火星上所有的状况。
- When human cannot ‘define the solution’ easily. 比如语音/视觉识别。人们可能无法准确定义出某一段声音信号是在由哪个字发出的。
- When needing rapid decisions that humans cannot do. 比如股市超高频交易。人类不可能在10几秒中的时间内准确决定是要买还是要卖。
- When needing to be user-oriented in a massive scale. 比如针对用户的市场服务。人们没办法通过写程序照顾到每一个不同顾客的个性化需求。
机器学习就像授机器以渔,而不是授机器以鱼。
问题适合使用机器学习的三个关键特征:
- 存在潜藏的模式可以学习 - 表现才可以被增进
- 但是又不知道怎么把它们写下来 - 才需要机器学习
- 有关于模式的资料 - 机器学习算法才有了输入
Applications of Machine Learning
孙中山先生说过:
民生的需要,從前經濟學家都說是衣、食、住三種。照我的研究,應該有四種:於衣、食、住之外,還有一種就是行。…行就是走路。我們要解決民生問題,不但是要把這四種需要弄到很便宜,並且要全國人民都能夠享受。
后来蒋介石先生又补充道:
總理說過:『民生主義要做到少年的人有教育,壯年的人有職業,老年的人有養活,全國男女,無論老小,都可以享安樂』。所以,對於『育幼、養老、濟災、醫病與夫種種公共之需』,乃至『聾啞殘廢院,以濟大造之窮,公共花園,以供暇時之戲』,都要籌畫辦理,『把中國變成一個安樂的國家』,才是民生主義的完成。所以,我們如不把育、樂這兩問題,和食、衣、住、行這四個問題,一併提出研究,就不能概括 總理的民生主義的全部精神與目的之所在。
因此,衣食住行育乐可谓是民生六大需求。而机器学习在这六方面都有所应用:
- 食(Sadilek et al, 2013)
- 数据:推特数据(单词+位置)
- 技巧:在某个餐厅吃饭会不会食物中毒
- 衣(Abu-Mostafa, 2012)
- 数据:销售数据+用户调查
- 技巧:向用户推荐时尚衣物搭配
- 住(Tsanas and Xifara, 2012)
- 数据:房屋的特征和它们的能源消耗
- 技巧:预测房屋耗能
- 行(Stallkamp et al, 2012)
- 数据:一些交通标志和它们的意义
- 技巧:准确识别交通标志
- 育
- 数据:学生在一个数学辅导系统中的答题数据
- 技巧:预测学生是否会答对某道测验题
- 一个可能的机器学习算法:回答准确约等于【学生最近的水平 > 题目的难度】
- 喂给数据来自3000名学生的900万条答题记录
- 机器自动决定学生水平和题目难度
- 乐 (电影推荐系统)
- 数据:用户给电影的评分
- 技巧:预测一个用户会怎样给一个系统打分
- Netflix在20016年举办的比赛
- Yahoo在2011年KDD Cup也办了一个类似的歌曲推荐比赛
Components of Machine Learning
应用信息:
学习目标:批准这个用户的信用卡申请对银行是否有益。
- 输入: \(x \epsilon X\),用户申请
- 输出: \(y \epsilon Y\),批准申请是好/是坏
- 需要学习的潜在模式: \[f: X \rightarrow Y \] 理想的信用卡批准定理
- 数据<->训练例子: \[D = \{(x_1, y_1), (x_2, y_2), \cdots, (x_N, y_N)\}\] 学习到的信用卡批准定理
问题符号化:
可能的一些\(g \epsilon H = \{h_k\}\):
- \(h_1\):年薪高于80万台币
- \(h_2\):负债大于10万台币
- \(h_3\): 参加工作不超过两年
假设集合(hyposithesis set)\(H\):
- 包含好的和坏的假设
- 由机器学习算法\(H\)选择最好的\(g\)
机器学习模型的定义:
learning model = \(A\) + \(H\)
机器学习的实用定义:
Machine Learning and Other Fields
机器学习和数据挖掘的关系:
机器学习和人工智能的关系:
机器学习和统计学的关系:
Summary
什么时候机器可以学习?