接着我学习了线性回归模型,线性回归(linear regression)在回归的各种标准工具中最简单而且最流行。线性回归基于几个简单的假设:首先,假设自变量x和因变量y之间的关系是线性的,即y可以表示为x中元素的加权和,这里通常允许包含观测值的一些噪声,其次,我们假设任何噪声都比较正常,如噪声遵循正态分布。为了解释线性回归,我们举一个实际的例子:我们希望根据房屋的面积(平方英尺)和房龄(年)来估算房屋价格(美元)。为了开发一个能预测房价的模型,我们需要收集一个真实的数据集。这个数据集包括了房屋的销售价格、面积和房龄。在机器学习的术语中,该数据集称为训练数据集(training data set)或训练集(training set),每行数据(在这个例子中是与一次房屋交易相对应的数据)称为样本(sample),也可以称为数据点(data point)或数据样本(data instance)。我们要试图预测的目标(在这个例子中是房屋价格)称为标签(label)或目标(target)。预测所依据的自变量(面积和房龄)称为特征(feature)或协变量(covariate)。
建模时采用线性代数表示法会比较方便。当我们的输入包含d个特征时,我们将预测结果
y
^
\hat{y}
y^(通常使用“尖角”符号表示估计值)表示为:
y
^
=
w
1
x
1
+
.
.
.
+
w
d
x
d
+
b
\hat{y} = w_{1}x_{1} + ... + w_{d}x_{d} + b
y^=w1x1+...+wdxd+b
当我们的输入包含d个特征时,将所有特征放到向量
x
∈
R
d
\textbf{x}\in\mathbf{R}^d
x∈Rd中,并将所有权重放到向量
w
∈
R
d
\textbf{w}\in\mathbf{R}^d
w∈Rd中,
y
^
\hat{y}
y^表示预测结果,可以用点积形式来简洁地表达模型:
y
^
=
w
⊤
x
+
b
\hat{y} = \textbf{w}^\top\textbf{x} +b
y^=w⊤x+b
扩展:
用符号表示的矩阵
X
∈
R
n
×
d
\mathbf{X}\in\mathbf{R}^{n\times d}
X∈Rn×d可以很方便地引用整个数据集的n个样本。其中,
X
\mathbf{X}
X的每一行是一个样本,每一列是一种特征。模型通过矩阵-向量乘法表示为:
y
^
=
X
w
+
b
\hat{y} = \mathbf{X}\mathbf{w} + b
y^=Xw+b
给定训练数据特征
X
\mathbf{X}
X和对应的已知标签
y
y
y,线性回归的目标是找到一组权重向量
w
w
w和偏置
b
b
b。当给定从
X
\mathbf{X}
X的同分布中取样的新样本特征时,找到的权重向量和偏置能够使得新样本预测标签的误差尽可能小。
在训练模型时,我们希望寻找一组参数(
w
∗
,
b
∗
\mathbf{w}^*,\mathbf{b}^*
w∗,b∗),这组参数能最小化在所有训练样本上的总损失。如下式:
w
∗
,
b
∗
=
arg min
w
,
b
∣
∣
X
w
−
Y
∣
∣
2
2
(
w
,
b
)
\mathbf{w}^*,\mathbf{b}^* = \argmin_{\mathbf{w},{\mathbf{b}}} ||\mathbf{X} \mathbf{w} - \mathbf{Y}||_2^2(\mathbf{w},\mathbf{b})
w∗,b∗=w,bargmin∣∣Xw−Y∣∣22(w,b)
如何获得
w
∗
,
b
∗
\mathbf{w}^*,\mathbf{b}^*
w∗,b∗(解析解)?
推导过程:
∣
∣
X
w
−
Y
∣
∣
2
2
=
(
X
w
−
Y
)
T
(
X
w
−
Y
)
||\mathbf{X} \mathbf{w} - \mathbf{Y}||_2^2 = (\mathbf{X}\mathbf{w}−\mathbf{Y})^{\mathrm{T}}(\mathbf{X}\mathbf{w}−\mathbf{Y})
∣∣Xw−Y∣∣22=(Xw−Y)T(Xw−Y)
=
(
w
T
X
T
−
Y
T
)
(
X
w
−
Y
)
=(\mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}} - \mathbf{Y}^{\mathrm{T}})(\mathbf{X}\mathbf{w}−\mathbf{Y})
=(wTXT−YT)(Xw−Y)
=
w
T
X
T
X
w
−
w
T
X
T
Y
−
Y
T
X
w
+
Y
T
Y
=\mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\mathbf{w} - \mathbf{w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{Y} - \mathbf{Y}^{\mathrm{T}}\mathbf{X}\mathbf{w} + \mathbf{Y}^{\mathrm{T}}\mathbf{Y}
=wTXTXw−wTXTY−YTXw+YTY
将该式关于
w
\mathbf{w}
w求导 (使用向量求导法则) 并令其为 0, 可得
X
T
X
w
−
X
T
Y
\mathbf{X}^{\mathrm{T}}\mathbf{X} \mathbf{w} - \mathbf{X}^{\mathrm{T}}\mathbf{Y}
XTXw−XTY=0
最后
w
∗
=
(
X
T
X
)
−
1
X
T
Y
\mathbf{w}^* = (\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}\mathbf{Y}
w∗=(XTX)−1XTY
b
∗
同
理
\mathbf{b}^*同理
b∗同理。
像线性回归这样的简单问题存在解析解,但并不是所有的问题都存在解析解。解析解可以进行很好的数学分析,但解析解的限制很严格,导致它无法应用在深度学习里。即使在无法得到解析解的情况下,可以用一种名为梯度下降(gradient descent)的方法,这种方法几乎可以优化所有深度学习模型。它通过不断地在损失函数递减的方向上更新参数来降低误差。
总的来说,线性回归的实现可以按照以下7大步骤实现:1、生成数据集;2、读取数据集;3、初始化模型参数;4、定义模型;5、定义损失函数;6、定义优化算法;7、训练。该思路不止在线性回归模型上适用,在其他模型上也同样适用。同时,在深度学习框架中,我们能够以较小的时间代价来完成各种模型的实现。
暂定研究方向为图像去噪。
(Softmax回归:
模型的思路
将预测结果转化为非负数
我们可以知道指数函数的值域取值范围是零到正无穷。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。
各种预测结果概率之和等于1
为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。各种预测结果概率之和等于1
soft max回归可以看作是一种条件最大熵模型。对于多分类问题,soft max回归预测的是属于每个类别的条件概率。
soft max用交叉熵函数作为风险经验函数。然后soft max回归相当于没有隐含层的神经网络。交叉熵损失函数和sigmod函数,soft max函数配合使用效果更好。
要注意的是,Softmax回归中使用的C 个权重向量是冗余的,即对所有的 权重向量都减去一个同样的向量v,不改变其输出结果。因此,Softmax 回归往往需要使用正则化来约束其参数。此外,我们还可以利用这个特性来避免计算softmax函数时在数值计算上溢出问题。
softmax函数:
s
o
f
t
m
a
x
(
X
)
i
j
=
exp
(
X
i
j
)
∑
k
exp
(
X
i
k
)
.
\mathrm{softmax}(\mathbf{X})_{ij} = \frac{\exp(\mathbf{X}_{ij})}{\sum_k \exp(\mathbf{X}_{ik})}.
softmax(X)ij=∑kexp(Xik)exp(Xij).)