前提・実現したいこと
Deep Q-Networkを使った迷路探索プログラムにおいて行動選択の方法をε-greedy法からボルツマン選択法に変更したいのですが、プログラム知識がなく実装できずにいます。
私事の期限が近いため、教えてくださると幸いです。
該当のソースコード
python
1 def get_action(self, state): 2 sta = [state] 3 sta = xp.asarray(sta, dtype=np.float32) 4 s = Variable(sta) 5 Q = self.model(s) 6 Q = Q.data[0] 7 print Q 8 #εの確率でランダムな行動をする(ランダムの時の行動価値は0) 9 if np.random.rand() < self.epsilon: 10 #18は行動の最大数(3*3*2) 11 return np.random.randint(0, 3), 0 12 #行動価値が一番高い行動とその値を返す 13 else: 14 #stateの配列を学習時に合わせる 15 #sta = [state] 16 #sta = xp.asarray(sta, dtype=np.float32) 17 #s = Variable(sta) 18 #Q = self.model(s) 19 #Q = Q.data[0] 20 a = np.argmax(Q) 21 return xp.asarray(a, dtype=np.int8), max(Q) 22 #行動選択のεの値更新(下がるだけ) 23 def reduce_epsilon(self): 24 #最小値より多くて設定時間を超えていれば 25 if self.epsilon > self.epsilon_min and self.exploration < self.goal: 26 self.epsilon -= self.epsilon_decay
https://github.com/gallardo22/DQN-chainer
補足情報(FW/ツールのバージョンなど)
processing 3.4
python anaconda3-4.4.0
numpy 1.15.1
chainer 5.0.0(ニューラルネットワーク動かすためのもの)
pyautogui 0.9.38(キーボード操作、ディスプレイ内の画像検索するため)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/03/01 08:12
2019/03/01 11:32
退会済みユーザー
2019/03/08 07:37 編集
2019/03/09 03:47
退会済みユーザー
2019/03/09 15:35