概要
ニューラルネットワークについてで勉強したことを元に、ナンバーズ3の今回の当選データを入力したら、次回の当選データを予測するプログラムを作れないか?考えました。
もしできたらお金持ち!!(ウハウハ)を考えなかったと言ったら嘘になる。
どう作るか
ナンバーズ3の当選データを入力
百、十、一の位それぞれ、0~9になる確率を出力
入力X、出力yo~y9
百の位用、十の位用、一の位用それぞれ作成
重みの初期値は、乱数で作成
「このデータを入力したときに、この出力をして欲しい」というデータを教師データといいます。(t)
入力値Xの出力yが教師データtに近づくようにw(重みや)やb(バイパス)を調整します。
図のデータで言うと、695を入力したときは、出力が0(t0のみ1がたち、後は0)になって欲しい。
黄色でマークした部分が、各行の最大値になるよう乱数を設定したかったが、無理だったため、
複数個最大値になる乱数を使用し、各位のニューラルネットワークを作った。
結果
各桁ごとのニューラルネットワーク
重み部分は非表示にして、結果のみにられるようにした。
第6208回目の当選番号218を入力
第6209回目の当選番号予想が811とでた
ネットで結果を確認。「140」
⇒おもいっきりハズレ
感想
今回、ニューラルネットワークを勉強したいこともあり、せっかくだから楽しいデータを使いたい
とLOTO3のデータを使用した。
正解データが出力されなかった理由としては、以下が考えられる。
そもそも、ニューラルネットワークで導き出せるような法則性がない
重みやバイアス更新の計算式が間違っている。
後者は、一次関数で表現することが可能なデータ(X=1の時Y=2、X=2の時Y=4、X=3の時Y=6ではX=4の時は?のようなデータ)を使用すれば、確認可能だと思われるので、後日確認したい。
コメント