目次


機械学習と、深層学習の基礎知識

IBM Power Systems 上で機械学習を導入する

Comments

現在の世界におけるアナリティクスの関わり

処理されていない状態のロー・データには大した価値はありません。けれども、正しいアナリティクス手法を適用すれば、ビジネスの意思決定や政治運動、そして医療科学をはじめとする生活のさまざまな側面に役立つ、奥深いインサイトをデータから引き出すことができます。

図 1 に示すように、アナリティクス・サイクルは大きく分けて、記述的アナリティクス、診断的アナリティクス、予測的アナリティクス、処方的アナリティクスという 4 つのカテゴリーまたはフェーズからなります。機械学習とは分析モデルの構築を自動化するデータ分析手法であり、この 4 つのタイプのアナリティクスのすべてで使用されています。

アナリティクスの 4 つのタイプ

  • 記述的アナリティクス: このタイプのアナリティクスでは、既存のデータに基づいて現在の事象を判断します。
  • 診断的アナリティクス: このタイプのアナリティクスでは、一歩踏み込んで、ある特定の事象が起こった原因を判断します。
  • 予測的アナリティクス: このタイプのアナリティクスでは、おそらくはより長い期間にわたる、より広範なデータのセットを使用して傾向および標本を調べ、その履歴情報を基に将来の事象を予測します。
  • 処方的アナリティクス: このタイプのアナリティクスでは、予測するだけにとどまらず、目標を達成するためには将来の事象をどのように変えるのが最善であるか、推奨案を提供します。
図 1. アナリティクス・サイクルの 4 つのフェーズ
アナリティクス・サイクルの 4 つのフェーズを示す図
アナリティクス・サイクルの 4 つのフェーズを示す図

機械学習を使用したアナリティクスの適合性や利用の拡大は、2016 年のアメリカ大統領選挙戦で広範に利用されていることから明らかです。テクノロジーが進歩したこともあって、かつてないほど大量の有用な情報を利用可能にするアナリティクスは、より効果的な選挙運動を計画して展開するための魅力的な手段となっています。具体的には、選挙運動チームが投票者の感情、人口区分、および過去の投票パターンを分析します。その分析結果に基づいて、投票者数が最大になるよう、選挙運動の対象として重点を置く州および投票者プロフィールを調整するという手法です。この手法は、機械学習が中心的役割を果たすことによって実現されます。このような新しい傾向により、選挙運動の真の資産は資金ではなく、投票者に関するデータであるという見方に急速に変わってきました。投票者データは、世論調査員、資金調達担当者、現場の運動員、消費者データベース、民間企業から集められるだけでなく、選挙運動の Web サイトやソーシャル・メディア・アプリケーションの cookie やトラッカー・プログラムからも収集されます。この投票者データの巨大なリポジトリーに機械学習アルゴリズムを適用して、アクション指向のインサイト (個々の投票者についての予測) を得られるようになったことから、選挙運動の全体像は一変しました。選挙運動では、これらのインサイトが、資金調達、宣伝対象の絞り込み、激戦州の投票者の詳細なモデル化に使用されます。このような選挙運動の有効性は、機械学習によってさらに高まる可能性があります。それは、候補者が投票所に出向く確率、常に投票していたわけではない支持者が今回は投票しに行くよう動機付けられる確率、そして選挙運動のさまざまな連絡手段によって相手が説得される可能性の大きさは、機械学習によって算出できるからです。つまり、機械学習によって、選挙運動はさらにメトリクス主導型になります。

機械学習の概要

