这个系列的博客是通过观看台湾大学林軒田的机器学习系列视频《机器学习基石》所做的笔记。
一、本系列课程的四个问题
学习本课程主要解决四个问题,
1.什么时候机器可以学习?
2.为什么机器可以学习?
3.机器怎样学习?
4.怎样让机器学习的更好?
二:什么是学习?
在搞明白什么是机器学习之前,我们先思考一下我们人类是怎么学习的。小孩是怎样学习讲话的呢?小孩其实是通过听、观察大人们的讲话,然后自己不断的去学习讲话,再举一个例子,我们一直说自己通过看书来学习知识,那么这个是什么样的过程呢?看书——学习(思考,记忆)——学到里面的知识。其实学习可以归为一个通用的过程:
观察——学习——技巧
那么,技巧是什么呢?技巧就是增强某一种表现,这个听起来很难理解,举个列子就明白了,当小孩不断的学习讲话后,小孩说话的能力是不是增强了,当你学习书籍的知识之后,你的知识是不是越来越渊博了,这样你解决学习问题的时候是不是越来越得心应手了?这其实就是某一种表现的增强,也就是技巧。
三、什么是机器学习
我们搞明白了人是怎么学习的,那么机器是怎么学习的呢?机器其实是在模拟人类学习的方法。
机器学习:数据——学习——技巧
这个过程就是我们把数据给机器,然后机器通过不断的学习,然后得出一个技巧。举个例子,预测股票,我们把近十年的数据给机器,然后让其观察学习,然后它就学会了一个技巧,一个可以预测以后的股票走势的技巧。这就是机器学习。
四、为什么要用机器学习
为什么要用机器学习呢?在解决现实生活中的问题时,什么样的事情必须要用机器学习,而其他的方式不能替代呢?
还是举一些例子就明白了,现在让你设计一个程序,去识别一张图片中有没有树?你该怎么设计程序呢,难道通过一条条的规则去定义一棵树?这样不太现实。首先,你可能根本写不出来全部的规则,其次,想一想我们小时候是怎样学习辨识一棵树的,我们的肯定不是通过记忆一条条的规则去学习辨识一棵树。而是通过自己的不断的观察,来学习怎样辨识一棵树的。
也就是说如果说一个复杂的系统,它的规则无法完全写出来的时候,我们就要考虑用机器学习来替代规则的方式了。再举一个例子,如果让一个系统针对不同的用户来提供个性化服务,这样的话,你根本不知道你的用户到底是怎样的,所以你也根本无法通过写规则来进行实现个性化服务,这个时候你就需要机器学习去分析用户的喜好,来对其提供个性化服务。
五、一个简单的机器学习例子
设计一个机器学习系统,对给定的用户,判断银行要不要发给他信用卡。
要设计这样的一个系统,首先银行里有顾客的资料。
系统输入:顾客的资料X(比如顾客年龄,年收入,负债,工作年限等等)
系统输出:要不要发信用卡Y
理想状态下,一定有这样一个函数,能够完美的根据用户的资料,来判断银行是不是应该发给他信用卡,但是这个函数我们是不知道,我们把这个函数叫做目标函数
F:X——>Y,意思就是机器学习的终极目标,近似的达到像这个函数一样,近似达到那就不是完美的了,我们把机器学习出来的这个函数叫(hypothesis)假设函数g:X——>Y.
那么,机器是通过什么学习的呢?当然是数据了,上面有讲过,那么数据是什么呢?
数据D:D={(X1,Y1),(X2,Y2)..........(Xn,Yn)},其中X表示顾客的资料,Y表示通过银行以往的记录,发给Xi 客户银行卡好还是不好。那么这些数据是怎么来的呢?你会说,这不废话吗,当然是银行记录的呗!我知道是银行记录的,我们假设这样的数据其实是通过潜在的我们上面所说的理想状态下的目标函数所产生的,你同意吗?
那么机器学习的整个流程也就出来了:
目标函数F产生数据,然后把数据给机器学习的学习算法,然后学习算法得出一个假设函数g,这个g近似与F,当然是越接近约好了。
那么,g到底长什么样子呢?我们定义函数g其实是在一堆的函数中调处来的,这样的一堆函数集合叫H,g∈H={hk}。
比如:
h1:年收入超过80元,我们就发给他信用卡
h2:负债超过10万,我们就发给他信用卡
h3:工作不满两年,我们就发给他信用卡
等等。
机器学习的目标就是从这样的一堆函数中找到一个最接近目标函数F的g。
其中,我们定义机器学习模型包括两个部分:一是找到最佳函数g的算法,一个这样的一堆函数集合H。
结束语:第一次写博客,也是想记录自己学习机器学习的一个过程,语言组织可能有些不太好,希望能够体谅。
生命不止,学习不尽。