見出し画像

AutoML: AIのポテンシャルを最大化する、自動機械学習を概観

本記事は、AutoML に関する記事です。


注目を集めるAutoML

昨今、機械学習ベースのAIは様々な産業でその有用性が確認され、活用されています。機械学習を用いたアプリケーションやアナリティクスが普及した結果、モデル構築をいかに効率的、効果的に行うかという課題も認識されるようになり、その解決策の一つとして、自動機械学習(AutoML)に注目が集まっています。

自動機械学習(AutoML)とは、機械学習モデルの設計や構築を自動化することを指します。機械学習のプロセスには、「問題・仮説の定義」「データ収集」「データ処理」「探索的データ解析」「特徴量の設計」「機械学習モデルの構築」「可視化・コミュニケーション」「デプロイ」「モデルの運用・保守」というステップが存在します。それぞれの内容に関しては、先日、データサイエンスプロジェクトの進め方で示しました。


これらのステップのうち、問題定義と一部のデータ収集は人間が行う必要がありますが、データ処理からモデル構築に至る一連のステップは自動化が可能です。AutoMLはこの自動化を実現します。さらにはAutoMLのソフトウェア・サービスによってはデータ収集の一部や、さらに以降の部分である、可視化・コミュニケーションや、デプロイ、運用・保守の部分の実施も支援します。

画像1

図)データサイエンスプロジェクトのステップ


機械学習モデルの開発は従前リソース集約型でした。ドメインに関する広範な知識と多数のモデルを生成して比較するための大量の時間を必要としていました。ですが、AutoMLは、特にこの人手でやると煩雑な作業にならざるをえない、特徴量の設計や機械学習モデル生成、比較作業において、アルゴリズムの選択、モデルのハイパーパラメータのチューニング、反復的なモデリング、モデルの評価を実行してくれるところが有用なポイントです。

AutoML は利用のハードルが低く、分類、認識、回帰、時系列予測等、従来の機械学習モデルの構築にかかる時間を短縮できます。アルゴリズムの選択や最適化においても、ランダム検索、グリッド検索、遺伝学的アルゴリズム、ベイジアン等様々な手法が使われており、効率的に行います。ゆえに、AIアプリケーションの精度向上を追求し、増産を推し進めることとなり、AIがもつポテンシャルを最大限ビジネスに活かすことができるようになります。データ活用における非常に強力な武器といえるでしょう。


データサイエンティスト人材が乏しい組織にAutoMLは有効

機械学習のステップである、特徴量設計やモデル構築は複雑かつ専門知識がいるステップであり、それがゆえに、データサイエンティストが不足している組織では機械学習の活用を半ばあきらめているところも多いかもしれません。しかし、AutoML によってこれらを自動化することで、人材が不足しているところでも機械学習の恩恵を受けることができるようになります。これはAutoMLが組織にもたらす価値の一つです。

とはいえ、後述しますが、データサイエンティストが一人としておらず、組織にそのような素養を持っている人が誰にもいないようなケースにおいても、AutoMLの自動化によってすべてが解決できるかというとそういうわけではありません。組織としては、AutoMLは、データサイエンティスト人材の育成やリスキルと組み合わせて使うべきでしょう。リスキルに関しては以下の記事も参照ください。


AutoMLはデータサイエンティスト等の人の仕事を完全に置き換えるか

前述の議論と重複するところはありますが、AutoMLは、機械学習モデルの設計や構築の多くの部分において自動化を行ってくれます。ですが、だからといってデータサイエンティストが全く不要になるというわけではありません。

機械学習ベースのAIに関するスキルの根幹は、「過学習」に関する深い理解があるかどうかです。これはAutoMLに任せられるようになった時代でも同じです。


また、不均衡データの改善やそもそものデータ不足に対する対処である、データオーグメンテーションや、少ないデータからモデルを作り上げていくような半教師学習のような技巧的なやり方に関する知識も、データサイエンティストの専門性が活かされ、かつ、AutoMLの効果を更に高めることができるポイントです。


そして、ビジネスの背景や、個々の情報がどのような意味を持つかの理解は、変わらず人間が行う必要があります。

逆に言うと、そのようなフォローが必要となる観点をもたずに、安易に、AutoML をとにかく適用しようと、データの理解やメトリックスに関する定義を間違えてモデルを構築した場合、問題の解決にはいたりません。従前のデータサイエンスのアプローチと同じく、人間が問題解決プロセスに適切に関わることで、AutoMLも価値を発揮していきます。ここにおいては、人間参加型のアプローチも参考になるでしょう。