機械学習アルゴリズムでは、データから繰り返し学習することで、調査すべき場所を明示的にプログラムしなくてもコンピューターが隠れたインサイトを発見できるようにします。基本的に機械学習とは、問題をどのようにして解決するのかをコンピューターに教えるために、数百または数千の例を調べた経験を基に、新しい状況で同じ問題を解決するアルゴリズムを作成することを意味します。機械学習のタスクは通常、学習システムで利用できる学習信号またはフィードバックの特質に応じて、次の大まかな 3 つのカテゴリーに分類されます。

  • 教師あり学習: 教師あり学習アルゴリズムでは、ラベル付きの履歴データを使用してトレーニングして、入力を出力/ターゲットにマッピングするための一般規則を学習します。選挙運動の例に当てはめると、投票者の履歴データ (過去の投票実績でラベルを付けた投票者の詳細) に基づき、特定の候補者にどのような投票者が投票する可能性が高いのか、選挙運動によってどのような投票者が説得される可能性が高いのかを予測し、その情報に応じてリソースの有効利用を計画することができます。

    教師あり学習では、トレーニング・データのセットを使用して、入力変数 (年齢や収入などの投票者の詳細) とラベル/ターゲット変数 (前回の選挙での特定の投票者の投票など) との間の関係を検出します。このように、教師あり学習の場合は、コンピューター/マシンがトレーニング・データから学習します。

    トレーニング・データから検出された関係が有効であるかどうかはテスト・セットを使用して評価されます。また、分析モデルにテスト・データの入力変数を取り込み、そのモデルに基づいて予測されたラベルを実際のラベルと比較するという方法を使用して、予測された関係の信頼性および有用性が評価されます。

    多くの場合、使用するデータをトレーニング・データとテスト・データにどの割合で分けるのかは、慎重を要する判断であると見なされます。テスト・データとして使用するデータの割合を増やせば、分析モデルのパフォーマンス検証の信頼性が高くなります。けれどもトレーニング・データの割合を小さくしすぎると、分析モデルが学習するためのトレーニング・データが少なくなってしまいます。一般な見解として、60:40 から 80:20 の割合でトレーニング・データとテスト・データに分けるのが妥当な線です。

    最も広く使われている教師あり学習アルゴリズムとしては、サポート・ベクター・マシン線形回帰ロジスティック回帰単純ベイズニューラル・ネットワーク (多層パーセプトロン) が挙げられます。

  • 教師なし学習: 教師なし学習アルゴリズムでは、ラベルなしのデータを基にトレーニングします。教師なし学習アルゴリズムの目標は、データを調べて、そこに存在する何らかの構造を見つけることです。例えば、教師なし学習アルゴリズムを選挙運動に利用して、類似する属性を持つ投票者のセグメントを識別することができます。識別されたセグメントごとに選挙運動をカスタマイズすれば、各セグメントに属する投票者のグループに対して、同じような選挙運動を展開することができます。最も広く使われている教師なし学習アルゴリズムには、クラスター分析とマーケット・バスケット分析があります。
  • 強化学習: 強化学習アルゴリズムでは、フィードバック・システムを介して学習します。このアルゴリズムは、アクションを取り、そのアクションの妥当性に対するフィードバックを受けます。そのフィードバックに基づいてストラテジーを修正してから、さらにアクションを取ることで、特定の期間に期待される成果を最大限にします。強化学習は、自動走行車やドローンなどのロボット工学アプリケーションで広く使用されています。

深層学習の概要

深層学習は、より深いレベルの自動化を行う、特殊な機械学習です。機械学習に伴う大きな課題の 1 つは、特徴抽出です。特徴抽出を行うには、見つけ出す特徴をプログラマーがアルゴリズムに指示しなければなりません。これによって、アルゴリズムを使用して決定を下すことが可能になるのであり、アルゴリズムにロー・データを取り込むだけではほとんど成果は出ません。このことから、特徴抽出はプログラマーにかなりの負担をかけます。特に物体認識などの複雑な問題を扱っている場合、その負担は顕著です。このように、アルゴリズムの有効性がプログラマーのスキルによって大きく左右されるという問題に対処するのが、深層学習モデルです。深層学習モデルは、焦点とすべき正しい特徴を自己学習することが可能であり、プログラマーによる手助けをほとんど必要としないことから、人間による分析よりも信頼性の高い分析を行うことができます。これまで、深層学習モデルは感情分析やコンピューター・ビジョンなどの複雑なタスクで大きな効果を上げてきました。ただし、深層学習アルゴリズムでは、何層にも重ねられた学習データの抽象化と表現の階層を、最下位の層からその上の層へと学習していかなければならないため、学習プロセスに時間がかかります。このことから、許容できないほど計算を多用する処理になりがちです。

