クラウドで機械学習プラットフォームを運用するメリット
ここまで、機械学習を始めるにあたって重要なことについて説明してきました。数日で完了するようなプロジェクトではないことをお分かりいただけたかと思います。
機械学習を行うには、「分析の知識」だけでなく「ITインフラの知識」と「ビジネスの理解」が求められます。しかし、これらすべてを身につけている人は希有ですし、チームを組みメンバーで補い合うことも容易ではありません。また、前準備が多く、小さく早く始められないことも、機械学習に取り組む際の高い障壁となってきました。
しかし、機械学習の機能を提供するクラウドサービスが現れたことで、分析とITインフラに求められる知識が、以前ほどは高くない状態になりました。
機械学習プラットフォームをクラウドで構築するメリットはたくさんあります。先ほどのPDCAサイクルで説明したように、機械学習プラットフォームにかかる負荷は一様ではありません。一番マシンパワーを必要とするのは、「データ準備」と「データモデリング」のときです。このようなマシンパワーを必要なときだけ動的に増やせるクラウドサービスは、機械学習プラットフォームのワークロードとの相性がとてもよいです。
また、機械学習を利用する取り組みは研究に近いため、ROI(費用対効果)の算出が難しいです。クラウドならば、専用のサーバを用意する必要ないため早く安く始めることができます。プロジェクトを回し切るには十分な体制が整っていないと分かり、プロジェクトの中止を余儀なくされた場合でも、クラウドであれば、無駄になるハードウェアやソフトウェアへの投資は最小限で済みます。
クラウドで機械学習を始めてみる(Oracle Cloudを例に)
それでは、機械学習プラットフォームの構築を体験してみましょう。本稿では「Oracle Cloud」を利用します。
Oracle Cloudで機械学習を始めるメリットとして、まず十分なアルゴリズムが用意されていることがあります。また、GUIでもRクライアントでも操作できるため、機械学習をこれから始める方にも、R言語を使用しているユーザにも優しいものとなっています。
また、Oracle Cloudのデータベースサービス「Oracle Database Cloud Service」には機械学習エンジンが組み込まれており、データベース内で機械学習を行うことができます。メモリに全データを展開せずに分析できるため、大容量のデータを分析することができますし、データの移行コストも発生しないため、分析サイクルを高速化することができます。
データ管理に関しても、データベース内に完結しているため、SQLだけでETL処理を書けることも便利です。一定の分析をジョブとして管理する場合にも、機械学習エンジンがデータベースに組み込まれたことによって、「データ分析基盤+データベース」でなく「データベース内だけ」でジョブ管理が完結します。
セキュリティに関しては、データの配置場所もデータベースだけに限られ、そのデータベースに対してもOracle Databaseのセキュリティ機能をすべて使用して守ることができます。
このようにOracle Cloudは、プラットフォームとして必要な要件を満たしています。クラウドサービスなので、課金も使用する間だけであり、分析用途のプラットフォームとしても相性がよいものとなります。
機械学習プラットフォームの構築手順
Oracle Cloudで機械学習を始めるためには、まずはOracle Database Cloud ServiceでOracle Databaseを作成します。
Oracle Database Cloud Serviceインスタンスのデータベース・エディションを選ぶ画面では、Advanced Analyticsオプションを利用可能な「High Performance」または「Extreme Performance」を選択します。
データベースが作成されたら、クライアントPCに「SQL Developer」をインストールします。SQL DeveloperはOracle Databaseに付属する無料の開発ツールです。インストールはzipファイルを解凍するだけで完了します。インストールしたSQL Developerを起動し、Oracle Database Cloud Service上に作成したOracle Databaseに接続して、Oracle Data Minerのプラグインをインストールします。以上で機械学習の環境構築は完了です。
ここから機械学習を行うには、データをクラウドにロードして、GUIで機械と学習フローを設計します。今回はサンプルデータを基に予測分析を行ったときのフローを下図に示します。
ドラム缶とテーブルの組み合わさったアイコンが学習データです。「分類構築」と書かれたタグとダイヤモンドが組み合わさったアイコンでモデルを作成しています。ダイヤモンドと表が組み合わさったアイコンに対して、予測対象のデータソースをつなぐことによって、予測分析のフローは作成完了です。 アルゴリズムは初めから組み込まれているため、GUIでフローを記載するだけでモデルが作成されます。アルゴリズムを実装できなくても、線でアイコンを結ぶだけで機械学習によってモデルが作成できます。
作成したモデルの予測精度に関してもGUI上で確認が可能となっています。下図は「リフトチャート」と呼ばれる、機械学習のモデルの予測精度を確認するグラフです。細かい説明は省きますが、左上にあるモデルほど予測精度が高いものとなります。
機械学習というとすごく高度なスキルが必要に思われますが、モデルの作成も自動化され、予測精度の結果の見方さえある程度学べば、簡単に機械学習を始めることができます。プラットフォームを構築するステップもクラウドサービスを使うことによって、GUIだけで完結することができます。
まとめ
機械学習のブームから機械学習について考えさせられるケースが増えてきています。機械学習を始める際には、分析だけでなく、インフラやビジネスと幅広い知識が必要となります。ただ、クラウドサービスによって1つ1つの知識を深く必要とせず開始できるようになりました。
分析は始めてみないと、うまくいくかどうかがわかりません。クラウドによってスモールスタートできるいま、まずは手持ちのデータでどこまで分析できるのか試してみましょう。
