AIシステム開発 溢れるほどの才能はどこから来たのか・・(^_^;)
自分の溢れるほどの才能はどこから来たのか、
ふと思う事があり、自分の原点を考えてみました。
・・・?? (^_^;)
※よく聞かれることもあり、時間が空いたので少しまとめてみました。
今回はやや長文となりますが、ご了承のほど・・・
人生最初のきっかけは、
小学5年生の時、たまたま見たスポーツ新聞か何かの広告で
SHARPのポケコン(PC-1251+CE125)に惹かれ
親に頼んで買ってもらったのがスタートでした。
両親は飲食業をしていて共働きという点と、
私は一人息子で家と店が別々という事もあり
物心ついた時から、一人自由な時間が思う存分にある環境でした。
「マイコンBASICマガジン」という雑誌でプログラミングを独学で学び
3カ月ほどで簡単なゲームも作れるようになりました。
更に3カ月後になるとポケコンでは物足らず、
今度はNEC PC8801(8bitCPU !?)というパソコンを買ってもらい
(ちょっと甘え過ぎですが・・) (^_^;)
また独学でプログラム関連の勉強をしました。
そして中学に入ると、
NEC PC9801(16bitCPU !?)を買ってもらい
(私は甘え過ぎのバカ息子です・・) (^_^;)
今度はコンピュータと戦う対戦型オセロゲームを作るようになりました。
オセロは将棋やチェスと違い、相手の駒を取ったり出来ないので
比較的簡単に作れると考えていたのですが
やはりそう甘くはなかったです。。
私の作った人工知能(もどき?)のシステムと、
友人二人にオセロゲームの対戦をさせるのですが
やはり人間相手になかなか勝てるロジックも作れず
1カ月経過しても全く勝てる気配もなく
人生初のプチ挫折!?を経験しました。
そこで気づいたのが、
まず私自身がオセロで強くなければならないのではと・・
(当たり前ですが・・) (^_^;)
そこで、友人に協力をしてもらい
私、A君、 B君それぞれ何十回とオセロの対戦をして、
手書きでデータを取るようにしました。
何十回と対戦していくと
誰か一人が圧倒的に強いというのが無くなることに気づきます。
(恐らく、それぞれが手を読み
対戦の中で成長しているからだと考えます)
それでも、例えば10戦すれば
私はA君には勝ち越せるがB君には負け越す、
でもB君はA君に負け越すというパターンがあることに気づきます。
(得意、不得意なパターンが存在するということでしょうか)
ということは、現時点で考えれば
私はA君には勝てるシステムが作れるということになります。
そして、B君に勝つシステムを作るには、
手っ取り早く考えれば、
A君がB君と戦う際の戦略を研究し
システム化すれば良いということになります。
今までは、万能的に強いシステムを作れば良いと考えていたのですが、
オセロはあくまで相手は一人で、
まず目の前にいる相手に勝てば良いということに気づきました。
つまり、戦局の中で
次に自分が5カ所(5パターン)駒を置ける選択肢があるとして
セオリーではここに置くのがベストな選択でありA君には効くとしても、
もしかしたらB君には別の所へ駒を置いた方が効果的なケースがあるという事です。
(つまり、B君にはベストな手を打つより
一般的にはセカンドベストとされる手を打つ方が効果的なケースもある)
そこで私は、今まで単一のオセロシステムを作っていたのを止め、
A君用、B君用のシステムを分けて作るようにしました。
まず自分が考えるロジックをシステム化し、
A君用、B君用で、それぞれ対戦後にその都度データを自動でバックアップし
過去に負けたゲームと同じ局面(パターン)が発生した場合、
同じ手を打たないように開発しました。
(要するに、同じミスはしない)
これで、対戦すればするほど、システムが自動で強くなるのではないかと考えました。
面白いことに、全く同じ手を打っていて同じ場面になっても、
A君用とB君用のシステムでは、コンピュータは違う判断をします。
(当然ですが・・) (^_^;)
当時は、HD(ハードディスク)もなく
5インチFD(正確には5.25インチで大きくてペラペラのやつ)でしたので、
対戦中でも、何度かFDを替える必要がありました。
その後も試行錯誤して、
結局A君、B君それぞれに
ほぼ70%の勝率で勝てるシステムに仕上がりました。
(当時の私の実力では、勝率100%はムリでした・・)
L(>0<)」
並みの中学生では、ここで満足かもしれませんが、
私は満足しません。。
( ̄ー ̄)
今度は、A君、B君用のシステムを分けるのではなく、
対戦の中で、相手がA君なのかB君なのか
システムが自動で判断するロジックを考えました。
要するに、戦いながら相手がA君なのかB君なのか自動で判断し
相手に応じた戦略で効果的に攻める。。
何か、AIですね・・
現在ならまだしも、
30年前にこんなシステムを既に作り上げていた「中学生」は
当時あまりいないのでは、・・ いや少しはいたかもしれませんが
まぁ優秀な方と考えます。
(ちょっと自慢入っています・・) (^_^;)
この時の経験が、
今でも活かされていると考えています。
マーケットも、いろんな相手がいて
例えば、寄り付きは前夜NYの影響で強く推移していたとして
10時前には為替が仲値に向けて円高へ動き、日経に対して下への影響(意識)が出ても
今度は上海オープンで一揆に上昇して日経が買い戻されたりする場面もあり
(当然、影響を受けないケースもあり)
刻一刻とマーケットを動かす要因(相手)が変化します。
マーケットを100%の確率で判断するのは不可能ですが
エッジのあるロジックを考案しシステム化する。
幼き自分の対戦型オセロの開発経験が
今でも活かされていると考えています。。
一例を挙げれば、
私の開発したシステムの一つですが
日経225で1200エントリー以上発生して
いまだに実際の最大ドローダウンが-105円というのがあります。
※シュミレーションではなく、実際の約定での結果です。
-105円なんて、30円のロスカット4回連続発生で軽く超えてしまいます。
日経225で、30円のロスカット設定(1エントリー)でもむしろ少なく
私も、他人から最大ドローダウン105円(1200エントリー以上の実績)と聞けば
まず信じがたい数字です。
※シュミレーションでは作れる人はいても、
実践ではまずムリでしょうね。
でも、私は出来てしまうのですね。
また自慢してしまいました。。(^_^;)
長く述べてしまい、
何が言いたいのか分かりにくいかもしれませんが、
私の原点?が分かる方にはわかって頂けたと考えます。
(^_^)
P.S.
結論として、今の私の才能は「親」のおかげという事ですね。。
感謝しています。
m(__)m