无名之人,希望自己能够踏踏实实地努力,在进步的路上看清自己的每一个脚印。
Coursera上面的机器学习课程是由Stanford大学的Andrew Ng(中文名:吴恩达)老师教授的。之前并不了解他,也是跟着上了这门课程后才知道这么个牛人。下面是第一周机器学习的笔记整理。
课程材料中提到了Arthur Samuel给机器学习的定义,比较通俗却不严谨:
The field of study that gives computers the ability to learn without being explicitly programmed.
研究不经精确编程而使得计算机具有学习能力的领域。
Tom Mitchell提供了更为现代的定义:
A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
一个电脑程序,如果它执行任务T的性能(由P来评估)通过经验E得到了提升,则可以说:就某些种类的任务T和性能评估P而言,此程序能够从经验E中学习。
举个栗子:西洋棋游戏。
在监督式学习supervised learning中,对于已知的数据集,我们已经知道正确的输入应该是什么样的,并且已知输入和输出之间存在某种关系。主要可分为回归Regression和分类Classification。
举个栗子:
回归 - 根据已有房子面积和房子价格的数据集,预测某个房子的价格;
分类 - 同样的数据集,将输出更改为“房子的价格是否比购房子提出的价格高或低”。
在非监督式学习unsupervised learning中,我们对输出结果所知甚少,或者一无所知。在过程中,并没有预测结果以获得反馈。比如,我们可以通过聚类从输入变量之间的关系中获得结构。这里不举栗子了,栗子好沉。
单变量线性回归 - Univariate linear regression,通过单一输入变量预测单一输出值。因此需要根据数据集求取输出变量和输入变量的函数表达式。
单变量线性回归的假设函数的一般形式为:
损失函数能够评价假设函数的准确度,其一般形式为:
因此,可以用梯度下降法进行最优化。
通过对损失函数进行求导,使导数为0的 θ0,θ1 就是最优解。在实际计算时采用梯度下降法,其方程式为:
重复下式直至收敛:
一些解释:
将上面这些结合一下,可得到针对单变量线性回归的梯度下降法:
重复下式直至收敛:
在进行计算时一定要按照上述步骤进行计算,即同步更新,根据上次迭代得到的( θ0,θ1 )分别计算 temp0,temp1 ,然后再赋值给( θ0,θ1 )。
不过,在实际计算中,需要多次尝试才能获得较好的学习速率 α 。一般(举个栗子)以(0.01, 0.03, 0.1, 0.3, 1, …)对 α 进行尝试。一种直观的方法是,在计算的过程中plot某个 α 下 J(θ) 与迭代次数的图像,以观察收敛好坏,例如图2.2所示:
图2.2 某个 α 下损失函数VS迭代次数
版权声明:署名-非商业性使用-相同方式共享 3.0 中国大陆 (CC BY-NC-SA 3.0 CN)
发表日期:2016年4月14日