ddpg_pytorch

DDPGのコード例です。

念のため。

Set-ExecutionPolicy RemoteSigned -Scope Process -Force

しておきましょう。

うまく動かないかもしれません。

 

そしてメインスクリプトです。

 

 

pytorch_policy_gradient_method

方策勾配法にチャレンジしました。

オライリージャパンの ゼロから作るDeep Learning 4 強化学習編を参考にしながら作成しました。

本書ではニューラルネットワークをdezeroというオリジナルのフレームワークで記述されておりましたが、もっと汎用的に使えるように独自にpytorchへ変更しました。悩みながら2日かけてなんとか動いてくれました。

必要なモジュールをインポート

 

GPUを利用する

 

方策クラスの定義

 

 

エージェントクラスの定義

 

メインスクリプト

 

結果グラフ

pytorch_mlp

多層パーセプトロンで近似してみます

モジュール

 

 

 

 

#読み込んだパラメータがちゃんと型にあっているかどうか
model.load_state_dict(param_load)

 

pytorch_linear_regression

線形回帰です。

下準備

モジュール

 

線形にノイズを乗せたサンプルデータを作成する。

 

適当な一次関数を乗せる

あってないので学習していく

 

学習結果

以上

 

 

 

PySimpleGUI のメモ

PySimpleGUI のメモ

 

 

dezeroでニューラルネットワーク2 model, optimizer, MSEをフル活用

dezeroでニューラルネットワークを使った回帰をやってみる2

dezeroに搭載されている、model, optimizer, MSEをフル活用したバージョンです。

結果は前回と同様によく回帰できていますね。

損失の減り方がとても早いです。今回はAdamを使っているのでうまく昨日しているようです。悩んだらAdamは間違ってないようです。

スクリプトはこちらに貼っておきます。

 

dezeroでニューラルネットワークを使った回帰をやってみる

やってみよう。

まずは線形回帰

グラフはこんな感じで線形近似できている。

損失が徐々に減っていく。いい感じだ。

 

これをsinカーブでやってみると、直線しか表現できないのでぜんぜんだめ

 

そこでニューラルネットワークの出番。

活性化関数のお陰で表現が増える

sinカーブにノイズをのせたサンプルデータを作ってニューラルネットワークでやってみよう

損失の減り方をみると開始直後に急激に減って、なんと1万回くらいのところで再度損失が急激に減少した。理由は分からないが なんかすごい。

ではコードはこちら

次回予告

次はdezeroをフル活用でやってみよう

オプティマイザとかも予め用意されているらしい。

Dog_to_Headのpythonバージョン AndroidスマホのPyroid3

 

以前Kotlinで作ったDog_to_Headのpythonバージョンです。

AndroidスマホのPyroid3で動かすために作りました。GUIつくるのめんどくさかったのでCUIのまま使ってください。

 

 

強化学習:多腕バンディット問題 定常・非定常

強化学習の基礎、多腕バンディット問題

面白そうなのでやってみました。

ちなみに、本日のアイキャッチは画像生成AIであるStableDiffusionで「multi arms bandit problem by stable diffusion」 というワードから生成した一枚です。

モジュールインポート クラス作成

バンディットとエージェントで学習 定常問題

結果

モデルを200回繰り返した平均結果

バンディットとエージェントで学習 非定常問題

 

結果

モデルを200回繰り返した平均結果