【机器学习】对梯度下降算法的进一步理解

单一变量的线性回归

让我们依然以房屋为例,如果输入的样本特征是房子的尺寸,我们需要研究房屋尺寸和房屋价格之间的关系,假设我们的回归模型训练集如下

其中我们用

m表示训练集实例中的实例数量,

x代表特征(输入)变量,

y代表目标变量

(x,y)代表实例

根据线性回归模型hΘ(x) = Θ0+Θ1*x1       (Θ是模型参数)

需要找出Θ0,Θ1,使得平均误差最小。J(Θ0,Θ1)称为代价函数。

根据不同的特征值,我们按照如下步骤进行迭代更新,以此来得到不同的Θ:

执行过程中,同步更新Θ0,Θ1

其中的α是学习速率,也就是所谓的迈出的步幅,一个合适的步幅有助于函数更快的收敛,每次迭代的过程实质就是对J(Θ)求偏导数,得到当前点要往下一步迈出的方向,之后根据α进行更新到新的点。如果步幅过大容易导致迭代过程发散,过小的情况下容易导致收敛过于慢。

在上个式子中,我们吧J(Θ)带入,然后我们可以得到新的算法表达式:

以上只是对特殊情况,即一元的线性回归,那么在更通常的情况下,我们所要解决的问题是多元的现行回归。

多元线性回归:

现在假设有以下特征向量:

x1 x2 x3 x4
2014 5 1 45 460
1416 3 2 40 232
…… …… …… …… ……
x1(m) x2(m) x3(m) x4(m) y(m)

对于上述学习资料,我们用

x(i)表示第i组训练样本的特征向量,如x(2)=[1416, 3,2,40]表示第二组特征向量

xj(i)表示第i组训练样本的第j个特征。

多元线性回归假的设函数

此时模型中的参数是一个n+1维的向量,任意一个训练实例也是,特征矩阵是一个m*(n+1)维的。此时公式可以化简为,其中θT是转置矩阵。

同理我们可以写出它的代价函数,(以后用J(θ)简化表示)

同理,我们可以得出它的梯度下降算法:

开始随机选择一系列的参数值,计算所有的预测结果,再给所有的参数一个新的值,直到函数收敛。

梯度下降算法的优化与数学分析:

在面对数值差距过大的不同特征值时,比如x1大多在1000左右,x2,x3在10左右,那么这时如果我们之间进行收敛,它的等高图中看我们的收敛过程如图所示:

这时容易导致步幅过大而难以收敛,解决方法是尽可能让xn尽可能的接近,我们把x1 x2除以一个合适的数值,使得他们的范围都在0-1左右,这时图像会变成下图所示

简单的说,处理方法通常可以表示为

学习率的选择,选择一个合适的学习率有利于我们更快的让θ收敛

有时候,所给出的数据并不利于我们使用线性回归,这时候,我们就需要对特征值进行修改来适应我们的数据,比如x1是房屋临街的宽度x2是房屋的深度,x = x1 * x2 这时候我们需要一个二次方模型或者三次方模型来解决这些问题

那么我们通常需要观察数据,通过函数特性x2 = x2^2 x3 = x3^3,从而将函数转化成我们可以解决的线性回归模型。

根据图形的特性,我们还可以修改h(θ)x 

或者来解决问题。

现在,我们再通过数学角度来看待这个问题,实际上我们可以直接算出收敛后的θ值,这个方法被称为正规方程法,例如我们假设训练集特征矩阵为x(包含了x0 = 1)并且我们的训练集特征结果为向量y,则利用正规方程我们可以计算出向量θ:,在Octcave中,我们可以用如下方法计算得出:pinv(x‘*x)*x‘*y 值得注明的是,对于不可逆的矩阵,(通常因为特征向量之间不独立),正规方程法是不能解决的。而且,对于过大的数据量(>10000),正规方程法因为矩阵过大而难以计算,所以此时我们会更多的用梯度下降法。

正规方程的不可逆性:是不可逆的。

接下来会讨论如何同octave设计实践该算法。

时间: 2024-08-24 19:31:40

【机器学习】对梯度下降算法的进一步理解的相关文章

机器学习:梯度下降算法原理讲解

背景 学习机器学习时作为基础概念. 转载自: <梯度下降算法原理讲解--机器学习> 1. 概述 梯度下降(gradient descent)在机器学习中应用十分的广泛,不论是在线性回归还是Logistic回归中,它的主要目的是通过迭代找到目标函数的最小值,或者收敛到最小值. 本文将从一个下山的场景开始,先提出梯度下降算法的基本思想,进而从数学上解释梯度下降算法的原理,解释为什么要用梯度,最后实现一个简单的梯度下降算法的实例! 2. 梯度下降算法 2.1 场景假设 梯度下降法的基本思想可以类比为

Hulu机器学习问题与解答系列 | 十七:随机梯度下降算法之经典变种

