R语言梯度下降法代码附解释 下载本文

内容发布更新时间 : 2024/10/19 11:52:36星期一 下面是文章的全部内容请认真阅读。

Advanced Statistical Analysis

Homework 3

Due on Friday, December 2, 2016

Problem 1. Please interpret the R code below, and explain it in terms of mathematical derivations.

随机梯度下降法(stochastic gradient descent)和批梯度下降法(batch gradient descent)

大数据部落

随机梯度下降法和批梯度下降法是对于多样本迭代的两种策略,其中,随机梯度下降法是在每一次迭代中,随机的选择m个样本来求取的值,而批梯度下降法在每次迭代中,需要先求出所有样本的梯度值。相比之下,随机梯度下降法高效。 A. 随机梯度下降法: Repeat{

for i = 1 to m{ j进行操作 } }

这里的m为随机选择的m个样本。 B. 批梯度下降法: Repeat 直到收敛{

对于每一个

一个j进行操作 }

对于每

这里的m为整个样本数。需要先求出在本次迭代中整个样本关于j的导数和,再计算出 最小二乘法 A. 需要用到的公式 首先我们定义

为一个m*n矩阵,它在(i,j)上的元素值为,对于大样本,很耗时。

。定义n*n的方矩阵A的迹trA为

大数据部落

我们可以证明trABCD = trDABC = trCDAB = trBCDA 同时,下面两个公式也可以证明:

B. 最小二乘法求线性回归

对于m个样本,每个样本的n个特征值可以表示为一维列向量Xi,则m个样本,可以组成样本矩阵m*(n+1),其中的1为常量参数:

量;

这里每一行为一个样本的特征向

我们设Y向量为样本特征值对应的目标值,则:

由于

,我们可以得到:

到这里,我们需要求X-Y的平方和,假设各个特征之间是相互独立的,则(X-Y)转置*(X-Y)可以得到除了对角线之外都为0的矩阵,而对角线上的值,为X-Y的平方值。

大数据部落