梯度下降法的向量化推导

$第二周的向量化一节中,关于梯度下降法的向量化过程,开始不是很明白,后来自己推导了一下,记录到这里。

如下是梯度下降法的参数递归公式(假设n=2):

公式1:

$\theta_0 := \theta_0 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_0$

$\theta_1 := \theta_1 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_1$

$\theta_2 := \theta_2 - \alpha \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})x^{(i)}_2$

老师在讲到此处时,提到上述等式向量化后即为:

公式2:

$\Theta := \Theta - \alpha \delta$

公式3:

$\delta = \frac{1}{m}\sum_{i=1}^{m}(h_\theta (x^{(i)}) - y^{(i)})X^{(i)}$

那么这个结果是如何得到的呢?如下是我的推导过程:

(1)首先,对公式1整体进行一个向量化的操作:

$\begin{pmatrix} \theta _0 \\  \theta_1 \\ \theta_2 \end{pmatrix} := \begin{pmatrix} \theta_0 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_0^{(i)} \\ \theta_1 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_1^{(i)} \\ \theta_2 - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_2^{(i)} \end{pmatrix}$

(2)等号右边根据矩阵减法和乘法规则,可以拆分成如下:

$\begin{pmatrix} \theta _0 \\  \theta_1 \\ \theta_2 \end{pmatrix} := \begin{pmatrix} \theta_0 \\ \theta_1 \\ \theta_2  \end{pmatrix} - \alpha \frac{1}{m} \begin{pmatrix} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_0^{(i)} \\ \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_1^{(i)} \\ \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)})x_2^{(i)} \end{pmatrix}$

(3)等号两边的$\theta$自然可以向量化为$\Theta$,那么关键就是减号后面的部分了,我们可以将其展开:

$\Theta := \Theta - \alpha \frac{1}{m} \begin{pmatrix} (h_\theta (x^{(1)}) - y^{(1)})x_0^{(1)} + (h_\theta (x^{(2)}) - y^{(2)})x_0^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)})x_0^{(m)}\\ (h_\theta (x^{(1)}) - y^{(1)})x_1^{(1)} + (h_\theta (x^{(2)}) - y^{(2)})x_1^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)})x_1^{(m)}\\ (h_\theta (x^{(1)}) - y^{(1)})x_2^{(1)} + (h_\theta (x^{(2)}) - y^{(2)})x_2^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)})x_2^{(m)}\\  \end{pmatrix}$

(4)将展开后的矩阵采用加法规则,拆分成如下m份:

$\Theta := \Theta - \alpha \frac{1}{m} ( \begin{pmatrix} (h_\theta (x^{(1)}) - y^{(1)})x_0^{(1)} \\ (h_\theta (x^{(1)}) - y^{(1)})x_1^{(1)} \\ (h_\theta (x^{(1)}) - y^{(1)})x_2^{(1)} \end{pmatrix} + \begin{pmatrix} (h_\theta (x^{(2)}) - y^{(2)})x_0^{(2)} \\ (h_\theta (x^{(2)}) - y^{(2)})x_1^{(2)} \\ (h_\theta (x^{(2)}) - y^{(2)})x_2^{(2)} \end{pmatrix} + ... + \begin{pmatrix} (h_\theta (x^{(m)}) - y^{(m)})x_0^{(m)} \\ (h_\theta (x^{(m)}) - y^{(m)})x_1^{(m)} \\ (h_\theta (x^{(m)}) - y^{(m)})x_2^{(m)} \end{pmatrix} )$

(5)将每个矩阵中的相同部分抽取出来:

$\Theta := \Theta - \alpha \frac{1}{m} [(h_\theta (x^{(1)}) - y^{(1)}) \begin{pmatrix} x_0^{(1)} \\ x_1^{(1)} \\ x_2^{(1)} \end{pmatrix} + (h_\theta (x^{(2)}) - y^{(2)}) \begin{pmatrix} x_0^{(2)} \\ x_1^{(2)} \\ x_2^{(2)} \end{pmatrix} + ... + (h_\theta (x^{(m)}) - y^{(m)}) \begin{pmatrix} x_0^{(m)} \\ x_1^{(m)} \\ x_2^{(m)} \end{pmatrix} )]$

(6)可以看到,每个x的矩阵都组成了一个向量X:

$\Theta := \Theta - \alpha \frac{1}{m} [(h_\theta (x^{(1)}) - y^{(1)}) X^{(1)} + (h_\theta (x^{(2)}) - y^{(2)}) X^{(2)} + ... + (h_\theta (x^{(m)}) - y^{(m)}) X^{(m)} ]$

(7)再将其表示为$\Sigma$的形式:

$\Theta := \Theta - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_\theta (x^{(i)}) - y^{(i)}) X^{(i)}$

时间: 2024-08-12 16:01:10

梯度下降法的向量化推导的相关文章

牛顿法与梯度下降法数学公式推导过程

