首页 > 其他分享 >神经网络优化篇:详解局部最优的问题(The problem of local optima)

神经网络优化篇:详解局部最优的问题(The problem of local optima)

时间:2024-01-23 14:11:26浏览次数:28  
标签:optima 鞍点 局部 算法 梯度 维度 problem local 最优

局部最优的问题

在深度学习研究早期,人们总是担心优化算法会困在极差的局部最优,不过随着深度学习理论不断发展,对局部最优的理解也发生了改变。向展示一下现在怎么看待局部最优以及深度学习中的优化问题。

这是曾经人们在想到局部最优时脑海里会出现的图,也许想优化一些参数,把它们称之为\(W_{1}\)和\(W_{2}\),平面的高度就是损失函数。在图中似乎各处都分布着局部最优。梯度下降法或者某个算法可能困在一个局部最优中,而不会抵达全局最优。如果要作图计算一个数字,比如说这两个维度,就容易出现有多个不同局部最优的图,而这些低维的图曾经影响了的理解,但是这些理解并不正确。事实上,如果要创建一个神经网络,通常梯度为零的点并不是这个图中的局部最优点,实际上成本函数的零梯度点,通常是鞍点。

也就是在这个点,这里是\(W_{1}\)和\(W_{2}\),高度即成本函数\(J\)的值。

但是一个具有高维度空间的函数,如果梯度为0,那么在每个方向,它可能是凸函数,也可能是凹函数。如果在2万维空间中,那么想要得到局部最优,所有的2万个方向都需要是这样,但发生的机率也许很小,也许是\(2^{-20000}\),更有可能遇到有些方向的曲线会这样向上弯曲,另一些方向曲线向下弯,而不是所有的都向上弯曲,因此在高维度空间,更可能碰到鞍点。

就像下面的这种:

而不会碰到局部最优。至于为什么会把一个曲面叫做鞍点,想象一下,就像是放在马背上的马鞍一样,如果这是马,这是马的头,这就是马的眼睛,画得不好请多包涵,然后就是骑马的人,要坐在马鞍上,因此这里的这个点,导数为0的点,这个点叫做鞍点。想那确实是坐在马鞍上的那个点,而这里导数为0。

所以从深度学习历史中学到的一课就是,对低维度空间的大部分直觉,比如可以画出上面的图,并不能应用到高维度空间中。适用于其它算法,因为如果有2万个参数,那么\(J\)函数有2万个维度向量,更可能遇到鞍点,而不是局部最优点。

如果局部最优不是问题,那么问题是什么?结果是平稳段会减缓学习,平稳段是一块区域,其中导数长时间接近于0,如果在此处,梯度会从曲面从从上向下下降,因为梯度等于或接近0,曲面很平坦,得花上很长时间慢慢抵达平稳段的这个点,因为左边或右边的随机扰动。

可以沿着这段长坡走,直到这里,然后走出平稳段。

所以此篇博客的要点是,首先,不太可能困在极差的局部最优中,条件是在训练较大的神经网络,存在大量参数,并且成本函数\(J\)被定义在较高的维度空间。

第二点,平稳段是一个问题,这样使得学习十分缓慢,这也是像Momentum或是RMSpropAdam这样的算法,能够加速学习算法的地方。在这些情况下,更成熟的优化算法,如Adam算法,能够加快速度,让尽早往下走出平稳段。

因为的网络要解决优化问题,说实话,要面临如此之高的维度空间,觉得没有人有那么好的直觉,知道这些空间长什么样,而且对它们的理解还在不断发展,不过希望这一点能够让更好地理解优化算法所面临的问题。

标签:optima,鞍点,局部,算法,梯度,维度,problem,local,最优
From: https://www.cnblogs.com/oten/p/17982334

