强化学习1--基础知识(个人笔记)

目录

Deep Reinforcement Learning, 深度强化学习的理论知识

什么是强化学习

为什么使用强化学习

强化学习的基本要素

On-policy和Off-policy

Online和Offline学习的本质

基本概念

强化学习的分类

适用DRL的五大特征

强化学习的资料

深度强化学习

要素设计

实践代码

工业界的应用

 DQN

DQN

DQN参数


Deep Reinforcement Learning, 深度强化学习的理论知识

强化学习系统的四要素:policy、reward、value、model。 主要是从一个强化学习的系统的角度去看。

1)policy指的是智能体在给定时间点的行为方式。policy定义了当前state与该state下可选action之间的映射。
(2)reward signal定义了强化学习的目标。
(3)reward定义了当前的动作选取的好坏,value function则定义了长期视角动作选取策略的好坏。
(4)model指的是对于环境的模拟。也就是构造一个模型来推断环境是如何变化的使用模型和规划来解决强化学习问题的方法被称为是基于模型的强化学习方法,与此相反的是较简单的无模型强化学习方法(通常是直接在环境试错学习的)。

什么是强化学习

强化学习是一种机器学习方法,能够使智能体通过与环境交互,学习如何做出最优决策以获取最大化的奖励。

有广泛的应用领域,包括机器人、游戏、自然语言处理等,具有很高的研究和商业价值。

基本组成部分包括智能体、环境、状态、动作、奖励和策略。

其基本原理是通过不断调整策略,最大化期望的长期累积奖励;另外强化学习相较于其他机器学习方法的优势在于其可以处理非固定环境下的复杂任务,并且能够学习到长期的行为模式。

为什么使用强化学习

不是所有需求都适合用DRL做,适合用DRL做的需求也未必能超越传统方法。

在我看来,算法工程师的核心能力可以总结成以下三点:

  1. 对各种算法本质及其能力边界的深刻理解
  2. 对问题内在逻辑的深入分析
  3. 对两者结合点的敏锐直觉

一个优秀算法工程师的高光时刻从拒绝不合理的需求开始,其他的都是后话。不经慎重评估而盲目上马的项目不仅是对资源的巨大浪费,更让每个参与者陷在深坑中痛不欲生。知道一种算法不能干什么与知道它能干什么同样重要,对DRL而言,即使在最理想的外部条件下,也有其绕不过去的七寸——泛化无能。这是DRL的基本原理决定的,任何在这一点上提出过高要求的应用都不适合用DRL解决。

DRL解决的是从过去经验中学习有用知识,并用于后续决策的问题。有别于纯视觉应用,DRL不仅仅满足于识别和定位,而是要根据这些信息采取针对性的行动以获取最大长期收益。从本质上说,DRL就是一种依赖过拟合的算法,说白了就是通过暴力搜索把其中的成功经验记下来,并用以指导后续决策。别嫌露骨,别怕尴尬,岂不闻学术界某大牛的辛辣讽刺仍余音绕梁——强化学习是唯一被允许在训练集上测试的算法。由于缺乏直接监督信号用于训练,DRL还特别“费数据”,以至于需要专门的模拟器源源不断地产生数据供其挥霍。好不容易训出来的policy在训练环境用得好好的,换个环境立马歇菜。

强化学习的基本要素

强化学习的核心组成要素包括状态、动作、奖励和价值等概念。

强化学习的流程通常包括环境建模、状态表示、策略生成、价值函数估计、动作选择等步骤。在环境建模中,需要将问题转化为马尔可夫决策过程(Markov Decision Process,MDP)或者其扩展形式。状态表示是将环境状态转化为智能体可理解的形式,策略生成是根据当前状态选择最优的行动,价值函数估计是评估策略的好坏,动作选择是根据策略生成和价值函数估计来确定下一步的行动。

On-policy和Off-policy

两者在学习方式上的区别:若agent与环境互动,则为On-policy(此时因为agent亲身参与,所以互动时的policy和目标的policy一致);若agent看别的agent与环境互动,自己不参与互动,则为Off-policy(此时因为互动的和目标优化的是两个agent,所以他们的policy不一致)。

两者在采样数据利用上的区别:On-policy:采样所用的policy和目标policy一致,采样后进行学习,学习后目标policy更新,此时需要把采样的policy同步更新以保持和目标policy一致,这也就导致了需要重新采样。Off-policy:采样的policy和目标的policy不一样,所以你目标的policy随便更新,采样后的数据可以用很多次也可以参考。

