从PyTorch官方的一篇教程说开去(3.3 - 贪心法)

news2024/11/23 22:33:28

您的进步和反馈是我最大的动力,小伙伴来个三连呗!共勉。

贪心法,可能是大家在处理陌生问题时候,最容易想到的办法了吧?

还记得小时候,国足请了位洋教练发表了一句到现在还被当成段子的话:“如果球员不知道把球往哪里踢,那就往球门里踢!”呃,施拉普纳老爷子如果干程序员,应该也能混的不错!

当我们在陌生的城市迷路,一般会顺着大路找更大的路,沿着繁华的街区找更繁华的街区,直到找到地标性的建筑物来重新帮助自己找回方向感。

男生购物的时候,如果心里已经锁定了品牌,那么几个单品大差不差的情况下,折扣最大的那件怎么看都觉得美滋滋的。

至于吃饭,那肯定是打开手机app,不出意外的话,推荐的前几个基本跑不了了。

还有直播间里,为啥主播娇滴滴的呼唤榜一大哥,咳咳,打住。

类似这样的例子还可以举出很多,不过既然我们是撸代码的,那么多举几个相关的例子好了!

首先想到的肯定是最短路径上的dijkstra(包括升级的双向dijkstra算法),为了计算从起点到图上任意点的最短距离,老爷子就每走到一个点(广度优先,总n个),就重新计算和更新一下到起点的最短距离,从而得到了这个非常优秀的,空间O(n)和时间O(n^2)的算法(时间复杂度还有优化空间)。

然后就是0-1背包问题,比如你的道士打僵尸爆出了一地的法宝材料装备,然后你的宠物狗挠小怪也是一地,都铺满了,这时候负重有限背包有限,物品呢占地方不同价值也不同,你也不想来回来去主城主职业改成做二道贩子,那么怎么捡最划算呢?

还有压缩,还有搜索,感兴趣的小伙伴可以去brilliant看看,好消息是,不但有图示讲解,还有题可以刷,呃那个,比较友好的那种。强烈安利。

Greedy Algorithms | Brilliant Math & Science Wiki

实际应用中,贪心法就一点不好 - 这是把“神经刀”,顺的时候神挡杀神佛挡杀佛,不顺的时候呢无法收敛,主打一个起伏不定,“女孩的心思男孩你别猜”。

这就跟深度学习在工程中的发挥比较类似了,也难怪我们在上一个章节看见,他俩一起秀恩爱。

具体点呢, 𝑄(𝑠,𝑎)=𝑟+𝛾max⁡𝑎′𝑄(𝑠′,𝑎′),这里更新状态时采用的参数,max/最大预期回报,就是在应用贪婪法。具体的做法就是 - 

//其他代码
# Exploration parameters
epsilon = 1.0                 # Exploration rate
max_epsilon = 1.0             # Exploration probability at start
min_epsilon = 0.01            # Minimum exploration probability 
decay_rate = 0.005            # Exponential decay rate for exploration prob

//其他代码

for step in range(max_steps):
    # 3. Choose an action a in the current world state (s)
    ## First we randomize a number
    exp_exp_tradeoff = random.uniform(0, 1)
        

## If this number > greater than epsilon --> exploitation (taking the biggest Q value for this state)
    if exp_exp_tradeoff > epsilon:
        action = np.argmax(qtable[state,:])
# Else doing a random choice --> exploration
    else:
        action = env.action_space.sample()

//其他代码
# Reduce epsilon (because we need less and less exploration)
epsilon = min_epsilon + (max_epsilon - min_epsilon)*np.exp(-decay_rate*episode) 
//其他代码

简单概括一下,就是在训练的初期,选择较大的探索值(epsilon),随着训练的进行,慢慢减小探索值,直到得到稳定收敛的良好控制效果。

为了更好的说明如何把贪婪法应用于深度学习,稍后会再更新一篇教程以及源码,以便小伙伴食用。

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

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

相关文章

用Label Studio,让数据标注变得简单而高效

Label Studio:精准标注,智能模型的起点- 精选真开源,释放新价值。 概览 Label Studio作为数据标注的得力助手,其设计初衷是简化机器学习项目中繁琐的数据准备工作。它提供了一个用户友好的界面,使得即便是非技术用户也…

SpringMVC实现文件上传

导入文件上传相关依赖 <!--文件上传--> <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.1</version> </dependency> <dependency><groupId>…

实现Nginx的反向代理和负载均衡

一、反向代理和负载均衡简介 1.1、反向代理 反向代理(reverse proxy)指:以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端。此时代理服务器对外就表现为一个反向代理服务器。 反向代…

【YOLOv10[基础]】热力图可视化实践① | 支持视频热力图 | 密度热力图 | 论文必备

本文将进行添加YOLOv10版本的热力图可视化功能的实践,支持视频的热力图可视化。 目录 一 热力图可视化实践① 1 代码 2 效果图 在论文中经常可以见到提取的物体特征以热力图的形式展示出来,将特征图以热力图的方式进行可视化在深度学习中有以下的原因: ①强调激活区域 ,…

HarmonyOS Next系列之地图组件(Map Kit)使用(九)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

常用的网络爬虫工具推荐

