深度学习中的优化问题与优化算法实现(一)之优化问题分析

本文分析了深度学习优化中的两大挑战:局部最小值和鞍点,通过举例解释了它们的含义。针对局部最小值,提出了使用随机梯度下降、设置冲量和改变初始权值的解决方案。同时介绍了梯度下降法的一维、多维形式,探讨了学习率的影响。最后,简述了随机梯度下降如何减少计算开销。
摘要由CSDN通过智能技术生成

深度学习中优化的两个挑战:局部最小值和鞍点

(1)局部最小值 :对于目标函数f(x),如果存在f(x)的值比在x邻近的其他值更小,那么f(x)可能是一个局部最小值(local minimum)

举个例子,给定函数: f ( x ) = x ⋅ c o s ( p i ∗ x ) f(x)=x \cdot cos(pi*x) f(x)=xcos(pix)

%matplotlib inline 
import sys
import numpy as np
import pandas as pd
import matplotlib.pylab as plt
import torch
def f(x):
    return x*np.cos(np.pi *x)
x=np.arange(-1.0,2.0,0.1)    #x的范围和步长
figure=plt.figure(figsize=(8,4))#创建图表窗口并设置大小
plt.plot(x,f(x))
plt.title('f(x) graph')      #图名 
plt.xlabel('x')
plt.ylabel('f(x)')
# annotate an important value
plt.annotate("local minimum", (-0.3,-0.25), xytext=(-0.62, -1.0),
              fontsize=12,arrowprops=dict(arrowstyle='->'))
plt.annotate("global minimum", (1.1,-0.95), xytext=(0.74, 1.0),
              fontsize=12,arrowprops=dict(arrowstyle='->'))

Text(0.74,1,'global minimum')

在这里插入图片描述

深度学习模型的目标函数可能存在若干局部最优值,当优化问题的数值解在局部最优解附近时,由于目标函数的有关解的梯度接近或者变为零,最终迭代求得的数值解可能只是灵目标函数最小化而非全局最小化。

解决局部最小值的基本方案 (PS:后面优化方法会细讲)

(1)使用随机梯度下降代替梯度下降

(2)设置冲量

(3)使用不同的初始权值进行训练

(2)鞍点(saddle point)

举个例子,给定函数: f ( x ) = x 3 f(x)=x^3 f(x)=x3

x1=np.arange(-2,2.0,0.1)    #x的范围和步长
figure1=plt.figure(figsize=(8,4))#创建图表窗口并设置大小
plt.plot(x1,x1**3)
plt.title('$ f(x)=x^3 $ graph')      #图名 
plt.xlabel('x')
plt.ylabel('f(x)')
# annotate an important value
plt.annotate("saddle point", (0,0.2), xytext=(-0.36, 4.0),
              fontsize=12,arrowprops=dict(arrowstyle='->'))
Text(-0.36,4,'saddle point')

在这里插入图片描述

再举个二维的例子: f ( x , y ) = x 2 − y 2 f(x,y)=x^2-y^2 f(x,y)=x2y2


#线框图
x,y=np.mgrid[-1: 1: 31j,-1: 1: 31j]
z=x**2-y**2
fig =plt.figure()
ax 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值