机器学习与计算机视觉深度学习

2020机器学习线性模型(2)

2020-01-19  本文已影响0人  zidea
machine_learning.jpg
在开始之间我们回归上一次有关矩阵求导的过程

这是我们通过求 的导数来找到的损失函数极值点也就是,这时就是最优解。


我们根据(1)公式推导出下面这种形式,这里如果大家还不理解可以复习一下矩阵求导的知识。

还其中来利用 (2) 式子小技巧来解决下面推导,将 和 合并。

\frac{\partial S}{\partial \theta} = 0 \Rightarrow 2AA^T\theta -2A^TY = 0
AA^T\theta = A^TY
现在我们可无需梯度下降通过矩形求导直接计算出\theta
\theta =(AA^T)^{-1}A^TY
完全通过学过线性代数知识来直接求取\theta

那么什么时候我们选择最小二乘法什么时候选择梯度下降法来计算损失函数最优解呢?当我们的数据量不是很大(例如上千条数据)特征量不是很大,就特别推荐直接用上面方法直接求解。
但是当你数据量上来了,求(AA^T)^{-1}就变的是一件很难的事。求矩阵的逆和转置这样运算是和矩阵大小相关的,如果矩阵维度过大就造成大量的计算量用于计算矩阵的逆和转置上。
但是梯度下降也不是没有问题,例如存在局部最小值问题,学习率的选取,这个跟设计人员经验是有一定关系,因为一旦学习率没有选好,可能会很慢或者步幅过大造成震荡,这都是有可能的。
百万级一下我们都可以考虑一下最小二乘法,因为现在计算机能力已经很强。

我们通过几何知识来从新认识一下最小二乘算法,我们还是通过实例看一看我们是怎么用线性代数知识来解释最小二乘算法和线性模型的问题​。​下面是二元一次方程组。

\begin{cases} x_1 + x_2 = 3 \\ -x_1 + x_2 = 1 \end{cases}
\begin{cases} x_2 = 2 \\ x_1 = 1 \end{cases}
可以尝试在纸上绘制一下这两直线,然后发现这条线的交点就是他们的解,这个不难理解,可能初中时候我们就已经知道这些了。二元一次方程组对应在 x1 和 x2 空间的两条直线,他们解就是这两条直线的交点​。

屏幕快照 2020-01-19 上午6.07.35.png

我们用矩阵形式来重新描述这个线性方程组​
\begin{bmatrix} 1 & 1\\ -1 & 1 \end{bmatrix} \begin{bmatrix} x_1\\ x_2 \end{bmatrix} = \begin{bmatrix} 3\\ 1 \end{bmatrix}

a_1x_1 + a_2x_2 = y
\left(\begin{matrix} 1\\ -1 \end{matrix}\right) x_1 + \left(\begin{matrix} 1\\ 1 \end{matrix}\right)x_2 = \left(\begin{matrix} 3\\ 1 \end{matrix}\right)

这种情况下我们(1,-1)扩大2倍,然后和(1,1)向量加得到向量(3,1)。那么也就是我们通过怎样线性组合将 a1 和 a2 变成(3,1),如果 y 一定是在 a1 和 a2 构成的向量空间上。

我们看一下图紫色线代表 a1 向量而蓝色线代表 a2 。y 这里我们用棕色线表示,我么通过对a1和a2 两个向量做线性变换来让 a2 和 a1 可以表示 y 那么我们就可以a1 扩大 2 倍来来通过向量加法表示出 y 来


屏幕快照 2020-01-19 上午6.14.51.png
wechat.jpeg
上一篇 下一篇

猜你喜欢

热点阅读