台大李宏毅Machine Learning 2017Fall学习笔记 (4)Gradient Descent

解决【x2openEuler环境检查未通过——CheckRepoCurlActor不通过】问题 摘要:x2openEuler使用默认repo源时出现环境检查失败问题,原因是默认源返回308永久重定向错误。解决方法包括:1)为CentOS主机配置华为yum源;2)在x2openEuler Web界面修改为自定义可用源。具体步骤包括备份原源、下载华为源、清除缓存,并通过curl测试确认新源可用性。最终成功配置openEuler-24.03-LTS-SP1版本的repo源后,环境检查顺利通过。 阅读详情

台大李宏毅Machine Learning 2017Fall学习笔记 (4)Gradient Descent

       这节课首先回顾了利用梯度下降法优化目标函数的基本步骤,然后对梯度下降法的应用技巧和其背后的数学理论支撑进行了详细的介绍。李老师讲解之透彻,真是让人有醍醐灌顶之感~~~

梯度下降法(Gradient Descent)回顾

       详细步骤如下两图中所示。值得一提的是:梯度下降的方向是损失函数Loss的等高线的法线方向。


Gradient Descent Tip1: Tuning your learning rates

       学习率(learning rate)对函数的优化过程影响很大:若学习率太小,则loss曲线下降太慢;若学习率太大,则loss曲线会卡在某一位置不动或飞上天。。。具体如下图所示。
  
       自适应学习率
       为了找到合适的学习率,一种简单的方法是随着迭代步数增加而逐渐降低学习率(一开始离目标远,所以学习率大些,后来离目标近,学习率就小些),并且不同的参数有不同的学习率)。
       Adagrad是调整学习率的一种简单有效方法。


       对参数更新的表达式稍加整理,如下图示:

       仔细看Adagrad的参数更新表达式,可以看出其中有矛盾的地方:g^t是损失函数L关于参数w的偏导数,g^t越大,迭代步长越大,参数更新越快,但分母实现的效果却恰好相反。

       怎样解释这种“矛盾”呢?
       直观解释是造成反差,给人以surprise。。。(并不太懂惊喜在哪里......
       以loss function为一元二次函数的解释是,在参数迭代更新的过程中,最优步长是:

       g^t是一阶导数,用之前算的一阶导数平方和的平方根来表示二阶导。

Gradient Descent Tip2: Stochastic Gradient Descent

       随机梯度下降最大的优点是让训练过程变得更快!
       GD和SGD比较如下图:
  
       对比:       
       GD:看完所有的examples后更新参数,过程比较稳定,Loss走的方向是按Gradient建议的方向走。
       SGD:看完一个example就更新一次参数,如果有20个example就更新20次参数,更快一些。

Gradient Descent Tip3: Feature Scaling

       建议把不同的feature缩放到相同的范围内。为啥这么做,以下图为例:

       如上图左上所示,feature x1和x2有不同的scale(可以认为x2是x1的100倍)。x1较小,w1对y的影响比较小,Loss在w1方向上比较平滑。因为x2较大,所以w2的轻微变化就会对Loss产生很大的影响,Loss在w2方向上比较sharp。

       对GD有何影响?
       如上图左下所示,不同参数的更新需要不同的学习率,同一组学习率搞不定。未对feature进行缩放时,更新参数比较难。
       上图右下所示,在缩放后,Loss函数的等高线成了圆形,更新参数比较容易。在GD过程中,Loss并不是朝着最低点走,更新参数时,Loss走的方向是顺着等高线的方向走。如果Loss函数的等高线是正圆形,则起始点不管在这个区域的哪个位置都会朝着圆心走。所以在feature scaling后,更新参数比较有效率。
       feature scaling的方式有很多,最简单的一种是把不同样本中的同一维的数据进行处理使其符合高斯分布。

Gradient Descent Theory

       在利用梯度下降法(GD)求解损失函数时,参数更新后,Loss一定下降吗?答案未必!
       先不考虑梯度下降法,可以利用这种方法求最小值,如下图所示,在起始点画一个圈,找到圆形边上Loss最小的点;然后以该点为圆心,再画一个圆,找到圆形边上Loss最小的点,以此类推。

       基于泰勒公式,若红圈无穷小时,则L(theta)=s+u(theta1-a)+v(theta2-b)成立。



       所以,理论上学习率(即红色圈)要无穷小时,L(theta)那个式子才成立。在利用GD每次更新完参数后,理论上学习率要无穷小才能保证Loss越来越小。
       在实际执行过程中,学习率够小就行了。所以若学习率可能未设好,可能在更新参数后,L(theta)那个式子不成立,导致在GD过程中没法让Loss越来越小。
       如果考虑泰勒展开式的二次项,会在DL过程中增加很多计算量,用此来换取高效地更新参数是不划算的,所以通常梯度下降法仍是主流做法。
       梯度下降法的限制
       可能会陷入到局部极小值点或鞍点中,但这些在具体的问题中最多只是幻想。当微分值很小时,不见得很接近局部极小值点。只有在开天眼的情况下,才能判断某一点是否是全局最小值。

华为的C语言编程规范.pdf 华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。 立即下载

相关推荐

[cadence]Allegro STEP-3D模型导入、匹配、导出的方法及注意事项

如果 Avaliable里面没有和symbols对应的文件,说明没有对应的3D模型,这时候需要在你的step路径下创建y与 .dra 封装文件相同名称的。选择好 Output file 和 name 之后呢,点击 Export。首先打开Setup - Step Package Mapping。注意:路径中不能有中文名称,有的话你会发现不能导出,也不会报错。在路径下将下载或者自己做的 3D模型文件改名之后,重新打开。可在View -> 3D View。

LuDvei的博客 2万+

损失函数的等高线与参数置零的关系

每条等高线上的所有点都有相同的损失值内层等高线损失小,外层等高线损失大我们的目标是找到最内层的等高线(最小损失)

哪惧明天,风高路斜 693

Flowable高级篇 -6.8.0 最全表结构说明-主要表结构字段注释

flowable 28张表 详细

billzhen的博客 1万+

神经网络-损失函数-等高线理解

经常会有人用等高线理解一些事情,那么什么是等高线能 用程序画出下面这个函数的损失函数的等高线 K是神经网络一个神经元的权重W b是一个神经元的偏移值 Y=kx+b 图片 import math import random import numpy as np import matplotlib.pyplot as plt x_train = np.array([0, 1, 2, 3...

Harry的博客 6544

华为海思2026届数字IC秋招笔试高频考点解析与实战技巧(2025最新版)

本文深入解析华为海思2026届数字IC秋招笔试的高频考点与实战技巧,涵盖时序优化、低功耗设计、DFT规则等核心模块。针对2025年最新真题,提供详细的解题思路和工程经验,帮助考生高效备考。特别关注SystemVerilog约束随机测试等新增考点,助力考生在秋招笔试中脱颖而出。

m2n3o4p5的博客 414

Excel也能玩转K-means聚类?手把手教你用表格搞定用户分群(附完整公式)

本文详细介绍了如何在Excel中实现K-means聚类算法,无需编程即可完成用户分群。通过SUMIF、SQRT等基础函数,从数据预处理到最终分群全流程手把手教学,特别强调数据标准化和迭代优化的关键步骤,帮助运营团队低成本高效分析用户行为数据。

weixin_30555125的博客 181

pytorch基础(九)-正则化

过拟合即训练后的权重为高方差,正则化的目的就是减小权重的方差

靓仔沾点健忘症,写给时间下游的自己 891

Vienna整流器SVPWM调制:7扇区划分与中点电位平衡的MATLAB/Simulink实现解析

本文深入解析Vienna整流器的SVPWM调制技术,重点介绍7扇区划分与中点电位平衡的MATLAB/Simulink实现方法。通过详细的算法推导和仿真模型构建,帮助工程师掌握整流器闭环控制策略,优化功率转换效率。内容涵盖扇区判断逻辑、矢量作用时间计算及中点电位平衡的PID调节等核心技术要点。

weixin_33937499的博客 386

Batch Normalization

Batch Normalization

qq_41596730的博客 657

逆强化学习:从专家示范中学习策略

逆强化学习(Inverse Reinforcement Learning,简称IRL)是强化学习(Reinforcement Learning,简称RL)的一个子领域,它的目标是从专家的行为中学习策略。在传统的强化学习中,智能体通过与环境交互,根据奖励信号来学习一个策略。而在逆强化学习中,我们没有直接的奖励信号,而是通过观察专家的行为来推断出奖励函数,从而学习到一个与专家类似的策略。逆强化学习作为强化学习的一个重要子领域,在许多实际应用场景中都取得了显著的成功。

AI天才研究院 1449

PyCharm配置SSH远程解释器第3步时弹框报错:com.google.gson.stream.MalformedJsonException: Expected value at l...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1928

【machine learning-八-可视化loss funciton】

loss fuction的可视化

zishuijing_dd的博客 861

OpenCV实战系列——图像线条提取

基于内容的图像分析,需要从构成图像的像素集合中提取有意义的特征。轮廓、线条、区域等是基本的图像基元,可用于描述图像中包含的元素。本节将介绍如何提取重要的图像线条特征。

m0_58523831的博客 1万+

人工智能数学基础04之:梯度等高线

先抛出一个问题:梯度下降的方向为什么与切线方向垂直?        从图上能够看出,也经常听老师同学说起,梯度下降的方向与等高线的切线方向垂直。 那么为什么会垂直呢?其实是一个高数问题。 解释 假设我们的损失函数为z=f(x,y),在几何上表示是一个曲面,该曲面被平面c(c为常数)所截得的曲线l方程为: 这条曲线l在xoy轴面上的投...

智者之家 7044

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【机器学习】损失函数(Loss Function)全总结(2023最新整理)关键词:Logistic、Hinge、Exponential、Modified Huber、Softmax、L1、L2正则化

【机器学习】损失函数(Loss Function)全总结(2023最新整理) 关键词:Logistic、Hinge、Exponential、Modified Huber、Softmax、L1、L2正则化

Next_SummerAgain的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

台大李宏毅老师——深度学习 课程笔记 六 (Tips for DNN Regularization)

文章目录Recipe of Deep LearningReLUMaxoutAdagrad & RMSpropLocal Minimum Recipe of Deep Learning 在Deep learning中,我们一定是先看training data的表现好不好,然后再看在testing data上面的表现。如果在training data就不好,要先调整模型达到不错的表现。 所以我们不要一看到20-layer比50-layer在testing表现好,就说50-layer 过拟合了,先要去

爱学习的大叔的博客 906

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

梯度方向与等高线方向垂直的理解

1.前言 在讲解梯度下降算法时,经常可以看到下面这张图(图片来自Wiki百科): 这张图后面一般都会再接一句,梯度下降的方向与等高线的切线方向垂直。 最开始的时候对这句话并没有多想,觉得这理所应当。不过突然有一天回过神来,为什么梯度下降方向与等高线的方向垂直啊?然后开始仔细考虑了一下这个问题。 2.等高线 看到知乎上的一幅图,能比较清楚地看出等高线的绘制过程,在此粘贴过来。 3.梯度的定义 梯...

bitcarmanlee的博客 1万+

台大李宏毅机器学习2020学习笔记(一):机器学习简介

前言 去年走马观花式的听了一遍台大李宏毅老师的Machine Learning 2019,觉得老师讲的很好。于是打算今年重新细致的听一遍,并做一份完整的笔记。就写这么多,从此开始吧。 概念 机器学习(Machine Learning):让机器自动找函数。如语音识别,就是让机器找一个函数,输入是声音信号,输出是对应的文字。如下棋,就是让机器找一个函数,输入是当前棋盘上黑子白子...

意疏的学习笔记 1949

matplotlib绘制线性回归y=kx+b参数的损失函数等高线图

如题,直接上代码和结果 import math import random import numpy as np import pandas as pd import matplotlib.pyplot as plt x_train = np.array([0, 1, 2, 3, 4, 5]) y_train = np.array([1.1, 2.2, 3.8, 4.1, ...

weixin_41855010的博客 2875

深度学习---之梯度为什么垂直于等高线

为什么梯度的方向与等高线切线方向垂直? 2017-07-12 22:48 为什么梯度的方向与等高线切线方向垂直 在三维曲面上的梯度更新过程中,很多地方出现梯度的下降方向是如下这样走的: 图片来源于百度百科 从图上能够看出,也经常听老师同学说起,梯度下降的方向与等高线的切线方向垂直。 那么为什么会垂直呢?其实是一个高数问题。 解释 假设我们的损失函数为z=f(x,y),

zxyhhjs2017的博客 4934

李宏毅机器学习课程笔记1:Regression、Error、Gradient Descent

台湾大学李宏毅老师的机器学习课程是一份非常好的ML/DL入门资料,李宏毅老师将课程录像上传到了YouTube,地址:NTUEE ML 2016 。 这篇文章是学习本课程第1-3课所做的笔记和自己的理解。Lecture 1: Regression - Case Studymachine learning 有三个步骤,step 1 是选择 a set of function, 即选择一个 model,

徐子尧的博客 1万+

吴恩达机器学习笔记--第一周-2.模型和损失函数

week1-2.Model and Cost Function一、Model Representation训练集(training set)中的一些符号表示:单变量线性回归(linear regression with one variable/univariate linear regression)二、Cost Funtion三、Cost Function-Intruction I四、Cost...

野心家-Andy的博客 573

吴恩达《Machine Learning》-cost function损失函数(二)

问题:如何选择参数θi? m代表样本数量 θ表示 参数 机器学习主要就是学习函数中的参数 比如一次函数 不同的参数 会产生不同的函数 目的: 找到一组θ0,θ1参数使 图中函数的线 尽可能多的拟合到更多的数据点。故也就是使图中线上的函数值hθ(x) 与 数据点的值 y 之间的距离最小。 为了防止hθ(x) - y 产生的正负值相加问题。采用平方差,都转换为正数。之后将m个样本的差值求和,除以...

丰brother的博客 987

深度学习基础之-1.4损失函数

损失函数 损失就是所有样本的误差的总和,亦即: 损失=∑i=1m误差i损失 = \sum^m_{i=1}误差_i损失=i=1∑m​误差i​ 在黑盒子的例子中,我们如果说“某个样本的损失”是不对的,只能说“某个样本的误差”,如果我们把神经网络的参数调整到完全满足一个样本的输出误差为0,通常会令其它样本的误差变得更大,这样作为误差之和的损失函数值,就会变得更大。所以,我们通常会在根据某个样本的误差调整...

Susan Wong 2025

从损失函数的角度详解常见机器学习算法(1)

作者:章华燕编辑:赵一帆1、机器学习中常见的损失函数一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数,又称为代价函数(Cost Function)。损失函数是用来评价模型的预测值 Y_hat=f(X) 与真实值Y的不一致程度,它是一个非负实值函数。通常使用

学习AI算法,请关注微信公众号:机器学习算法全栈工程师…… 3092

深度学习优化函数详解(1)-- Gradient Descent 梯度下降法

深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 深度学习优化函数详解(3)– mini-batch SGD 小批量随机梯度下降 深度学习优化函数详解(4)– momentum 动量法 深度学习优化函数详解(5)– Neste...

史丹利复合田的博客 1万+
上一篇: 台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)
下一篇: 预处理: 主成分分析和白化
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值