Online和Offline学习的本质

监督学习中通常利用已知(已标记)的数据进行学习,其本质是从数据中总结规律,这和人从学1+1=2基本原理一致,强化学习的过程也是如此,仍然是从数据中学习,只不过强化学习中学习的数据是一系列的轨迹

所以重点来了,这里的数据才是最关键的一部分,这也强化学习中Online和offline学习中的关键, Online一方面是与环境有交互,通过采集数据学习、然后丢弃,而offline则是不用交互,直接通过采集到的轨迹数据学习,这也是off-policy到offline转换的重要原因。

万字离线强化学习总结!(原理、数据集、算法、复杂性分析、超参数调优等)|轨迹|智能体_网易订阅

基本概念

链接:强化学习怎么入门好? - 知乎
1. 区分强化学习/有监督学习/无监督学习
- 这是三种不同的训练方式,核心区别在于loss的设计。
- 三者可用于同一 task,就像锤子和砍刀都可以用于砸钉子。
- task 选用哪一种工具,取决于获取 loss 所需数据的性价比。比如风格转移,使用Discriminator 判断 sample 是否属于目标域,显然优于一一标记数据集后进行有监督学习。

2. 区分 Return(s,a) 和 reward(s,a)
- reward(s,a) 是 environment 在状态s下,对行为a的单步奖励值。
- Return(s,a) 是 在状态s下,对往后n步的奖励值的组合。
-- n ∈\in {0, 1, .... ∞\infty }
-- 组合方式常用discounting, 详见 Sutton 书 3.3章。

3. 区分 Return,Q , V (value)和A(Advantage)
- Q(s,a) == Return(s,a)
- V(s)=Ea(Q(s,a))V(s)=E_a (Q(s,a))
- A(s,a)=Q(s,
a)−V(s)A(s,a)=Q(s,a)-V(s)
-- 用A值更新policy会更稳定

