Fisher's Blog

Sein heißt Werden
Leben heißt Lernen

0%

  1. 马尔可夫决策过程(MDP)定义整理
  2. 基于模型的动态规划 Planning by Dynamic Programming
  3. 无模型预测 Model-Free Predication
  4. 无模型控制 Model-Free Control
  5. 值函数近似 Value Function Approximation
    1. Deep Q-Network
    2. DQN 代码实现
    3. Double DQN & 代码实现
    4. Prioritized Experience Replay
    5. Prioritized Experience Replay 代码实现
    6. Dueling Network Architectures for Deep Reinforcement Learning & 代码实现
  6. 策略梯度 Policy Gradient
    1. Actor-Critic Softmax & Gaussian Policy 代码实现
    2. Deterministic Policy Gradient
    3. Deep Deterministic Policy Gradient
    4. DDPG 代码实现
    5. Deep Reinforcement Learning In Parameterized Action Space
    6. Asynchronous Methods for Deep Reinforcement Learning
    7. A3C 代码实现
    8. Trust Region Policy Optimization
    9. High-Dimensional Continuous Control Using Generalized Advantage Estimation
    10. Proximal Policy Optimization Algorithms
    11. Proximal Policy Optimization 代码实现
  7. 整合学习与规划 Integrating Learning and Planning

为了解决无模型强化学习中稳定优化非线性值函数估计、避免 Q-learning 中由于 target Q 引起的偏差传递及更有效的探索,SUNRISE: A Simple Unified Framework for Ensemble Learning in Deep Reinforcement Learning 这篇论文结合了三种方法:1. 随机初始化一系列不同的智能体;2. 带权重的 Bellman backups;3. 在推断阶段使用上置信来选取动作。主要创新在第一点方法上,相当于是 TD3 算法的扩展。

阅读全文 »

在强化学习中, 一直存在数据利用率低的问题,尤其是在观测值是高维图像的情况下。如果引入一些额外的辅助任务,将这些任务的知识迁移到强化学习主任务中是一个可以提高数据利用率的方法,同时也能帮助提高强化学习的基础表征,但如何将这些辅助任务进行融合是一个大问题,因为不确定这些辅助任务是否真的在帮助主任务,也不知道它们何时会对主任务的训练产生反作用。

Adapting Auxiliary Losses Using Gradient Similarity & Adaptive Auxiliary Task 主要利用各任务梯度之间的余弦相似度作为权重来判断辅助任务是否在帮助降低主任务的损失。Adaptive Auxiliary Task Weighting for Reinforcement Learning 则提出了一种在线学习的算法,主要基于辅助任务应该从长远来看提供一种帮助降低主任务损失的梯度方向。两篇论文都是想要动态调节辅助任务损失的权重来达到融合辅助任务的作用。

阅读全文 »

本文主要说明在 Kubesphere 自动化生成的 Kubernetes 中,如何监控 GPU ,如何获取每个节点上使用 GPU 的进程信息并将其转换为 Kubernetes 中的 Pod 信息。所有信息数据都由 Kubesphere 生成的 prometheus 进行抓取。

阅读全文 »

Never Give Up: Learning Directed Exploration Strategies 是 DeepMind 在 ICLR 2020 上发表的一篇论文,主要解决探索与利用问题。这篇论文可以看作是三篇论文的结合:

  1. Curiosity-driven Exploration by Self-supervised Prediction
  2. Neural Episodic Control
  3. Exploration by Random Network Distillation

也是使用内在奖励 (intrinsic reward) 机制,与外部奖励 (external reward) 合起来作为奖励值进行强化学习的训练。

阅读全文 »

来自图像的原始输入维度非常高,造成在强化学习中数据利用率非常低效,而来自伯克利的新论文 CURL: Contrastive Unsupervised Representations for Reinforcement Learning 认为如果智能体能在高维的观测信息中学习到更有用的表征,那么基于这些表征所做的强化学习算法将会更加数据高效。该论文主要通过对比学习的方法对高维原始图像输入做表征,能达到可以比肩直接用向量化状态输入的数据利用率。

