強化学習1 (環境構築編)

機械学習の中で一番興味があった強化学習ですが、難しいのと時間がかかるので敬遠していたのですが少しづつ記事に書いていこうかと思います。

今回は環境構築編になります。
前準備としてWindows10環境にAnaconda3-2019.07-Windows-x86_64.exeとgitをインストールしておきます。

それが終わったら強化学習用の実行環境を構築します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
conda create -n env3.6 python=3.6

conda activate env3.6
pip install gym==0.10.9
pip install jupyter==1.0.0
pip install numpy==1.15.4
pip install pandas==0.23.4
pip install scipy==1.1.0
pip install scikit-learn==0.20.0
pip install matplotlib==3.0.1
pip install tensorflow==1.12.0
pip install -e git+https://github.com/ntasfi/PyGame-Learning-Environment.git#egg=ple
pip install -e git+https://github.com/lusob/gym-ple.git#egg=gym-ple
pip install h5py==2.8.0
pip install pygame==1.9.4
pip install tqdm==4.28.1

全て問題なくインストールできたら下記のpyファイルを作成し実行します。

welcome.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import numpy as np
from tensorflow.python import keras as K
import gym
import gym_ple
import time

def welcome():

env = gym.make("Catcher-v0")
num_action = env.action_space.n
episode_count = 10

s = env.reset()
brain = K.Sequential()
brain.add(K.layers.Dense(num_action, input_shape=[np.prod(s.shape)], activation="softmax"))

def policy(s):
evaluation = brain.predict(np.array([s.flatten()]))
return np.argmax(evaluation)

for e in range(episode_count):
time.sleep(3)
s = env.reset()
done = False
while not done:
env.render()
a = policy(s)
n_state, reward, done, info = env.step(a)
s = n_state

if __name__ == "__main__":
welcome()

ウィンドウが現れて、次のようなボールキャッチゲームが動いたら環境構築は完了です。

強化学習用の実行環境を終了する場合は次のコマンドを実行します。

1
conda deactivate

強化学習(環境構築編)は以上になります。お疲れ様でした。