はじめに
文系の皆さんがAI人材になるためのノウハウを投稿していきます。今回はAIの作り方を学んでいきます。「そもそもAIはどんなものか」について知りたい方は「AI作成の流れ」を把握、「AI企画」をスムーズに進行させるためにをご参照ください。
予測系AIはどのように作られるのか
予測系AIは次のようなステップで作ることになります。それぞれ順に見ていきます。
企画
- AIプランニング
- 目的変数/説明変数の定義
データ作成
- 学習データ準備
- データ前処理
学習
- AIモデル構築
- AIモデル精度検証
予測
- AIモデル実行
- 運用·再学習
#3では学習について解説していきます。
「学習」の方法を理解する
AIモデル構築「プログラミング不要、マウス操作で作る」
学習データ準備とデータ前処理が終わったら、AIに「学習」させるステップに入ります。そのためにまずはAIモデルを作る方法の選択を行なうことになります。
予測系AIモデルを作る方法ですが、大きく分けると次の3つになります。今回はAIを作ることを前提にしているので「構築済みAIサービス」は除いています。
- 「GUIベースのAI構築環境」で作る
- 「コードベースのAI構築環境」で作る
- 「スクラッチでAI」を作る
また,文系の方を対象としているため、「スクラッチでAIを作る」ことはまず選択肢から外しておきます。また、「コードベースのAI構築環章で作るは自分で一からすべてスクラッチでプログラムするよりもAIモデル構築が楽にできるようになるのですが、プログラミングコードの知見が必要になりますので、文系AI人材が直接AIモデル構築を行なう前提では選択肢から外しておきたいと思います。
今回は、文系AI人材に優しい「GUIベースのAI構築環境」を用いて、AIモデル構築について学んで行きたいと思います。このプログラミングを必要としないGUI(マウス操作を中心としたグラフィカル・ユーザー・インターフェイス)で学習できるツールは、ウェブのサービスとして提供されプラウザで操作するタイプか、パソコンにインストールするアプリとして提供されています。
「GUIベースのAI構築環境」も複数種類のツールサービスが存在し、少しずつ異なる部分もありますが、おおよそ図表4-1の示している流れで作業となります。まず、用意した学習データをAI構築用のツールにアップロードします。ツールの仕様にもよるのですが、アップロードした学習データは、ツール内の処理用に「訓練データ」と「検証データ」に自動的に分割してくれることが多いです。多くの場合、訓練データと検証データは9対1もしくは8対2ほどの割合で分割されます。
訓練データ
AIが訓練に使うためのテータ
検証データ
訓練させたAIモデルの精度を測るためのデータ
データのアップロードが終わったら、次のようなステップでプラウザ上もしくはツール画面上でマウスや入力操作を行ないます。
- 構築モデル種類の選択(分類/回帰)
まず、用語解説でも紹介した「分類/回帰」のどちらの種類のモデルを作るのかを選択します。おさらい的に言うと、分類は、購入するか/しないかの二分類を当てさせたり、伸びる、変わらない、停滞するなどの三分類など、どこに該当するのかを当てさせるタイプのモデルです。また、回帰は「何個買う」「何人来る」「100万円売れる」といった数値を当てに行くモデルです。 - 目的変数の選択、説明変数の選択
その後、学習データとしてアップロード済みのデータの項目のどれを「目的変数」としてセットするかを選び、同じように「説明変数」として何を利用するかをセットします。「説明変数」のセットにおいては、どの説明変数を使うかの組み合わせをパターンとして試すと精度が変化することがあります。 - 学習させる回数·時間の設定
AIモデル構築においては、数度繰り返し学習させてより最適な状態に作ります。ただし、永遠と繰り返し学習させ続けても精度が伸び続けるわけではありません。学習終了のきっかけを定義してあげるために、何回学習を繰り返すか、もしくは何分間まで学習を続けるかを設定します。多くの場合、デフォルト値が設定されていますので、まずはそのままの値を使えばよいでしょう。 - 学習実行のボタンを押す
学習の条件が設定できたら、学習を実行するボタンを押します。ボタンを押すと学習が開始され、学習終了まで待つことになります。 - AIモデル精度検証
学習が終了したら、AIモデルがどれくらいの確率で正解を当てることができるようになったかを確認します。ツールにアップロードした学習データのうち、一部の割合のデータをツール上で自動的に取っておいてくれて、精度検証のため使ってくれることが多いです。 - AIモデルのエクスポート
AIモデル精度検証が終わり、利用に値するレベルに達したと判断した場合、AIモデルをエクスポートし、予測に使える状態にします。なお、構築したモデルを外部出力する場合もあれば、ッール内に格納した状態で呼び出すようにできる場合もありますので、各サービスッールの仕様を確認してください。
紹介してきたような手順で、AIモデル構築ができます。「スクラッチでAIを作る」場や「コードベースのAI構築環境」を使ってAIモデルを構築する際に行なう手作業でのチューニング向上や改善を図ること。たとえば、アルゴリズムの選択や各種パラメータの調整などは、「GUIベースのAI構築環境」が自動で最適化の処理を行なってくれることが多いです。
自分でカスタマイズしてより精度をあげるような追加の工夫はできませんが、おおよその最適化は専門知識が深くなくても行なってくれるのは大きなメリットといえるでしょう。特に精度が少しでも低くなると人命に関わるとか、大きな損失につながるといったシリアスなケースでのAIモデル利用でない場合は、AIモデル構築の難易度を下げてくれるツールサービスは重宝されるでしょう。
Alモデル検証「正解率が高くとも、偏りがあれば実用度が下がる」
予測系AIにおける精度検証では、「正解率」をまず見ます。たとえば、分類のためのAIモデルの場合、1000回予測させて900回正解させることができれば、正解率は、90 %になります。また、分類のモデルの場合、AUC もチ ェックしましょう。
正解率
全体としての予測と答えの一致率。
(900÷1000)×100=90%
AUC
AUC はArea Under the Curveの略で、どれくらいバランスよく予測を当てられているかを測る指標です。再現率や適合率とともに偏りチェックのために使いましょう。
AUC では、まず、True Positive Rate(再現率)と False Positive Rate(「陰性」のもののうち「陽性」と誤って予測した割合)を測ります。ここでいう「陽性」は「買う」、「陰性」は「買わない」などになります。そして、この2つの縦軸と横軸で曲線を描いて、その面積量がどれくらい広いのかを見ます。値は最大が1で、当てずっぽうでも0.5になります。全体の正解率だけでは判断できない偏りをチェックし、バランスよく当てられているかがわかります。
たとえば、ECサイトで購入するかどうかを予測するAIモデルの場合、学習のさせ方にょって、「購入しない人をとても上手に予測して、購入する人を当てることができない」という偏ったモデルになることがあります。全体としての正解率が高いとしても、このような偏りが極端にあった場合、そのAIモデルは実用が難しくなります。その偏りがないかどうかをチェックするのが、このAUC の値です。AUC はカーブを描く曲線の下の面積量で計測されます。正と負の両方のケースでバランスよく正解を多く出せていると、このカープの下の面積が大きくなります。一方で、いずれかに偏って正解を出しにくい場合は面積が小さくなるという仕組みです。
まとめ
学習では
- 「GUIベースのAI構築環境」を用いて、AIモデル構築
- 「正解率」や「AUC」を用いて、AIモデルの精度検証
を行いました。
この作業を終えて次のステップの「学習のAIモデルの精度検証」に進んでいきます。「予測系AI」「識別系AI」「会話系AI」「実行系AI」については、以下の記事でより詳しく解説していきます。