深度学习入门:线性回归模型
Posted JeckXu666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习入门:线性回归模型相关的知识,希望对你有一定的参考价值。
文章目录
单层神经网络一
因为工作需求需要接触到深度学习知识,导师推荐了一本书用来入门:《动手学深度学习(PyTorch版)》
在此处记录一下学习内容以及学习总结,文章以原作者书籍为基础,插入一些自己的总结与心得做参考(高亮部分),喜欢阅读原文的可以访问原文链接:动手学深度学习(PyTorch版)
入门深度学习先认识一个单层神经网络-线性回归模型
线性回归模型
线性回归输出是一个连续值,因此适用于回归问题。回归问题在实际中很常见,如预测房屋价格、气温、销售额等连续值的问题。与回归问题不同,分类问题中模型的最终输出是一个离散值。我们所说的图像分类、垃圾邮件识别、疾病检测等输出为离散值的问题都属于分类问题的范畴。softmax回归则适用于分类问题。
由于线性回归和softmax回归都是单层神经网络,它们涉及的概念和技术同样适用于大多数的深度学习模型。我们首先以线性回归为例,介绍大多数深度学习模型的基本要素和表示方法。
线性回归是经典的单层神经网络,以此为例子进行讲解
1. 线性回归的基本要素
我们以一个简单的房屋价格预测作为例子来解释线性回归的基本要素。这个应用的目标是预测一栋房子的售出价格(元)。我们知道这个价格取决于很多因素,如房屋状况、地段、市场行情等。为了简单起见,这里我们假设价格只取决于房屋状况的两个因素,即面积(平方米)和房龄(年)。接下来我们希望探索价格与这两个因素的具体关系。
1.1 模型定义
设房屋的面积为
x
1
x_1
x1,房龄为
x
2
x_2
x2,售出价格为
y
y
y。我们需要建立基于输入
x
1
x_1
x1 和
x
2
x_2
x2 来计算输出
y
y
y 的表达式,也就是模型(model)。顾名思义,线性回归假设输出与各个输入之间是线性关系:
y
^
=
x
1
w
1
+
x
2
w
2
+
b
\\hat{y} = x_1 w_1 + x_2 w_2 + b
y^=x1w1+x2w2+b
其中
w
1
w_1
w1 和
w
2
w_2
w2 是权重(weight),
b
b
b 是偏差(bias),且均为标量。它们是线性回归模型的参数(parameter)。模型输出
y
^
\\hat{y}
y^ 是线性回归对真实价格
y
y
y 的预测或估计。我们通常允许它们之间有一定误差。
模型就是输入与输出的估测函数关系,线性回归的模型由他名字可知:线性的函数关系,标红处权重和偏差是很重要的概念,先Mark一下!
1.2 模型训练
接下来我们需要通过数据来寻找特定的模型参数值,使模型在数据上的误差尽可能小。这个过程叫作模型训练(model training)。下面我们介绍模型训练所涉及的3个要素。
模型训练就是输入数据集以一定的方式进行训练,训练过程中对模型的参数数据进行迭代
(1) 训练数据
我们通常收集一系列的真实数据,例如多栋房屋的真实售出价格和它们对应的面积和房龄。我们希望在这个数据上面寻找模型参数来使模型的预测价格与真实价格的误差最小。在机器学习术语里,该数据集被称为训练数据集(training data set)或训练集(training set),一栋房屋被称为一个样本(sample),其真实售出价格叫作标签(label),用来预测标签的两个因素叫作特征(feature)。特征用来表征样本的特点。
假设我们采集的样本数为
n
n
n,索引为
i
i
i 的样本的特征为
x
1
(
i
)
x_1^{(i)}
x1(i) 和
x
2
(
i
)
x_2^{(i)}
x2(i),标签为
y
(
i
)
y^{(i)}
y(i)。对于索引为
i
i
i 的房屋,线性回归模型的房屋价格预测表达式为
y
^
(
i
)
=
x
1
(
i
)
w
1
+
x
2
(
i
)
w
2
+
b
\\hat{y}^{(i)} = x_1^{(i)} w_1 + x_2^{(i)} w_2 + b
y^(i)=x1(i)w1+x2(i)w2+b
模型训练的第一大要素:有效的训练集,输入到模型里面,得到一个输出,与训练集中正确的数值对比
(2) 损失函数
在模型训练中,我们需要衡量价格预测值与真实值之间的误差。通常我们会选取一个非负数作为误差,且数值越小表示误差越小。一个常用的选择是平方函数。它在评估索引为 i i i 的样本误差的表达式为
ℓ ( i ) ( w 1 , w 2 , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 \\ell^{(i)}(w_1, w_2, b) = \\frac{1}{2} \\left(\\hat{y}^{(i)} - y^{(i)}\\right)^2 ℓ(i)(w1,w2,b)=21(y^(i)−y(i))2
其中常数 1 2 \\frac 1 2 21 使对平方项求导后的常数系数为1,这样在形式上稍微简单一些。显然,误差越小表示预测价格与真实价格越相近,且当二者相等时误差为0。给定训练数据集,这个误差只与模型参数相关,因此我们将它记为以模型参数为参数的函数。在机器学习里,将衡量误差的函数称为损失函数(loss function)。这里使用的平方误差函数也称为平方损失(square loss)。
通常,我们用训练数据集中所有样本误差的平均来衡量模型预测的质量,即
ℓ ( w 1 , w 2 , b ) = 1 n ∑ i = 1 n ℓ ( i ) ( w 1 , w 2 , b ) = 1 n ∑ i = 1 n 1 2 ( x 1 ( i ) w 1 + x 2 ( i ) w 2 + b − y ( i ) ) 2 \\ell(w_1, w_2, b) =\\frac{1}{n} \\sum_{i=1}^n \\ell^{(i)}(w_1, w_2, b) =\\frac{1}{n} \\sum_{i=1}^n \\frac{1}{2}\\left(x_1^{(i)} w_1 + x_2^{(i)} w_2 + b - y^{(i)}\\right)^2 ℓ(w1,w2,b)=n1i=1∑nℓ(i)(w1,w2,b)=n1i=1∑n21(x1(i)w1+x2(i)w2+b−y(i))2
在模型训练中,我们希望找出一组模型参数,记为 w 1 ∗ , w 2 ∗ , b ∗ w_1^*, w_2^*, b^* w1∗,w2∗,b∗,来使训练样本平均损失最小:
w 1 ∗ , w 2 ∗ , b ∗ = arg min w 1 , w 2 , b ℓ ( w 1 , w 2 , b ) w_1^*, w_2^*, b^* = \\underset{w_1, w_2, b}{\\arg\\min} \\ell(w_1, w_2, b) w1∗,w2∗,b∗=w1,w2以上是关于深度学习入门:线性回归模型的主要内容,如果未能解决你的问题,请参考以下文章