AutoMLとコストについて

AutoMLはプロセスを自動化するため、省人化につながります。それゆえに、コスト削減に関する期待を持ちたいところですが、AutoML適用が必ずしもコスト削減につながるわけではありません。

例えば、AutoML はモデル構築を自動的に行なってくれますが、その最適なモデルをサーチするためには膨大な計算能力が必要になります。いくつかのAutoMLサービスはそのサーチを効率化するために、インスタンスを並列で増やして探索にあたらせるようにしますが、クラウドリソースを多く使うため、そこにはコストがかかります。モデルの精度と効率性の追求が、コストとトレードオフになるということは大切な認識です。

もう一つ、ライセンスの形態にも注意が必要です。ユーザーライセンスであれば、AutoMLサービスのユーザー数がそのままライセンス料金として跳ね返ります。そのため、自社のデータサイエンスのプロセスをレビューしながら、必要となるユーザーを識別しておくというのも必要以上にコストをかけないために必要になるかもしれません。


AutoMLのユースケース

AutoMLを何に使うのかということですが、これはMLの基本的なアプリケーションがそのままユースケースになります。製造業では需要予測や不良品の発生予測、小売業では売上予測や物流の最適化、マーケティングでは顧客分析・広告費の最適化等です。中でもML適用に関する手法やアプローチはよく知られているものの、収集できるデータが幅広かったり、あるいはビジネスや業界に特有な物が入ってくるためにモデル構築に関する試行錯誤が多くなるようなアプリケーションに、AutoMLは向いていると言えます。

需要予測・売上予測の予測のモデリングは、業界を問わずによく適用されます。


また、需要予測をベースとした価格最適化はモデルがやや複雑になるからこそ、AutoMLの適用に向いています。不正検知への適用も多いです。それぞれビジネスプロセスにおけるMLの適用としてわかりやすい分野です。

他は、画像認識でのユースケースが多い傾向があります。製造業における工場での不良品の発見に加えて、アパレルにおける服やアクセサリの画像サーチ、医療における診断等です。


AutoML のソフトウェアやサービス

AutoMLのソフトウェアは最近その種類が増えてきています。DataRobot、dotData、Dataiku、Google Cloud AutoML、Microsoft Azure Automated ML等が、代表的なソフトウェアになります。

DataRobotは、AutoMLの代名詞的な存在になりつつある、サービスです。データの収集からツールを提供しており、データの加工からモデル構築までを一貫して実行します。画像のデータオーグメンテーション機能も提供し始めており、機能の拡充が進んでいます。


データサイエンスのプロジェクトの進め方でも書きましたが、機械学習モデルはデプロイされた直後がもっとも高い精度を持っており、以降時間の経過とともに精度が劣化していくのが普通です。これは、コンセプトドリフトといわれるもので、モデルを取り巻く環境や世の中そのものが変化していくことで、モデルが前提としていた変数の有力さ度合いや特徴が学習をしていたときとは異なってしまい、予測精度が劣化してしまうという現象です。

DataRobotは、このコンセプトドリフトを検知するために、機械学習モデルを一括して監視できるMachine Learning Operationsという機能を提供しており、モデル運用を支援するのも特徴です。


dotData も、AutoMLの領域でその存在感を強めている予測分析プロセス自動化ソフトウェアです。コーディングを伴わずに、シンプルなGUIから直感的に利用可能な企業版「dotData Enterprise」や、そのをSaaS版である「dotData Cloud」等も提供されています。


Dataiku も近年注目されている有力AutoMLソフトウェアです。名前の由来が「データ」+「俳句」とのことで、「ダタイク」と発音しますが、社員の方も「Data IQ」のような発音をされることもあります。より広範囲のデータサイエンス基盤を志向しており、一つのサービス上でデータ分析に関わる全ての人が、データ分析や機械学習モデル開発関連するタスクを行うことができるのが大きな特徴です。


Google Cloud AutoMLは、名前の通り、Google のAutoMLサービスです。Googleの大規模クラウドがインフラとして存在しており、それに支えられているのは魅力的です。Google Cloud Platform に慣れているエンジニアには使い勝手がいいAutoMLといえます。


Microsoft も、Azure Automated MLを提供しています。他のAutoMLと同様に、分類、回帰、時系列予測のどれかを選ぶと、Automated MLが自動でアルゴリズムの候補を選定します。自動的にアルゴリズムとパラメーターの異なるモデルを作成し、デプロイ。トレーニング、テスト、評価を実行します。運用保守作業は、Azure DevOps サービスの組み合わせで支援する形です。特記すべきこととしては、自動化を支援していることに加えて、一方でAIの専門知識を持ちコードをかける専門家には、PythonやRの開発・実行環境サービスであるNotebooksを提供しています。Automated MLで作成したモデルをPythonコードでチューニングし、更に精度を高めるという使い方を推奨しています。


