Supervised Machine Learning Regression and Classification - Week 1

1. 机器学习定义

Field of study that gives computers the ability to learn without being explicitly programmed. -- Arthur Samuel(1959)


如果只能进行少数训练,该模型将比同等情况下,进行大量训练的表现更差。

机器学习最常用的两种类型:

  • 监督学习(Supervised Learning)
    现实世界中应用最为广泛,涵盖于本课程第一、第二部分
  • 非监督学习(Unsupervised Learning)
    涵盖于本课程第三部分
  • 强化学习(Reinforcement Learning)
    本课程暂不多作介绍。

2. 监督学习

监督学习的关键特征是给予学习算法一些示例去学习,包括正确的和错误的示例。

2.1 回归(Regression)

根据图中所展示的相应数据点,简单粗暴给出一条拟合的直线也能给出预测。
但若是能够拟合一条曲线,相比于直线能更符合现有数据的表现,即预测的 label 会更加精确。
因此对于回归问题,我们需要决定是拟合直线、曲线、还是一些更复杂的其他函数。

  • 我们可以理解监督学习:
    learn to predict input, output or X to Y mapping.
  • 我们可以定义回归:
    Regression: Predict a number out of infinitely many possible outputs.

2.2 分类(Classification)


示例的肿瘤检测,是一个二分类问题,即只需要判断为 0/1,代表良性/恶性。

以此进行推广,我们可以判断一个多分类问题,在此处为判断 0/1/2。
上述例子只使用了一个特征,我们可以使用更多的输入值(two or more inputs)进行判断,如添加年龄属性。

现实生活中我们处理分类问题时,往往需要使用许多特征(inputs)进行判断。

  • 我们可以定义分类:
    Classification: predict categories which can be small finite number of possible outputs

2.3 小结

3. 非监督学习(Unsupervised Learning)


对于监督学习,相应的数据集中我们可以得到每条样例数据对应的标签(label);而在非监督学习中,不存在这样一个标签(label)。
这意味着我们可能需要使用算法去自行寻找一个标签,或者我们可以使用样例数据进行探索,自行发现规律。

3.1 聚类(Clustering)


聚类是获取没有标签的数据集,并尝试将它们自动分组到集群中。
如图所示,我们可能可以将顾客划分为三类群体。

3.2 另两种非监督学习方法

  • 聚类(Clustering)
    Group similar data points together.
  • 异常检测(Anomaly Detection)
    Find unusual data points.
  • 降维(Dimensionality reduction)
    Compress data using fewer numbers.

4. 线性回归(Linear Regression)

线性回归是回归的一个例子,它搭建一个线性模型,从而预测回归问题。

这里我们可以回顾一下概念

  • 回归模型(Regression model)predicts numbers
    Infinitely many possible outputs
  • 分类模型(Classification model)predicts categories
    Only small number of possible outputs

4.1 机器学习中常用术语(terminology)

术语 说明
Training Set 训练集,即 Data used to train the model
x 输入变量,即 input variable,或 feature
y 输出变量,即 output variable,或 target
m 训练集样本数量,即 number of training examples
(x, y) 单个训练样本,即 single training example
(x(i),y(i)) 第 i 个训练样本,即 i(th) training example
y^ 预测标签,即 estimated output
parameter 模型的参数,即 the variables you can adjust during training in order by improve the model

4.2 函数表达

总得来说,借用机器学习的技术,我们将训练集数据结合相应的学习算法,从而生成一个函数f,以此表达输入变量与输出变量间的关系。从而,对任意给定的输入变量,我们可以借助 f 输出一个预测的输出变量(estimated)。

此处我们假设 f 为一个线性函数,它包括两个参数,w 代表权重(weights),b 表示偏差(bias)。
完整的表述如下:

fw,b(x)=wx+b

实际使用时常简述为:

f(x)=wx+b

如上这种只有一个变量 x 的线性回归,称作单变量线性回归(univariate linear regression),后续我们会接触具有更多变量的线性回归,称为多变量线性回归。

4.3 代价函数(Cost function)

w 和 b 的取值可以有任意个,那究竟什么样的取值更符合我们的数据集,或者说更符合我们希望搭建的模型,我们需要相应的评价指标,即从任意取值中选取最优的取值。
以此我们可以定义线性回归的代价函数,即我们希望搭建的模型最符合我们想要的结果,预测的输出值与给定的输出值差异最小。

