目录
一、概述
⾸先介绍⼀些核⼼组件。⽆论什么类型的机器学习问题,都会遇到这些组件:
1. 可以⽤来学习的数据(data);
2. 如何转换数据的模型(model);
3. ⼀个⽬标函数(objective function),⽤来量化模型的有效性;
4. 调整模型参数以优化⽬标函数的算法(algorithm)。
二、线性分类与感知机
2.1 线性回归
定义:利用数理统计中回归分析,来确定两种或两种以上变量间相 互依赖的定量关系的一种统计分析方法
示例:
线性回归要素:
训练集(training set)或者训练数据 (training data), 是我们流程中的输入数据,一般称为x
输出数据,一般称为y
拟合的函数(或者称为假设或者模型):一般写做 y = ℎ(x); 如果是直线,则为y = kx + b
训练数据的条目数(#training set):一条训练数据是由一对输入数据和输出数据组成的,输入数据的维度n (特征的个数, #features)
学习过程
损失函数
在我们开始考虑如何⽤模型拟合(fit)数据之前,我们需要确定⼀个拟合程度的度量。
损失函数(loss function) 能够量化⽬标的实际值与预测值之间的差距。通常我们会选择⾮负数作为损失,且数值越⼩表⽰损失越⼩, 完美预测时的损失为0。回归问题中最常⽤的损失函数是平⽅误差函数。当样本i的预测值为yˆ (i),其相应的真 实标签为y (i)时,平⽅误差可以定义为以下公式:
2.2 线性分类
定义:线性分类器则透过特征的线性组合来做出分类决定,以达到 此种目的。简言之,样本通过直线(或超平面)可分。
线性分类器输入:特征向量
输出:哪一类。
如果是二分类问题,则为0和1,或者是属于某类的 概率,即0-1之间的数。
线性分类与线性回归差别:
输出意义不同:属于某类的概率回归具体值
参数意义不同:最佳分类直线最佳拟合直线
维度不同:前面的例子中,一个是一维的回归,一个是二维的分类
随机梯度下降
即使在我们⽆法得到解析解的情况下,我们仍然可以有效地训练模型。在许多任务上,那些难以优化的模型 效果要更好。因此,弄清楚如何训练这些难以优化的模型是⾮常重要的。
我们⽤到⼀种名为梯度下降(gradient descent)的⽅法,这种⽅法⼏乎可以优化所有深度学习模型。 它通过不断地在损失函数递减的⽅向上更新参数来降低误差。
梯度下降最简单的⽤法是计算损失函数(数据集中所有样本的损失均值)关于模型参数的导数(在这⾥也可 以称为梯度)。但实际中的执⾏可能会⾮常慢:因为在每⼀次更新参数之前,我们必须遍历整个数据集。因此, 我们通常会在每次需要计算更新的时候随机抽取⼀⼩批样本,这种变体叫做⼩批量随机梯度下降(minibatch stochastic gradient descent)。
在每次迭代中,我们⾸先随机抽样⼀个⼩批量B,它是由固定数量的训练样本组成的。然后,我们计算⼩批 量的平均损失关于模型参数的导数(也可以称为梯度)。最后,我们将梯度乘以⼀个预先确定的正数η,并从 当前参数的值中减掉。 我们⽤下⾯的数学公式来表⽰这⼀更新过程(∂表⽰偏导数):
总结⼀下,算法的步骤如下:
(1)初始化模型参数的值,如随机初始化;
(2)从数据集中随机抽取⼩批量样本且在负梯度的⽅向上更新参数,并不断迭代这⼀步骤。
2.3 感知机模型
感知机原理
总结
目标定位:常用的定位方法有边界框定位和特征点定位;同时,定位问题与分类问题的区别无非在神经网络的输出环节多输出了 几个数字用于传达更多的信息。
目标检测:常用的方法有滑动窗口算法和YOLO算法。YOLO算法改 善了滑动窗口边界框定位不准的问题,同时运算效率高,甚至可用于实时检测。