IBM Power Systems 上で機械学習を導入する

機械学習を使用するには、多種多様な技術的スキルおよびエンジニアリング・スキルが必要です。企業内で機械学習を利用する場合、データおよびアナリティクスの各側面における知識とスキルを持つエキスパートからなるチームが必要になるでしょう。必要なスキルは多岐にわたり、使用するデータを理解してアクセスするスキルから、データ・クレンジング・ツールの使用法や機械学習の概念およびアルゴリズムの知識、アナリティクス・ツールの使用経験、アプリケーションのプログラミング・スキル、機械学習処理環境を実装して配備するために必要なハードウェアとソフトウェアのセットアップ・スキルに至るまで、さまざまです。

以下に、機械学習を使用する際の一般的な手順の例を概説します。

  1. まず、機械学習ワークロードを実行するための IBM Power Systems サーバーをセットアップして構成します。
  2. 解決すべきビジネス問題を決定します。
  3. 使用するデータを特定して収集します。収集したデータを前処理してクレンジングし、使用可能な状態に変換します。教師あり学習アルゴリズムを使用する場合は、変換後のデータをトレーニング・データとテスト・データに分けます。
  4. 使用する機械学習アルゴリズムを決定します。その決定は、答えを求めるビジネス問題に基づいて行います。例えば、予測的アナリティクスにはニューラル・ネットワークを使用できます。顧客区分にはクラスター分析を使用できます。使用するのに最適なアルゴリズムは、利用可能なデータの状態にも依存します。データに多数の欠損値があるとしたら、決定木が優先されるアルゴリズムとなるでしょう。決定木は、欠損値を扱うのに適しているためです。
  5. アナリティクス・ツールを選択して IBM Power Systems にインストールします。各アナリティクス・ツールでは 1 つまたは複数のプログラミング言語をサポートしています。このため、選択したツールによって、モデルの作成に使用するプログラミング言語が決まることがよくあります。アナリティクス・ツールの例には、SPSS、SAS、オープンンソース、Spark MLlib があります。プログラミング言語の例には、R、Java、Python があります。
  6. 選択した機械学習アルゴリズムを使用して 1 つ以上のモデルを作成し、トレーニング・データを使用してそれらのモデルをトレーニングするためのコードを作成します。教師あり学習モデルを使用する場合、テスト・データを使用してモデルをテストし、精度が高くなるよう必要に応じて構成をチューニングします。複数の学習モデルがある場合は、テスト・データに対するモデルのパフォーマンスに基づいて最良のモデルを選択します。
  7. IBM Power Systems 上でモデルを実行します。
  8. Apache Spark を使用してパフォーマンスを向上させます。それには、モデルを分散モードで実行するという方法、または IBM POWER8 プロセッサー・ベースのサーバー・ノードを使用して構成されたクラスター内で実行するという方法があります。
  9. IBM Cognos Business Intelligence on IBM Power Systems などのアナリティクス・ツールを使用して結果を視覚化します。

機械学習アプリケーションになぜ IBM Power Systems を使用するのか

