机器学习是什么?
定义一:机器学习是无需显式编程就能使得计算机自主学习的学科。
定义二:如果计算机随着经验E的积累,在任务T上用标准P衡量的表现越来越好,那么可以说计算机正在学习。
应用实例
- 数据挖掘
- 不能够用手写代码实现的应用,比如无人驾驶。
分类
主要分类:
- 监督学习
- 无监督学习
其他:
3. 强化学习
4. 推荐系统
监督学习
意即给出一个算法,需要部分数据集已经有正确答案,换句话说数据集中的数据需要有对应的结果(训练集)。
回归
回归问题,对于连续值进行预测。比如房价预测问题。
分类
分类问题,预测离散值输出,可以有两种以上的类。比如根据肿瘤大小预测是否为良性肿瘤。
无监督学习
无监督学习中所有样本都是一样的,没有标签和分类,我们提前并不知道数据可以分成哪些类型。
聚类
例子:
谷歌新闻,将相同类型的新闻分成同一组。
回归
根据以前的数据预测出准确的输出值。
符号表示
m | 样本数目 |
---|---|
x | 输入值,即feature |
y | 输出值,即目标变量 |
(x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i)) | 第i个样本数据 |
工作原理
特征值经过hypothesis函数的映射得到目标变量,因此我们的目标就是找到一个hypothesis函数。
单变量线性回归
定义h函数:hθ(x)=θ0+θ1xh_{\theta}(x)=\theta_0+\theta_1xhθ(x)=θ0+θ1x
模型参数
θ0\theta_0θ0,θ1\theta_1θ1
代价函数
我们的目标是选择最优的模型参数使得预测结果最接近真实的y值。
数学化上述目标,可以得到以下目标函数:
minθ0,θ112m∑i=1m(hθ(x(i))−y(i))min_{\theta_0,\theta_1} \frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})minθ0,θ12m1∑i=1m(hθ(x(i))−y(i))
所以得到代价函数:
J(θ0,θ1)=12m∑i=1m(hθ(x(i))−y(i))J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})J(θ0,θ1)=2m1∑i=1m(hθ(x(i))−y(i))
此代价函数又被称为平方误差函数,在线性回归问题中常常用。
这里的12m\frac{1}{2m}2m1是为了数学上求导比较简单。
我们需要算法来自动查找使得代价函数最小的参数。
梯度下降
梯度下降方法用于最小化代价函数。
思想
- 初始化(θ0,θ1)(\theta_0,\theta_1)(θ0,θ1)
- 一点点调节θ\thetaθ的值,知道找到JJJ(损失函数)的最小值。
这里调节的方式,有点类似于贪心算法,在这一点上选择下降最快的方向。
但是有一个非常大的问题,就是从不同的点出发很容易得到不同的解,被局部最优解给困住。