他に、ソニーグループが開発したPrediction OneというAutoMLもあります。表敬式データを対象とした二値分類、多値分類、回帰予測を自動化します。統計・機械学習に詳しくない人が使用することを想定しています。


AutoMLのオープンソースパッケージ

AutoMLはオープンソースパッケージによっても実現していくことが可能です。auto-sklearn、MLBox、Auto-Weka、AutoGluon等を活用します。

auto-sklearn は、Pythonで使用できる機械学習ライブラリとして広く使われている「scikit-learn」を拡張する形でAutoMLの機能を提供します。scikit-learnでは、様々な推定器が実装されており、対象となるデータを処理する際に、どの手法を使うかを選択する必要があります。しかし、正しい推定器を選択することは必ずしも容易ではありません。auto-sklearnライブラリは、対象となるデータを分析し、複数のアルゴリズムでのモデル作成を同時に行い、最適なアルゴリズムとハイパーパラメータを特定します。

MLBox も、AutoML のPython ライブラリです。同様に、データの前処理、特徴量選択、ハイパーパラメータ最適化、分類と回帰のためのモデル適用、モデル構築を行います。

Auto-Wekaは、機械学習パッケージWEKAで同様の機能を実現しています。JavaでAutoMLを組めるのが特徴です。

AutoGluon は、テーブルデータの分類、回帰、画像分類、物体検出、テキスト分類等を行う機械学習モデル開発を自動化するフレームワークです。同様に特徴量エンジニアリングや、アーキテクチャの探索、ハイパーパラメーターチューニング、アンサンブル等を自動化し、機械学習モデル開発を効率化します。以下の論文によると、表形式データに関してはGoogle AutoMLを含む他の複数のAutoMLと比較して、一番精度の高い結果を出すことができたそうです。


ビジネス部門とIT組織・データアナリティクス組織のコラボレーション

AutoMLの導入においては、ビジネス部門とIT組織、そしてデータアナリティクス組織が協働してその価値をレバレッジさせていくことになります。ややもすると、ビジネス部門側で導入の企画を行い、保守・運用において、技術的な事柄はIT部門に任せ、モデル構築における高度な事柄はデータアナリティクス組織に任せるというフォーメーションを考えてしまうかもしれません。

しかし、実際のところ、AutoMLの多くはクラウドサービスです。現代のクラウドサービスにおいては過去のウォーターフォール的な役割分担や協力とは異なってきます。導入時からビジネス部門とIT部門が協力し、自社にあうサービスなのかの検討をしっかりと行い、保守・運用時はビジネス部門が主体となってオペレーションを回していくという逆転の発想が必要になります。モデル構築においてもビジネス部門とデータアナリティクス組織が当初のデータ収集を中心に協力しますが、保守・運用に関してはこれまたビジネス部門が主体となって行っていくことになります。

将来にわたって業績を生み出すモデル構築には、ビジネスドメインに基づくインサイトと成長を導いていく保守・運用サイクルが欠かせません。ビジネス部門が主体となって動くことで、AutoMLはより顧客セントリックな価値を出すことができるようになるでしょう。


終わりに

AutoMLは、機械学習モデルの設計・構築を自動化するパワフルなツールです。このソフトウェアによって、リソース集約型であったデータサイエンスをより機動的かつスケーラブルなものへと変えていくことができます。AIアプリケーションの精度向上を追求しつつ、増産を推し進め、それにより、AIがもつポテンシャルを最大限に引き出すことができるようになります。

しかし、そのためには、経験と実績に裏打ちされたビジネス知識を持ち、正しくAutoMLを使いこなしていくことが大切です。どのような課題を解決するために機械学習モデルを構築し、その適用によってどのようなアウトカムを創出したいのか、という目標へのフォーカスを失わないことが、ここにおいても鍵となるでしょう。


おまけ: E&E モデルへの発展

AutoML の普及とともにAIの開発がよりスケーラブルなものへとなっていくに伴い、人とAIの効果的なコラボレーションモデルを見出していくことの重要性は増していきます。ここにおいては、人とAIがインタラクションしていくことでより大きなマーケットシェアと競争力のある収益の達成を目指す、E&E モデルは重要なレファレンスになるでしょう。


この記事が気に入ったらサポートをしてみませんか?