Mr.∅の数学と古美術

数学講師が語る数学と古美術、「数学語」・「数学的文法」で日本の数学教育を変えたい!

人工知能に数学をやらせてみた①

ソニーのNNCで実際にAIを作ったものを紹介します.
せっかくなので,数学をやらせてみましょう.

まず,適当に関数を作りました.

 

  f:id:phi_math:20191219235122j:plain


です(ホントにテキトーに作った関数なので,スルーしてください!).

関数の式はAIに教えず,xとyの対応だけを教えます(データを読み込ませる,ということ).
そこからAIに,xとyの対応法則を考えさせます(式を使って法則を推定します).
関数の式を当てさせるわけではなく,(yの値を教えていない)適当なxを代入したらどんなyの値になるかを推定させるのです.

では,AIを作りましょう!

まず,学習に使うデータを作ります.
そのために,関数にx=0.00,0.02,0.04,……,9.98,10.00を代入してyの値を求めます.

  f:id:phi_math:20191219235327j:plain

約500個あるので手計算は無理で,エクセルを使います.
そして,乱数などを使って,適当に並べ替えます.
  f:id:phi_math:20191219235356j:plain

これを,2つに分割して,300個ほどxyの対応からなる「学習用データ」と200個ほどの「テスト用データ」を作ります.
いずれもcsvファイルです.

ここでやっとNNCを立ち上げます.

  f:id:phi_math:20191219235440j:plain

推定の枠組みを適当に設定しました.

さらに,学習・テストの2つのデータを読み込ませます.
学習データを使って法則を見出させ,その法則の精度をテストデータで検証します.
それが全自動!何てスゴイんでしょう,ソニーさん.
  

  f:id:phi_math:20191219235558j:plain
誤差がどんどん小さくなる様子を可視化してくれます!

最適化の作業回数を1000回に設定していましたが,500回を過ぎた辺りでほぼ誤差が消えました.
(以降は,無意味な最適化をひたすら繰り返し.スマン,NNCよ)

これでほぼ完ぺきな推定をするAIが得られたハズ.
このAIに,適当なxを代入したときのyの値を推定させます・・・

 

次回へ続く。