全局优化与目标优化的异同

从porgo和optimtool的使用来解释

在多模态问题中,多数全局优化算法是通过设置跳跃局部最优点的比率来完成全局最优的搜索,这类算法需要利用到一阶梯度的局部信息,以至于演进方向的分叉导致了算法的执行复杂度按照搜索次数倍增。首先,超线性的优化算法是采用一阶梯度、二阶海瑟,非精确解等方式来完成连续介质信息的演进,所以机器学习训练问题中,常用初始分布作为优化求解的起点,深度学习框架具备连续正态分布、伯努利离散分布等,大多数现实数据是从独立随机观测量中采样得到,因此适用默认的分布。

在所有机器学习优化问题中,优化求解器是优先配置且只适应编码层的序列值域,求解器接收的必选参数是拟合函数、微分参量(类与对象设计中常先存储)、初始点(深度学习框架常默认标准正态分布)。porgo和optimtool的调用训练算法接收的第一个必选参数是拟合函数,不同的是optimtool采用先序符号微分的办法减小整体运行时的复杂度,porgo使用时间累积的随机性来更新当前解值(从上一次演进后的数值组合启发)。

相同点是需要规定数值范围,不同点是全局优化从数值范围内搜索,目标优化算法从单组值开始启发全局的搜索,例如从初始化的分布开始拟合更精确的系数,所以复杂的拟合函数更适用于多模态和自然语言处理问题,其系数的个数和组合影响程度更高。目标优化算法的执行目的更多,相比于全局优化是搜索全局最优点,目标优化算法是受学习率直接影响的,研究复杂函数是第一步收敛,后几步受控制因子和时序(步序)信息调节来完成局部的跳跃,所以多数机器学习优化问题常采用目标优化算法,源于初启动内存的稳定和可控,密集过程的超线性收敛及全局收敛性。

数学中常用的梯度( d k d_k dk),人工智能中用 g r a d \mathrm{grad} grad;初始点用LaTex标记为 x 0 x_0 x0,人工智能常用 p a r a m s \mathrm{params} params;学习率在目标步序研究中记为 a l p h a \mathrm{alpha} alpha,人工智能中常用lr、learning_rate。所有的计算步都是一样,例如有zip打包数据更新,和循环步更新偏差( a l p h a ∗ d k \mathrm{alpha} * d_k alphadk l r ∗ g r a d \mathrm{lr * grad} lrgrad)是类似的,但是资源要共享可引,不可引则深复制在更新函数中做步。

import porgo
import optimtool.unconstrain as ou
from optimtool.base import np, sp, plt
objective_function_lambda = lambda x: (-13 + x[0] + ((5 - x[1])*x[1] - 2)*x[1])**2 + (-29 + x[0] + ((x[1] + 1)*x[1] - 14)*x[1])**2 + (-13 + x[2] + ((5 - x[3])*x[3] - 2)*x[3])**2 + (-29 + x[2] + ((x[3] + 1)*x[3] - 14)*x[3])**2
x = sp.symbols("x1:5")
objective_function = (-13 + x[0] + ((5 - x[1])*x[1] - 2)*x[1])**2 + (-29 + x[0] + ((x[1] + 1)*x[1] - 14)*x[1])**2 + (-13 + x[2] + ((5 - x[3])*x[3] - 2)*x[3])**2 + (-29 + x[2] + ((x[3] + 1)*x[3] - 14)*x[3])**2
bounds = [(-10, 10)] * 4 # [[-10, 10]] * 4objective = porgo.glos(objective_function_lambda, bounds) # mutation=0.5, recombination=0.9
objective.rand_pop(100) # init population
for i in range(3): # if need to execute 3 timesobjective.train_gen(1000)objective.result() # must be executedprint('porgo search global result: {}(times), {}, {}'.format(i, objective.mini, objective.fit_mini)) # the best converged result
x_0 = (4.5, 3.5, 4.5, 3.5)
print('optimtool search nearest result: {}'.format(ou.newton_quasi.bfgs(objective_function, x, x_0)))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40099.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序转发朋友圈详细教程

微信小程序转发朋友圈功能,官方说的很官方,容易踩坑 官方链接戳这里 想分享朋友圈必须要分享好友 onShareTimeline() { } 想要生效必须先定义 onShareAppMessage() { } /*** 用户点击右上角分享*/onShareAppMessage() { },onShareTimeline() { } 简单…

不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造

不锈钢酸退作业区冷线氮氧分析仪采样系统优化改造 一、项目提出前状况: (一)不锈钢酸退作业区酸洗线脱氮系统使用的废气监测仪器氮氧分析仪属于环保设备,数据检测的准确性直接影响环保指标,因此一旦数据检测有误,势必会引起环保事件。脱氮系统是将酸洗过程中产生的酸雾通…

一维信号全变分(TV)降噪方法(MATLAB)

信号降噪一直是领域研究的热点,这是一项十分有意义并且极具挑战性的工作,经过几十年来相关科研人员的共同努力,降噪技术得到了极大的发展,并在现实生活中也得到了广泛的应用。其中,许多常用的方法有:小波变…

深入Django(三)

