• オーキャン
  • ブログ

    blog

    ゆるふわAI自作 ~ざっくりと九九を計算するAIを作ってみた~

     

    人工知能学科の臼井です。

     

    皆さんは小学生の頃、九九を暗唱させられたのを覚えていますか?

    • 「しちは…ごじゅうろく(7×8=56)」
    • 「くろく…ごじゅうし(9×6=54)」

    などなど。。

     

    その後の算数や数学でかけ算をたくさん使うので、もう「数字の組み合わせ」として覚えちゃいましょう!という指導方法が採られています。

     

    今回は、皆さんに九九を答えてもらうのではなく、九九を答えるAIを作って動かしたいと思います!

     

    九九の計算をするプログラム

    そもそも…

     

    九九はただのかけ算なので、プログラムを書けば一瞬で答えが得られます。

    プログラム(Python)がこちら↓

    a*bと書いている部分が、実際に計算を行っている部分です(*はかけ算記号の×に相当します)

     

    「実質、1行で終わりやん」

    ~ fin ~

     

    ・・・ゆるふわと言っていますが、答えの精度を高めるため、AIの実装はガッチガチにやってみます!雰囲気だけ楽しんでみてください!

     

    九九を答えるAIを作る ①教師データ作り

    AIを作るには、とにかくデータが必要です。

    今回は、九九のもととなる「2つの数字」と、その「答え」の合計3つの数字の組み合わせがデータになります。

    この組み合わせをたくさん学習させて、教えていない未知の組み合わせでも答えを出せるようにします。

     

    教師データとして、九九の組み合わせをまとめました。

    ここから、最後のテストに使う問題だけを取り除いておきます。どれでも良いですが、今回は

    1×2

    4×3

    5×5

    7×9

     

    を取り除きました。これで、AIはテストの時に初めてこの問題に出会うことになります。

    きちんと学習ができていれば、正しく答えられるはずです。

     

    九九を答えるAIを作る ②AIに学習させる

    今回、かけ算の答えを得るため、回帰(Regression)アルゴリズムを利用します。

    このアルゴリズム自体は色々な種類があるので、今回は比較検討してから選ぶことにします。

     

    PyCaretを使って自動的にAIを作る

    自動的に教師データを解析し、AIの実装までやってくれるものはAutoMLと呼ばれます。これは色々なクラウドサービスやデータ解析ツールで広く使われています。

    Pythonのオープンソースライブラリとしては「PyCaret」という名前で提供されています。今回はこれを使って実装してみましょう。

    ~おおまかな流れ~

    1. 教師データを読み込む
    2. 予測モデルの設定
    3. 色々な回帰アルゴリズムで性能を比較
    4. 一番良い回帰アルゴリズムでAIを実装
    5. ハイパーパラメーター(AIを調整する数値データ)をチューニング

     

    1. 教師データを読み込む

    Pythonで教師データを読み込むには、次のコードを実行します。trainが学習用で、testがテスト用です。

     

    2.予測モデルの設定

    読み込んだデータのうち、どれを使って学習するか、何を予測したいかを設定します。

     

    3. 色々な回帰アルゴリズムで性能を比較

    PyCaretが対応している全てのアルゴリズムで実装し、その性能を評価します。それらを並べたところ、et(Extra Trees Regressor:エクストラツリー回帰)が最も良い結果になりました。

     

    4. 一番良い回帰アルゴリズムでAIを実装

    et(Extra Trees Regressor)を採用して、予測モデルを実装します。

     

    5. ハイパーパラメーター(AIを調整する数値データ)をチューニング

    更に高い性能を目指すべく、指定した評価指標が最も良くなるようにハイパーパラメーターを調整します。

     

    できたAIを使う

    モデルをファイナライズ(全ての学習用データを使って再学習)したら、AIは完成です。

    実際にテスト用データを読み込ませて、答えを予測させてみましょう。

     

    その結果は…

    回帰モデルなので、答えはざっくりとした数値になります。

    これを四捨五入して整数にしてみますと、、

    1×2 = 3(😨?)

    4×3 = 14(😨?)

    5×5 = 24(😨?)

    7×9 = 63(🥰)

    ざっくり、、というよりは大雑把(?)な答えが出てきてしまいました。。

     

    まとめ

    今回作ったAIは、色々なアルゴリズムを比較して最良のものを選んだのにも関わらず、4問中1問しか正解できませんでした。

    やはり、解析的(式変形したり演算して)に解けるものは、AIに向いていないようです。

     

    裏を返せば、解析的に解けない問題に対しては、AIはその威力を発揮します。例えば、お弁当の売上個数の予測などです。

     

    その日の気温や来客数といった数値データだけでなく、その日に何かイベントがあったか、平日か祝日かによっても売上が変動します。

    このようなデータを教師データとしてAIに学習させれば、未来の天気予報やイベント予定を与えて、売上個数を予測させることができます。

     

    AIを活かすには、AIの得意なフィールドで、環境(データをたくさん集める)を整えてあげることが大切だということですね🥰

     

    皆さんもこのようなAIを自作してみたいと思いませんか?✨

    大阪ハイテクの人工知能学科で一緒に勉強すればAIを使いこなせるようになり、

    データサイエンティスト、データアナリティストやAIプログラマーとして活躍できます!

    ぜひ、オープンキャンパスでお待ちしておりますね😉

    人工知能学科スペシャルイベント

    オープンキャンパス・資料請求はこちら

    ブログ カテゴリー