
强化学习从入门到实践
文章平均质量分 89
强化学习(Reinforcement Learning,简称RL)是机器学习的一个分支,它关注的是如何让智能体(agent)通过与环境的交互来学习并改进其行为,以达到最大化某种累积奖励信号的目标。在本专的内容中,将详细讲解强化学习的基础知识,介绍强化学习的应用领域和基本概念,为读者步入后面知识的学习
码农三叔
学编程20年,乐于奉献,一往无前
展开
-
(24-3-07)DeepSeek中的强化学习:DeepSeek推理模型(7)蒸馏处理
通过DeepSeek发布的针对DeepSeek-R1模型的评估结果,充分证明了通过大规模强化学习和蒸馏策略提升模型推理能力的有效性,且模型规模对性能具有重要影响。较大模型不仅能捕捉更多推理模式,而且在多个复杂任务中均能取得显著提升。强化学习与蒸馏效果明显:DeepSeek-R1-Distill 系列模型在多个推理任务中表现优异,特别是在数学推理(AIME 和 MATH-500)上,较大容量模型表现与或超过了部分商业模型。原创 2025-03-07 10:52:29 · 209 阅读 · 0 评论 -
(24-3-06)DeepSeek中的强化学习:DeepSeek推理模型(6)全场景强化学习
在 DeepSeek-R1 的训练流程中,全场景强化学习是第二阶段的强化学习训练,目标是让模型在推理能力不断提升的同时,更加符合人类的偏好,确保其生成的内容既有用又安全无害。为此,设计了一种全场景的强化学习策略,该策略整合了多种奖励信号,并使用了多样化的提示分布,以覆盖不同任务和场景。最终,通过将这两类奖励信号与多样化的数据分布相结合,我们成功地训练出了一款在推理任务上表现出色,同时在有用性和无害性方面也达到了较高标准的模型。全场景强化学习的核心目标是提升模型在各种场景下的表现,包括推理任务和非推理任务。原创 2025-03-06 14:42:51 · 107 阅读 · 0 评论 -
(24-3-05)DeepSeek中的强化学习:DeepSeek推理模型(5)拒绝采样和监督微调
然而,在这一阶段进一步扩展了数据集,加入了使用生成式奖励模型评估的数据。在 DeepSeek-R1 的训练流程中,SFT 起到了至关重要的作用,不仅进一步优化了模型在推理任务上的表现,还增强了其在其他通用任务中的能力。总之,通过使用约 80 万个样本的数据集对 DeepSeek-V3-Base 进行两个 epoch 的微调,DeepSeek-R1 模型不仅在推理任务上表现出色,还在其他通用任务中表现良好。这一过程不仅进一步优化了模型的推理能力,还增强了其在多种任务中的通用性,为后续的应用奠定了坚实的基础。原创 2025-03-06 14:42:09 · 214 阅读 · 0 评论 -
(24-3-04)DeepSeek中的强化学习:DeepSeek推理模型(4)DeepSeek-R1训练方案
这一阶段的训练不仅提升了模型的推理能力,还使其输出更加符合人类的语言习惯,为后续的应用奠定了坚实的基础。在之前的推理导向强化学习阶段,主要关注的是可以使用基于规则的奖励进行评估的数据。在 DeepSeek-R1 的训练流程中,全场景强化学习是第二阶段的强化学习训练,目标是让模型在推理能力不断提升的同时,更加符合人类的偏好,确保其生成的内容既有用又安全无害。在 DeepSeek-R1 的训练流程中,SFT 起到了至关重要的作用,不仅进一步优化了模型在推理任务上的表现,还增强了其在其他通用任务中的能力。原创 2025-03-05 13:51:13 · 369 阅读 · 0 评论 -
(24-3-03)DeepSeek中的强化学习:DeepSeek推理模型(3)DeepSeek-R1-Zero训练方案
组相对策略优化(Group Relative Policy Optimization, GRPO) 是一种用于强化学习的算法,特别适用于大规模语言模型(LLMs)的微调。GRPO算法的核心思想是通过组内相对奖励来优化策略模型,而不是依赖传统的批评模型(critic model)。具体来说,GRPO会在每个状态下采样一组动作,然后根据这些动作的相对表现来调整策略,而不是依赖一个单独的价值网络来估计每个动作的价值。原创 2025-03-05 13:49:46 · 524 阅读 · 0 评论 -
(24-3-02)DeepSeek中的强化学习:DeepSeek推理模型(2)推理模型的相关技术
DeepSeek的旗舰推理模型DeepSeek-R1,在DeepSeek-R1-Zero的基础上进行了改进,加入了额外的监督微调(SFT)和强化学习(RL),以提高其推理性能。总之,DeepSeek R1 中的混合专家(MoE)架构通过将海量参数分散到多个专家子网络中,并在推理时仅激活最合适的那部分,从而在保证模型强大能力的同时,实现了低计算成本和高推理效率。综上所述,MLA对模型推理速度的影响是显著的,不仅提升了推理速度,还降低了资源消耗,同时保持了模型的高性能表现。(4)在实际应用中的表现。原创 2025-03-03 15:49:01 · 239 阅读 · 1 评论 -
(24-3-01)DeepSeek中的强化学习:DeepSeek推理模型(1)DeepSeek-R1模型介绍
DeepSeek-R1由 DeepSeek团队发布的一个推理模型,旨在通过强化学习(RL)显著提升大型语言模型(LLMs)的推理能力。近年来,LLMs 在不断演进过程中逐渐逼近人工通用智能(AGI)的水平,而推理能力的提升被证明不仅能够提高数学、编程、科学推理等任务的准确性,还能更好地符合社会价值和用户偏好,同时降低训练计算资源的需求。原创 2025-03-03 15:47:37 · 116 阅读 · 1 评论 -
(24-2)DeepSeek中的强化学习:GRPO算法
Group Relative Policy Optimization (GRPO) 是一种强化学习算法,用于优化大型语言模型(LLMs)的推理能力。1.核心原理相对评估:GRPO 通过比较同一组内的不同响应来评估每个响应的相对优势,而不是依赖外部的评价器(如价值网络)。这种方法减少了对单独价值网络的依赖,从而降低了计算开销。组内比较:对于每个输入查询,模型生成一组潜在响应。这些响应在组内进行比较,以确定每个响应相对于组内其他响应的优劣。2.算法优势。原创 2025-03-02 19:53:30 · 217 阅读 · 2 评论 -
(24-1)DeepSeek中的强化学习:DeepSeek简介
DeepSeek是一家成立于2023年的中国人工智能初创公司,专注于开发高效且经济的大型语言模型。其核心技术包括多头潜在注意力(Multi-head Latent Attention,MLA)和专家混合模型(Mixture-of-Experts,MoE),旨在降低训练和推理成本,同时提升模型性能。DeepSeek的模型在多个公开评测中表现出色,超越同类模型,展现出强大的应用潜力。DeepSeek,全称是杭州深度求索人工智能基础技术研究有限公司,成立于2023年7月17日,总部位于中国杭州。原创 2025-03-02 19:52:19 · 453 阅读 · 0 评论 -
(23-4-02)使用隐马尔可夫模型交易比特币:实现交易策略(2)
通过这个函数,用户可以评估不同策略在测试数据上的表现。(5)下面代码用于绘制模拟数据下的投资组合价值随时间变化的图表,比较了使用HMM优化的买入/卖出策略(HMM buy/sell policy)和简单的比特币投资(Bitcoin investment)在0.5%市场摩擦下的表现。(7)下面代码绘制了在1.5%市场摩擦条件下,投资组合价值随时间变化的可视化图表,比较了使用HMM优化的买入/卖出策略(HMM buy/sell policy)与简单的比特币投资(Bitcoin investment)的表现。原创 2024-12-04 11:08:31 · 374 阅读 · 2 评论 -
(23-4-01)使用隐马尔可夫模型交易比特币:实现交易策略(1)
此外,虽然检查了100个不同的摩擦率值,我们的方法仅选择了三种不同的策略,即三组不同的阈值,这就是为什么回报与摩擦率的图形呈现分段线性形状的原因。(1)函数back_test_pol用于回测不同摩擦率下的买入/卖出策略,它根据隐马尔可夫模型(HMM)得到的预期异常回报率(EAR)和隐藏状态概率,对每种摩擦率下的买入/卖出阈值进行回测,计算投资组合的价值变化。(4)下面代码的功能是绘制一个可视化图表,比较在1%市场摩擦下的HMM优化买入/卖出策略和直接比特币投资的投资组合价值随时间的变化。原创 2024-12-03 11:07:18 · 93 阅读 · 1 评论 -
(23-3)使用隐马尔可夫模型交易比特币:隐马尔可夫模型(HMM)
相反,必须选择序列的起始部分,这样才能使用来自相对未来的数据来测试模型,以便测试结果能够反映模型对未见过的未来数据的泛化能力。HMM假设系统状态是隐藏的,通过观察到的数据(观测值)来推断系统的状态。它们基于的是价格数据的简单规则或趋势,而不是通过隐藏状态模型来进行预测。然后,代码绘制了在训练期间内的隐状态概率和比特币价格的归一化对比图,以及期望异常收益率与比特币价格的对比图。上述输出结果将帮助我们评估HMM在捕捉比特币价格行为中的表现,并提供有关如何基于隐状态概率和期望异常收益率做出交易决策的见解。原创 2024-12-02 10:43:31 · 84 阅读 · 0 评论 -
(23-2)使用隐马尔可夫模型交易比特币:数据预处理+ 基准策略
(1)下面代码的功能是为2014年12月1日至2019年1月7日期间的每一天创建一个比特币价格向量。如果某天的数据缺失,用NaN填充,然后通过线性插值(用缺失值前后的平均值填充)的方法补全缺失的价格数据。在数据科学和分析中,数据预处理通常包括对原始数据的清理、转换、以及处理缺失值等步骤,以便后续的分析和建模能够在干净、完整的数据基础上进行。(2)绘制每日比特币价格的折线图,展示日期与比特币价格的关系,并标注了横轴和纵轴的标签。执行后会绘制比特币价格的折线图,如图2-1所示。原创 2024-11-29 16:18:47 · 274 阅读 · 1 评论 -
(23-1)使用隐马尔可夫模型交易比特币:项目介绍+准备环境
在现代金融市场中,利用先进的数据分析和模型来优化交易策略已经成为一种常见的做法。比特币作为一种高度波动的加密货币,其价格受多种因素的影响,这使得传统的投资策略可能无法有效应对市场的快速变化。因此,探索更复杂的模型来捕捉市场走势并制定交易决策是至关重要的。隐马尔可夫模型(HMM)是一种强大的统计工具,它通过捕捉时间序列数据中的隐藏状态来预测未来的走势。在金融市场中,HMM可以用于识别不同的市场状态(如上升、下降或横盘),从而帮助制定更有效的交易策略。原创 2024-11-29 16:16:56 · 56 阅读 · 0 评论 -
(22-4)基于深度强化学习(DRL)的比特币交易系统:测试验证
下面代码用于创建并准备验证数据集 val_data,其功能包括将 train_df 数据集赋值给 val_data,然后重置 val_data 的索引,以确保索引从0开始并连续。通过重置索引,避免了旧索引可能带来的数据混乱。最后,通过val_data.info() 显示了数据集的基本信息,如列的数据类型、非空值数量和总的列数。测试过程中,每经过一定的回合数,会打印输出当前回合的最终奖励和总交易次数,以评估模型在实际应用中的表现。执行后会输出每隔一定回合数的测试结果,包括每回合的最终奖励和总交易次数。原创 2024-11-25 17:12:50 · 430 阅读 · 1 评论 -
(22-3)基于深度强化学习(DRL)的比特币交易系统:构建深度强化学习(DRL)环境
(1)环境控制:定义了多个环境参数,如data(包含金融数据的DataFrame)、take_profit_range(止盈范围)、stop_loss_range(止损范围)、max_stop_loss(最大止损)、position_size(最大持仓规模)、initial_balance(初始资本)、balance(当前余额)、position(当前仓位)、position_open(开仓价格)、num_trades(交易次数)、profit_loss(累计盈亏)等。这些信息有助于分析和优化代理的策略。原创 2024-11-22 11:08:06 · 209 阅读 · 1 评论 -
(22-2)基于深度强化学习(DRL)的比特币交易系统:准备环境+比特币交易数据集
本项目使用的数据集提供了从2017年到2023年10月期间的加密货币市场数据,涵盖了每小时的价格信息。1. 数据集概述(1)时间范围:从2017年1月到2023年10月。(2)数据频率:每小时。(3)数据类型:OHLCV(开盘价、最高价、最低价、收盘价和交易量),以及每小时的交易数量。(4)货币种类:在下面列出了常见的34种加密货币,这些货币在区块链网络中用于不同的目的,如支付、智能合约、去中心化金融(DeFi)应用等。1INCH:是一个去中心化交易所聚合器,旨在帮助用户获得最佳的交易价格。原创 2024-11-21 15:38:44 · 142 阅读 · 2 评论 -
(22-1)基于深度强化学习(DRL)的比特币交易系统:背景介绍+系统介绍
随着加密货币市场的快速发展,比特币等数字资产的交易日益成为全球投资者关注的焦点。由于加密货币市场具有高度波动性和不确定性,传统的交易策略往往难以应对复杂的市场动态。因此,开发基于人工智能的自动化交易系统成为一种趋势,其中深度强化学习(DRL)作为一种能够自适应学习复杂决策的技术,逐渐受到关注。本项目旨在探索深度强化学习在比特币交易中的应用,构建一个智能交易系统。原创 2024-11-21 15:35:21 · 68 阅读 · 1 评论 -
(21-6)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):最小方差投资组合分配
(3)下面的代码用于计算最小方差投资组合的资产价值。在上述代码中,trace0_portfolio 表示 A2C 模型的投资组合收益曲线,trace1_portfolio 表示 DJIA 的收益曲线,trace2_portfolio 表示最小方差投资组合的收益曲线。(2)使用 Plotly 创建了一个可视化图 (fig),将之前定义的三个散点图 (trace0_portfolio、trace1_portfolio、trace2_portfolio) 添加到图表中,并进行一些布局的调整,以提高图表的可读性。原创 2024-11-14 11:23:16 · 211 阅读 · 2 评论 -
(21-5)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):交易+回测交易策略
这些指标反映了当前策略在回测期间的收益、波动性、风险调整后的绩效等多个方面信息,其中夏普比率、卡玛比率、索提诺比率等是衡量策略风险调整后收益的重要指标,而最大回撤则是衡量策略可能面临的最大损失。(2)下面的代码返回trade数据集的形状(行数和列数),由于提供的代码片段中未包含完整的上下文,无法提供确切的答案。通过绘制回测结果的可视化图来分析交易策略的性能,这些可视化图通常包括策略资产价值随时间的变化、策略每日收益率、基准(如道琼斯工业平均指数)的表现等,有助于更直观地理解策略的优势和劣势。原创 2024-11-13 11:18:59 · 153 阅读 · 0 评论 -
(21-4)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):深度强化学习算法模型
SAC_PARAMS 包含了 SAC 模型的关键参数设置,这个模型使用了 FinRL 库中的 get_model 方法,并指定模型类型为 "sac",同时传递了 SAC 模型的参数。具体来说,model=model_ddpg表示使用之前创建的DDPG模型,tb_log_name='ddpg'表示TensorBoard日志的名称,total_timesteps=50000表示总的训练步数。(2)使用上面创建的PPO模型在环境中进行了8万步的训练,这将对模型进行学习,以在股票交易环境中执行交易决策。原创 2024-11-11 11:12:15 · 183 阅读 · 1 评论 -
(21-3)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):数据预处理+构建交易环境
这种环境的向量化可以带来训练速度的显著提升,特别是在使用深度学习模型进行训练时,因为模型的计算可以在多个环境之间并行进行。这行代码的目的是展示经过协方差矩阵添加后的数据的头部,以便查看数据的结构和内容。通过使用get_sb_env()方法,原始的股票交易环境被包装成了Stable-Baselines3库中的向量化环境,以便与该库中的强化学习算法进行集成。上述代码的目的可能是在股票交易环境中设置环境参数,其中stock_dimension表示股票的数量,而state_space表示状态空间的维度。原创 2024-11-09 16:52:09 · 307 阅读 · 1 评论 -
(21-2)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):准备环境+下载数据
本项目通过著名的库FinRL实现,这是是一个专注于金融领域的强化学习库,旨在为研究人员和开发者提供一个便捷的工具,用于开发、训练和评估金融交易策略。这行代码的目的是查看下载的金融数据的规模,即数据框中的行数和列数。(3)通过df.head()显示DataFrame df 的前几行数据,目的是展示下载的金融数据的头部,以便查看数据的结构和内容。总体而言,FinRL是一个为金融领域设计的强化学习库,为开发者提供了一套完整的工具和资源,以在金融市场中应用深度强化学习技术。原创 2024-11-09 10:57:21 · 156 阅读 · 0 评论 -
(21-1)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):背景介绍+项目目标+模块架构
金融市场一直以来都是一个信息量巨大、高度复杂且动态变化的领域。随着科技的不断发展,量化交易作为一种基于数据分析和数学模型的交易方式变得日益重要。传统的人工决策面临着市场波动、信息滞后等问题,而量化交易通过算法和模型,能够更迅速、精确地应对市场变化,为投资者提供更可靠的交易策略。在这个背景下,本项目引入了深度强化学习(DRL)算法,结合了OpenAI Baselines和Stable Baselines等开源库,为金融领域提供了一套强大的工具。原创 2024-11-09 10:55:20 · 106 阅读 · 0 评论 -
(20-2-02)基于强化学习的贪吃蛇游戏:应用强化学习(2)训练模型+Agent智能体+测试模型
下面的定义了一个基于深度强化学习的智能体(Agent)类,用于训练和控制一条贪吃蛇(Snake)游戏中的蛇。该智能体使用 Q-learning 算法,通过与环境的交互不断学习,以最大化奖励并优化游戏策略。LR = 0.001# 控制随机性# 折扣率# 最近的动作,如果达到限制,我们将删除最旧的动作# 模型需要有11个输入,因为我们的世界状态网格有11个元素,输出是3个,因为我们有3个方向# 这为我们提供了世界的状态state = [# 前方有危险# 右方有危险# 左方有危险# 移动方向。原创 2024-09-20 15:17:36 · 479 阅读 · 0 评论 -
(20-2-01)基于强化学习的贪吃蛇游戏:应用强化学习(1)强化学习环境+神经网络模型
在强化学习(RL)中,环境是代理将学习和执行操作的“场所”,在我们的例子中,环境是经过调整的Silly Snake游戏,使其可以由AI来玩。请看下面的代码,现了一个强化学习环境用于训练AI玩贪吃蛇游戏。类SillySnakeGameAi定义了游戏的环境,包括初始化游戏窗口、设置游戏状态、处理游戏逻辑和用户界面更新。游戏逻辑包括蛇的移动、食物的放置、碰撞检测和奖励机制。AI 通过 playStep 方法采取行动,得到奖励,并根据当前状态更新游戏。原创 2024-09-12 16:10:01 · 459 阅读 · 1 评论 -
(20-1)基于强化学习的贪吃蛇游戏:项目介绍+游戏准备
将使用强化学习和一个简单的神经网络进行训练。对于神经网络,我们将使用 PyTorch。我们使用的游戏是一个用 Python 编写的贪吃蛇游戏,使用了 pygame 模块。在这个笔记本中,我们可能无法看到它的实际运行,但它会被训练,我们可以观察到它的进展!我会添加一些游戏和训练过程在我本地机器上运行的图片。当然,我也鼓励你在一个可以看到游戏窗口的地方运行这个代码。原创 2024-09-12 10:44:42 · 442 阅读 · 1 评论 -
(19-3)基于生成对抗网络假人脸生成系统:假人脸生成测试
接着,通过生成和显示多个图像网格(例如2x2和5x5的网格),可以更全面地观察生成器的效果和生成图像的质量。(3)运行下面的代码,函数plot_generated_images将会生成并显示一个 5x5 的图像网格,共包含 25 张由生成器生成的图像。(2)运行下面的代码,函数plot_generated_images将会生成并显示一个 2x2 的网格,其中包含四张由生成器生成的图像。执行后会看到一个 5x5 的图像网格,显示了 25 张由生成器生成的假人脸图像,如图2-8所示。图2-8 生成的假人脸。原创 2024-09-07 17:14:26 · 107 阅读 · 0 评论 -
(19-2)基于生成对抗网络假人脸生成系统:实现生成对抗网络(GAN)
生成器接受一个维度为 100 的随机向量作为输入,经过一系列的全连接层和卷积层,首先进行下采样处理,再进行上采样处理,最终生成一个 128x128x3 的图像。(1)下面代码定义了生成对抗网络(GAN)的训练步骤,在每个训练步骤中,生成器根据随机噪声生成假图像,并由判别器判断这些图像是否为真。接着,通过计算生成器和判别器的损失,分别更新它们的参数。(4)下面这段代码定义了用于训练生成对抗网络(GAN)的优化器和损失函数,使用 RMSprop 作为优化器,并通过二元交叉熵损失函数来计算生成器和判别器的损失。原创 2024-09-07 17:11:51 · 369 阅读 · 0 评论 -
(19-1)基于生成对抗网络假人脸生成系统:项目介绍+准备环境
在数字化和人工智能技术飞速发展的今天,生成对抗网络(GAN)已经成为一种突破性的技术,广泛应用于图像生成、数据增强和虚拟角色创建等领域。生成对抗网络通过对抗性训练的方式,使得生成器能够从噪声中生成高度逼真的图像,而判别器则负责判断这些图像的真实性。这种技术的进步为各行各业带来了前所未有的变革。在市场需求方面,虚拟人脸生成技术在娱乐、广告、社交媒体和模拟训练等领域具有巨大的潜力。例如,在娱乐产业中,制作高质量的虚拟角色和特效可以大幅提升影视作品的视觉效果;在广告行业,虚拟人脸可以用于个性化广告创作;原创 2024-09-06 21:15:08 · 272 阅读 · 0 评论 -
(18-3-01)基于深度强化学习的股票交易模型:深度学习方案(1) DQN
使用的是贝尔曼方程计算目标Q值,模型通过最小化预测Q值和目标Q值之间的均方误差来更新网络权重,从而提升智能体在环境中的决策能力。最初,这两个网络的参数是相同的。(4)下面这段代码的功能是通过可视化图来比较在训练集和测试集上的模型表现,使用K线图展示模型在训练和测试过程中所采取的行动、获得的奖励以及累计利润,帮助用户评估模型在这两个数据集上的效果差异。执行后绘制的K线图效果如图1-3所示,这个K线图展示了模型在训练和测试过程中的行动、奖励和累计利润,帮助用户评估不同算法在不同数据集上的表现差异。原创 2024-09-06 15:07:44 · 317 阅读 · 0 评论 -
(18-2)基于深度强化学习的股票交易模型:EDA
随后,代码随机选择了三个操作(持有、买入、卖出),并输出了每个操作后的环境状态、奖励以及是否交易结束的标志。(4)调用 plot_train_test(train, test, date_split) 函数绘制蜡烛图,帮助我们直观地比较训练集和测试集的数据,了解模型的训练和测试时间段。EDA(探索性数据分析,Exploratory Data Analysis)是数据处理的一部分,通过统计方法和可视化技术来探索数据集,发现数据中的模式、关系、异常值和分布情况。图1-8 绘制的蜡烛图。原创 2024-09-05 14:28:17 · 264 阅读 · 0 评论 -
(18-1)基于深度强化学习的股票交易模型:项目介绍+准备环境
在金融市场中,股票交易是一项充满挑战的任务,需要在高度波动和复杂的市场环境中做出快速且精准的决策。传统的交易策略通常依赖于经验、基本面分析或技术分析。然而,这些方法往往无法在快速变化的市场中保持持续的竞争优势。随着人工智能技术的飞速发展,深度强化学习(Deep Reinforcement Learning, DRL)为股票交易策略的开发提供了新的思路和工具。深度强化学习通过将强化学习的决策能力与深度学习的感知能力相结合,使得模型能够在动态环境中不断学习并调整策略。原创 2024-09-05 11:23:28 · 340 阅读 · 0 评论 -
(17-8)基于强化学习的自动驾驶系统:调试运行
(1)首先运行文件collect_data_autoencoder.py,在运行时需要使用命令行参数来自定义数据收集的各个方面,例如地图、天气、数据输出等,这些数据可以用于训练自动编码器等深度学习模型。例如通过运行下面的命令,可以在模拟环境中生成与"ClearNoon"天气条件下的自动编码器训练相关的数据,并将生成的数据保存到指定的输出文件夹中。(3)运行文件train_autoencoder.py来训练自动编码器,实现特征提取和降维功能。通过运行如下命令将使用创建的数据集进行训练。原创 2024-05-20 20:38:25 · 642 阅读 · 0 评论 -
(17-7-05)基于强化学习的自动驾驶系统:评估自动驾驶模型的性能
编写文件test_agent.py,功能是测试一个已经训练好的自动驾驶智能体的性能,以便了解它在给定路线和环境条件下的表现如何。可以通过命令行参数指定要测试的路线、智能体模型文件和其他配置信息。与本节前面中提到的训练脚本相比,这个脚本的目标是测试已经训练好的智能体,而不是训练新的智能体模型。具体实现代码如下所示。上述代码的主要目的是评估智能体的性能,以便了解它在给定路线和环境条件下的表现如何。可以通过命令行参数指定要测试的路线、智能体模型文件和其他配置信息。原创 2024-05-20 17:04:54 · 295 阅读 · 0 评论 -
(17-7-04)基于强化学习的自动驾驶系统:训练DDPG智能体执行自动驾驶任务
编写文件train_ddpg_agent.py,功能是训练一个DDPG智能体,以便在CARLA仿真环境中执行自动驾驶任务。它通过不断与环境互动,优化策略网络和值网络,以便智能体可以更好地执行驾驶任务。具体实现代码如下所示。(1)使用命令行参数配置CARLA仿真环境,包括主机、相机设置、天气条件、训练周期等。(6)在训练过程结束后,保存最终的DDPG智能体模型和训练数据。(4)初始化DDPG智能体,设置训练超参数、经验缓冲区等。(3)创建CARLA仿真环境,设置路线、天气等参数。原创 2024-05-20 10:48:34 · 623 阅读 · 1 评论 -
(17-7-03)基于强化学习的自动驾驶系统:训练自动驾驶的强化学习代理
(1)编写训练代理的主函数train_agent,在预训练(pretraining)阶段,代理根据参数 nb_pretraining_steps 进行一定数量的训练步骤,以学习驾驶技能。在训练(training)阶段,代理将进行一定数量的训练步骤,同时定期评估其性能。训练过程中,代理根据当前状态选择动作,并与环境进行交互,接收奖励并更新自身的策略。在训练过程中会记录代理的状态、奖励等信息,并保存代理的模型。具体实现代码如下所示。这个文件包含了强化学习的训练逻辑,包括预训练和训练阶段,以及代理的评估逻辑。原创 2024-05-19 16:03:19 · 489 阅读 · 0 评论 -
(17-7-02)基于强化学习的自动驾驶系统:收集CARLA环境中的专家驾驶数据
总之,上述代码用于在 CARLA 仿真环境中运行多个仿真 episode,用于记录车辆的观察数据和驾驶行为,然后将这些数据保存到指定的输出文件夹中,以便用于后续的自动驾驶代理训练和评估工作。(1)解析命令行参数:使用 ArgumentParser 解析命令行参数,这些参数包括世界端口、主机地址、天气条件、摄像头参数、仿真参数、输出文件夹、模型类型等。(2)加载预训练的自编码器模型:根据命令行参数指定的模型类型(Autoencoder、AutoencoderSEM 或 VAE),加载对应的自编码器模型。原创 2024-05-15 17:08:00 · 533 阅读 · 0 评论 -
(17-7-01)基于强化学习的自动驾驶系统:生成训练数据+训练模型
这个文件包含了自编码器模型的训练逻辑,以及数据集的准备和处理。编写文件collect_data_autoencoder.py,功能是收集与自动编码器训练相关的数据,在模拟环境中生成并记录与自动编码器训练相关的各种数据,以便后续用于深度学习模型的训练和研究。(2)数据多样性:通过设置不同的路线(route)和通行次数(passes),以及在不同天气条件下模拟数据,从而收集多样性的数据。(3)数据格式:根据命令行参数-np的设置,数据可以以图像或NumPy数组的形式保存,这取决于用户的选择。原创 2024-05-10 20:47:18 · 1259 阅读 · 0 评论 -
(17-6-04)基于强化学习的自动驾驶系统:深度确定性策略梯度算法
假期结束,告别朋友,拥抱同事。原创 2024-05-05 19:57:02 · 1506 阅读 · 0 评论