Django视图(Views)详解 引言 在前两天的博客中,我们介绍了Django的基本概念和模型系统。今天,我们将深入探讨Django的视图(Views),它们是处理用户请求和返回响应的地方。 什么是Django视图&a…

Golang 单引号、双引号和反引号的概念、用法以及区别

在 Golang(Go 语言)中,单引号 ()、双引号 (") 和反引号 () 用于不同类型的字符串和字符表示。以下是它们的概念、用法和区别: 1. 单引号 () 概念 单引号用于表示 字符(rune 类型)。一个字符表示一个…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的,最好用的证件照制作软件,没有之一! 我是阿星,今天要给大家安利一款超实用的证件照工具,一键换底,自动排版,免费无广告,让你在家就能轻松搞定证件照&#…

尚玩助手短视频看广告app开发

尚玩助手短视频看广告app的开发涉及多个关键步骤和考虑因素。以下是其主要开发流程: 需求分析和规划: 确定目标用户群体和市场定位。 收集和分析竞争对手的数据和特点,了解市场上已有的短视频app的优缺点。 确定尚玩助手短视频app的功能和特…

搭建知识付费系统的技术框架与实现路径

知识付费系统已经成为内容创作者和企业变现的重要工具。要成功搭建一个高效、稳定、用户体验良好的知识付费系统,明确技术框架和实现路径至关重要。本文将详细解析搭建知识付费系统的技术框架,并提供具体的实现路径和相关技术代码示例。 一、知识付费系…

C++之程序流程结构

C/C支持最基本的三种程序运行结构:顺序结构、选择结构、循环结构 顺序结构:程序按顺序执行,不发生跳转选择结构:依据条件是否满足,有选择的执行相应功能循环结构:依据条件是否满足,循环多次执行…

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能,但是没有后台url进行测试,这时候就可以使用postman提供的url: https://postman-echo.com/post接下来,我将教你在postman中,用该url测试图片上传功能。 1.发送图片上传请求 第一步…

Character.ai因内容审查流失大量用户、马斯克:Grok-3用了10万块英伟达H100芯片

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 1、爆火AI惨遭阉割,1600万美国年轻人失恋?Character.ai被爆资金断裂 美国流行的社交软件Character.ai近期对模型进行大幅度内容审查,导致用户感到失望并开始流失。…

12. Revit API: Document、Element

12. Revit API: Document、Element 前言 还是先讲一下Document吧,不然Selection不好讲,那涉及到了挺多东西的,比元素(Element)和各类Filter,这些都与Document有关,所以先简单讲一下这个。 一、…

Chart.js四个示例

示例代码在图片后面&#xff0c;点赞加关注&#xff0c;谢谢 条形图 雷达图 折线图 圆环图 完整例子代码 具体代码在干什么看粗体加重的注释 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <me…

【linux/shell实战案例】linux中变量的使用

目录 一.linux变量声明及定义 二.linux变量使用方法 三.linux变量使用花括号${name}和双引号“$name”的区别 四.linux变量使用单引号$name和双引号“$name”的区别 五.linux变量中使用命令 一.linux变量声明及定义 #!/bin/bash namezhaodabao 等号两边不能有空格变量名…

C++精解【10】

文章目录 读写文件概述example csv读文件读取每个字段读取机器学习数据库iris constexpr函数GMP大整数codeblock环境配置数据类型函数类 EigenminCoeff 和maxCoeffArray类 读写文件 概述 fstream typedef basic_fstream<char, char_traits<char>> fstream;此类型…

【大数据】什么是数据融合(Data Fusion)?

目录 一、数据融合的定义 二、数据融合的类型 三、数据融合的挑战 四、数据融合的方法 五、数据融合的关键环节 1.数据质量监控指标的制定和跟踪 2.异常检测和处理机制 3.实时数据监测与反馈机制 4.协同合作与知识共享 一、数据融合的定义 数据融合&#xff08;Data Fusion&…

STM32基本定时器、通用定时器、高级定时器区别

一.STM32基本定时器、通用定时器、高级定时器区别 STM32系列微控制器中的定时器资源分为基本定时器&#xff08;Basic Timer&#xff09;、通用定时器&#xff08;General Purpose Timer&#xff09;和高级定时器&#xff08;Advanced Timer&#xff09;三类&#xff0c;它们在…

深入分析Java中的内存管理与垃圾回收机制

深入分析Java中的内存管理与垃圾回收机制 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨Java中的内存管理与垃圾回收机制&#xff0c;这是每…

PyCharm远程开发配置(2024以下版本)

目录 PyCharm远程开发配置 1、清理远程环境 1.1 点击Setting 1.2 进入Interpreter 1.3 删除远程环境 1.4 删除SSH 2、连接远程环境 2.1 点击Close Project 2.2 点击New Project 2.3 项目路径设置 2.4 SSH配置 2.5 选择python3解释器在远程环境的位置 2.6 配置远程…

web学习笔记(七十三)微信小程序

目录 1. 微信公众平台和微信开放平台 1.1 微信公众平台&#xff1a; 1.2 微信开放平台&#xff1a; 2.全局配置和局部配置 2.1 全局配置 2.2 页面配置 1. 微信公众平台和微信开放平台 1.1 微信公众平台&#xff1a; 微信公众平台是用于创建和管理公众号和小程序&#x…