梯度下降算法 | 学习笔记

简介: 快速学习梯度下降算法

开发者学堂课程【Tensorflow2.0入门与实战梯度下降算法】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/664/detail/11100


梯度下降算法


基本介绍:

一.梯度下降算法含义

二.梯度的输出

三.如何用梯度下降算法求解出a和b的参数

一.梯度下降算法含义

梯度下降算法是一种致力于找到函数极值点的算法,是深度学习的核心算法。

前面介绍过,所谓“学习”便是改进模型参数,以便通过大量训练步骤将损失最小化,损失为均方差的损失。有了这个概念,将梯度下降法应用于寻找损失函数的极值点便构成了依据输入数据的模型学习。

通过改变权重的参数从而找到损失函数的极值。

 

二.梯度的输出

梯度的输出是一个由若干偏导数构成的向量,它的每个分量对应于函数对输入向量的相应分量的偏导:

image.png

梯度的输出向量表明了在每个位置损失函数增长最快的方向,可将它视为表示了在函数的每个位置向哪个方向移动函数值可以增长。


三.如何用梯度下降算法求解出a和b的参数

案例:

image.png

上节课的例子是求解出a和b使得损失函数最小。假定损失函数为z,z=(f(x)-y)²/n。z受两个变量的影响,第一个权重a,第二个为第二个权重b,要找到合适的a,b的值使得z最小。

它们之间有一个曲线,应该如何找到极值点,图片最低点对应的位置,对应a的值假设为2,对应b的值假设为1,当a=2,b=1时z取得最小值。如何取得最小值找到a和b。

在深度学习中使用随机初始化,随机初始化是重要的概念,在 Tensorflow 2.0中 Tf.keras 是高阶的API,已经分装好了变量初始化操作,虽然不需要自己初始化变量但要知道怎么做,其实是随机的初始化a和b的值,比如a=3,b=5随机初始化,在深度网络中随机初始化很多值,如何求得最小值需要计算梯度。

使用梯度下降算法来求解深度学习极值的方法:

求出最小值,用随机初始化。计算梯度值,寻找梯度值使得z变化最快的方向就叫做梯度。

随着梯度方向走b增大a减小继续走仍然有梯度,继续改变a和b的值使得z越来越小,只要z在变小就继续改变a和b的值。

每次改变代表学习速率。梯度就是它的导数,导数是变化最快的方向,沿着导数的方向去改变a和b的值,经过每一次循环求解导数改变a和b的值来找到最小值。

每次移动的距离就是学习的速率,既不能太大也不能太小。速率太小,要迭代n多次,速度非常慢。

速率太大会在极值点附近反复移动。下降过程如何避免局部极值点,沿着梯度方向走遇到,梯度为0为局部的极值点,在深度学习里局部极值点从来不是问题,因为使用随机初始化总有一个点找到z从而将局部极值点排除掉。

image.png

梯度下降算法在 Tensorflow 里集成了优化算法,优化算法其实是 compile 里的 optimizer,使用 optimizer 应用梯度寻找梯度的最小值,优化函数没有规定学习速率。

上节使用 adam 默认学习速率,可以用优化算法的实例规定学习速率。对于有哪些优化算法如何选择学习速率在后面自定义循环讲解这个问题。

相关文章
|
1月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
5月前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
|
2月前
|
机器学习/深度学习 算法
深度学习中的优化算法:从梯度下降到Adam
本文深入探讨了深度学习中的核心——优化算法,重点分析了梯度下降及其多种变体。通过比较梯度下降、动量方法、AdaGrad、RMSProp以及Adam等算法,揭示了它们如何更高效地找到损失函数的最小值。此外,文章还讨论了不同优化算法在实际模型训练中的表现和选择依据,为深度学习实践提供了宝贵的指导。
90 7
|
1月前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)
|
3月前
|
机器学习/深度学习 算法 Python
探索机器学习中的梯度下降优化算法
【8月更文挑战第1天】在机器学习的广阔天地里,梯度下降法如同一位勇敢的探险家,指引我们穿越复杂的数学丛林,寻找模型参数的最优解。本文将深入探讨梯度下降法的核心原理,并通过Python代码示例,展示其在解决实际问题中的应用。
75 3
|
5月前
|
机器学习/深度学习 分布式计算 并行计算
算法金 | 再见!!!梯度下降(多图)
**梯度下降及其优化算法简述** 梯度下降是一种优化算法,广泛用于机器学习和深度学习,通过迭代更新模型参数以最小化损失函数。它有几种变体,包括批梯度下降(使用全部数据)、随机梯度下降(单个样本)和小批量梯度下降(小批量样本)。每种形式在计算效率和稳定性上各有优劣。
88 4
算法金 | 再见!!!梯度下降(多图)
|
5月前
|
算法
梯度下降算法(二)
梯度下降法中,学习率选择至关重要。0.3的学习率导致无法找到最小值且产生震荡,而0.01则使结果接近最优解(2.99998768)。当学习率进一步减小至0.001,点远离最低点。通过迭代次数增加至1000次,可更接近最低点(2.999999999256501)。梯度下降用于最小化损失,学习率控制参数更新步长,需平衡收敛速度和稳定性。迭代次数和初始点也影响模型性能,合适的初始化能加速收敛并避开局部极小值。
|
5月前
|
机器学习/深度学习 存储 算法
梯度下降算法(一)
梯度下降是一种迭代优化算法,用于找到多变量函数的最小值。它不直接求解方程,而是从随机初始点开始,沿着梯度(函数增大幅度最大方向)的反方向逐步调整参数,逐步逼近函数的最小值。在单变量函数中,梯度是导数,而在多变量函数中,梯度是一个包含所有变量偏导数的向量。通过计算梯度并乘以学习率,算法更新参数以接近最小值。代码示例展示了如何用Python实现梯度下降,通过不断迭代直到梯度足够小或达到预设的最大迭代次数。该过程可以类比为在雾中下山,通过感知坡度变化来调整前进方向。
|
5月前
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
5月前
|
机器学习/深度学习 算法 C语言
【深度学习】优化算法:从梯度下降到Adam
【深度学习】优化算法:从梯度下降到Adam
159 1