Cost function: Squared error cost functionJ(w,b)=12mi=1m(y^(i)y(i))2J(w,b)=12mi=1m(fw,b(x(i))y(i))2

这里的 y^(i)y(i) 即为第 i 条样例数据对应的预测的输出值与给定的输出值的差异(error)。
为了避免代价函数取值过大,我们将每个样例数据的差异取平均处理。
这里对误差项取 12 的目的是为了方便求导,去除 12 也不影响代价函数的表达。

4.3.1 代价函数的直观理解


代价函数的目的是为模型找到一组合适的参数,从而使得拟合结果最符合数据表现,拟合得到的差异(error)最小。
即对于模型 fw,b(x)=wx+b,找到相应的参数 w、b,目标是最小化代价函数 J(w,b)

这一部分主要是详细示范了,在 b=0 的情况下,不同参数 w 的选择给代价函数带来的影响。

4.3.2 代价函数的可视化


对于线性回归,代价函数是一个碗状的凸函数,这意味着存在全局最小值。

4.4 梯度下降(Gradient Descent)

梯度下降是极为常见的优化方法。
对于线性回归的代价函数 J(w,b),我们想要使得 J(w,b) 最小化。
实际上梯度下降可以推广至任意函数的优化问题上,如 minw1,...,wn,bJ(w1,w2,...,wn,b)
算法大致步骤如下:

  1. 初始化w,b(如设置为 0,0)
  2. 改变 w,b的取值,以使得 J(w,b) 减少
  3. J(w,b) 达到或接近最小值时停止


如图,可以理解成为站在山顶,每一次都朝着下山最快的方向走一小步,直至达到当前路径下的最低点。
需要注意的是,梯度下降不能保证可以达到全局最小值,有可能会陷入局部最优(local minima)。这需要依照损失函数的具体情况进行考虑。

4.4.1 梯度下降算法(Algorithm)

So far in this course, you have developed a linear model that predicts fw,b(x(i)):

(1)fw,b(x(i))=wx(i)+b

In linear regression, you utilize input training data to fit the parameters w,b by minimizing a measure of the error between our predictions fw,b(x(i)) and the actual data y(i). The measure is called the cost, J(w,b). In training you measure the cost over all of our training samples x(i),y(i)

(2)J(w,b)=12mi=0m1(fw,b(x(i))y(i))2

In lecture, gradient descent was described as:

repeat until convergence:{(3)w=wαJ(w,b)wb=bαJ(w,b)b}

where, parameters w, b are updated simultaneously.
The gradient is defined as:

(4)J(w,b)w=1mi=0m1(fw,b(x(i))y(i))x(i)(5)J(w,b)b=1mi=0m1(fw,b(x(i))y(i))

Here simultaniously means that you calculate the partial derivatives for all the parameters before updating any of the parameters.
因为代价函数存在两个参数 w 与 b,因此在每一次朝着梯度最大方向移动时,这两个参数需要保持同时更新,即在进行下一次移动前更新 w 和 b。

4.4.2 学习率(learning rate)

这里引入新的概念:

  • 学习率(Learning Rate)
    α 表示,可以理解成为朝着梯度最大的方向,移动时每梯度的单位距离。
    J(w,b)w 为当前梯度大小
    αJ(w,b)w 二者相乘,即为每次移动的实际步长。

  • 如果学习率太小,每次移动的步长会很小,从而代价函数收敛太慢
  • 如果学习率太大,每次移动的步长太大,可能会在最小值周围反复横跳,无法收敛到最小值

当处于代价函数的局部极小值(local minimum)时,该点对应偏导数为0,从而参数 w 将不再更新。
但这也使得代价函数无法优化至全局最小值(global minimum)。

4.4.3 用于线性回归的梯度下降


这一步主要介绍对应公式的推导过程。
接下来补充了一个新的概念:

  • 批梯度下降(batch Gradient Descent)
    每次更新参数时,都需要使用全部的训练数据,即为 m 条训练数据都需要参与代价函数的计算,这会使得计算量大大增加。
    each step of gradient descent, uses all the training examples.

5. Optional Lab


课后代码中展示了一个样例,在梯度下降过程中 w 与 b 的变化趋势。
这很符合我们的直观理解,即随着参数的更新,代价函数逐渐降低至极小值。

posted @   星宇SKY  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示