纪念我第一个博客的碎碎念
先前我花了四五个月的业余时间学习了Ng的机器学习公开课,学习的过程中我就在想,如果我能把这个课程啃完,就开始写一些博客,把自己的所得记录下来,现在是实现的时候了。也如刘未鹏的《暗时间》里所说,哪怕更新频率很低,也应该坚持(从现在开始)写博客,记录有价值的东西(思考的产物),好处多多。我没有大神的气场,只是觉得,就算没人看,作为自己的备忘也不错,侥幸能坚持很久的话,日积月累下也会非常赏心悦目。
为了完成这个课程,我捡回了概率和线代以及统计学的知识,英语对我而言也从一门符号学真正地变成了一门语言,虽然我现在的英语水平还是不怎么样,但是我真正意识到了它的重要性,现在英语对我是有吸引力的,我想要接触和学习它,而不是先前那样我对它有一种先入为主的排斥感。
对我来说学习过程中仅有讲义和授课视频还是不够的,为了寻找更多的资料,我先是找到张雨石的公开课笔记,在惊叹与佩服中学习着,然后在一次无意中点开了他的其他文章,阅读着他平稳中带着精彩的经历,发现这么厉害一个人也在佩服着其他人,也在不断地学习、思考、进步着,那可真是一山更比一山高,这或许也正是他们出色的原因。
在开始这个课程的学习的同时,我也开始在阅读一些使心智变成熟与时间管理这样的书,而在张雨石一年又一年的书单中,我记下了我打算看的书的名字并标上了星级,其中我对《暗时间》这本书的名字十分感兴趣,立刻就下载来看了,结果确实不失所望,作者刘未鹏也是一个非常棒的人,他的个人经历、一些方法论以及后面的对一些实在的算法的分析解读,都让我看得非常开心和佩服,而看完这本《暗时间》之后,我的书单又加长了一些…并且不出所料,他也有比较推崇的人,是一位博客名前缀为g9的大大,而在搜到g9大大的博客,看到“负暄琐话”4个字和他给出的需要解码的email,以及他数量众多的博客之后,我再次窃喜:又是一位牛大啊…
这个课程的意义于我而言不仅仅是获得了课程中的知识那么简单。我仿佛因此打开了许多大门:我不再排斥英语,我开始阅读,我开始思考自身,我主动地学习,我透过博客与书籍接触到了很棒很有趣的人,并为之感到欢喜。我希望自己能够走近他们,最终成为他们之中的一员。
前言
首先是CS229这个课程的安排:http://cs229.stanford.edu/schedule.html
课程分为4个部分,分别是监督学习、学习理论、无监督学习、强化学习与控制。
以及课程资料:http://cs229.stanford.edu/materials.html
资料中包含了课程讲义(相当于课本),作业及解答,复习资料(这里的复习资料指的是此课程所需要的预备知识,包括贯穿全部的线性代数、概率论,SVM部分需要的凸优化知识,还有高斯进程,隐马尔科夫模型),与一些追加材料,大概是一些算法应用的例子和一些要注意的东西。
其中我想在一开始就说明的是,强化学习与控制部分是最后5个教学视频里的内容,但奇怪的是这个部分的讲义却只有一份,对应着第16个视频的内容,仅是马尔科夫过程的简介,往后4个视频里讲解的内容都没有讲义了,我在网上没找到这部分的讲义,后来我小心翼翼地写了一份邮件想要发到上面网页中提供的邮箱请他们把后面的讲义发给我,奈何在翻了墙和换了邮箱的情况下,邮件还是被退回,只好作罢。(求后面的讲义啊…)
接下来是网易公开课的视频:http://open.163.com/special/opencourse/machinelearning.html
这个课程有中文字幕,等于在听老师讲课。这个网页里打包好的课件中讲义、作业与解答是全的,复习资料少了三个,没有追加材料,如果要下载,建议把这个资料包下了,缺的又觉得有必要看的,再到CS229官网去下。
除了课本与授课老师之外,支撑着我完成已有讲义的学习的,还有这两份参考书,两份笔记都与讲义与授课内容高度统一,各有特点
张雨石的机器学习笔记专栏:http://blog.csdn.net/column/details/ml-ng-record.html
这份笔记注重授课内容的复述,可以看成是授课内容的文字版
还有这位JerryLead:http://www.cnblogs.com/jerrylead/default.html?page=3
这份笔记的突出之处在于这里有笔者自己的思考(比如对一些看似很自然的地方提出疑问或者把一些微妙的断点补上)与更高的完成度(Ng有时候会因为时间原因或者课程安排而没有把一些内容说满,这里完成了不少这样的内容)
他们都是我难望项背的人,这两份笔记也都给了我很大的帮助,放在这里没用对比优劣的意思,只是想把这些都记录下来。
1、线性回归(Linear Regression)
1.1、线性回归模型与解决方案
考虑下面的情况,这里给了一个房屋面积和价格的数据表:
并画出其数据:
这时候我们如何预测其他不同面积的房屋的价格?
方案是利用图中的点集拟合出一条合理的曲线(这个问题里拟合一条直线),然后用这条曲线预测新来的房屋的价格。
使用线性回归解决的话,h(Hypothesis)假设函数如下:
hθ(x) 表示函数 h 以
最后边的公式里参数 θ 和输入 x 都被视为向量,即
下面引出要优化的目标函数,同时它也是最小二乘法(Least squears)的成本函数(Cost function):
在上式中, 12 会在求导的过程中被消去,只是为了让式子变得好看点,对直线的拟合工作不产生实际影响。
x 与
hθ(x) 表示利用拟合出来的直线得到的房屋价格的预测值, y 表示房屋价格的实际值,对这个成本函数的直观理解就是——每个房屋的预测值与实际值之差的平方和。
我们的目标
怎么画这条直线 ⟹ 参数 θ 决定
怎么对 θ 取值使预测结果尽量准确 ⟹ 最小化 J(θ) ,使每一个房屋的预测值与实际值之差的平方和最小,即误差最小
这样我们的目标就已经转移到了 minJ(θ) 。
1.2、方案可靠性研究——最小二乘的概率解释
这里有个问题,既然是要让误差最小,为什么不是计算预测值与实际值之差的绝对值 ∣∣hθ(x(i))−y(i)∣∣ 之和呢?
一个是因为比较难算,还有一个就是因为这里有个对 J(θ) 的概率解释。
首先,让我们承认误差的存在,当预测值加上一个误差时,才能得到实际值:
第二,我们假设误差 ϵ 服从正态分布(Normal distribution),也称为高斯分布(Gaussian distribution): ϵ(i) ~ N(0,σ2)
误差服从正态分布这个假设有两个原因,一个是影响误差的因素有很多,这些因素都是随机分布的,但是它们在整体上会趋向于正态分布,另一个是因为在把误差假设为服从正态分布后,相应的工作一般都能取得比较好的效果,虽然它们还是没有非常精确,但是已经足够了。
通过这个假设以及正态分布的公式 f(x)=12π√σexp(−(x−μ)22σ2) ,我们可以得到 ϵ(i) 的概率密度:
再把(4)式代进来,我们可以得到:
p(y(i)∣x(i);θ) 可以读作“给定参数 θ 时,在 x(i) 发生了的情况下, y(i) 发生的概率是多少”。注意里面的分号,分号是用来区别条件与参数的,如果把分号改成了逗号,如 p(y(i)∣x(i),θ) ,此时就应该读作“在 θ 与 x(i) 同时发生的情况下, y(i) 发生的概率是多少”
第三,假设 ϵ(i) 是独立同分布(Independent and identical distribution)随机变量,这样我们就可以引出似然函数(Likelihood function):
y⃗ 是实际值集合的向量, X 是特征的集合,m是样本的数量:
我们回过头来看 L(θ)=L(θ;X,y⃗ ) 这个式子的含义,我读作“ X 和
在这个表达下, X 和
举个例子:有两个箱子,甲箱里有99个白球1个黑球,乙箱里有1个白球99个黑球。参数 θ 是箱子里黑白球的配置比例, X 是摸球这件事,
概率的问法是:从箱子里摸出白球的概率是多少?
答: p(y⃗ ∣X;θ甲)=0.99 , p(y⃗ ∣X;θ乙)=0.01
用似然性的问法是:摸出来一个白球,猜是从哪个箱子里摸出来的?
答:甲箱。为什么?因为甲箱里摸到白球的概率更大。
现在,在 X 和
所以接下来的工作是对 L(θ) 求最大值,同时为了计算方便,我们选择最大化单调递增的 logL(θ) :