最近在跟Stanford大学放在Coursera上的机器学习课程,讲师是著名的华人Andrew Ng. 这是我见过为数不多的为期10个星期的课程,而且每个星期巨大的工作量也是罕见。
今天我想在继续学习之前稍微复习一下学过的内容,把前3周的内容用博客文章的形式整理一遍。
机器学习大致分为两类:supervised learning和unsupervised learning,我自行翻译一下是自发学习和非自发学习,虽然顺序颠倒了一下。
- Supervised Learning主要是回归分析(regression),用来预测连续的量
- Unsupervised Learning被称为“分类”(classification),用来处理离散的0或1问题;这种学习方式是算法自发进行的学习,可以找到一组数据中的结构,Andrew举了一个例子,用unsupervised learning可以区分不同音轨
一些课程中用到的符号表示,Andrew意思是这些符号在普遍的机器学习使用中都有运用,所以这里还是提及一下。
Notation | Meaning |
---|---|
m | 样本的数量 |
x | 输入 |
y | 输出 |
(x, y) | 单次训练 |
(x(i),y(i)) | 第 i 个训练集合 |
机器学习大概的模型是一组训练集,经过了算法的处理得到输出,主要过程如下图所示:
x(input) -> h -> y(output)
其中h是hypothesis 的意思,当
下面介绍了cost function和gradient descent(梯度下降法)。
Cost Function:
而Gradient Descent就是一种最小化Cost Function的方法,找到使得cost最小的 θ0,θ1 的值,或者说向量 θ 的值,课程给我一个印象就是向量化非常重要。
具体执行Gradient Descend的时候步骤是这样的:先从某个选定的
θ0,θ1
开始,不断改变他们俩的值从而减小cost,直到达到最小值。如何改变,课程里运动了求偏导数,可能就是求梯度的方法:
一个正确的Gradient Descend过程应该在每次改变 θ 值后cost都能减小,越往后减小的量越小,最终收敛于某个值,这就是我们想要的最小值。