课程来自Coursera上的国立台湾大学《机器学习基石》(Machine Learning Foundations),由林轩田老师讲授。
从人类学习到机器学习 - 机器学习模型
人类通过【观察】积累知识,如果运用所掌握的知识完成一个目标,就是【技能】,一个小白从观察开始到获取技能的过程,就是【学习(Learning)】:
同理,机器通过【数据】输入积累知识,如果运用其学到的知识完成指定的目标,并且在一定的标准下完成的更好(例如精确度更高、速度更快等),就是【技能】,一个初始程序从大量数据中获得技能的过程就是【机器学习(Machine Learniing)】:
机器学习精髓 - 什么时候用?解决什么问题?
1 该问题有一个【潜在的模式】需要学习
对这个模式的判断越准确就说明机器的【技能】越NB。例如,刚出生的婴儿不知道什么是“树”,后来在大人的帮助下通过大量观察,他发现树通常有粗粗的树干,树干向上分裂成很多树枝,树枝上大多都长着绿色的叶子,这时在小孩的脑中形成了对“树”的模式的初步判断,以后看到类似物体他会说:“爸比爸比,这是树!”。
但是有一天,小孩看到了一个物体,有着较粗的树干,上面分开成树枝,但是却长着红色的叶子,他疑惑了,这与他理解的“树”的模式匹配不上啊?直到爸爸告诉他正确答案,他明白了这也是一种树叫“枫树”,这时他脑中的“树”模式更加接近现实中的树模式,他识别树的技能提升了!
2 该问题很难用数学或程序的方式定义
如何用程序来定义一棵树?或者树有哪些属性?
树有叶子?很多树冬天叶子会掉光。。。树叶有几种颜色?绿色,黄色,红色,褐色。。。树枝都是硬的?柳树树枝能编织成帽子。。。树是有生命的?死去的胡杨木算不算。。。树冠很大?水杉活生生像插在地上的一根大葱。。。
根本无法用确定的描述来定义“树”。所以,让机器慢慢学吧,多喂给它一些树的图片,见多识广了就分得清树和鸡毛掸子了。。。
3 有足够的有效数据
小孩子需要在大人帮助下看过很多树以后才能知道秋天的红色枫树和沙漠中枯死的胡杨木都是树,它们与杨树,杉树本质上是相同的。同理,机器也要在用大量的数据训练之后才能具有某方面的智能,例如: ===》 柳树
===》 枫树
。
。
。
大量这样形式的数据作为输入,成为机器建立“树”模式的初始学习材料。
机器学习的应用场景
太多了,举有限的几个例子:
衣 - 【数据】:衣物销售数据,客户调查数据;【技能】:对特定的客户提出针对性的时尚建议。
食 - 【数据】:社交网络数据(文本和地理位置信息);【技能】:给出餐馆的食物中毒概率。
住 - 【数据】:建筑的工程参数和能耗;【技能】:给出相似建筑的能耗预测。
行 - 【数据】:交通信号灯的图片和意义;【技能】:在实际场景下立即识别出信号灯的信息。
教育 - 【数据】:学生在某门课程的历史考试成绩;【技能】:预测学生在下一次考试中的成绩水平。
娱乐 - 【数据】:用户对大量电影的打分;【技能】:给定一个电影,预测不同用户会打多少分。
最后一个例子来自于2006年Netflix举办的一个有奖竞赛,一共有480,189个用户对17,770部电影的100,480,507条评论作为初始数据,来预测用户未来的评论行为,如果预测精确度较之前提高10%以上,就能获得100万美刀的奖励。6年后Netflix基于大数据制作了大热美剧《纸牌屋》。
课程针对这个问题给出了一个可行的解决方法:
把用户和电影划分成若干维度,例如:
用户 - 是否喜欢动作片?多喜欢?是否喜欢喜剧片?多喜欢?是不是小李子的粉丝?粉到什么程度?等。。。
影片 - 有没有动作元素?有多少?有没有喜剧元素?有多少?有没有小李子出演?等。。。
用户与影片的维度可以一一对应上,这样用户和影片就是两个维度相同的向量,每个元素的值代表了该属性的权重,比如某用户是小李子的脑残粉,那么用户向量中对应小李子的元素值就相对更大(对应图中的圆圈就更大)。
将两个向量点乘,得到他们的内积,就是对该用户对该影片平价水平的预测。如果该影片没有小李子出演,影片向量中的小李子元素值为零,乘了一个很大的权重以后还是零,可能会显著降低脑残粉对该影片的评价。
将机器学习符号化
教程中使用的是“形式化”(Formalize),我个人更愿意理解为“符号化”(Symbolize)。
只有符号化的理论才能用逻辑严谨的数学语言表述。还是举例描述。
一个人向一家银行申请办理信用卡。银行需要根据用户资料判断是否发卡,用户数据有以下几个维度:
用符号化的机器学习理论表述这个问题:
作些解释,输入数据包括了过去与未来所有可能的用户数据,每个用户的数据是一个向量;输出结果{η}就是发卡和不发卡两种(可以用1,0或+1,-1代表);目标函数 f 是所有用户数据{χ}到结果集{η}的映射,这个函数我们不知道(知道就不用学习了);训练数据 D 是手头已有的用户数据,是用户数据集合{χ}的子集;通过训练得到一个训练数据D 到结果集{η}的映射 g ,这个g就是对f的近似,以后有用户申请信用卡就用g来算就行啦。
教程用图表解释了该方法:
机器学习的核心是“学习算法 A ”(Learning Algorithm),它根据训练数据从近似目标函数集 H 中挑选出最接近 f 的函数,也就是 g。
机器学习与其他研究领域的关系
本节课最后简要讨论了机器学习与数据挖掘、人工智能及统计学之间的关系。