阅读全文 »

换源

编辑 /etc/apt/sources.list 文件,删除原文件所有内容,用以下内容取代:

1
2
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib

编辑 /etc/apt/sources.list.d/raspi.list 文件,删除原文件所有内容,用以下内容取代:

1
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui

挂载 U 盘

参考:https://www.jianshu.com/p/0ea8e7b7d64d

1
2
3
$ sudo mkdir /mnt/usb
$ sudo mount -o uid=pi,gid=pi,umask=007 /dev/sda1 /mnt/usb
$ sudo umount /mnt/usb

安装 bt 下载器 transmission

参考:https://shumeipai.nxez.com/2013/09/08/raspberry-pi-bt-download-servers.html

1
2
3
sudo apt-get install transmission-daemon
sudo usermod -G pi debian-transmission
sudo nano /etc/transmission-daemon/settings.json

配置 settings.json

1
2
3
4
5
"download-dir": "/mnt/usb/downloads",
未完成的下载目录
"incomplete-dir": "/mnt/usb/downloads",
允许Web访问的白名单地址
"rpc-whitelist": "192.168.0.*",
1
2
sudo service transmission-daemon reload
sudo service transmission-daemon restart

安装 Adafruit_Python_GPIO

1
2
3
4
5
sudo apt-get update
sudo apt-get install build-essential python3-pip python3-dev python3-smbus git
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
cd Adafruit_Python_GPIO
sudo python3 setup.py install

开启 i2c

1
sudo raspi-config

安装 python3 gpio

1
sudo apt-get install python3-rpi.gpio

更新 pip

1
2
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install pip -U

  1. 首先根据官方教程 https://docs.docker.com/engine/install/ubuntu/ 确保服务器已经安装了 Docker,同时根据 https://docs.docker.com/compose/install/ 安装 Docker Compose。

  2. 拉取最新的 overleaf 服务器版本

    1
    $ docker pull sharelatex/sharelatex
  3. 在用户目录 ~ 下新建文件夹 ~/sharelatex/, ~/sharelatex/sharelatex_data/, ~/sharelatex/mongo_data/, ~/sharelatex/redis_data/

  4. 下载 docker-compose.yml 文件,并存在 ~/sharelatex/​ 文件夹中

  5. 根据需要修改 docker-compose.yml 文件,可以更改服务器映射的端口号 ports ,修改 sharelatex, mongo 和 redis 的volumes 到步骤3创建的文件夹中。注意 SHARELATEX_APP_NAME 中不能有特殊字符,否则可能会解析失败。

  6. 进入 ~sharelatex 启动 docker-compose.yml

    1
    $ docker-compose up
  7. 由于默认安装的是最小版本 TeXLive,如果要安装完整包,执行

    1
    $ docker exec sharelatex tlmgr install scheme-full

    或者也可以安装任意的单个包,只需要把 sheme-full 替换为包的名称即可

  8. 第一次启动镜像后,访问 /launchpad 页面设置管理员账号

1
2
3
import tensorflow as tf
import numpy as np
import time

比较动态图与静态图的执行速度

1
2
3
4
5
6
7
8
9
10
11
12
13
def test1(a, b):
a = tf.pow(a, 2)
b = tf.pow(b, 2)
a = a * b
return a, b


@tf.function
def test2(a, b):
a = tf.pow(a, 2)
b = tf.pow(b, 2)
a = a * b
return a, b
1
2
a = np.random.randn(1024, 1024).astype(np.float32)
b = np.random.randn(1024, 1024).astype(np.float32)
1
2
3
4
5
6
7
8
9
10
11
12
13
t = time.time()
for _ in range(100):
test1(a, b)
print('动态图', time.time() - t)

t = time.time()
test2(a, b)
print('静态图第一次构造', time.time() - t)

t = time.time()
for _ in range(100):
test2(a, b)
print('静态图', time.time() - t)
动态图 3.0627214908599854
静态图第一次构造 0.5964057445526123
静态图 0.6522562503814697
阅读全文 »