强化学习 - Q-learning(Q学习)

什么是机器学习

强化学习中的 Q-learning (Q学习)是一种用于学习在未知环境中做出决策的方法。它是基于值函数的方法,通过学习一个值函数 Q,该函数表示在给定状态和动作下,期望的累积奖励。

以下是一个简单的 Q-learning 的实现教程,使用 Python 进行演示。这里我们考虑一个简单的驾驶代理程序在一个格子世界中学习如何最优地选择动作以达到目标。

python 复制代码
import numpy as np

# 定义格子世界的大小
num_states = 6
num_actions = 4  # 上、下、左、右

# 初始化 Q 表
Q = np.zeros((num_states, num_actions))

# 定义参数
alpha = 0.1  # 学习率
gamma = 0.9  # 折扣因子
epsilon = 0.1  # 探索概率

# 定义转移矩阵 R
R = np.array([
    [-1, -1, -1, -1, 0, -1],
    [-1, -1, -1, 0, -1, 100],
    [-1, -1, -1, 0, -1, -1],
    [-1, 0, 0, -1, 0, -1],
    [0, -1, -1, 0, -1, 100],
    [-1, 0, -1, -1, 0, 100]
])

# Q-learning 算法
def q_learning(state, alpha, gamma, epsilon, num_episodes):
    for episode in range(num_episodes):
        current_state = state
        while current_state != 5:  # 目标状态为5
            # epsilon-greedy策略选择动作
            if np.random.rand() < epsilon:
                action = np.random.choice(range(num_actions))
            else:
                action = np.argmax(Q[current_state, :])

            # 执行动作,得到下一个状态
            next_state = action

            # 更新 Q 值
            Q[current_state, action] = Q[current_state, action] + alpha * \
                (R[current_state, action] + gamma * np.max(Q[next_state, :]) - Q[current_state, action])

            # 进入下一个状态
            current_state = next_state

# 运行 Q-learning 算法
q_learning(state=0, alpha=alpha, gamma=gamma, epsilon=epsilon, num_episodes=1000)

# 打印学得的 Q 表
print("Learned Q-table:")
print(Q)

在这个例子中,我们定义了一个简单的格子世界,其中代理程序在不同的状态之间移动,选择上、下、左、右四个动作。代理程序通过 Q-learning 学习在每个状态下选择每个动作的 Q 值。在每个训练 episode 中,代理程序根据 epsilon-greedy 策略选择动作,执行动作后更新 Q 值

请注意,这只是一个简化的 Q-learning 示例,实际应用中可能涉及到更复杂的环境和状态。调整参数,如学习率alpha)、折扣因子gamma)、探索概率epsilon),是实现良好性能的关键。

相关推荐
清酒难寻1 小时前
深度学习进阶(二十四)Swin 的二维 RPE
人工智能·深度学习
步步为营DotNet2 小时前
借助 Microsoft.Extensions.AI 与 ASP.NET Core 10 实现智能 Web 应用故障预测
人工智能·microsoft·asp.net
AI创界者2 小时前
零基础上手!ComfyUI + LTX-2.3 图生视频完整工作流搭建与调优指南(附避坑细节)
大数据·人工智能
怕浪猫2 小时前
AI图片工具到底有哪些?一份按能力维度整理的清单
人工智能
hongmai6668882 小时前
FH8856V310芯片详解:6M高清+0.5TOPS算力,赋能智能安防新方案
人工智能·单片机·嵌入式硬件·物联网·智能家居
一颗小树x2 小时前
NVIDIA Jetson Thor 运行 LLM / VLM:模型全整理与 vLLM 实践
人工智能·llm·jetson·vllm
每日综合2 小时前
蓝白风暴席卷BW2026!雷克沙展台首日燃情纪实
人工智能
To_OC2 小时前
手搓 LangChain 工具调用:原来 Agent 的核心逻辑,就是个 while 循环
人工智能·langchain·llm
有Li2 小时前
基于扩散模型的超声计算机断层成像实现肌肉骨骼组织高保真三维重建文献速递/基于多模态的医学影像分割与理解
大数据·深度学习·文献·医学生
Drgfd3 小时前
机器人从工厂走进生活:通用机器人开启大众商用时代
人工智能