[cocolog:93117909] のブレインストーミングの続き。 ……。…
jrf> [cocolog:93117909] のブレインストーミングの続き。 ……。 まず単純なモデルを考える。 車は単純に常に正面を向いているとして、一定の長さがあるとはするかな。入力は正方形の中の一点で、そこに向かって、-π から π の間を取るハンドルを切るその角度が出力でこれを学習する。しかし、そこにはランダムにギアが、前進(D)か後退(R)か決まっていて、当然それによりハンドルを切るべき向きは変わるが、ギアは直接は学習できないとする。 本来は車は慣性という状態を持つものだが、それは考えない。 M0: (前の状態 +) 入力 → R or D M1: R のときの (前の状態 +) 入力 → ハンドル M2: D のときの (前の状態 +) 入力 → ハンドル M1 のハンドルのほうが、学習すべき出力に近い場合、M2 は学習せず M1 のみ学習して、M0 に R をフィードバックする。 同様に、M2 のハンドルのほうが、学習すべき出力に近い場合、M1 は学習せず M2 のみ学習して、M0 に D をフィードバックする。 ギアはランダムなため、M0 は基本学習できない。これは改善すべき。 しかし、ギアが(いくぶんランダム性をくわえて)前の状態と入力から決まるようにして R か D を文脈依存にした場合、R か D かに関係なく入力から一気にハンドルを出力する(↓のM0X)が有効になるのではないか? ギアがあるとしてそれを介する場合とそうでない場合の比較が新たな問題になるか。 M0X: (前の状態 +) 入力 → ハンドル ……。 M0M1M2 のモデルだと勝ち負けが決まってそれを学習する。勝ち負けから学習するものは↓があった。 《ニューラルネットで負の学習: 競争的な学習の実験 その2 - JRF のソフトウェア Tips》 http://jrf.cocolog-nifty.com/software/2019/05/post-3c97df.html ただ、負の学習の場合は、一つの機械を学習するもので、上の M0M1M2 は2個以上の機械を学習するという違いがあり、負の学習をするべきではないと思われる。(試してみてもいいが…。) ただ、and と or の違いみたいなものとして認識するなら、今後意味を持ってくるかもしれない…。 ……。 ギアが2状態とわかっていない場合の「創造」に向けて。 4状態と仮定して M1,M2,M3,M4 を用意し、M0 は 00, 01, 10, 11 を出力するとする。 4つのマシンがすでにできている状況で、この4つのマシンを2つのマシンに「縮約」したい…ということになると思う。 2つのマシンに「余白」があるとき、その余白をお互いに埋めるみたいなことはできるか? 乱数の学習を利用すればよいのではないか? 乱数の入力があっても、ハンドルの出力が一定なら、そこは学習済み領域で、逆に、千々に出力が乱れるなら余白だ…と。 こうするためには、学習時に負けたとき、乱数に対して、ランダムなハンドル操作を学習するようにしておく必要があるかもしれない。そうでないと、勝ったときの学習の際、乱数に対しても一定の方向性が生まれているかもしれないから。