機械学習や深層学習を IBM Power Systems を使用して実行することによってもたらされるメリットは数多くあります。これらのワークロードは浮動小数点の計算を駆使するものであり、大量のメモリーと I/O 処理能力を必要とする可能性がありますが、IBM Power Systems 上で実行すれば、グラフィックス・プロセッシング・ユニット (GPU) アクセラレーションを利用してパフォーマンスを向上させることができます。また、IBM Power サーバーのキャッシュはサイズが大きいだけでなく、データを数値演算コプロセッサや GPU にプッシュできることから、機械学習や深層学習のワークロードを実行するには最適です。深層学習フレームワークが提供する選択肢として、GPU を備えた POWER8 プロセッサー・ベースのサーバーに簡単にインストールできる、ビルド済みオープンソースを利用することもできます。IBM Power プラットフォームではビッグデータと深層学習を同じプラットフォーム上に集中可能であるため、抽出、変換、ロード (ETL) のプロセスを省いて、IBM Power サーバー上のビッグデータ/Hadoop インフラストラクチャーの傍らでこれらのワークロードを直接実行できます。

IBM Power Systems 上で利用できる機械学習関連のアナリティクス・ツール

IBM Power Systems 上で機械学習や深層学習を使用する場合は、以下のアナリティクス・ツールを利用できます。

POWER / Linux または AIX 上の IBM SPSS

IBM SPSS は複数の機械学習アルゴリズムをサポートしています。モデルを構築してテストするには SPSS Modeler を利用でき、モデルを実行するには SPSS Collaboration and Deployment Services を利用できます。IBM POWER8 プロセッサー・ベースのサーバー上で SPSS Modeler を実行およびチューニングして優れたパフォーマンスをどのようにして達成するのかについては、このリンク先のブログを参照してください

POWER / AIX 上の SAS

SAS は、IBM Power Systems 上の幅広いアナリティクス・ツール・ポートフォリオをサポートしています。Enterprise Miner では、複数の機械学習アルゴリズムを使用してモデルを構築し、テストすることができます。

詳細については、http://www.sas.com を参照してください。

POWER/Linux で利用できるオープンソースの機械学習および深層学習ライブラリー

このリンク先のページに示されているように、数多くのオープンソースの機械学習ライブラリーが広く利用されています。IBM Power Systems 上では Caffe、Torch、Theano をはじめとする多数のオープンソース機械学習および深層学習ライブラリーを利用できます。今後予定されているその他のライブラリーもあります。

POWER / Linux 上の Apache Spark MLlib

Apache Spark は分散処理環境です。Apache Spark を構成する主要なコンポーネントの 1 つとなっている MLlib は機械学習ライブラリーであり、このライブラリーは Spark がサポートしている Java、Scala、Python、SparkR の 4 つのプログラミング言語で利用できます。MLlib でサポートしている多数のアルゴリズムとユーティリティーは、このリンク先の Spark MLlib ガイドで確認できます。

IBM POWER8 上で Apache Spark の実行速度を 2 倍に加速するにはどのようにするのかについては、Raj Krishnamurthy と Randy Swanberg によるこのリンク先のブログを読んでください。

このブログでは、3 つの主要な機械学習ワークロード (ロジスティック回帰、サポート・ベクター・マシン、行列因数分解) と、IBM POWER8 上で x86 プロセッサーよりも卓越したパフォーマンスを達成するために推奨される構成について要約しています。

今すぐ開始してください

IBM Power Systems 上で機械学習および深層学習を導入する際は、このリンク先の IBM Data Science Experience に参加すると、他のデータ・サイエンティストとやり取したり、協力したりできます。

先月、OpenPOWER が発表した OpenPOWER Developer's Challenge というハッカソンでは、9 月 1 日まで提出を受け付けています。このハッカソンでの競技の 1 つとなっているのが、OpenPOWER サーバー上の Apache Spark を使用した深層学習です (「The Accelerated Spark Rally」)。深層学習を試す絶好の機会として、このハッカソンにぜひ参加してください!このリンク先で詳細を確認して参加登録できます。

参考資料

IBM では機械学習に関するさまざまなことが行われています。以下の 2 つの参考資料を参照してください。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=1037573
ArticleTitle=機械学習と、深層学習の基礎知識
publish-date=09152016