当前位置: 首页 > wzjs >正文

昆明专业建站网页怎么画

昆明专业建站,网页怎么画,wordpress显示文章图片,网站建设涉及的标准Optimization Algorithms Explained 1. Beale Function 与导数函数讲解 Beale 函数是一个著名的用于测试优化算法性能的函数,其具有多个局部极值点,适合评估不同优化器的表现: def beale(x1, x2):"""Beale 函数定义&#x…

Optimization Algorithms Explained

1. Beale Function 与导数函数讲解

Beale 函数是一个著名的用于测试优化算法性能的函数,其具有多个局部极值点,适合评估不同优化器的表现:

def beale(x1, x2):"""Beale 函数定义:f(x1, x2) = (1.5 - x1 + x1*x2)^2 + (2.25 - x1 + x1*x2^2)^2 + (2.625 - x1 + x1*x2^3)^2参数:x1 (float or array): 第一个变量x2 (float or array): 第二个变量返回:函数值(float or array)"""return (1.5 - x1 + x1*x2)**2 + (2.25 - x1 + x1*x2**2)**2 + (2.625 - x1 + x1*x2**3)**2def dbeale_dx(x1, x2):"""Beale 函数的一阶偏导:返回 [df/dx1, df/dx2]。用于梯度下降算法中。参数:x1 (float): 当前 x1 位置x2 (float): 当前 x2 位置返回:dfdx1 (float): 对 x1 的偏导dfdx2 (float): 对 x2 的偏导"""dfdx1 = 2*(1.5 - x1 + x1*x2)*(x2-1) + \2*(2.25 - x1 + x1*x2**2)*(x2**2-1) + \2*(2.625 - x1 + x1*x2**3)*(x2**3-1)dfdx2 = 2*(1.5 - x1 + x1*x2)*x1 + \2*(2.25 - x1 + x1*x2**2)*(2*x1*x2) + \2*(2.625 - x1 + x1*x2**3)*(3*x1*x2**2)return dfdx1, dfdx2

调用方式说明:

x = np.array([1.0, 1.5])
dfdx = dbeale_dx(*x)  # *x 解包为 x1, x2

这个解包调用方式是标准的 Python 用法,等价于 dbeale_dx(x[0], x[1])

2. Momentum 优化器逐行讲解

Momentum 方法在普通梯度下降基础上引入了动量项,公式如下:

  • 公式 (1): v t = γ v t − 1 − η ∇ f ( θ ) v_t = \gamma v_{t-1} - \eta \nabla f(\theta) vt=γvt1ηf(θ)
  • 公式 (2): θ = θ + v t \theta = \theta + v_t θ=θ+vt

代码实现:

def gd_momentum(df_dx, x0, conf_para=None):"""Momentum 优化器参数:df_dx: 梯度函数,形式为 df_dx(x1, x2),返回 (df/dx1, df/dx2)x0: 初始参数位置 (array)conf_para: 字典,包含如下超参数:- n_iter: 迭代次数- learning_rate: 学习率 η- momentum: 动量参数 γ返回:x_traj: 参数更新轨迹"""if conf_para is None:conf_para = {}conf_para.setdefault('n_iter', 1000)conf_para.setdefault('learning_rate', 0.001)conf_para.setdefault('momentum', 0.9)x_traj = [x0]  # 保存轨迹v = np.zeros_like(x0)  # 初始化速度向量 v0 = 0for _ in range(conf_para['n_iter']):dfdx = np.array(df_dx(*x_traj[-1]))v = conf_para['momentum'] * v - conf_para['learning_rate'] * dfdx  # 公式 (1)x_traj.append(x_traj[-1] + v)  # 公式 (2)return x_traj

3. Nesterov Accelerated Gradient 讲解

Nesterov 方法在计算梯度时先 “预判” 一步跳跃位置,公式如下:

  • 公式 (3): θ ^ = θ + v t − 1 \hat{\theta} = \theta + v_{t-1} θ^=θ+vt1
  • 公式 (4): v t = γ v t − 1 − η ∇ f ( θ ^ ) v_t = \gamma v_{t-1} - \eta \nabla f(\hat{\theta}) vt=γvt1ηf(θ^)
  • 公式 (5): θ = θ + v t \theta = \theta + v_t θ=θ+vt
def gd_nesterov(df_dx, x0, conf_para=None):"""Nesterov 加速梯度方法参数:df_dx: 梯度函数x0: 初始参数位置conf_para: 参数字典(n_iter, learning_rate, momentum)返回:x_traj: 参数更新轨迹"""if conf_para is None:conf_para = {}conf_para.setdefault('n_iter', 1000)conf_para.setdefault('learning_rate', 0.001)conf_para.setdefault('momentum', 0.9)x_traj = [x0]v = np.zeros_like(x0)for _ in range(conf_para['n_iter']):x_jump = x_traj[-1] + v  # 公式 (3)dfdx = np.array(df_dx(*x_jump))  # 在跳跃位置计算梯度 ∇f(θ + v)v = conf_para['momentum'] * v - conf_para['learning_rate'] * dfdx  # 公式 (4)x_traj.append(x_traj[-1] + v)  # 公式 (5)return x_traj

4. AdaGrad 讲解

AdaGrad 通过累积历史梯度的平方来自适应地缩小学习率,公式如下:

  • r t = r t − 1 + ∇ f ( θ ) 2 r_t = r_{t-1} + \nabla f(\theta)^2 rt=rt1+f(θ)2
  • θ = θ − η r t + ϵ ∇ f ( θ ) \theta = \theta - \frac{\eta}{\sqrt{r_t} + \epsilon} \nabla f(\theta) θ=θrt +ϵηf(θ)
def gd_adagrad(df_dx, x0, conf_para=None):"""AdaGrad 自适应梯度优化器参数:df_dx: 梯度函数x0: 初始参数位置conf_para: 参数字典,包含 learning_rate, epsilon, n_iter返回:x_traj: 参数轨迹"""if conf_para is None:conf_para = {}conf_para.setdefault('n_iter', 1000)conf_para.setdefault('learning_rate', 0.001)conf_para.setdefault('epsilon', 1e-7)x_traj = [x0]r = np.zeros_like(x0)for _ in range(conf_para['n_iter']):dfdx = np.array(df_dx(*x_traj[-1]))r += dfdx**2  # 累积平方梯度x_traj.append(x_traj[-1] - conf_para['learning_rate'] * dfdx / (np.sqrt(r) + conf_para['epsilon']))return x_traj

5. RMSProp 讲解

RMSProp 是 AdaGrad 的改进,引入滑动平均:

  • r t = γ r t − 1 + ( 1 − γ ) ∇ f ( θ ) 2 r_t = \gamma r_{t-1} + (1-\gamma) \nabla f(\theta)^2 rt=γrt1+(1γ)f(θ)2
  • θ = θ − η r t + ϵ ∇ f ( θ ) \theta = \theta - \frac{\eta}{\sqrt{r_t} + \epsilon} \nabla f(\theta) θ=θrt +ϵηf(θ)
def gd_rmsprop(df_dx, x0, conf_para=None):"""RMSProp 优化器参数:df_dx: 梯度函数x0: 初始值conf_para: 参数字典,包括 gamma, learning_rate, epsilon"""if conf_para is None:conf_para = {}conf_para.setdefault('n_iter', 1000)conf_para.setdefault('learning_rate', 0.001)conf_para.setdefault('epsilon', 1e-7)conf_para.setdefault('gamma', 0.9)x_traj = [x0]r = np.zeros_like(x0)for _ in range(conf_para['n_iter']):dfdx = np.array(df_dx(*x_traj[-1]))r = conf_para['gamma'] * r + (1 - conf_para['gamma']) * dfdx**2x_traj.append(x_traj[-1] - conf_para['learning_rate'] * dfdx / (np.sqrt(r) + conf_para['epsilon']))return x_traj

6. Adam 讲解

Adam 同时融合了 Momentum 和 RMSProp 的优点:

  • 一阶动量: s t = β 1 s t − 1 + ( 1 − β 1 ) ∇ f ( θ ) s_t = \beta_1 s_{t-1} + (1-\beta_1) \nabla f(\theta) st=β1st1+(1β1)f(θ)
  • 二阶动量: r t = β 2 r t − 1 + ( 1 − β 2 ) ∇ f ( θ ) 2 r_t = \beta_2 r_{t-1} + (1-\beta_2) \nabla f(\theta)^2 rt=β2rt1+(1β2)f(θ)2
  • 偏差修正: s ^ t = s t 1 − β 1 t , r ^ t = r t 1 − β 2 t \hat{s}_t = \frac{s_t}{1 - \beta_1^t}, \hat{r}_t = \frac{r_t}{1 - \beta_2^t} s^t=1β1tst,r^t=1β2trt
  • 参数更新: θ = θ − η s ^ t r ^ t + ϵ \theta = \theta - \eta \frac{\hat{s}_t}{\sqrt{\hat{r}_t} + \epsilon} θ=θηr^t +ϵs^t
def gd_adam(df_dx, x0, conf_para=None):"""Adam 优化器参数:df_dx: 梯度函数x0: 初始位置conf_para: 包含 rho1, rho2, epsilon, learning_rate"""if conf_para is None:conf_para = {}conf_para.setdefault('n_iter', 1000)conf_para.setdefault('learning_rate', 0.001)conf_para.setdefault('rho1', 0.9)conf_para.setdefault('rho2', 0.999)conf_para.setdefault('epsilon', 1e-8)x_traj = [x0]t = 0s = np.zeros_like(x0)r = np.zeros_like(x0)for _ in range(conf_para['n_iter']):dfdx = np.array(df_dx(*x_traj[-1]))t += 1s = conf_para['rho1'] * s + (1 - conf_para['rho1']) * dfdxr = conf_para['rho2'] * r + (1 - conf_para['rho2']) * (dfdx**2)st = s / (1 - conf_para['rho1']**t)rt = r / (1 - conf_para['rho2']**t)x_traj.append(x_traj[-1] - conf_para['learning_rate'] * st / (np.sqrt(rt) + conf_para['epsilon']))return x_traj
http://www.dtcms.com/wzjs/585079.html

相关文章:

  • 邢台网站建设联系电话成都网页设计工资多少钱
  • 体育直播网站源码软文营销常用的方式是什么
  • 网站模板及素材网站建设丨金手指谷哥12
  • dede网站怎么做404页面自己做的网站别人打不开
  • 企业英文网站建设网站建设黄页免费观看
  • xyz域名注册局官方网站个人app怎么做
  • 自己做营销型网站做宣传的网站有哪些
  • 广州建设网站平台地产广告设计网站
  • 网站建设高级seo优化排名营销
  • 辞职做网站开发一款短视频app软件需要多少钱
  • 美橙互联网站模板青岛市崂山区建设局网站
  • 化隆县公司网站建设网页浏览器英文缩写
  • 三亚网站定制开发公司黄冈网站建设报价
  • 网站开发技术人员保密协议如何网站数据备份
  • 郑州网站建设公司制作定制一站式做网站系统
  • 做网站前端的软件开发公司工程部主管岗位职责及工作内容
  • 个人网站做企业备案程序员培训学校
  • 手机上怎么自己做网站哪个小说网站防盗做的好
  • wordpress怎么搭建网站企业高端网站建设美工
  • 门户网站建设和推广wordpress菜单出不来
  • 网站建设是什么科目做一个中型网站需要多少钱
  • wix做的网站在国内访问不了360免费建站
  • 制作彩票网站需要多少钱查看网站开发平台
  • 国际物流网站制作模板千龙网站建设
  • 网站建设违法行为怎么制作网页内容
  • 本人已履行网站备案信息一个人做的网站做什么好
  • 一起学网站培训心得我的世界皮肤网站做
  • 那有名网站是php做的东莞市火速网络科技有限公司
  • 做爰片免费观看网站wordpress4.8.2下载
  • 进一步网站建设打电话做网站的话术