2 强化学习导论之强化学习与监督学习的区别

在上篇中,我们介绍了强化学习的基本概念和历史背景。在这一篇中,我们将深入探讨强化学习与监督学习之间的区别,以帮助读者更好地理解这两种机器学习范式的应用场景和适用条件。

强化学习与监督学习的基本定义

在进入详细比较之前,首先我们要明确这两种学习方式的基本定义:

  1. 监督学习:在监督学习中,算法学习一个输入到输出的映射关系。训练数据通常包含输入特征和对应的标签,例如给定邮件的文本内容(输入),算法需要判断这封邮件是“垃圾邮件”还是“正常邮件”(输出)。

  2. 强化学习:强化学习则是一种基于环境反馈的学习过程,学习者(代理)与环境进行交互,通过试错误获得反馈(奖励或惩罚),从而制定出最优的策略以最大化累计奖励。例如,训练一个游戏代理在围棋中选择最佳的下一步.

主要区别

1. 学习目标

  • 监督学习的目标是最小化预测误差,它通常侧重于对特定数据样本的准确预测。
  • 强化学习的目标是最大化长期累计奖励,它更关注在整个决策过程中如何做出最佳选择。

2. 数据类型

  • 监督学习中,数据是已标注的,意味着每一个输入都有一个对应的输出标签。比如,图像分类中的每一张图像都有一个对应的标签。
  • 而在强化学习中,代理通过与环境的交互获得奖惩信号,数据不是事先准备好的,而是通过代理的行为而动态生成的。

3. 反馈机制

  • 监督学习中的反馈是直接的,模型在训练时会得到明确的正确答案(标签),例如在“猫”与“狗”的分类任务中,算法会直接知道它预测错误的图片。
  • 强化学习中,反馈是间接的,代理需要探索环境,行为的后果往往是延迟反馈。例如,在某个时刻采取的行动可能在后续多个时间步后才会知道其效果如何。

4. 环境交互

  • 监督学习的训练一般是离线的,模型训练完成后再进行测试,模型不会在训练过程中与环境互动。
  • 强化学习是在线的,模型在训练过程中就与环境交互,通过不断尝试不同的行动来学习。

案例分析

监督学习示例

考虑以下监督学习的Python代码示例,使用sklearn库进行简单的分类任务:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target

# 切分训练集与测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练模型
model = RandomForestClassifier()
model.fit(X_train, y_train)

# 预测
y_pred = model.predict(X_test)

# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"准确率: {accuracy * 100:.2f}%")

强化学习示例

下面是一个使用OpenAI Gymstable-baselines3库的强化学习示例,训练一个简单的代理在CartPole环境中保持平衡:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import gym
from stable_baselines3 import PPO

# 创建环境
env = gym.make('CartPole-v1')

# 创建代理
model = PPO("MlpPolicy", env, verbose=1)

# 训练代理
model.learn(total_timesteps=10000)

# 测试代理
obs = env.reset()
for _ in range(1000):
action, _states = model.predict(obs)
obs, rewards, done, info = env.step(action)
env.render()
if done:
obs = env.reset()

env.close()

总结

通过上述比较,我们可以看到强化学习与监督学习在多个方面的显著区别。这两种方法各有优势和应用场景,监督学习在数据相对容易获取和标注时表现优越,而强化学习则在需要与环境进行互动并依据反馈不断调整策略的场景中脱颖而出。在下一篇中,我们将探讨强化学习的应用领域,以进一步理解其实际用途和发展方向。

2 强化学习导论之强化学习与监督学习的区别

https://zglg.work/reinforcement-learning-zero/2/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论