迭代更新数学公式推导过程 1.牛顿法 首先对于有n个变量的函数的一阶导数为:   其次对于其二阶导数为:   之后关于目标函数的包含二阶导数的泰勒展开式为:   这时将看成的函数,则根据函数的最小值性质,当偏导数等于0时出取得,从而得到,所以,根据等式的特点得到,只有两者都取0时才能使等式等于0,所以得: (最小值)    故牛顿法的迭代公式为: 2.梯度下降法 在开始推导之前,来介绍一下一个概念:梯度(当前函数位置的导数),同时它也表示某一函数在该点处的方向导数沿着该方向取得较大值.    梯

逻辑回归(logistic-regression)之梯度下降法详解

引言 逻辑回归常用于预测疾病发生的概率,例如因变量是是否恶性肿瘤,自变量是肿瘤的大小.位置.硬度.患者性别.年龄.职业等等(很多文章里举了这个例子,但现代医学发达,可以通过病理检查,即获取标本放到显微镜下观察是否恶变来判断):广告界中也常用于预测点击率或者转化率(cvr/ctr),例如因变量是是否点击,自变量是物料的长.宽.广告的位置.类型.用户的性别.爱好等等. 本章主要介绍逻辑回归算法推导.梯度下降法求最优值的推导及spark的源码实现. 常规方法 一般回归问题的步骤是: 1. 寻找预测函数

线性回归与梯度下降法

前言 最近在看斯坦福的<机器学习>的公开课,这个课程是2009年的,有点老了,不过讲的还是很好的,廓清了一些我以前关于机器学习懵懂的地方.我的一位老师曾经说过: 什么叫理解?理解就是你能把同一个事情用自己的语言表达出来,并且能让别人听得懂. 本着这样的原则,同时也为了证明自己是”理解”的,于是决定打算在学习<机器学习>公开课的时候,写一些系列文章类巩固学到的东西.机器学习中的很多内容都是和数学推导相关的,而我本人的数学功底并不扎实,所以文章也许会写得比较慢.另外,这个系列的文章大体

梯度下降法和随机梯度下降法的区别

这几天在看<统计学习方法>这本书,发现 梯度下降法 在 感知机 等机器学习算法中有很重要的应用,所以就特别查了些资料.  一.介绍       梯度下降法(gradient descent)是求解无约束最优化问题的一种常用方法,有实现简单的优点.梯度下降法是迭代算法,每一步需要求解目标函数的梯度向量.  二.应用场景      1.给定许多组数据(xi, yi),xi (向量)为输入,yi为输出.设计一个线性函数y=h(x)去拟合这些数据. 2.感知机:感知机(perceptron)为二类分类

梯度下降法[转]

下面是一个典型的机器学习的过程,首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型.就如同上面的线性回归函数. 我们用X1,X2..Xn 去描述feature里面的分量,比如x1=房间的面积,x2=房间的朝向,等等,我们可以做出一个估计函数: θ在这儿称为参数,在这儿的意思是调整feature中每个分量的影响力,就是到底是房屋的面积更重要还是房屋的地段更重要.为了如果我们令X0 = 1,就可以用向量的方式来

机器学习初学心得——梯度下降法

回归与梯度下降: 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲. 用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka.大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积.房间的数量(几室几厅).地段.朝向等等,

[机器学习]—梯度下降法

机器学习中往往需要刻画模型与真实值之间的误差,即损失函数,通过最小化损失函数来获得最优模型.这个最优化过程常使用梯度下降法完成.在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值. 1. 梯度 解释梯度之前需要解释导数与偏导数.导数与偏导数的公式如下: 导数与偏导数都是自变量趋于0时,函数值的变化量与自变量的变化量的比值,反应了函数f(x)在某一点沿着某一方向的变化率.导数中该方向指的是x轴正方向,偏导数中指的是向量x所在空间中一组单位正交基()中某

机器学习:梯度下降法(调试、其它思考)

一.梯度下降法的调试 1)疑问 / 难点 如何确定梯度下降法的准确性? 损失函数的变量 theta 在某一点上对应的梯度是什么? 在更负责的模型中,求解梯度更加不易: 有时候,推导出公式后,并将其运用到程序中,但当程序运行时,有时对梯度的计算可能会出现错误,怎么才能发现这种错误? 2)梯度下降法的调试思路 关于导数的理解,参考:高数:关于导数: 调试思路: 如果机器学习的算法涉及到求解梯度,先使调试方式求出梯度,提前得到此机器学习算法的正确结果: 用数学推导方式(根据算法模型推导出的求解梯度的公

机器学习入门之单变量线性回归(上)——梯度下降法

在统计学中,线性回归(英语:linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合.只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归(multivariate linear regression).——————维基百科 一直以来,这部分内容都是ML的敲门砖,吴恩达教授在他的课程中也以此为第一个例子,同时,本篇也参考了许多吴教授的内容. 在这里,我简单把