宣伝: 『「シミュレーション仏教」の試み』(JRF 著)。Amazon Kindle で販売中!
技術系電子本。Python による仏教社会シミュレーション( https://github.com/JRF-2018/simbd )の哲学的解説です。令和4年3月11日発売。

« 前のひとこと | トップページ | 次のひとこと »

cocolog:93117909

LSTM でなく状態を持った機械学習をブレスト。ハンドルの操作と入力シリーズだけしかないところから、ギアの状態(とハンドル操作)を学習できるだろうか? そこから進んでギアの機能(状態!)を創造するように学習できるだろうか? (JRF 6373)

JRF 2021年11月 9日 (火)

(前の機械学習に関するブレインストーミングは [cocolog:91382428]。ただし、その件は、その後の実験で失敗している。)

JRF2021/11/98576

……。

状態を持った機械学習。

人工知能・機械学習・AI…において、状態を持つということはどうなのかということに関してブレーンストーミングした。

機械学習において「状態」というと LSTM が思い浮かぶが、そこから離れて考え、もし、それが LSTM に収斂するならそれでも良いとする。

行列を使ったモデルに対して、状態の「転写体」が必要ではないかというアイデアが浮かんだ。

JRF2021/11/99371

行列モデル自体も状態を持ってはいて、徐々に良いモデルになっていく側面はある。しかし、状態を行き来することに意味はないのが普通である。状態は外にあるべきとなるが、その状態は行列モデルに不可分な部分を持つことはあるかもしれない。行列モデルに想定していた状態を小脳のように外に出す…とはどういうことか?…そうするとどうなるのだろう? そうやって行列モデルは状態を外に出しながら、本人は永遠(の基準)を目指すということではないか。

JRF2021/11/96290

状態の雲がまずあるとする。入力が同じで求める操作が違うなら、バックプロパゲーション(?)して状態を切り分けないといけない。しかし、ランダム性がある場合は、ランダムな数も入力とすればいいのだろうか?

状態の切り分けには過去にさかのぼる。入力シリーズでの違いを、求められる状態の違いから逆算する。

いや、そもそも入力シリーズと操作の違いだけから学習はできるのでは? LSTM などを使って。

何か良い例はないか?

JRF2021/11/93041

ハンドルの操作と入力シリーズだけしかないところから、シフトレバー(ギア)の状態(とハンドル操作)を学習できるだろうか? 学習データとしてギアの状態が欠落しているということ。

さらにそこから進んでギアの機能自体がわからない状態から、ギアの機能を創造するように学習できるだろうか?

このギアが「状態」として使えないか?

JRF2021/11/98347

……。

これって様相論理に似ている?

JRF2021/11/99012

……。

……。

追記。

ブレインストーミングの続き。もう少し詳細を詰めてみる。

JRF2021/11/173590

……。

まず単純なモデルを考える。

車は単純に常に正面を向いているとして、一定の長さがあるとはするかな。入力は正方形の中の一点で、そこに向かって、-π から π の間を取るハンドルを切るその角度が出力でこれを学習する。しかし、そこにはランダムにギアが、前進(D)か後退(R)か決まっていて、当然それによりハンドルを切るべき向きは変わるが、ギアは直接は学習できないとする。

本来は車は慣性という状態を持つものだが、それは考えない。

JRF2021/11/176130

M0: (前の状態 +) 入力 → R or D

M1: R のときの (前の状態 +) 入力 → ハンドル
M2: D のときの (前の状態 +) 入力 → ハンドル

M1 のハンドルのほうが、学習すべき出力に近い場合、M2 は学習せず M1 のみ学習して、M0 に R をフィードバックする。

JRF2021/11/176392

同様に、M2 のハンドルのほうが、学習すべき出力に近い場合、M1 は学習せず M2 のみ学習して、M0 に D をフィードバックする。

当然、R か D かは完全に逆に学習されることも出てくるがそれは気にしない。

JRF2021/11/175634

……。

ギアはランダムなため、M0 は基本学習できない。これは改善すべき。

しかし、ギアが(いくぶんランダム性をくわえて)前の状態と入力から決まるようにして R か D を文脈依存にした場合、R か D かに関係なく入力から一気にハンドルを出力する(↓のM0X)が有効になるのではないか? ギアがあるとしてそれを介する場合とそうでない場合の比較が新たな問題になるか。

M0X: (前の状態 +) 入力 → ハンドル

JRF2021/11/171928

……。

もしくは、M0 は見ず、出力は、M1 か M2 のどちらかがあっていればいいとする。でも R と D の割り当ては固定されてないと意味がないから、R を R に D を D に固定したものと、R を D に D を R に固定したものの二つを用意して、出力とギアの組についてどちらが正解が多いかで、まず全体スコアを比較し、その後、正解が多かったほうの、スコアを計算して評価…すれば良いのだろうか?

JRF2021/11/174309

……。

M0M1M2 のモデルだと勝ち負けが決まってそれを学習する。勝ち負けから学習するものは↓があった。

《ニューラルネットで負の学習: 競争的な学習の実験 その2 - JRF のソフトウェア Tips》
http://jrf.cocolog-nifty.com/software/2019/05/post-3c97df.html

JRF2021/11/174356

ただ、負の学習の場合は、一つの機械を学習するもので、上の M0M1M2 は2個以上の機械を学習するという違いがあり、負の学習をするべきではないと思われる。(試してみてもいいが…。)

ただ、今回のコレと負の学習は、or と and の違いみたいなものとして認識するなら、今後意味を持ってくるかもしれない…。

JRF2021/11/171599

……。

ギアが2状態とわかっていない場合の「創造」に向けて。

4状態と仮定して M1,M2,M3,M4 を用意し、M0 は 00, 01, 10, 11 を出力するとする。

4つのマシンがすでにできている状況で、この4つのマシンを2つのマシンに「縮約」したい…ということになると思う。

JRF2021/11/170368

2つのマシンに「余白」があるとき、「余白」以外があまり重ならないと判定でき、その「余白」をお互いに埋めるみたいなことはできるか?

乱数の学習を利用すればよいのではないか? 乱数の入力があっても、ハンドルの出力が一定なら、そこは学習済み領域で、逆に、千々に出力が乱れるなら余白だ…と。

こうするためには、学習時に負けたとき、乱数に対して、ランダムなハンドル操作を学習するようにしておく必要があるかもしれない。そうでないと、勝ったときの学習の際、乱数に対しても一定の方向性が生まれているかもしれないから。

JRF2021/11/175614

……。

追記。

「余白」について。

4つのマシンにそれぞれに影となる一つのマシンを足して、そのマシンでは、「余白」かそれ以外かを 0,1 で記憶する…として利用したほうがわかりやすいな。乱数を学習するアイデアのほうがカッコイイけど。

JRF2021/11/198931

« 前のひとこと | トップページ | 次のひとこと »