这是本周第二篇机器学习,也是Hulu面试题系列的第十七篇了~ 之前的所有内容都可以在菜单栏的"机器学习"中找到,愿你温故,知新. 今天的内容是 [随机梯度下降算法之经典变种] 场景描述 提到Deep Learning中的优化方法,人们都会想到Stochastic Gradient Descent (SGD),但是SGD并不是理想的万金油,反而有时会成为一个坑.当你设计出一个deep neural network时,如果只知道用SGD来训练,不少情况下你得到一个很差的训练结果,于是你放弃

斯坦福CS229机器学习课程笔记一:线性回归与梯度下降算法

应该是去年的这个时候,我开始接触机器学习的相关知识,当时的入门书籍是<数据挖掘导论>.囫囵吞枣般看完了各个知名的分类器:决策树.朴素贝叶斯.SVM.神经网络.随机森林等等:另外较为认真地复习了统计学,学习了线性回归,也得以通过orange.spss.R做一些分类预测工作.可是对外说自己是搞机器学习的还是不太自信,毕竟和科班出身的各位大牛相比自己对这些模型.算法的理解只能算是“知其然而不知其所以然”,用起来总感觉哪里不对劲. 因此,去年早早地就把网易公开课上Andrew大神的斯坦福CS229课程

机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)

本文介绍了机器学习中基本的优化算法-梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有样本的特征向量组成的矩阵 x(i) 是第i个样本包含的所有特征组成的向量x(i)=(x(i)1,x(i)2...,x(i)n) y(i) 第i个样本的label,每个样本只有一个label,y(i)是标量(一个数值) hθ(x(i)) :拟合函数,机器学习中可以用多种类型的拟合函数 θ 是函数变量,

机器学习(一)梯度下降算法的实现及过程分析

机器学习(一)梯度下降算法 因为算法最好能应用到实际问题中才会让读者感到它的真实的用处,因此首先我来描述一个实际问题(梯度下降算法用以帮助解决该问题):给定一个指定的数据集,比如由若干某一地区的房屋面积和房屋价格这样的数据对(area, price)组成的集合(吴恩达老师的课程是启蒙课程所以举该例子),我的目标是通过一个学习算法得到一个预测房价和房屋面积之间的函数,然后给定一个新的房屋面积,用这个函数来预测房价.如下图所示: 我的解决思路大致如下: 1.我找了一个很小的数据集,有两个特征X1,X

机器学习(Andrew Ng)笔记(二):线性回归模型 &amp; 梯度下降算法

线性回归模型 回忆一下第一节课提出的预测房屋每平方单位价格的例子.在这个例子中,我们可以画一条直线,尽量符合数据点的分布趋势.我们已经知道这是一个回归问题,即预测连续值的输出.实际上,这是一个典型的线性回归模型.之所以这样定义,大概是因为回归方程可以用一个线性函数来表示. 我们可以假设这个线性函数为: 这是一个关于x的一元一次方程.其中两个参数的值我们还不知道,要根据训练集中的数据求解出来.这里要定义几个概念,我们已经有的数据,即房屋面积与单价的对应数据对,被称作训练集.x作为房屋面积,称作输入

【机器学习】(2):梯度下降算法

上一章中我们简单介绍了机器学习的大概情况,今天我们开始循序渐进地学习机器学习中相关的算法.在接触经典算法之前,我们先来了解下"梯度下降"算法.一.算法背景    作为一个算法演示的背景,我们还是采用上一章中提到的房屋价格和房屋大小的关系问题,不同大小的房屋对应不同的房价,我们要通过分析已有的数据样本,来预 测一个新样本的房价.这里其实是监督式学习中回归问题的简单应用,如果所有的特性因变量都是一次的关系,那么就称之为一个线性回归问题.下面就是我们解决 问题的基本思路:    首先从训练集

关于梯度下降算法的的一些总结

目录: 1. 前言 2. 正文 2.1 梯度 2.2 梯度下降算法 2.2.1 批量梯度下降算法 2.2.2 随机梯度下降算法 3.参考文献 1.前言  这篇随笔,记录的是个人对于梯度算法的些许理解. 由于充斥着太多关于梯度算法的各种说明软文,所以呢? 本文是从一个实例出发,来逐步使用各种算法进行求解,并顺便试图将每一种算法,按照自己的理解来阐述一遍. 好了 , 让我们愉快的开始吧~~~~~~~~ 注: 本文的核心思想主要是基于在斯坦福cs299的讲义上. 2  正文 为了不显得阐述过于唐突,我

批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解

https://www.cnblogs.com/lliuye/p/9451903.html 梯度下降法作为机器学习中较常使用的优化算法,其有着三种不同的形式:批量梯度下降(Batch Gradient Descent).随机梯度下降(Stochastic Gradient Descent)以及小批量梯度下降(Mini-Batch Gradient Descent).其中小批量梯度下降法也常用在深度学习中进行模型的训练.接下来,我们将对这三种不同的梯度下降法进行理解.  为了便于理解,这里我们将使