Pythonとは
基本的な使い方
・
IDLE
・
Jupyter Notebook
・
Markdown
・
コマンドプロンプトで実行
・
仮想環境の構築
・
仮想環境でIDLEを実行
ライブラリのインストール
・
pipの使い方
・
numpy , matplotlib等
・
graphviz
・
pytorch
・
Mecab
Pythonの関数:
一覧
共通関数
・
append , extend
・
class
・
copy
・
csv.reader
・
csv.writer
・
def , return
・
dict , defaultdict
・
enumerate
・
exit
・
for
・
if
・
import
・
in
・
input
・
lambda
・
len
・
list
・
min/max
・
OrderedDict
・
open/close
・
os
・
pickle
・
print
・
range
・
re.split
・
read/readline
・
round/floor/ceil
・
split
・
sys.argv
・
time
・
while
・
write
・
zip
・特殊メソッド
・
__name__
・
__iter__ , __next__
・
正規表現、メタ文字
・
データの型の種類
・
四則演算 (+ , - , * , /)
・
コメントアウト (# , ''')
numpy
・
append
・
arange
・
argmax/argmin
・
array
・
asfarray
・
astype , dtype
・
digitize
・
dot
・
hstack/vstack
・
linalg.solve
・
linspace
・
max,min
・
mean
・
meshgrid
・
mgrid
・
ndim
・
ndmin
・
pad
・
poly1d
・
polyfit
・
prod
・
random
・
reshape
・
savetxt/loadtxt
・
shape
・
std
・
transpose
・
where
・
zeros/zeros_like
scipy
・
expit
・
imread
・
interpolate
・
signal.square, sawtooth
matplotlib
・
contour
・
imshow
・
figure
・
pcolormesh
・
plot
・
quiver
・
scatter
scikit-learn
・
GaussianNB
・
KMeans
・
KNeighborsClassifier
・
SVC
・
tree
chaospy
keras
chainer
chainerrl
pandas
・
データ抽出
・
concat
・
DataFrame
・
read_excel
pytorch
・
BCELoss , MSELoss
・
Embedding
・
device
・
Sequential
・
Dataset, Dataloader
・
RNN, LSTM
OpenAI gym
・
Blackjack-v0
・
CartPole-v0
seaborn
・
pairplot
tkinter
・
frame, grid
・
画像表示
・
画像を切り取り表示
・
画像を保存
目的別
・
ステップ関数
・
矩形波, 三角波
・
1 of K 符号化法
・
線形補間
・
配列に番号をつける
・
ベクトル場を描く
・
線形回帰, 多項式回帰
■説明
chainerrlは強化学習の計算を容易に行う関数です。インストール方法はこちら 。
■関数
こちら の強化学習実装例で説明します。chainerrl部分は以下になります。
<基本関数>
def rand_act(): return np.random.choice([0,1]) # ランダムアクション関数を定義要
① q_func = chainerrl.action_value.DiscreteActionValue(h2)
② explorer = chainerrl.explorers.LinearDecayEpsilonGreedy(start_epsilon=1.0, end_epsilon=0.1,
decay_steps=n_episode, random_action_func=rand_act) # ε-greedy
③ ex_rep = chainerrl.replay_buffer.ReplayBuffer(capacity=10 ** 6) # 経験再生
④ phi = lambda x: x.astype(np.float32, copy=False) # 入力型定義
⑤ agent = chainerrl.agents.DQN(q_func, opt, replay_buf, gamma, explorer,replay_start_size=500,
update_interval=1, target_update_interval=100, phi=phi)
⑥ action = agent.act_and_train(state, reward) # アクション決定
⑦ agent.stop_episode_and_train(state, reward, done) # DQN重み更新
動作の理解としては、強化学習の行動を決める⑥が最終アウトプット、 ⑥を実現するのが①、①を実現するのが⑤、⑤へのINPUTが②③④となります。
⑦はDQN内のニューラルネットワークに使われる重みを更新します。
<load関数について>
シミュレーションに時間がかかる場合、学習の途中経過を保存して別の機会に途中から学習を再開するには、load関数を使用します。
agent.load('agent') # 学習開始前に一度定義。'agent'は学習値が入ったフォルダ名
ただしこの関数は、学習値は保存しますがε-greedy の値がリセットされてしまいますので、少し工夫が必要です。
chainerrlのε-greedyの処理が不明なのですが、以下部分のstart_epsilon=1.0という部分を修正します。
explorer = chainerrl.explorers.LinearDecayEpsilonGreedy(start_epsilon=1.0 , end_epsilon=0.1,\
decay_steps=n_episode, random_action_func=rand_act)
ε-greedy法の関数を以下の指数関数 と仮定します。
この時、係数aが解らないので、係数aを求める必要があります。以下のとおり。
従って途中から学習を開始する場合は、上記xに一時停止した時のエピソード数を入れて算出されたyをstart_epsilonに入れれば良いです。
(ただしこれは正確ではありません。そこから新たな指数関数としての減衰が始まるので、初期の減衰量が多いです)
サブチャンネルあります。⇒ 何かのお役に立てればと
Pythonとは
基本的な使い方
・
IDLE
・
Jupyter Notebook
・
Markdown
・
コマンドプロンプトで実行
・
仮想環境の構築
・
仮想環境でIDLEを実行
ライブラリのインストール
・
pipの使い方
・
numpy , matplotlib等
・
graphviz
・
pytorch
・
Mecab
Pythonの関数:
一覧
共通関数
・
append , extend
・
class
・
copy
・
csv.reader
・
csv.writer
・
def , return
・
dict , defaultdict
・
enumerate
・
exit
・
for
・
if
・
import
・
in
・
input
・
lambda
・
len
・
list
・
min/max
・
OrderedDict
・
open/close
・
os
・
pickle
・
print
・
range
・
re.split
・
read/readline
・
round/floor/ceil
・
split
・
sys.argv
・
time
・
while
・
write
・
zip
・特殊メソッド
・
__name__
・
__iter__ , __next__
・
正規表現、メタ文字
・
データの型の種類
・
四則演算 (+ , - , * , /)
・
コメントアウト (# , ''')
numpy
・
append
・
arange
・
argmax/argmin
・
array
・
asfarray
・
astype , dtype
・
digitize
・
dot
・
hstack/vstack
・
linalg.solve
・
linspace
・
max,min
・
mean
・
meshgrid
・
mgrid
・
ndim
・
ndmin
・
pad
・
poly1d
・
polyfit
・
prod
・
random
・
reshape
・
savetxt/loadtxt
・
shape
・
std
・
transpose
・
where
・
zeros/zeros_like
scipy
・
expit
・
imread
・
interpolate
・
signal.square, sawtooth
matplotlib
・
contour
・
imshow
・
figure
・
pcolormesh
・
plot
・
quiver
・
scatter
scikit-learn
・
GaussianNB
・
KMeans
・
KNeighborsClassifier
・
SVC
・
tree
chaospy
keras
chainer
chainerrl
pandas
・
データ抽出
・
concat
・
DataFrame
・
read_excel
pytorch
・
BCELoss , MSELoss
・
Embedding
・
device
・
Sequential
・
Dataset, Dataloader
・
RNN, LSTM
OpenAI gym
・
Blackjack-v0
・
CartPole-v0
seaborn
・
pairplot
tkinter
・
frame, grid
・
画像表示
・
画像を切り取り表示
・
画像を保存
目的別
・
ステップ関数
・
矩形波, 三角波
・
1 of K 符号化法
・
線形補間
・
配列に番号をつける
・
ベクトル場を描く
・
線形回帰, 多項式回帰