线性回归
线性回归输出是一个连续值,因此适用于回归问题。回归问题的实际中很常见,比如房屋价格预测,气温,销售额等连续值的问题。与回归问题不同,分类问题中的模型输出是一个离散值。我们所说的图像分类,垃圾邮件识别,疾病监测等输出为离散值的问题都属于分类问题的范畴。sofamax回归则适用于分类问题。
由于线性回归和softmax回归都是单层神经网络,它们涉及的概念和技术同样适用于大多数的深度学习模型。首先我们以线性回归为例,介绍大多数深度学习模型的基本要素和表示方法。
线性回归的基本要素
我们以一个简单房屋价格预测作为例子来解释线性回归的基本要素。这个应用的目标是预测一栋房子的售出价格(元)。 我们知道这个价格取决于很多因素,如房屋状况,地段,市场行情等。为了简单起见,这里我们假设房屋价格只取决于房屋的状况的两个 因素,即面积(平方米) 和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。
模型定义
设房屋的面积为x1,房龄为x2,售出价格为y,我们需要建立基于输入x1和x2来计算输出 y的表达式,也就是模型(model),线性回归假设输出与输入质检的线性关系:
其中w1,w2是权重(weight),b是变差(bias),且均为标量。它们是线性回归模型的参数 parameters。模型的输出y^是线性回归对于真实价格y的预测或估计。我们通常允许它们之 间有一定的误差。
训练模型
需要通过数据来寻找特定的模型参数值,似的模型在数据上的误差尽可能小。这个过程叫作模型训练(model training) 。训练模型的三个要素
(1) 训练数据
我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们的对应的面积和房龄。 我们希望在数据上寻找模型参数去使模型的预测价格和真实价格的误差最小。在机器学习的术语 中,该数据集被称为训练数据集(training data set)或者traing set,一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label) ,用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。
假设我们采集的样本数为n,索引为i的样本的特征为$$x_{ 1 }{( i )}和x _ { 2 } ^ { ( i ) } ,标签是{( i )}$$。对于索引为i的房屋,线性回归模型的房屋价格预测表达式为
(2) 损失函数
在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们选取一个非负值作为一个误差,且数值越小表示误差越小。一个常用的选择是平方函数。它的评估索引为i的样本误差的表达式为
\ell \left( w _ { 1 } , w _ { 2 } , b \right) = \frac { 1 } \sum _ ^ \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) = \frac { 1 } \sum _ ^ \frac { 1 } { 2 } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) ^ { 2 }
\begin { w _ { 1 } \leftarrow w _ { 1 } - \frac { \eta } { | \mathcal | } \sum _ { i \in \mathcal } \frac { \partial \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) } { \partial w _ { 1 } } = w _ { 1 } - \frac { \eta } { | \mathcal | } \sum _ { i \in \mathcal } x _ { 1 } ^ { ( i ) } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) } \ { w _ { 2 } \leftarrow w _ { 2 } - \frac { \eta } { | \mathcal | } \sum _ { i \in \mathcal } \frac { \partial \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) } { \partial w _ { 2 } } = w _ { 2 } - \frac { \eta } { | \mathcal | } \sum _ { i \in \mathcal } x _ { 2 } ^ { ( i ) } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) } \ { b \leftarrow b - \frac { \eta } { | \mathcal | } \sum _ { i \in \mathcal } \frac { \partial \ell ^ { ( i ) } \left( w _ { 1 } , w _ { 2 } , b \right) } { \partial b } = b - \frac { \eta } { | \mathcal | } \sum _ { i \in \mathcal } \left( x _ { 1 } ^ { ( i ) } w _ { 1 } + x _ { 2 } ^ { ( i ) } w _ { 2 } + b - y ^ { ( i ) } \right) } \end