在推荐常用的网络爬虫工具时&#xff0c;我们可以根据工具的易用性、功能强大性、用户口碑以及是否支持多种操作系统等多个维度进行考量。以下是一些常用的网络爬虫工具推荐&#xff1a; 1. 八爪鱼 简介&#xff1a;八爪鱼是一款免费且功能强大的网站爬虫&#xff0c;能够满足…

【详细的springboot自动装载原理】

1.默认提供的核心配置模块 springboot提供了 spring-boot-autoconfigure模块&#xff0c;该模块为springboot自动配置的核心模块&#xff0c;它初始化好了很多我们平时需要的配置类&#xff0c;那么有了这些配置类就能生效了吗&#xff1f;得需要一个东西在启动的时候去把它加…

C++ | Leetcode C++题解之第264题丑数II

题目&#xff1a; 题解&#xff1a; class Solution { public:int nthUglyNumber(int n) {vector<int> dp(n 1);dp[1] 1;int p2 1, p3 1, p5 1;for (int i 2; i < n; i) {int num2 dp[p2] * 2, num3 dp[p3] * 3, num5 dp[p5] * 5;dp[i] min(min(num2, num3…

CTF-Web习题:2019强网杯 UPLOAD

题目链接&#xff1a;2019强网杯 UPLOAD 解题思路 打开靶场如下图所示&#xff0c;是一个注册和登录界面 那就注册登录一下&#xff0c;发现是一个提交头像的页面&#xff1a; 试了一下只有能正确显示的png图片才能提交成功&#xff0c;同时F12拿到cookie&#xff0c;base6…

自己开发软件实现网站抓取m3u8链接

几天前一个同学说想下载一个网站的视频找不到连接&#xff0c;问我有没有什么办法,网站抓取m3u8链接 网页抓取m3u8链接。当时一听觉得应该简单&#xff0c;于是说我抽空看看。然后就分析目标网页&#xff0c;试图从网页源码里找出连接&#xff0c;有的源代码直接有,但是有的没有…

与Bug较量:Codigger之软件项目体检Software Project HealthCheck来帮忙

在软件工程师的世界里&#xff0c;与 Java 小程序中的 Bug 作战是一场永不停歇的战役。每一个隐藏在代码深处的 Bug 都像是一个狡猾的敌人&#xff0c;时刻准备着给我们的项目带来麻烦。 最近&#xff0c;我就陷入了这样一场与 Java 小程序 Bug 的激烈较量中。这个小程序原本应…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十九章 Linux MISC驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

爬虫实战:解决代理IP频繁中断的实操建议

当代理IP在爬虫中频繁掉线时&#xff0c;我们先要了解出现问题的可能原因&#xff0c;这不仅限于技术性因素&#xff0c;还涉及操作策略和环境因素。只有在找到具体原因后&#xff0c;才能针对问题类型从源头解决IP掉线问题。 一、问题原因&#xff1a; 1. 代理IP质量问题导致…

数据结构(Java):七大排序算法【详解】

目录 1、排序的概念 1.1 排序 1.2 排序的稳定性 1.3 内部排序&外部排序 1.4 各排序算法总结对比 2、 插入排序 2.1 &#x1f338;直接插入排序 2.2 &#x1f338;希尔排序 3、 选择排序 3.1 &#x1f338;直接选择排序 3.2 直接选择排序优化 3.3 &#x1f338;…

清华大学联合斯坦福大学提出混合注意力机制MoA,大模型解码速率提高6倍

随着大语言模型的规模不断扩大&#xff0c;如何在保持模型性能的同时提高其效率&#xff0c;成为了当前研究的热点问题。最近&#xff0c;清华大学联合斯坦福大学提出一种名为"注意力混合"(Mixture of Attention, MoA)的新方法&#xff0c;用于自动压缩大语言模型。 …

ES中的数据类型学习之ALIAS

Alias field type | Elasticsearch Guide [7.17] | Elastic 这里只针对data type的alias&#xff0c;暂时不说 index的alias。直接实战开始 PUT trips { "mappings": { "properties": { "distance": { "type": &…

开源安全态势感知平台Security Onion

简介 Security Onion是一款由安全防御人员为安全防御人员构建的免费开放平台。它包括网络可见性、主机可见性、入侵检测蜜罐、日志管理和案例管理等功能。详细信息可以查看官网Security Onion Solutions 在网络可见性方面&#xff0c;Security Onion提供了基于签名的检测&…

【系统架构设计 每日一问】二 MySql主从复制延迟可能是什么原因,怎么解决

主从复制的架构设计如下图所示&#xff1a; 同步原理 具体到数据库之间是通过binlog和复制线程操作的&#xff1a; Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启&#xff0c;binlog dump线程,该线程…

go关于string与[]byte再学深一点

目标&#xff1a;充分理解string与[]bytes零拷贝转换的实现 先回顾下string与[]byte的基本知识 1. string与[]byte的数据结构 reflect包中关于字符串的数据结构 // StringHeader is the runtime representation of a string.type StringHeader struct {Data uintptrLen int} …

浅谈断言之XML断言

浅谈断言之XML断言 XML断言是JMeter的一个组件&#xff0c;用于验证请求的响应数据是否符合XML结构。这对于测试返回XML格式数据的Web服务特别有用。 如何添加XML断言&#xff1f; 要在JMeter测试计划中添加XML断言&#xff0c;遵循以下步骤&#xff1a; 打开测试计划&…