什么是机器学习?
机器学习是一个研究领域,它使得计算机在没有明确编程的情况下学习。Tom Mitchell给出了更加现代化的定义:如果计算机程序在任务 T 中的性能(以 P 衡量)随着经验 E 提高,则称该计算机程序从经验 E 中学习某些类别的任务 T 和性能度量 P。
eg:下棋
T = 进行一盘棋的对弈
P = 从对局中获胜
E = 多次对局的经验
一般而言,机器学习可分为两类,即监督学习与无监督学习。
监督学习
在监督学习中,我们获得一组数据集包含输入输出,并且可以正确评定输出的正确性。
监督学习可以根据输出结果划分成“回归”和“分类”问题。
在回归问题中,输出结果通常是连续的,并且通过将输入输出之间联系找到函数进行映射。在分类问题中,输出结果通常是离散的,需尝试通过输入变量映射到离散分类中。
eg:
预测天气湿度变化应考虑回归问题,预测是否为雨天应考虑分类问题。
无监督学习
在无监督学习中,我们需要在无法预测结果中解决问题,不是基于预测结果的反馈。通常情况下,我们可以从数据推导出结构,但无法明确变量的影响。我们可以基于数据中变量之间的关系进行聚类分析,从而推导出结构。
eg:
聚类:收集一组或多组消费者的消费记录,并根据消费者的消费水平各个指标进行分组,可以预测购物偏好及购买能力。
非聚类:“鸡尾酒会算法”,可让您在混乱的环境中找到结构。(即从鸡尾酒会上的声音网中识别个人声音和音乐)。
模型和成本函数
为了稍微更正式地描述监督学习问题,我们的目标是,给定一个训练集,学习一个函数 h:X → Y,h(x) 是计算机通过学习和训练后得出比较好的预测函数,其中X = Y = ℝ。
成本函数可以用来衡量预测函数的准确性,这往往是通过真实数据进行对应,得出结果的平均差异。
,平均值减半是为了进行梯度下降时求导。
成本函数是为了可以得到更好的预测函数,因此需要成本函数来引导新的预测函数。成本函数最小化为第一目标。
参数学习
梯度下降通过预估预测函数中的参数进行调整,从而减低对成本函数进行绘制预测参数的成本。以二元线性回归问题为例,成本函数绘制如下:
梯度下降的过程如同图中星星沿着下坡路进行移动。
当我们的成本函数位于图中坑的最底部时,即当它的值是最小值时,我们就会知道我们已经成功了。红色箭头显示图中的最小点。
我们这样做的方法是取我们的成本函数的导数(函数的切线)。切线的斜率是该点的导数,它将为我们提供前进的方向。我们在下降最陡的方向上降低成本函数。每一步的大小由参数α决定,称为学习率。
梯度下降公式:
我们应该调整我们的参数 α 保证梯度下降算法在合理的时间内收敛。未能收敛或获得最小值的时间过长意味着我们的步长是错误的。