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来指定获 ...
随机推荐
- Jmeter 分布式架构和服务器性能监控解决方案
在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境 . 一. ...
- 用水浒传来学习OKR
用水浒传来学习OKR 目录 用水浒传来学习OKR 0x00 摘要 0x01 OKR 1.1 基本概念 1.2 OKR管理的意义 1.3 Objective 1.3.1 什么是好的O 1.3.2 上下级 ...
- win8 下删除服务
1.右键 我的电脑-管理-服务和应用程序-服务,找到想要删除的服务,双击后复制服务名称. 2.管理员身份运行cmd 在命令框中输入 sc delete "secbizsrv" 就删 ...
- 基于autofac的属性注入
基于autofac的属性注入 什么是属性注入 在了解属性注入之前,要先了解一下DI(Dependency Injection),即依赖注入.在ASP.NET Core里自带了一个IOC容器,而且程序支 ...
- 杨辉三角的实现(Java)
杨辉三角的实现 一.什么是杨辉三角 杨辉三角是二项式系数在三角形中的一种几何排列.每个数等于它上方两数之和.每行数字左右对称,由1开始逐渐变大.第n行的数字有n项.前n行共[(1+n)n]/2 个数. ...
- java例题_04 分解质因数
1 /*4 [程序 4 分解质因数] 2 题目:将一个大于 2 正整数分解质因数.例如:输入 3, 3=3, 输入 6, 6=2*3,输入 90, 90=2*3*3*5. 3 程序分析:对 n 进行分 ...
- A. 【例题1】数字反转
题目解析 字符串的基础操作,注意判断零即可 #include <bits/stdc++.h> using namespace std; int i; char c[15]; int mai ...
- .NET 6 Preview 3 发布
前言 2021/4/8 .NET 6 Preview 3 发布,这个版本的改进大多来自于底层,一起来看看都有什么新特性和改进吧. 库改进 新增值类型作为字典值时更快的处理方法 .NET 6 Previ ...
- Python基础(十四):while循环与break、continue关键字
前面我们已经学习了for循环,今天再带着大家讲述一下while循环.那么for循环和while循环,到底有什么区别呢? Python中for循环和while循环本质上是没有区别的,但是在实际应用上,针 ...
- 201871030139-于泽浩 实验二 个人项目D{0-1} KP
201871030139-于泽浩 实验二 个人项目D{0-1} KP 项目 内容 课程班级博客连接 2018级卓越班 这个作业要求连接 软件工程个人项目 我的课程学习目标 (1)掌握软件项目个人开发流 ...