Andrew Ng机器学习算法入门(四):阶梯下降算法
梯度降级算法简介
之前如果需要求出最佳的线性回归模型,就需要求出代价函数的最小值。在上一篇文章中,求解的问题比较简单,只有一个简单的参数。梯度降级算法就可以用来求出代价函数最小值。
梯度降级算法的在维基的定义:
梯度下降法是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索
首先,复习一下之前前面的讲过求解最佳的代价函数的过程

那么如何通过梯度降级算法解决这个问题呢?首先对θ0和θ1进行初始化,初始化的值是什么并不重要,但通常的选择是将它们都初始化为0。 我们在梯度下降算法中要做的,就是不停地一点点地改变θ0和θ1,试图通过这种改变使得J(θ0, θ1)变小,直到我们找到J的最小值,这个最小值就是一个局部最优解。
求解的过程可能如下:

最上面的点是起始点,就加上如同一个人站在起始点的位置,最后需要回到最低点的位置,就需要一步步地向下走
梯度降级算法定义
梯度降级算法的定义如下:

:=表示的就是赋值语句- a,学习速率,表示的是在每一步的步长。在上面的例子中,稼穑你是一个人需要从山顶下山,那么a表示的就是你每一步的长度
- 后面的数学公式就是一个数学公式,是一个偏导数。
需要注意一点的是,需要同时更新所有的theta参数,包括theta-0,theta-1。这个其实在偏导数里面也是一个最基本的常识了,这里不作过多的讲解。如果你不了解,那只要记住就可以了。
下面的这个例子就是错误的,不是同时更新的。

为了能够形象地说明梯度讲解算法的用法,那么我们简化梯度讲解算法,假设仅仅只存在一个参数theta-1。
通过在第三节中讲述的,J(θ1)的图形就是一个曲线。利用阶梯降级函数的定义

那么最后的求解过程为:

这样就找到了最优解,和第三节中得到的最优解也是一样的。
需要注意的问题是,学习速率a的设置既不能太大也不能太小,否则就会出现下面的问题。

如果a太小,那么寻找最优解的时间过长;如果a太大,那么有可能无法找到最优解。
梯度降级算法在线性回归中的应用
下面还是简单的给出梯度降级算法和线性回归的算法定义

为了方便对算法的求解进行描述,我们还是假设仅仅只是存在θ1和θ2
将右边定义的J(θ)导入到左边的梯度降级算法中,得到如下的结果:

但是需要注意的是,在仅仅只是存在θ1和θ2的情况下,代价函数的图形为:

是一个凹图像,这个之前说的是不一致的。之前的那个图像仅仅是为了表述方面而作的图。
最后将3D图转换为轮廓图,得到最后的最小的代价函数如下:

以上就是梯度降级算法在线性回归中的应用
批梯度下降算法
批梯度下降算法的定义就是,在每一步的梯度下降过程中,使用所有的训练样本。 当然还有一些算法仅仅只是使用部分的训练样本。目前讨论的都是使用所有的训练样本。
为了能到远方,脚下的每一步都不能少
Andrew Ng机器学习算法入门(四):阶梯下降算法的更多相关文章
- Andrew Ng机器学习算法入门(一):简介
简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序 ...
- Andrew Ng机器学习算法入门(二):机器学习分类
机器学习的定义 Arthur Samuel给出的定义,Field of Study that gives computers the ability to learn without being ex ...
- Andrew Ng机器学习算法入门(九):逻辑回归
逻辑回归 先前所讲的线性回归主要是一个预测问题,根据已知的数据去预测接下来的情况.线性回归中的房价的例子就很好地说明了这个问题. 然后在现实世界中,很多问题不是预测问题而是一个分类问题. 如邮件是否为 ...
- Andrew Ng机器学习算法入门(八):正规方程
正规方程 在先学习正规方程之前,先来复习一下之前学过的常规的回归方程的解法. 假设存在如果的代价函数, ,解法也十分的简答. 但是有时候遇到的情况或许会变得相当的复杂. 的数,如果是按照常规的方式进行 ...
- Andrew Ng机器学习算法入门((六):多变量线性回归方程求解
多变量线性回归 之前讨论的都是单变量的情况.例如房价与房屋面积之前的关系,但是实际上,房价除了房屋面积之外,还要房间数,楼层等因素相关.那么此时就变成了一个多变量线性回归的问题.在实际问题中,多变量的 ...
- Andrew Ng机器学习算法入门(三):线性回归算法
线性回归 线性回归,就是能够用一个直线较为精确地描述数据之间的关系.这样当出现新的数据的时候,就能够预测出一个简单的值. 线性回归中最常见的就是房价的问题.一直存在很多房屋面积和房价的数据,如下图所示 ...
- Andrew Ng机器学习算法入门(十):过拟合问题解决方法
在使用机器学习对训练数据进行学习和分类的时候,会出现欠拟合和过拟合的问题.那么什么是欠拟合和过拟合问题呢?
- Andrew Ng机器学习算法入门((七):特征选择和多项式回归
特征选择 还是回归到房价的问题.在最开始的问题中,我们假设房价与房屋面积有关,那么最开始对房价预测的时候,回归方程可能如下所示: 其中frontage表示的房子的长,depth表示的是房子的宽. 但长 ...
- Andrew Ng机器学习算法入门((五):矩阵和向量
矩阵定义 数学上,一个m×n的矩阵是一个由m行n列元素排列成的矩形阵列 使用Aij来获取矩阵中第i行j列的数据 向量的定义 向量就是n行1列的特殊矩阵 由于向量仅仅只有1行,那么通过一个变量i来指定获 ...
随机推荐
- myeclipse js报错
Myeclipse 版本10.1 加载的js报错,解决方法: window -> preferences -> myeclipse -> validation,在右边下拉框找到 Ja ...
- springMVC @InitBinder注解
springMVC @InitBinder注解.setFieldDefaultPrefix则可以在表单用如user.name进行传递属性
- 09、集合set
集合(set) 集合是一个无序.可变.不允许数据重复的容器 s = {11,22,33,'ccc'} 无序,无法通过索引取值 可变,可以添加和删除元素 s = {11,22,33,44} s.add( ...
- 海岸线、科赫曲线、turtle、递归
本章绘图要点: turtle模块:python标准库自带的一个模块,可用来绘制二维图形.该模块封装了底层的数据处理逻辑,向外提供了更符合手工绘图习惯的接口函数,适用于绘制对质量.精度要求不高的图形. ...
- 【linux】驱动-4-LED芯片手册分析
目录 前言 4. LED芯片手册分析 4.1 内存管理单元MMU 4.1.1 MMU的功能 4.1.2 TLB的作用 4.2 地址转换函数 4.2.1 ioremap函数 4.2.2 iounmap函 ...
- Jmeter(四十) - 从入门到精通进阶篇 - Jmeter配置文件的刨根问底 - 中篇(详解教程)
1.简介 为什么宏哥要对Jmeter的配置文件进行一下讲解了,因为有的童鞋或者小伙伴在测试中遇到一些需要修改配置文件的问题不是很清楚也不是很懂,就算修改了也是模模糊糊的.更有甚者觉得那是禁地神圣不可轻 ...
- 从谷歌CRE谈起,运维如何培养服务意识?
从谷歌CRE谈起,运维如何培养服务意识? 2016年10月,谷歌云平台博客(Google Cloud Platform Blog)上更新了一篇文章,谷歌宣布了一个新的专业岗位,CRE(Customer ...
- Dynamics CRM安装教程六:CRM产品安装
接下来就要开始进行CRM产品的安装了 首先要安装IIS,以及.NET FrameWork4.6及相关功能 打开服务器管理器,在添加角色功能向导中勾选IIS,点击添加功能 默认下一步 选择角色服务这里的 ...
- (六)Struts2的拦截器
一.简介 拦截器体系是struts2重要的组成部分.正是大量的内建拦截器完成了该框架的大部分操作. 比如params拦截器将请求参数解析出来,设置Action的属性.servletConfig拦截器负 ...
- ubuntu apt出错
whitedream@ubuntu:~$ sudo apt-get update Reading package lists... Done E: Could not get lock /var/li ...