【AutoML特集】サービス系AutoML(Google Cloud AutoML)とPyCaretを比較してみた

【AutoML特集】サービス系AutoML(Google Cloud AutoML)とPyCaretを比較してみた

はじめに
 ここ数年でAI(人工知能)や機械学習という言葉が急速に社会に定着しました。その裏にはディープラーニング(深層学習)の発達やICの劇的な改良などにより、AIが実用に耐えうるレベルに達したことがあります。現在ではAIをどのように利用するかで、今後の立ち位置がおおきく変わるといわれるところまでその重要性が意識されるようになりました。そのため政府や企業の間ではしきりにAIの導入、また活用できる人材の育成が叫ばれています。しかし、その一方で実際にAIを使ったことがあるという方は少ないのではないでしょうか。AIを活用するというと、高度な専門知識を有したエンジニアにしかできないようなイメージを持たれている方も多いとおもいます。今回、説明するのはそうしたイメージを覆すAutoML(Auto Machine Learning:自動機械学習)についてです。(なお、AIというと自動運転など人間の代わりに知性をもった行動を行うというイメージが強いですが、実際に行われているのは「分類」「回帰」「予測」などに分類される問題を、コンピュータが与えられた学習データに基づいて解くという行為です。知性の部分が強調されるのは、解法を人間が設定しなくても、与えられたデータからAI(機械)が自分で解法を構築するためです。)
 AutoMLの発展、普及は今後多くの人々のAIとの向き合い方を変える可能性があるともいえます。以下では、具体的にAutoMLとはなにか、実際にはどのようなものが現在(2020年8月)にはあるのかを紹介していきます。
 

AutoML(Auto Machine Learning:自動機械学習)とはなにか

 AutoMLは、誰でも平等にAIを利用できる「AIの民主化」を目指しているGoogleが牽引している分野です。専門知識を必要とする作業を自動化していき、誰でも利用できるような形に落とし込むことが最終的な目標です。
 より具体的にはAutoMLとは、機械学習のいくつかのステップ(特徴量エンジニアリング、モデルの選定、ハイパーパラメータの調整など)を自動化し、高度な専門知識なしに誰でも簡単に利用できるサービスやプラットフォームのことを指します。
 サービスとしてのAutoMLで有名なものは、Googleが提供するCloud AutoMLや、Microsoftが提供するAzure Machine Learningなどです。 これらは優れたユーザーインターフェースを持ち、プログラミングについて全く知識がなくてもデータさえあれば手順に沿って作業するだけで誰でも簡単に利用することができます。またAIの世界を牽引する企業の最先端AIモデルを利用することができるため、(たいていは)優れた結果を得ることができます。ただし、利用に応じて各社に料金を支払う必要が当然あります。(例えばGoogleのAutoMLであれば、学習時間に対して料金が発生し、一時間程度の学習で約1000円ほどかかります。)
 それに対してオープンプラットフォームとしてのAutoMLとは、機械学習をプログラミングする際に必要な作業の多くを自動化してくれるものです。有名なものとして、auto-sklearnやAutoKeras、そして最近発表され話題になっているPycaretがあります。これらはプログラミングをする人を補助するためのものですので、当然ある程度のプログラミング技能や知識を必要とします。(ただし、AutoMLを利用する場合に必要な技能や知識は普通に機械学習をプログラミングしようとする場合よりは大幅に簡略化することができます。)そのため、利用には一定の障壁があるといえますが、利用料金を支払う必要がなく、また状況に応じて柔軟な運用ができるという利点があります。
 サービスとしてのAutoMLは費用はかかりますが、始めるのも運用するのも簡単でありながら、比較的優れた結果を得ることができます。一方で、プラットフォームとしてのAutoMLは、プログラミングや機械学習に関する学習コストが必要ですが、ある程度継続的に機械学習を利用していこうと考えている場合、享受できるメリットは大きいといえます。

 以下では、実際にGoogle「Cloud AutoML」と最近発表されて話題になっている「Pycaret」について具体的に紹介します。

