tcmiku的深度学习之旅_持续更新
深度学习
目标
一个能与外界进行交互的AI,能对外界例如游戏进行交互
机器学习探索外界
我期望人工智能不仅能够做出预测,而且能够与真实环境互动。 与预测不同,“与真实环境互动”实际上会影响环境。 这里的人工智能是“智能代理”,而不仅是“预测模型”
这种需求显然是强化学习
如果你对使用机器学习开发与环境交互并采取行动感兴趣,那么最终可能会专注于强化学习(reinforcement learning)。 这可能包括应用到机器人、对话系统,甚至开发视频游戏的人工智能(AI)。 深度强化学习(deep reinforcement learning)将深度学习应用于强化学习的问题,是非常热门的研究领域。 突破性的深度Q网络(Q-network)在雅达利游戏中仅使用视觉输入就击败了人类, 以及 AlphaGo 程序在棋盘游戏围棋中击败了世界冠军,是两个突出强化学习的例子。
在强化学习问题中,智能体(agent)在一系列的时间步骤上与环境交互。 在每个特定时间点,智能体从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后智能体从环境中获得奖励(reward)。 此后新一轮循环开始,智能体接收后续观察,并选择后续操作,依此类推。 强化学习的过程在 图1.3.7 中进行了说明。 请注意,强化学习的目标是产生一个好的策略(policy)。 强化学习智能体选择的“动作”受策略控制,即一个从环境观察映射到行动的功能。
强化学习和环境之间的相互作用
强化学习框架的通用性十分强大。 例如,我们可以将任何监督学习问题转化为强化学习问题。 假设我们有一个分类问题,可以创建一个强化学习智能体,每个分类对应一个“动作”。 然后,我们可以创建一个环境,该环境给予智能体的奖励。 这个奖励与原始监督学习问题的损失函数是一致的。
当然,强化学习还可以解决许多监督学习无法解决的问题。 例如,在监督学习中,我们总是希望输入与正确的标签相关联。 但在强化学习中,我们并不假设环境告诉智能体每个观测的最优动作。 一般来说,智能体只是得到一些奖励。 此外,环境甚至可能不会告诉是哪些行为导致了奖励。
以强化学习在国际象棋的应用为例。 唯一真正的奖励信号出现在游戏结束时:当智能体获胜时,智能体可以得到奖励1;当智能体失败时,智能体将得到奖励-1。 因此,强化学习者必须处理学分分配(credit assignment)问题:决定哪些行为是值得奖励的,哪些行为是需要惩罚的。 就像一个员工升职一样,这次升职很可能反映了前一年的大量的行动。 要想在未来获得更多的晋升,就需要弄清楚这一过程中哪些行为导致了晋升。
强化学习可能还必须处理部分可观测性问题。 也就是说,当前的观察结果可能无法阐述有关当前状态的所有信息。 比方说,一个清洁机器人发现自己被困在一个许多相同的壁橱的房子里。 推断机器人的精确位置(从而推断其状态),需要在进入壁橱之前考虑它之前的观察结果
最后,在任何时间点上,强化学习智能体可能知道一个好的策略,但可能有许多更好的策略从未尝试过的。 强化学习智能体必须不断地做出选择:是应该利用当前最好的策略,还是探索新的策略空间(放弃一些短期回报来换取知识)。
一般的强化学习问题是一个非常普遍的问题。 智能体的动作会影响后续的观察,而奖励只与所选的动作相对应。 环境可以是完整观察到的,也可以是部分观察到的,解释所有这些复杂性可能会对研究人员要求太高。 此外,并不是每个实际问题都表现出所有这些复杂性。 因此,学者们研究了一些特殊情况下的强化学习问题。
当环境可被完全观察到时,强化学习问题被称为马尔可夫决策过程(markov decision process)。 当状态不依赖于之前的操作时,我们称该问题为上下文赌博机(contextual bandit problem)。 当没有状态,只有一组最初未知回报的可用动作时,这个问题就是经典的多臂赌博机(multi-armed bandit problem)
从《动手学习深度学习PYTORCH》中对于强化学习的描述可知
智能体从环境接收一些观察(observation),并且必须选择一个动作(action),然后通过某种机制(有时称为执行器)将其传输回环境,最后智能体从环境中获得奖励(reward)
其中智能体需要观察获取外界的信息,然后必须选择一个动作执行,回传后对其进行奖励
深度学习书籍:
安装
我们需要配置一个环境来运行 Python、Jupyter Notebook、相关库以及运行本书所需的代码
安装MIniconda
最简单的方法就是安装依赖Python 3.x的Minicondawindos直接官网下载即可
配置conda虚拟环境
打开刚才安装的miniconda控制台输入以下命令
创建一个新的conda环境名称为
d2l
python版本为3.9conda create –name d2l python=3.9 -y
激活 d2l 环境
conda activate d2l
注意下列所有操作均在虚拟环境d2l
中进行
安装深度学习框架和d2l软件包
安装pytorch
pip install torch==1.12.0
pip install torchvision==0.13.0安装软件包
pip install d2l==0.17.6
下载书籍代码
windows下直接下载zip
解压后从canda虚拟环境中进入解压位置linux运行以下命令
mkdir d2l-zh && cd d2l-zh curl https://zh-v2.d2l.ai/d2l-zh-2.0.0.zip -o d2l-zh.zip unzip d2l-zh.zip && rm d2l-zh.zip cd pytorch
运行笔记(确保是在笔记目录下)
jupyter notebook
在运行书籍代码、更新深度学习框架或d2l软件包之前,请始终执行conda activate d2l以激活运行时环境。 要退出环境,请运行conda deactivate
如果没有独立显卡,已安装conda或miniconda后,通过如下命令安装pytorch:
conda install pytorch torchvision torchaudio cpuonly -c pytorch
(如果出现 CondaHTTPError ,先添加清华源 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/,然后去掉命令中的channel参数“ -c pytorch”,再重新安装即可)
如果有NVIDIA独立显卡,用如下命令同时安装四个包(无需单独安装CUDA):
conda install pytorch torchvision torchaudio cudatoolkit=11.1
安装后验证:
import torch
torch.cuda.is_available()
注:如果此前安装过无GPU版,需先移除 cpuonly 包
如果有AMD独立显卡,最新版pytorch 1.8支持AMD,但好像只在Linux下,具体可自行搜索
yolo目标检测
模型下载位置
强化学习
pass