#1章:はじめに
記事の趣旨
ここ2〜3年の間に急激に一般化し、各種ハイバースケーラのクラウドプラットフォームにも取り込まれている技術に「Auto ML」があります。私も、DX関連のセッションなどで、「Auto ML」について説明させて頂く機会が多いため、その内容をまとめさせて頂きました。
#2章:「Auto ML」概要
##「Auto ML」とは
「Auto ML」とは、従来はデータ・サイエンティストが、統計処理ソフトウエアなどを用いて実施していた機械学習によるデータ予測を全自動で実施する技術です。まずは、これを理解するために、ビジネスにおける予測の変遷について説明します。ここでの予測とは、与信の審査(年齢、収入、勤続年数などからお金を貸してよいかどうかを決める)などをイメージしていただけるとわかり安いと思います。
(Step1)もっとも原始的な予測の方法は、人が頭をつかい、「勘や経験」、「過去の実績」に基づいて予測する方法です。原始的な方法といっても、いまでも多くのビジネスによる予測はこの方法がとられています。
(Step2)次のステップでは、人が数学・統計学の知識を用いて過去の実績データをもとに、予測モデルを作成する方法です。これを実施する人がデータサイエンティストであり、予測モデルのビジネス活用が機械学習活用やAI活用ということになります。この専門性を持っている人は限られているため、人材の争奪戦が起きており、新聞等でも人材難や給与の高騰の記事が出ていますよね。
(Step3)次の「Auto ML」であり、データサイエンティストが実施していた作業の多くの部分を自動化します。あくまでも、予測を自動化するだけであって、データサイエンスがやっている作業以上のことができるようになるわけではありません。
##予測の種類
データサイエンスを用いた予測には様々なものがありますが、2020年8月現在で「Auto ML」の対象となっているものは、「分類」と「回帰」です。「分類」とは、どのカテゴリに属しているかの予測です。(与信で例えると、お金を貸して良いか否かの判断などがあります。)「回帰」とは、数値の予測です。(与信の例で例えると、いくらまでお金を貸してよいかの提示などがあります。)「Auto ML」では、ユースケースをどちらかの命題に帰着させる必要があります。
※一部、ソフトウェアの最新の機能では時系列分析も一部対象となっていますが、今回は説明の対象外としました。
##予測のプロセス
予測のプロセスとしては、予測の教師データとなる過去のデータを1枚の2次元データとして準備します。(複数データソースがある場合は、前準備として、1つにする必要があります。)そして、そのデータに対して、1つの予測したい項目(専門的な言い方では「目的変数」)とその値の変化に影響を与えていそうな項目(専門的な言い方では「目的変数」)を設定し、処理の実行を行います。(あとは、モデルが出来るのを待つだけです。)
処理が終わるとモデルが出来上がります。また、多くのソフトウェアでは、予測に対して、どの目的変数の影響高いか、また、作成されたモデルの精度はどのくらいなのかを教えてくれます。
##モデルの自動作成の仕組み
モデル作成に際しては、ハイパワーのGPUマシンの性能を駆使して、複数の予測モデルを作成・評価し、1番優秀なモデルを選出します。(下手な鉄砲も数打ちゃ当たる方式です。)
#3章:プレイヤー
実施にやってみたいと思った際に、どのようなプレイヤーがいるのかをざっと説明します。大きく分けて「ソフトウェア」と「クラウドプラットフォームでのSaaSサービス」に分類できると個人的には考えております。
##ソフトウエア
「Auto ML」のソフトウェアをライセンス販売しているプレイヤーです。最も有名なのは、「DataRobot」です。3〜4年前から既に日本市場に進出しています。アメリカでそれと双璧をなすのが「H2O社のDriverless AI」です。こちらは進出が遅れたため、日本での知名度は低めです。そのほか、NECからカーブアウトした「dotData」、Sonyが作る「PredictionOne」等があります。私の知る範囲では、三桁万円後半以上ののライセンス料が年単位で必要になります。
クラウドプラットフォームでのSaaS
ここ1,2年でクラウドプラットフォームでの提供も開始されました。AWSの「SageMaker Autopilot」やGCPの「AutoML Tables」、IBMの「Watson Stuio Auto AI」などがあります。
違い(簡単に説明)
機械学習のアルゴリズムはオープンソースなので、「ソフトウェア」も「SaaS」も実施しているプロセスは変わりません。データサイエンティストがやっている細かな作業をどこまで手をかけて実施してくれるかに差がでます。SaaSは現状のレベル感だと、機械学習の初歩的な作業を自動でやってくれる程度のイメージです。(Pythonがかけて、ある程度の機械学習の知識がある人であれば同等のことができる。)
精度はという観点においては、命題となる問いの難易度により結果は違います。簡単な問いならば、「ソフトウェア」も「SaaS」も同じような精度になると思いますし、難しくなれば「ソフトウェア」が勝るでしょう。また、結果の評価の細かさなども、「ソフトウェア」の方が勝ります。
4章:やってみよう
なんとなくのイメージはついたと思うので、あとはやってみるが重要だと思います。
ここに関しては多くの方がチュートリアルを作成されているので参考にしてみてください。