SDG、SGD-M实现

https://shop.v2ss.bid/users/index.php?rp=/knowledgebase/10/V2Ray.html
目标函数: y = x 2 y=x^{2} y=x2
基于SGD和带动量的SGD的优化算法对目标函数进行优化。在单个变量进行优化时,迭代次数,及每一轮 x x x的更新量,变化不大

动量法
    dw:当前梯度,vdw:上一轮更新量
    vdw = beta*vdw+(1-beta)*dw
    w = w - lr*vdw

sgd
    dw:当前梯度
    w = w - lr*dw
from matplotlib import pyplot as plt
import numpy as np
def func_y(x):
    '''
    目标优化函数
    y = x**2
    '''
    return x**2
def d(x):
    '''
    目标函数关于梯度的倒数
    '''
    return 2*x
def func_vdw(vdw,dw):
    '''
    动量法中添加动量项
    '''
    return 0.1*vdw+0.9*dw
def momentum(x,threshold):
    '''
    动量法
    dw:当前梯度,vdw:上一轮更新量
    vdw = beta*vdw+(1-beta)*dw
    w = w - lr*vdw
    '''
    vdw = 0
    x_lis = [x]  # 记录自变量更新情况
    y_lis = [func_y(x)]  # 记录因变量更新情况
    while func_y(x) > threshold:
        dw = d(x)
        vdw = func_vdw(vdw, dw)# 当前梯度累加以前的梯度
        x = x - lr * vdw # 更新变量
        y = func_y(x)
        x_lis.append(x)
        y_lis.append(y)
    return x_lis,y_lis

def sgd(x,threshold):
    '''
    sgd
    dw:当前梯度
    w = w - lr*dw
    '''
    vdw = 0
    x_lis = [x]# 记录自变量更新情况
    y_lis = [func_y(x)]# 记录因变量更新情况
    while func_y(x) > threshold:
        dw = d(x)
        vdw = dw# 只有当前的梯度
        x = x - lr * vdw# 更新变量
        y = func_y(x)
        x_lis.append(x)
        y_lis.append(y)
    return x_lis,y_lis

x = 5# 初始值
lr = 0.1# 学习率
threshold = 0.5# 目标的误差限

x_lis,y_lis =momentum(x,threshold)
x_lis_sgd,y_lis_sgd =sgd(x,threshold)
plt.scatter(x_lis,y_lis,c='k')
plt.scatter(x_lis_sgd,y_lis_sgd,c='r',marker='d')
# plt.title('iteration:'+str(len(x_lis)))
plt.title('y=x**2,lr = {},momen_iteration:{},sgd_iteration:{}'.format(lr,len(x_lis),len(x_lis_sgd)))
x = np.arange(-x,x+2,0.01)
y = x**2

print(x_lis_sgd)
print(x_lis)
plt.plot(x,y)
plt.show()

在这里插入图片描述
每轮更新量
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SDG-sat是指可持续发展目标卫星(Sustainable Development Goals Satellite),是一种利用卫星技术来监测和评估可持续发展目标(SDGs)进展的卫星系统。 可持续发展目标是由联合国于2015年制定的一项全球议程,旨在到2030年实现全球范围内的可持续发展。这些目标包括消除贫困、保障健康与福祉、实现性别平等、促进可持续能源等17个领域。然而,监测和评估这些目标的进展是一项复杂的任务,需要大量的数据和信息支持。 SDG-sat通过卫星遥感技术来获取地球观测数据,以支持对SDGs的监测和评估。它可以提供全球范围内的地表变化、资源利用、环境状况等方面的数据,为决策者提供有关SDGs实施情况的信息。 SDG-sat利用多种遥感传感器,如光学传感器、雷达传感器等,收集地表、大气和海洋等领域的数据。这些数据可以用于评估贫困程度、监测自然资源利用、跟踪环境变化、监测城市化进程等方面。 此外,SDG-sat还可以提供高时空分辨率的数据,可以进行长期观测和监测,以便更好地了解SDGs的动态变化。它为决策者、研究人员和社会各界提供了宝贵的信息,以支持可持续发展目标的实施和监测。 总而言之,SDG-sat是一种利用卫星遥感技术来监测和评估可持续发展目标进展的卫星系统。通过提供全球范围内的地球观测数据,SDG-sat为实现可持续发展目标提供了重要的数据支持和决策参考。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值