ANg-梯度下降算法
概念
为了解决线性回归问题,我们也用梯度下降算法。
算法逻辑如下:
对于线性回归模型中例子,梯度下降可以如下:
算法
实际上梯度下降可有通过求导。这里的符号“:=”是赋值的含义
有两个注意点:
参数的更新,每次迭代中θ0和θ1是同时更新的。
在梯度下降中需要注意α,也就是学习速率(learn rate)。速率过大导致一直发散,速率过小导致迭代过多。这个值需要根据实际调整,具体后续分析。
即使学习率α固定,渐变下降也可以收敛到局部最小值
梯度下降算法最小化平方误差代价函数
基本概念
首先二者分别如下
所以可以得到下面的迭代
多特征
对于多个特征量,假设函数(hypothesis)应该变化为:
同理,新的算法为:
特征缩放
对于新的算法中,多个特征量由于各自有不同的范围,因此由这些取值可能使得收敛较慢或者没有了理想的效果。所以可以使用特征缩放来解决这个问题:
需要注意的是这里的正负1不是要求绝对的满足,这里的意思是多个特征量的值范围不要差距太大即可
均值归一化
对于特征量除了特征缩放以外还有均值归一化的方法:
这里μ的含义是特征集中特征X1的平均值,S1表示X1的特征值范围,也就是X1_max和X1_min的差值。虽然可以用标准差,但其实是一样的。同理这里的正负0.5也表示相近的值就可以。
学习率α的取值
如果α的取值过大或者过小都有可能导致代价函数不理想:
因此在实际中,ANg推荐的做法是通过取不同的α观察来比较,从中选取合适的学习率。
特征和多项式回归
选取的特征越有效,最终获取的结果就越准确,所以选择正确的特征是很重要的。但实际中可能有一些函数会很复杂,或者非线性。这个时候我们不能直接使用选取特征和对应的函数。此时可以通过拟合的方式获取符合实际的函数。并且特征也可以间接利用。
正规化方程
概念
某一些问题,使用正规化方程可以更好的得到θ。并且正规化方程可以一次性得出θ。
对于例子来说,使用正规化方程,可以得出结果。
梯度下降算法和正规化方程的选择
对于二者,最主要的区别就是梯度下降是多次得到结果,正规化方程是一次求解。所以当特征较少的情况下,使用后者更合适。前者适用于大型或者复杂的情况
此外正规化方程有一个使用前提,也就是有逆矩阵的前提下。但这个情况通常极少,可不考虑。
ANg-梯度下降算法的更多相关文章
- 梯度下降算法的一点认识(Ng第一课)
昨天开始看Ng教授的机器学习课,发现果然是不错的课程,一口气看到第二课. 第一课 没有什么新知识,就是机器学习的概况吧. 第二课 出现了一些听不太懂的概念.其实这堂课主要就讲了一个算法,梯度下降算法. ...
- ng机器学习视频笔记(二) ——梯度下降算法解释以及求解θ
ng机器学习视频笔记(二) --梯度下降算法解释以及求解θ (转载请附上本文链接--linhxx) 一.解释梯度算法 梯度算法公式以及简化的代价函数图,如上图所示. 1)偏导数 由上图可知,在a点 ...
- 监督学习:随机梯度下降算法(sgd)和批梯度下降算法(bgd)
线性回归 首先要明白什么是回归.回归的目的是通过几个已知数据来预测另一个数值型数据的目标值. 假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就 ...
- [机器学习Lesson3] 梯度下降算法
1. Gradient Descent(梯度下降) 梯度下降算法是很常用的算法,可以将代价函数J最小化.它不仅被用在线性回归上,也被广泛应用于机器学习领域中的众多领域. 1.1 线性回归问题应用 我们 ...
- Spark MLib:梯度下降算法实现
声明:本文参考< 大数据:Spark mlib(三) GradientDescent梯度下降算法之Spark实现> 1. 什么是梯度下降? 梯度下降法(英语:Gradient descen ...
- AI-2.梯度下降算法
上节定义了神经网络中几个重要的常见的函数,最后提到的损失函数的目的就是求得一组合适的w.b 先看下损失函数的曲线图,如下 即目的就是求得最低点对应的一组w.b,而本节要讲的梯度下降算法就是会一步一步地 ...
- Logistic回归Cost函数和J(θ)的推导(二)----梯度下降算法求解最小值
前言 在上一篇随笔里,我们讲了Logistic回归cost函数的推导过程.接下来的算法求解使用如下的cost函数形式: 简单回顾一下几个变量的含义: 表1 cost函数解释 x(i) 每个样本数据点在 ...
- 梯度下降算法对比(批量下降/随机下降/mini-batch)
大规模机器学习: 线性回归的梯度下降算法:Batch gradient descent(每次更新使用全部的训练样本) 批量梯度下降算法(Batch gradient descent): 每计算一次梯度 ...
- tensorflow随机梯度下降算法使用滑动平均模型
在采用随机梯度下降算法训练神经网络时,使用滑动平均模型可以提高最终模型在测试集数据上的表现.在Tensflow中提供了tf.train.ExponentialMovingAverage来实现滑动平均模 ...
- 深度学习课程笔记(四)Gradient Descent 梯度下降算法
深度学习课程笔记(四)Gradient Descent 梯度下降算法 2017.10.06 材料来自:http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLDS1 ...
随机推荐
- JS一个算法题
题目:实现超出整数存储范围的两个大整数想加function(a,b).注意:参数a和b以及函数返回值都是字符串. 目的:考算法, 基本逻辑. 我实现的基本思路是: ①两个数字字符串长度补成一样,用字符 ...
- mysql sql中的一些问题,Null与空字符
mysql中的空值,NULL,空字符 Mysql数据库是一个基于结构化数据的开源数据库.SQL语句是MySQL数据库中核心语言.不过在MySQL数据库中执行SQL语句,需要小心两个陷阱. 陷阱一:空值 ...
- 网页的缓存Cache与控制
什么是缓存 Cache? 缓存位于客户端与服务器之间, 或者服务器与服务器之间.它决定是否保存所获资源的副本,以及如何使用副本,何时更新副本,这里所说的资源包括页面的HTML, 图片,文件等等. 使用 ...
- Win7 发生验证错误 要求的函数不受支持
今天登陆服务器突然登不上了,给我报了一个错误“发生验证错误 要求的函数不受支持”,用同事的win7电脑和win10电脑都可以,就是我的不行,气死我了,然后我百度百度啊,用了好几种“说用了就OK”的办法 ...
- sqlserver表结构的修改
表添加新字段 sqlserver alter table 表名 add 新增字段名 新增字段类型 是否允许为空,如: alter table [数据库名].[dbo].[表名称] add [新增字段] ...
- C# .NET 配置404,500等错误信息
<customErrors mode="On" defaultRedirect="viewAll.html"><!--所有的错误显示页--&g ...
- 人工智能时代,是时候学点Python了!
“是时候学点Python了”.作为一名不怎么安分的程序员,你或许觉得,产生这样的想法并不奇怪,但学习Python却是出于自己对工作现状以及如何应对未来挑战所作出的思考.读过我以前博客的朋友,可能都知道 ...
- OSB格式(REST)转化(XML到JSON,JSON到XML)
OSB转换项目操作手册 新建一个OSB项目 建立以下文件夹,以便更规范的管理工程 一.XML转JSON 1.导入wsdl文件 1)右键wsdl文件夹,选择import选项 2)在弹出框中选择Servi ...
- c++引用(修改引用的值)
当我们希望修改某个函数的返回值时,通常我们会返回这个值的引用(因为函数返回值其实是返回那个值得一份拷贝而已,所以想要修改必须使用引用): .h文件 #pragma once #include < ...
- 关于Git的一些总结【自用】
创建ssh keyssh-keygen -t rsa -C "邮箱" cat is_rsa.pub 获取public key ssh -T git@github.com 测试是 ...