相关文章

  • Kafka【问题 02】KafkaTemplate 报错 Bootstrap broker localhost:9092 (id: -1 rack:
    Kafka【问题02】KafkaTemplate报错Bootstrapbrokerlocalhost:9092(id:-1rack:null)disconnected问题解决1.报错信息主要的报错信息:Connectiontonode-1(localhost/127.0.0.1:9092)couldnotbeestablished.Brokermaynotbeavailable.和Bootstrapbrok......
  • F - Usual Color Ball Problems
    F-UsualColorBallProblemsProblemStatementYouaregivenpositiveintegers$N$,$M$,$K$,andasequenceofpositiveintegersoflength$N$,$(C_1,C_2,\ldots,C_N)$.Foreach$r=0,1,2,\ldots,N-1$,printtheanswertothefollowingproblem.......
  • CCPC-final 2019 Problem B - Infimum of Paths
    链接参考题解题意:求0->1路径上的数组成真小数最小值若最小路径无环,则长度\(\le\)n-1方法一从\(0\)开始,维护当前走到的点,每次都走边权(当前总体)最小的且\(v\)能到\(1\)的边,跑\(2n\)条边,顺便沿路维护走过的边权连\(1\rarr1\)代价为\(0\)的环,这样最后一定是在环......
  • ThreadLocal 在实战场景下的内存泄漏、逻辑混乱问题总结
    前言很早之前虽然看过ThreadLocal的源码,但是对于真实业务场景下可能存在的问题没有做过总结,刚好前几天在分析Mybatis内存泄漏的问题,想着ThreadLocal不是也可能会发生内存泄漏吗?于是乎本文出现了。本文相关博客1:ThreadLocal还存在内存泄漏?源码级别解读2:高质量实现单文件......
  • 深入理解Java中的ThreadLocal
    第1章:引言大家好,我是小黑。今天咱们来聊聊ThreadLocal。首先,让咱们先搞清楚,ThreadLocal是个什么玩意儿。简单说,ThreadLocal可以让咱们在每个线程中创建一个变量的“私有副本”。这就意味着,每个线程都可以独立地改变自己的副本,而不会影响其他线程。这就像是每个人都有自己的笔记......
  • [c]: 语言环境设置 -- setlocale()
    [c]: 语言环境设置--setlocale()    一、语言环境设置【fedora】  1、【Linux--类redhat】语言环境设置 1.1、查看语言环境【/etc/locale.conf】:/etc/locale.conf  2、【Linux--类debian】语言环境设置 2.1、查看语言......
  • 洛谷题单指南-模拟和高精度-P1601 A+B Problem
    原题链接:https://www.luogu.com.cn/problem/P1601题意解读:本题是高精度加法的模版题。知识点解析:  高精度加法:  如果一个数大到远超过整形变量的范围时,就不能使用int、long、longlong等变量来存储整数,也不能直接通过变量加法来求和。  因此,需要回到加法计算的本质,从个......
  • SP839Optimal Marks 题解
    part1:建图二进制异或,每一位互不干扰。所以对每一位分开来考虑。然后变成了一个经典的模型。当前每一个未确定点有两个选择:变成\(1\),变成\(0\);已经确定的点只能选它本身的值。于是构造思路非常套路了:构造虚点\(S\)、\(T\)。对于一个点\(u\),从\(S\)连向\(u\)一条边,值为......
  • vue入门页面,搭建localhost官方默认页面
    按照提示操作可以做出下图效果:idea中的vue目录层级为:1.下载node.js(nodes.js是前端的运行环境,类似于后端中的jdk,没有node.js后续操作无法进行,具体流程百度)2.新建文件夹(这个文件夹就是你之后vue的目录)点进去新建的文件夹3.输入cmd回车4.输入命令:npmconfigsetreistryht......
  • localStorage、sessionStorage和cookie的使用
    vue-cookies的使用首先需要安装vue-cookiescnpminstallvue-cookies-S 具体使用方法如下:设置cookie://key,value形式、过期时间为7天cookie.set('name','zeng','7d') 获取cookie://打印key值为name的cookieconsole.log(cookie.get('name')) 删除......