郭震 AI公众号:郭震AI

19 深度强化学习之深度学习在强化学习中的应用

发布日期:

最近更新:

分类: 强化学习

预计阅读: 4 分钟

阅读次数: 0

系列进度

强化学习入门 · 第 19 / 28

预计阅读4 分钟
结构重点6 个
图文要点6 张
正文规模1.7k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 6 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

深度强化学习之深度学习在强化学习中的应用结构图查看大图
深度强化学习之深度学习在强化学习中的应用结构图

强化学习的核心是智能体在环境中试错,学习时要同时看状态、动作、奖励和策略更新。阅读时可以按「深度学习与强化学习的结合 -> 状态表示的学习 -> 深度Q网络 -> 实现 DQN」建立结构,再回到正文里的代码、案例或指标做验证。

深度强化学习之深度学习在强化学习中的应用核对图查看大图
深度强化学习之深度学习在强化学习中的应用核对图

读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「深度学习与强化学习的结合」,再查「状态表示的学习」。

在上一篇中,我们详细讨论了Q学习及其近似Q学习方法,采用了函数逼近的方式来解决高维状态空间的问题。在这一篇中,我们将探讨深度学习如何在强化学习中发挥关键作用,尤其是在处理复杂环境和大规模状态空间的场景中。

深度学习与强化学习的结合

深度学习(Deep Learning)是指使用多层神经网络(通常是卷积神经网络CNN或循环神经网络RNN)来自动学习特征和模式的机器学习方法。在强化学习(Reinforcement Learning)中,深度学习可以帮助代理(Agent)更好地理解和学习环境的状态。深度强化学习(Deep Reinforcement Learning)即是结合这两者的产物。

深度强化学习应用判断卡查看大图
深度强化学习应用判断卡

分析深度强化学习应用时,先看状态空间、动作空间、奖励设计、神经网络结构、探索策略和训练稳定性。

深度强化学习通过构建深层神经网络来近似强化学习中的值函数或策略,从而解决了传统方法在复杂环境下的不足。在某些复杂任务中,状态空间和动作空间可能非常庞大,这时候直接使用表格(Table-based)方法已不再可行。因此,深度学习提供了一种方式来有效地泛化和逼近这些函数。

1. 状态表示的学习

深度强化学习的一个关键优势是它可以自动从原始输入数据中学习到更好的状态表示。例如,在视觉任务中(如游戏),我们可以使用卷积神经网络自动提取图像特征。通过这些特征,代理能够更好地理解环境,从而做出更合理的决策。

示例:Atari 游戏

考虑一个经典的深度强化学习案例——在ATARI游戏中进行训练。游戏的输入是原始像素图像,我们可以用卷积网络来提取图像特征。网络的输出即为各个动作的Q值。通过这种方式,代理能从电影般的视觉输入中学习到有效的策略。

import gym
import numpy as np
import cv2

def preprocess_frame(frame):
    # 将图像转换为灰度,并调整大小
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    frame = cv2.resize(frame, (84, 84))
    return frame

env = gym.make("Pong-v0")
observation = env.reset()
preprocessed_frame = preprocess_frame(observation)

2. 深度Q网络(DQN)

DQN是深度强化学习的一次重大突破,通过深度神经网络函数逼近来替代传统的Q表。DQN结合了经验回放(Experience Replay)和目标网络(Target Network)等技术,有效解决了训练中的不稳定性问题。

经验回放

在强化学习中,代理的每个经验(状态、动作、奖励、下一个状态)被存储在一个“经验回放缓冲区”中。代理通过随机抽取这些经验来进行训练,从而打破数据间的相关性。

目标网络

目标网络是用于计算目标Q值的网络,其参数是主网络的一个滞后版本。这一设计缓解了学习过程中的非稳定性,因为目标Q值在一段时间内保持不变。

3. 实现 DQN

我们使用Keras和TensorFlow来实现DQN。以下是一个简单的训练DQN的代码示例。

from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
import random

class DQNAgent:
    def __init__(self, state_size, action_size):
        self.state_size = state_size
        self.action_size = action_size
        self.memory = []
        self.gamma = 0.95  # 折扣因子
        self.epsilon = 1.0  # 探索率
        self.epsilon_min = 0.01
        self.epsilon_decay = 0.995
        self.model = self._build_model()

    def _build_model(self):
        model = Sequential()
        model.add(Dense(24, input_dim=self.state_size, activation='relu'))
        model.add(Dense(24, activation='relu'))
        model.add(Dense(self.action_size, activation='linear'))
        model.compile(loss='mse', optimizer=Adam(lr=0.001))
        return model

    def remember(self, state, action, reward, next_state, done):
        self.memory.append((state, action, reward, next_state, done))

    def act(self, state):
        if np.random.rand() <= self.epsilon:
            return random.choice(range(self.action_size))
        act_values = self.model.predict(state)
        return np.argmax(act_values[0])

    def replay(self, batch_size):
        minibatch = random.sample(self.memory, batch_size)
        for state, action, reward, next_state, done in minibatch:
            target = reward
            if not done:
                target += self.gamma * np.amax(self.model.predict(next_state)[0])
            target_f = self.model.predict(state)
            target_f[0][action] = target
            self.model.fit(state, target_f, epochs=1, verbose=0)
        if self.epsilon > self.epsilon_min:
            self.epsilon *= self.epsilon_decay

4. 深度强化学习的优势

深度强化学习的优势在于其强大的泛化能力和在高维空间中的表现。能够使得代理在复杂的任务中获得良好的策略,极大地推动了无人驾驶、游戏AI、机器人控制等多个领域的发展。

深度强化学习之深度学习在强化学习中的应用应用复盘卡查看大图
深度强化学习之深度学习在强化学习中的应用应用复盘卡

如果《深度强化学习之深度学习在强化学习中的应用》还没完全消化,可以从这张卡片的四个动作重新走一遍。

深度强化学习之深度学习在强化学习中的应用应用检查卡查看大图
深度强化学习之深度学习在强化学习中的应用应用检查卡

回看《深度强化学习之深度学习在强化学习中的应用》时,不必一次做大项目,先用一条简单样例确认主线是否清楚。

小结

深度学习在强化学习中的应用极大地促进了研究和应用的发展。通过深度神经网络,代理不仅能够处理复杂的输入数据,还能够有效地进行策略学习。在接下来的篇幅中,我们将深入讨论DQN算法的具体实现和优化技巧,帮助你更好地掌握深度强化学习。 强化学习阅读地图卡

进入《深度强化学习之深度学习在强化学习中的应用》正文前,可以先扫一遍配图:它在问什么、要分清哪些概念、哪一步值得动手、最后用什么标准验收。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

深度强化学习之深度学习在强化学习中的应用适合谁读?

这是 强化学习入门 系列第 19 / 28 篇,适合正在学习强化学习入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇强化学习入门教程要多久?

按中文技术文章阅读速度估算,通读大约 4 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...