机器学习课程笔记-1
2017-02-26
Notes about Andrew Ng's Machine Learning course on Coursera-part 1
原创文章,转载请注明:转自Luozm's Blog1. What is Machine Learning?
-
Arthur Samuel described it as: “the field of study that gives computers the ability to learn without being explicitly programmed.” This is an older, informal definition.
-
Tom Mitchell provides a more modern definition: “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$ 得到了提高,那么它就是机器学习。
举例:下棋
- $E$ = 下很多盘棋的经验
- $T$ = 下棋的任务
- $P$ = 程序在下一局中获胜的概率
2. Supervised Learning
监督学习:给定已知正确输出的数据集,来发现输入和输出之前的关系。
监督学习中的问题分为两类:
-
回归问题Regression (Prediction)
输出是连续的,目标是把输入映射到连续函数上。
Q:映射函数是否需要全部连续?
-
分类问题Classification
输出是离散的,把输入映射到离散的分类中。
3. Unsupervised Learning
非监督学习:可以解决未知输出或已知输出很少的问题,从未知变量效果的数据中提取结构,没有基于预测结果的反馈。
聚类Clustering
例子:Cocktail party problem algorithm(分离一段对话中不同人的声音)
4. Model Representation
记号:
- $m$ = 训练样本数(Training examples)
- $x$ = 输入变量/特征(features)
- $y$ = 输出变量/目标变量(targets)
- $X$ = 输入值空间
- $Y$ = 输出值空间
- $x^{(i)}, y^{(i)}$ = 第$i$个样本的输入和输出
- $(x^{(i)} , y^{(i)})$ = 第$i$个训练样本
- $(x^{(i)} , y^{(i)} )(i = 1,\dots, m)$ = 训练集
- $h$ = 假设函数(hypothesis),即学习的目标函数$h_\theta(x)$
5. Cost Function
损失函数:表示预测值与实际值的误差。
训练目标即选择合适的参数来最小化损失函数。(梯度下降,最优化问题) (参数估计?)
上式中的$\frac{1}{2}$是为了之后训练梯度下降算法的方便。
Squared error function = Mean squared error (MSE)
6. Gradient Descent
梯度下降:常用训练算法求解最小化损失函数的参数。
-
算法:
重复直到收敛{
}
其中$\alpha$为学习率,控制训练的步长。(过小则迭代时间太长;过大则可能跳过最小值,不会收敛)
注意:一次迭代中必须同时更新每个参数,而不能一次迭代只更新一个参数
-
算法描述:每次训练沿着梯度最大的方向前进,直到达到目标精度(收敛),结束迭代。
-
算法局限:只能得到局部最优解,而不是全局最优解。
举例:线性回归模型
在线性回归中,损失函数总是一个凸函数(Convex function),所以使用梯度下降算法可以得到全局最优解。
求偏导之后更新式子简化为:
其中 $x_{ij}$ 表示第 $i$ 个训练样本的第 $j$ 个特征,$x_{i0}=1(i=1,\dots,m)$。
上面使用的梯度下降算法具体为:Batch Gradient Descent。其中,”Batch”指的是每步梯度下降使用全部训练样本。
还有其他版本的梯度下降算法不使用全部训练样本,而是每次使用一部分。