4. 区分 policy 和 Q/V/A
- 在状态 s 下,policy 选出用于与环境交互的行为 a
- policy 选择行为 a 的依据是 Q(s,a) / V(s') ( 在状态 s 下执行 a 后转移到状态 s')
--- policy 1: argmax(Q(s,a))
--- policy 2: sample from distribution
- Q(s,a) / A(s,a) / V(s') 的更新依赖于policy

5. 区分MC, DP, n-steps TD, GAE
-- DP 是已知 s,a->s'的状态转移概率,直接计算被估计值
-- MC 和 TD 都是通过采样估计值

-- MC 估计的样本全部来自采样,n-step TD 估计在第n步时使用估计值(有偏)
-- GAE 是对 n-steps TD 估计 Advantage值 的优化,将不同n值的TD 估计以decay的方式糅合在一起

6. 区分 policy-based 和 value-based
- 上述 policy 1 中的policy是固定的,因此为 value-based。
- 上述 policy 2 需要更新policy的分布,因此为 policy-based。

7. 区分离散和连续
- 理论上,在确定的 policy 下( eg, max ),可采样估计出所有的 Q/V, eg, Q-learning
--- 离散 environments: grid world (github上很多,后续我也会开源一个 : )
- 实际上,当状态空间连续(eg, Atari),或状态和行为空间均连续(eg, Mujoco)时,估计所有 Q/V成本过高,无法实现,因此引入DNN进行近似(DQN, DDPG)
--- 连续 environments: open AI gym

8. 区分online和offline
- online是线上训练,即便使用模型,边训练模型。
- offline是线下训练,即使用训练好的模型。

9. on-policy和off-police
- on-policy指,计算Return时所采用的sample,均由policy采样所得。
- off-police指,计算Return时所采用的sample,并非由policy采样所得。
- 对比Q-learning(off-police)和SARSA(on-policy)可以更直观地看出二者的差异。

左(q-learning), update Q时直接用的max Q(s’, a’),右(SARSA),使用采样的Q(s’, a’)

10. 区分 model-free 和 model-based
- 此处 model 指 environment。
- 显然,上述所有内容,均将environment视为黑盒,故为 model-free - 易得,学习 environment (比如 s,a 到 s' 的转移规则)的算法属于 model-based

11. OpenAI baseline
- 掌握了1-9的基础知识后,就可以逐个学习baseline里的算法啦~
- RL的基础算法均有被baseline实现,可以边看paper边看code,有利于更快地掌握~
- 以后我会补充上baseline的代码解读~

12. 理解 exploration
重要,待补充

13. 理解 tradeoff variance and bias
重要,待补充

14. 理解 POMDP
见:花潇:POMDP 基础及其在 Crowd 场景中应用

15. 理解 multi-agents
重要,待补充

强化学习的分类

强化学习的模型和算法包括:基于价值函数的方法、基于策略的方法、基于模型的方法和深度强化学习等。其中,(1)基于价值函数的方法主要包括Q-learning和SARSA等,(2)基于策略的方法主要包括策略梯度算法和Actor-Critic算法等,(3)基于模型的方法主要包括模型预测控制和模型自适应控制等。深度强化学习是将深度学习与强化学习相结合的一种方法,包括Deep Q-Network(DQN)、Deep Deterministic Policy Gradient(DDPG)和Asynchronous Advantage Actor-Critic(A3C)等算法。

适用DRL的五大特征

场景固定,目标明确,数据廉价,过程复杂,自由度高。依次解读如下:

训练环境尽可能做到与工作(测试)环境相同。

工业界的需求一般都是优化某个指标(效率、能耗、胜算等),基本满足这个条件。目标越明确,设计优质的reward函数就越容易,从而训练得到更接近预期的policy。

所谓模拟器,就是将真实场景中的各种物理模型(即上文提到的model)在软件环境中仿真,从而生成无限量的高仿数据。这里有一个reality gap的问题,即这些仿真model与真实世界的误差,如果太大则训练出的policy无法直接应用。一个逼真的模拟器也是要花功夫(钱)的,像MuJoCo这样的优秀仿真平台收费也是合情合理的。

如果任务太简单,依靠规则和启发式就能解决问题了,相当于拿到了“解析解”,还用神经网络拟合个什么劲儿。

定用DRL之前,一定要认真评估任务场景是否有足够的优化空间,千万不要拎着锤子找钉子,否则即使训出了policy,性能也不如传统算法,白忙活一场。

强化学习的资料

公众号:深度强化学习实验室

书籍:

项目:

深度强化学习

万字离线强化学习总结!(原理、数据集、算法、复杂性分析、超参数调优等)|轨迹|智能体_网易订阅

策略

要素设计

在强化学习场景中,我们定义问题的数学框架被称之为马尔科夫决策过程。这可以被设计为:

  • 状态集合:S
  • 动作集合:A
  • 奖励函数:R
  • 策略:π
  • 价值:V

数据

所以重点来了,这里的数据才是最关键的一部分,这也强化学习中Online和offline学习中的关键, Online一方面是与环境有交互,通过采集数据学习、然后丢弃,而offline则是不用交互,直接通过采集到的轨迹数据学习,这也是off-policy到offline转换的重要原因。

实践代码

  • 莫烦python强化学习教程全部代码
  • github上强化学习star数最多的代码
  • Sutton书对应的python代码

工业界的应用

国内有哪些做强化学习的公司? - 知乎

 DQN

何公式化一个强化学习问题,然后进行推导呢?最常见的方法是通过马尔可夫决策过程。

在 Q-学习中,我们定义了一个函数 Q(s,a) 表示当我们在状态(state)s 中执行动作(action)a 时所获得的最大折扣未来奖励(maximum discounted future reward),并从该点进行继续优化。

深度 Q 网络(Deep Q Network) 

DQN

DQN是借助AlphaGo最早成名的深度强化学习算法,其核心思想是利用Bellman公式的bootstrap特性,不断迭代优化一个Q(s,a)函数,并据此在各种状态下选择action。其中Q(s,a)函数拟合的是一对状态-动作的长期收益评估,该算法没有显式的policy。DQN探索和利用的平衡靠的是一种称为ε-greedy的策略,针对最新的Q(s,a)函数和当前的输入状态s,agent做决策时以概率ε随机选择action,而以1-ε的概率选择使Q(s,a)最大的action,随着ε从大到小变化,DQN也相应地从“强探索弱利用”过渡到“弱探索强利用”。

DQN的原理使其天然地适合离散动作空间,也就是action可以穷举,比如走迷宫的agent只允许前后左右4个动作,下围棋的AlphaGo只允许19*19=361个落子位置(实际还要排除已经落子的网格点)。这是一个重要的特征,如果你手上是一个连续控制任务,action在某区间内有无数种可能,那就不适合用DQN了。当然,你也可以选择把区间离散化,这样就可以应用DQN了,也曾有paper报告这样做在某些任务中可以比连续控制取得更好的性能。

DQN属于off-policy方法,所谓off-policy是指用于计算梯度的数据不一定是用当前policy采集的。DQN使用一个叫replay buffer的FIFO结构,用于存储transition:(s,a,s',r),每次随机从buffer中拿出一个batch用于梯度计算和参数更新。Replay buffer是稳定DQN训练的重要措施,对历史数据的重复使用也提高了其数据利用率,对于那些数据比较“贵”的任务,比如Google的抓取应用(见需求分析篇),这一点非常重要,事实上Google除了replay buffer,还专门搞了个数据库,把之前存储的另一个抓取应用采集的数据拿出来做预训练,精打细算到了极致,真是比你有钱,还比你节约~

DQN的缺点挺多,有些是RL的通病,比如对超参数敏感,我在训练篇会详细介绍;另外利用Bellman公式的bootstrap特性更新Q值的方式自带bias,外加计算目标Q值时使用同一个网络评估和选择动作(见下式),DQN容易被overestimation问题困扰,导致训练稳定性较差,近些年学术界有不少工作是围绕这一点做出改进(比如Double DQN)。此外,DQN还有off-policy方法的通病,对历史数据的重复利用虽然可以提高数据效率,但有个前提条件是环境model不能发生变化,single agent任务较易满足这个条件,但multiagent场景就未必了,对任意agent而言,其他agent也是环境的一部分,而他们的学习进化会改变这个环境,从而使历史数据失效,这就是MARL领域著名的环境不稳定问题,除非replay buffer内的数据更新足够快,否则off-policy方法的性能往往不如on-policy方法。

DQN的Q网络更新公式

DQN参数

DQN的特色超参数主要有:buffer size,起始训练时间,batchsize,探索时间占比,最终epsilon,目标网络更新频率等。

Buffer size指的是DQN中用来提高数据效率的replay buffer的大小。通常取1e6,但不绝对。Buffer size过小显然是不利于训练的,replay buffer设计的初衷就是为了保证正样本,尤其是稀有正样本能够被多次利用,从而加快模型收敛。对于复杂任务,适当增大buffer size往往能带来性能提升。反过来过大的buffer size也会产生负面作用,由于标准DQN算法是在buffer中均匀采集样本用于训练,新旧样本被采集的概率是相等的,如果旧样本或者无效样本在buffer中存留时间过长,就会阻碍模型的进一步优化。总之,合理的buffer size需要兼顾样本的稳定性和优胜劣汰。顺便说一句,针对“等概率采样”的弊端,学术界有人提出了prioritized replay buffer,通过刻意提高那些loss较大的transition被选中的概率,从而提升性能,这样又会引入新的超参数,这里就不做介绍了。

起始训练时间的设置仅仅是为了保证replay buffer里有足够的数据供二次采样,因此与batchsize有直接关系,没啥可说的。Batchsize指的是从replay buffer中二次采样并用于梯度计算的batch大小,和CV任务中的设定原则基本一致,即兼顾训练稳定性和训练速度,也没啥好说的。

探索时间占比和最终ε共同决定了DQN探索和利用的平衡。ε-greedy策略在训练开始的时候,随机选择action的概率ε=1,探索力度最大;随着训练进行ε逐渐线性下降直至达到最终epsilon保持恒定,之后DQN的训练将以利用为主而只保留少量探索。因此,最终ε取值在区间[0,1]内靠近0的一端。探索时间占比指的是ε从1下降到最终ε的时间占总训练时间的比例,在(0,1)内取值,用来调节以探索为主到以利用为主的过渡。通常来说,复杂任务的探索时间占比应设得大一些,以保证充分的探索;最终ε不宜过大,否则影响模型最终阶段“好上加好”的性能冲刺,因为最好的状态往往是在足够好的Q网络指导下才能探索到的,训练后期过强的探索干扰了习得知识的利用,也就阻碍了性能的进一步提升。

标准DQN引入了一个延迟更新的目标网络用来计算Q的目标值,避免Q网络误差的“自激效应”,并借此来提高训练稳定性。目标网络更新频率就是用来控制这个延迟程度的,时间到了就把Q网络的参数整个复制过来。通常情况下根据具体问题,参考Q网络的更新周期设定,比如Q网络每1个step更新一次,目标Q网络可以设定每500个step更新一次。

 梯度上升

整个过程的随机性,是期望

 

ppo


《深度强化学习落地指南》读书笔记1--什么情况下我们可以用强化学习?_第一剑柄的博客-CSDN博客

深度强化学习落地方法论(8)——新书推荐《深度强化学习落地指南》 - 知乎

强化学习(reinforcement learning)有什么好的开源项目、网站、文章推荐一下? - 知乎

DeepRL/A-Guide-Resource-For-DeepRL at master · NeuronDance/DeepRL · GitHub

【强化学习】重磅 | 详解深度强化学习,搭建DQN详细指南 - 专知

手把手教你强化学习 (一) 强化学习基本概要 (上) - 简书

常见强化学习方法总结 - 知乎

干货|浅谈强化学习的方法及学习路线 - 码农教程

强化学习怎么入门好? - 知乎

GitHub - MorvanZhou/Reinforcement-learning-with-tensorflow: Simple Reinforcement learning tutorials, 莫烦Python 中文AI教学

干货|浅谈强化学习的方法及学习路线 - 码农教程

深度强化学习(Deep Reinforcement Learning)入门 - 知乎

深度强化学习落地方法论(7)—— 训练篇 - 知乎

训练属于自己的ChatGPT(2)——使用TRL强化学习PPO控制文本的生成 - 知乎

「回顾」强化学习:原理与应用 - 知乎

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

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

相关文章

加拿大ee移民 最新消息 越来越难申请了!!

当地时间2019年5月29日,加拿大联邦移民部快速通道(Express Entry)移民审理系统进行了最新一次的甄选。 本次抽选共发出了3350份邀请,抽选分数为470分,比上次抽选整整高出20分。 470的高分着实让大家望分兴叹&#xff…

智利移民:国家最近移民变化

智利是世界上铜矿资源最丰富的国家,它还是世界上唯一生产硝石的国家。智利在新闻自由、人类发展指数、民主发展等方面也获得了很高的排名。智利教育高度发达,其教育在发达国家普遍承认。由于地处美洲大陆的最南端,与南极洲隔海相望&#xff0…

华人工程师在美国-从微软高管离职说起

前段时间,微软高管沈向洋宣布将要离职工作20多年的微软的消息又掀起了波澜。有文章说得似乎有些悲情,说这是最后一个在微软的华人高管离开了微软。印象中的确经常看到新闻说起微软华裔高管离职或者微软前高管相关的事情。翻阅了一下记录,笔者…

伟大的太空星球移民计划

相对于过于天马行空的宇宙舰队,逃离地球、移民外星一直是一 个更稳妥、也似乎更容易实现的计划,至少,在外星生活时不必担心星球因为意外而突然坠毁。 虽然以人类现在的科技水准,星际航行几乎还是不可能完成的任 务,根据…

大话西游各服务器位置,大话西游各服务器移民历史

满意答案 lc4120 2013.12.19 采纳率:52% 等级:11 已帮助:6879人 第一次移民:2002年7月15日 14:00-16:00 移民范围: 宝象国-->车迟国 第二次移民:2002年7月24日 14:00-16:00 移民范围: 天竺国-->火焰山 第三次移民:2002年8月7日 14:00-16:00 移民范围: 宝象国-->…

几个很重要的公众号,4万块移民德国

下面挨个介绍几个我认为很重要的公众号。 这个公众号是大部分互联网人都会关注的,甚至马化腾,张小龙都会给他打赏,主动加他微信,公众号平均打赏人数有2000人。我关注了好几年,受他感召,我放弃德国无忧无虑…

大乌龙:系统出错,被接受的加拿大移民申请超出限额7307份

整理 | 祝涛 出品 | CSDN(ID:CSDNnews) 加拿大移民系统的一个漏洞导致政府额外接受了7307份移民申请,这一数字已经超过了限额。其中包括了申请永久居留权的国际毕业生的文件。 系统出错导致接受的移民申请超过限额 不管是以哪一…

澳洲移民监 盘点一下各国的移民监要求

移民监,一种指为了保留移民身份而不得不在另外一国居住的时间。另一种指为了成为公民,不得不居住的时间。移民监常被戏称为“移民囚”,其实移民监并不是监狱,坐移民监也不是把你关在监狱里,只是因为在一定范围内限制了…

银河移民PHP面试,移民香港,我真的“后悔死了”

前两年通过香港优才来的香港,当初选择了去香港,第一考虑到孩子的学习,一直认同香港的教学理念,二是北京的空气实在太差了。当初优才打分130分,属于中等吧。 如何选择小学? 说到孩子的学习,当时我…

新西兰留学再移民,哪些专业好就业?

大家都知道,对于想移民的申请人条件又不够的,留学只不过是一个通往移民成功的工具,但是很多人瞧不上留学,觉得麻烦,时间长,花钱多等等…实际上花钱多你和投资比比呢?嫌麻烦那和创业比呢?如果目的是移民,那留学可能真的是最适合的一条路。 每年的新西兰移民中,60%是技…

加拿大计算机硕士留学移民,加拿大硕士留学移民深度解析,纯干货

对于大多数国内申请人来说,加拿大硕士留学移民是移民加拿大的优选方式之一。镀金的同时,收获加拿大枫叶卡,一举多得的。 那加拿大硕士留学移民都有什么优势?加拿大硕士学制什么样呢?需要什么条件才能申请呢&#xff1f…

人人都能GPT!微软开源DeepSpeed Chat帮用户训练模型

简介 4月12日,微软宣布开源了 DeepSpeed Chat,帮助用户加速训练类似于 ChatGPT 的模型。 DeepSpeed Chat 能够简化 ChatGPT 类型模型的训练过程、强化推理体验。其中的 DeepSpeed-RLHF 系统能够在推理和训练两种模式之间进行切换,使复杂的 …

外汇天眼:新手必备!外汇模拟交易——交易生涯的第一步

你应该用模拟账户练习交易吗?这对很多交易者来说是一个再常见不过的问题,尤其是对新手交易者。答案毋庸置疑:应该。在真实账户交易之前,先用模拟账户做练习式交易,这非常有必要的,模拟交易可以帮助你熟悉市…

CTP程序化交易入门系列之四:行情订阅常见问题解答

前言 这一章总结了大家订阅行情最常问的一些问题的相关解答,希望能有帮助。如有不对的地方,欢迎指正。后期会在这里更新迭代,欢迎到这底下提问! 更新时间:20201112 1 获取行情的地址在哪里可以查到? simno…

优质的客户期货开户交易所返还高

优质的客户交易所返还高 期货公司排名 期货公司的资质:除了平台安全性外。期货业协会、证监会有关部门、中国期货市场监控中心等组成的评审委员会会以期货公司风险管理能力为基础,结合公司服务实体经济能力、市场竞争力、持续合规状况,每年对期货公司进…

您应该知道的重要外汇交易术语!

如果您曾经以新人的身份参加过商务会议或研讨会,您就会知道聆听看似陌生的讨论是什么感觉。过道两边的人使用术语、首字母缩略词和缩写来指代您对他们知之甚少或一无所知的人和事件。 这是一个令人尴尬的位置,但你不能让它变得更好。不要让您缺乏对外汇交…

对GPT的一些思考观点

站在个人角度,对于GPT是否意味着革命机会我觉得需要做一些更具体的尝试才行。上次看老板在群里分享了一张图片,大意是说GPT意味着如下几个机会:生产工具(写代码,生成内容、生成报告)、对话引擎(…

php基于宝塔环境搭建部署企业微信会话存档服务

基于宝塔环境-安装企业维护会话扩展 WxworkFinanceSdk 环境要求:php-cli 版本 >7.4 先看文档,看完后不清楚的可以微信 vx:q576313851 php,java,go 版本的企业微信会话都做过。上家公司是企业微信服务商,也可以协助购买会话存档服务-优惠 …

ps 蒙版抠图更换背景色或背景图片

参考文章:复杂背景下ps如何快速抠图换背景?蒙版快速抠图 打开图片,点选“快速蒙版工具”在这里插入图片描述。在这里最好先复制一个原始图层隐藏,以备不时之需。 选择“画笔工具”,实心的画笔画里边; 虚边…

抠图换背景用什么软件好?快把这些软件收好

在数字时代,抠图换背景已经成为了广泛使用的一种技术。随着摄影技术的不断提升和人们对图片的要求不断提高,很多人开始使用抠图换背景来让自己的图片更加美观、生动。抠图换背景是一种将图片中的主体与背景分离的技术,它可以让人们轻松地将一…