IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Task 3 李宏毅机器学习——梯度下降 -> 正文阅读

[人工智能]Task 3 李宏毅机器学习——梯度下降

1、误差从哪里来

  • Bias
  • Variance

从实际的训练数据中寻找出f*

F hat则是最佳的function,能实际准确得到y的function

f*是对f hat的一个估计,两者还是有差距

模型简单的时候bias大,variance小,function space可能都没有包含目标function

而模型复杂的时候variance大,bias小,function space也较大,更可能包含目标function

随着模型的bias造成的error逐渐下降

variance造成的误差变得越来越大(像打把时? 瞄的准,瞄在了中心? 但可能误差越来越大)

两种误差合起来就是蓝色的线,存在一个均衡点使两者误差和最小

误差来自bias很大——underfitting

误差来自variance很大——overfitting

弄明白这个有助于搞清改进的方向

如何诊断:

1、如果样本甚至无法拟合样本中少数几个点,说明模型与正确的模型有较大的差距,即bias大,underfitting

2、如果在训练集上能够较好地拟合,但在测试集上有较大的误差,这说明可能有较大的variance,存在过拟合的情况

针对这两种问题不同的解决方法:

1、underfitting:重新设计模型使之变得更复杂有更好的解释能力,使function set 尽可能去包含正确的function

2、overfitting:

1)增加数据:不会伤害bias,但可能收集数据比较困难;或者在某些情况下自己增加更多数据,图片翻转等

2)正则化:能够是function更平滑

N-fold cross validation

(K 折交叉验证)

把训练集分成几份,依次把其中的某一份作为验证集,另外几份作为训练集

分别算不同模型,在不同的部分做验证集时平均误差,进行比较

选出效果最好的模型,在完整的训练集上做训练,再在测试集上去做测试

梯度下降

Learning rate的调整

太小,调整地太慢

太大,调整地太快,直接跳过了最小值

可以将参数变化与loss 变化画在坐标轴上

Learning rate太小,蓝色线:下降缓慢

Learning rate较大,绿色线:loss下降快,但很快会卡住不再下降

Learning rate太大,黄色线:loss激增,多走一步甚至超过了最低点

自动调整learning rate

1、基本想法:通常learning rate会随着参数的更新而逐渐变小,起始点时离loss最低点较远,一开始调整幅度可以大一点,,当越来越接近时,learning rate变小

2、最好的情况是给每个不同的参数都单独设置不同的learning rate

adagrad:

最好的step(步长):分子与一次微分成正比,与二次微分成反比

当有多个参数的时候

要想比较a和c点到最低点的距离,光是比较一次微分还不够,

a点对w1的微分值更小

c对对w2的微分值更大??

根据微分值更大离最低点更远这个原则来看,c点微分值比在a点的大,按理应该离最低点更远,实际却离最低点比a点更近,与原则相矛盾,原因是右上角蓝色的原则不能跨参数使用。

当需要同时考虑好几个参数:

需要引入二次微分来描述不同参数对应的函数的陡峭平滑程度,

W1对应函数的二次微分比较小,

W2对应函数的二次微分比较大,

要把二次微分(该点一次微分值/二次微分值)考虑进去

才能将a点和c点现在位置到最低点的距离进行比较

Stochastic gradient descent

随机梯度下降

gradient descent:计算所有的data,然后更新参数

Stochastic gradient descent:只计算某一个样本的loss,然后就更新参数

SGD优点:算的快,对噪声不敏感

Feature scaling

特征缩放

当输入值有两个x1,x2时,若x1,x2的分布差别较大时,做缩放使不同的特征变量的特征是相似的

因为如果两个变量的范围不同,一个特征x1的取值是1,2,3……,另一个特征x2的取值为100,200,300……,

因此w1有较小的微分,对loss影响较小;

W2有较大的微分,对loss的影响较大。这种情况更新参数比较困难,需要做adagrad,不同方向上要有不同的learning rate,并且顺着等高线法线方向走,并不会指向中心

若x1,x2的scale比较接近,画出来的图是接近圆形的,更新参数较容易,

并且区域中的任何点都是指向最低点

如何做scaling

对每一个维度 i都计算它的平均值mi,标准差σi

对第r组数据的第i个component(即第i个特征)减去平均值mi后再除以标准差σi

为什么梯度下降会有效

每次更新完参数,loss不一定会下降,有可能还会上升

泰勒公式:

当x0接近x的时候,(x-x0)^2及之后的项远小于x-x0这一项,因此就可以把二次以后的都略去

当有多个参数时,方法相似,对h(x,y)分别在x0和y0处做偏微分

要求L(θ)的最小值,当θ1,θ2在给定的圆圈范围内时(圆圈的圆心坐标为(a,b)),根据向量的知识可知,(δθ1,δθ2)的方向与(u,v)的方向相反时即可有最小的L(θ),用式子表示如下,负号表示(δθ1,δθ2)的方向与(u,v)的方向相反;η与圆的半径成正比,因为要使η乘上[u,v]的长度刚好等于圆的半径

再将δθ1,δθ2变成θ1,θ2,只需要分别加上a,b即可

该式子成立的条件是圆的半径要足够小,使泰勒公式够精确

即η(与红色圆圈的半径成正比)要足够小,即learning rate要足够小,否则泰勒公式不成立(泰勒公式要求θ1足够接近a,θ2足够接近b)

如果考虑到泰勒公式中的二次式也可以,但会更复杂

梯度下降的限制

1、可能会卡在局部最小的地方

2、鞍点(saddle point)的地方微分值也可能是0

3、可能卡在高原,误以为微分值很小的时候就是接近局部最小值了

*图源自李宏毅《机器学习》视频

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:54:48  更:2021-07-17 11:56:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/19 23:28:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码