什么是机器学习
Tom定义的机器学习是,一个好的学习问题定义如下,他说,一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。在下棋任务中,经验E 就是程序上万次的自我练习的经验而任务T 就是下棋。性能度量值P是指它在与一些新的对手比赛时,赢得比赛的概率。在垃圾邮件识别任务中,任务T是识别垃圾邮件,经验E是被标记为垃圾的邮件,性能度量P是指被划分为垃圾邮件的准确率.
监督学习和无监督学习
- 监督学习是通过带有标签的数据集训练算法,根据这些结果进行预测;(eg. 肿瘤预测(预测结果为离散值——分类问题)、房价预测(预测结果为连续值——回归问题))
测验:
假设你经营着一家公司,你想开发学习算法来处理这两个问题:
- 你有一大批同样的货物,想象一下,你有上千件一模一样的货物等待出售,这时你想预测接下来的三个月能卖多少件?(回归问题,预测结果为连续值)
- 你有许多客户,这时你想写一个软件来检验每一个用户的账户。对于每一个账户,你要判断它们是否曾经被盗过? (分类问题,预测结果为被盗过和为被盗过两种)
- 无监督学习是给机器一组不带有标签的训练集,让机器自己学习算法,从数据中找出某种结构或规律;无监督学习中没有任何的标签或者是有相同的标签(谷歌新闻的分类、Email分组、市场划分——聚类)
单变量线性回归
模型表示
根据房屋尺寸(x)预测房屋价格:通过训练集拟合出一条直线,只有一个变量x,所以是单变量线性回归。选择合适的参数,便可以对数据进行预测了。
代价函数
的选择直接决定了模型的准确程度。模型的预测结果与真实结果的差距就是建模误差。
代价函数(平方误差代价函数)可以表示为:
是解决回归问题的常用手段。常用的方法有梯度下降法和正规方程法。当特征变量的数量较小时,可以直接采用正规方程法替代梯度下降法。
批量梯度下降(banch gradient descent)
梯度下降方法是找到函数下降最快的方向(即:梯度最大的方向的反方向),寻找函数最优解的方法。
当选取不同的初始参数值,得到的局部最优解可能不同。
更新公式:repeat until convergence {
(单样本)
(多样本)
}
训练集数据量大时,计算耗时很严重,BGD不适用,提出随机梯度下降(Stochastic gradient descent):
repeat until convergence {
for j=1 to m {
(每次更新所有参数只用一个样本)
}
}
特征缩放
面对多维特征问题,当这些特征具有相近的尺度时,有助于梯度下降算法更快的收敛。
在特征尺度严重不平衡的情况下,绘制的代价函数的等高线趋于扁平,在迭代过程中,迭代算法求最优解路径趋于“之字形”。
解决方案:将所有特征的尺度都尽量缩放到-1到1之间。
学习率
梯度下降算法的每次迭代受到学习率的影响,如果学习率过小,则达到收敛所需的迭代次数会非常高;如果学习率过大,迭代过程中可能会越过局部最小值导致无法收敛。
其他一些求最优解的方法:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS)
正规方程法
推导过程见http://www.ai-start.com/ml2014/html/week2.html#header-n5
参考:http://www.ai-start.com/ml2014/html/week1.html#header-n248