Google「Cloud AutoML」について

 Googleは「知の民主化」を標榜していますが、その一環として「AI(機械学習)の民主化」も掲げています。そのなかで提供されているサービスが「Cloud AutoML」です。視覚認識(人間の判別など)、言語分析(文章のポジティブ・ネガティブ判定など)、構造化データからの予測(価格の推定)などを可能とするAutoMLを提供しています。(なお、その一方でGoogleは機械学習の利用を補助する目的でオープンソフトフェアとしてTensorFlowを運用しています。こちらは一般にイメージされるようにある程度の知識と技能を前提として利用することができるものです。)
 

 今回は構造化データを扱った場合のCloud AutoMLについて具体的にみてみたいとおもいます。(なお、GoogleでAutoMLを利用するには、GCP(Google Cloud Platform)というクラウドサービスに登録する必要があります。)
 実際に利用する際の仕組みのイメージは以下のようになっています。

 Cloud AutoMLを利用する手順は、①GCP上に利用するデータセットを作成・投入し、②モデルを選択・学習させ、③学習済みモデルをAPI化して実際に利用する、という流れになります。実際に操作したとしても5分程度で設定が完了し、あとは学習が終了するのを待てば、簡単に利用することができます。 
 簡単にAIを作成でき、結果を利用できるのが、サービス系AutoMLの特徴です。こうして出来たモデルに対して、新しいデータを与えると予測結果がでてきます。

「PyCaret」について

 PyCaret(https://pycaret.org/)は、主に機械学習の開発などで使われる言語「Python」のオープンソースの低コード機械学習ライブラリです。他のオープンソースの機械学習ライブラリと比較しても、PyCaretは数行のコードのみで複雑な機械学習タスクを実行することができることを特徴にしています。PyCaretの設計とシンプルさは、「市民データサイエンティスト」という新たな役割がうまれることを想定してもたらされたものです。(「市民データサイエンティスト」とは、シンプルながらある程度に洗練された分析タスクを実行できる高度な知識を擁さない普通の人々のことを指しています。)基礎的なプログラミング知識をもち、必要な環境構築をする最低限の能力さえあればだれでもすぐに利用することができます。(以下では、前述のBostonデータセットを使い価格を予測モデルを作成しています。PyCaretは主要なデータセットに関しては簡単に取得することができる関数を用意しているので、より操作を簡単にすることができます。)

 実際に先程と同じような価格予想モデルを単純に実装するだけであれば必要なコードの量は上記の6行だけです。これだけで以下のような精度をもつ予測モデルを作成することができます。(なお、以下の精度確認が簡単にできる表もたった一行のコードで出力することができます。各評価値をみることができ、また一覧では「medv」(実際の値)と「Label」(モデルが予想した値)をみることもできます。)

 もちろん、これらのモデルが現実の未知データに対してどれだけよいモデルであるかなどは検証をしていく必要はありますが、それでも従来まではこうしたモデルをたてることもかなりの労力を必要としていたことを考えると大きな前進といえるかとおもいます。

まとめ

 AutoMLは今後、サービスとしてもオープンプラットフォームとしてもより拡充していく方向にあることは間違いないといえます。現在の段階でも積極的に導入したとしても大きなコストを払う必要はないレベルまで参入障壁は下がっているといえます。今後もAIの参入障壁は大きく下がり、PyCaretが想定するように市民がみなデータサイエンティストという状況はそこまで遠くないでしょう。そのため、今後必要なことはAIやプログラミングの技能や知識などよりも、これらから得られた情報をどのように理解し、反映していくかの力ではないかともいわれています。ただ、一方でAIなどの知識はAutoML以降の変化を読むためには必要な知識ともいえます。AutoMLが普及した先を読むためにも、これらの分野に関しての知識は不可欠だといえるでしょう。