目次


機械学習のモデル

Comments

機械学習で使用されるアルゴリズムを大きく分けると、教師あり学習、教師なし学習、強化学習の 3 つに分類されます。教師あり学習には予測が正しいか誤っているかを示すフィードバックが伴いますが、教師なし学習にはそのような応答は一切ありません。教師なし学習は単に、データをそこに隠れた構造に基づいて分類しようと試みるアルゴリズムです。一方、強化学習はフィードバックを受けるという点で教師あり学習と似ていますが、必ずしも入力や状態のそれぞれに対してフィードバックがあるとは限りません。このチュートリアルでは、これらの学習モデルの背後にある概念と、各モデルに使用されている主要なアルゴリズムの詳細を探ります。

さまざまな機械学習アルゴリズムが成長と進化を続けていますが、ほとんどのアルゴリズムは 3 つの学習モデルのいずれかに落ち着く傾向があります。これらの学習モデルは、学習アルゴリズムの運用や動作の改善を目的に、何らかの形で自動調整を行うために存在します。

図 1. アルゴリズムの 3 つの学習モデル
教師あり学習、教師なし学習、強化学習の入力と出力を示すモデル
教師あり学習、教師なし学習、強化学習の入力と出力を示すモデル

教師あり学習のデータ・セットには、目標とする出力 (ラベル) が含まれていて、関数が特定の予測について、その誤差を計算できるようにしてあります。予測が行われて (実際の出力と目標とする出力との間に) 誤差が生じると、監修によって関数が修正され、修正後のマッピングが学習されます。

教師なし学習では、目標とする出力がデータ・セットに含まれないため、関数を監修する手段はありません。監修は行われませんが、関数は、共通する特徴を持つデータが各クラスに含まれるよう、データ・セットを複数の「クラス」に区分しようと試みます。

3 つ目のモデルである強化学習では、アルゴリズムは目標とする状態へとつながる、一連の特定の状態に対するアクションを学習しようと試みます。(教師あり学習での場合のように) 各サンプルが処理される度に誤差が算出されるのではなく、強化信号を受信した時点 (例えば、目標とする状態に達した時点) で誤差が算出されます。この動作は人間が学習するときの仕組みと似ています。人間が学習するときは、必ずしもあらゆる行動に対してフィードバックが提供されるのではありません。報酬が保証された時点で、それがフィードバックとなるのです。

ここからは、各モデルを掘り下げて、それぞれの手法と主要なアルゴリズムを見ていきましょう。

教師あり学習

学習モデルのうち、教師あり学習は理解するのが最も簡単なモデルです。教師あり学習モデルでの学習には、トレーニング・データ・セットを使用してトレーニングできる関数を作成するという作業が必然的に伴います。関数を作成してトレーニングした後は、予測パフォーマンスを達成するために、その関数を未知のデータに適用します。その最終目的は、未知のデータを適切に一般化できる関数を作り上げることです。

教師あり学習によるマッピング関数を作成してテストするプロセスは、2 つのフェーズからなります (以下の図を参照)。最初のフェーズで、データ・セットをトレーニング・データとテスト・データという 2 つのタイプのサンプルに分けます。トレーニング・データとテスト・データの両方に、テスト・ベクトル (入力) と、目標とする既知の出力値を 1 つ以上含めます。トレーニング・データ・セットを使用したマッピング関数のトレーニングは、ある程度のパフォーマンス・レベル (マッピング関数が、目標とする出力にトレーニング・データをどれだけ正確にマッピングするかを示す指標) に達するまで続けます。教師あり学習のコンテキストでは、各トレーニング・サンプルを使用してトレーニングを行い、(実際の出力と目標とする出力との間の) 誤差を使用してマッピング関数を修正します。次のフェーズでは、トレーニングしたマッピング関数をテスト・データに対してテストします。テスト・データとは、トレーニングでは使用されていないデータを表します。したがって、マッピング関数が未知のデータを一般化する能力を十分に評価することができます。

図 2. 教師あり学習によってマッピング関数を作成してテストする 2 つのフェーズ
入力ベクトルにマッピング関数を適用して出力を生成し、その出力を評価して目標とする出力にするまでのフローを示すモデル
入力ベクトルにマッピング関数を適用して出力を生成し、その出力を評価して目標とする出力にするまでのフローを示すモデル

教師あり学習に分類されるアルゴリズムには、サポート・ベクター・マシンや単純ベイズをはじめ、さまざまなものがあります。そのうちの主要な手法として、ニューラル・ネットワークと決定木の 2 つを見ていきましょう。

ニューラル・ネットワーク

ニューラル・ネットワークは、脳内のニューロンとニューロン間の接続に発想を得たモデルを使用して、入力ベクトルを処理して出力ベクトルに変換します。このモデルは、ニューロンからなる複数の層で構成され、各層は、特定の入力の重要度を他の入力を踏まえて修正する重みによって相互に接続されます。各ニューロンにはアクティベーション関数が含まれており、この関数が (重みベクトルと乗算した入力ベクトルに応じて) ニューロンの出力を決定付けます。出力を計算するには、入力ベクトルをネットワークの入力層に適用し、ネットワークの以降の各層を (フィードフォワード形式で) 経由した後の各ニューロンの出力を計算します。

図 3. 典型的なニューラル・ネットワークの層
一連の円と線で示された、マッピングと学習によって相互作用する入力層、隠れ層、出力層の図
一連の円と線で示された、マッピングと学習によって相互作用する入力層、隠れ層、出力層の図

ニューラル・ネットワークで最もよく使われている教師あり学習手法の 1 つは、逆伝搬と呼ばれるものです。逆伝播では、入力ベクトルを適用して出力ベクトルを計算します。(実際の出力と目標とする出力との) 誤差が計算された後、重みとバイアスを調整するために、その誤差が出力層から入力層へと逆方向に伝播されます (出力に対する貢献度に応じて、学習レートが調整されます)。ニューラル・ネットワークと逆伝播について詳しくは、このリンク先の記事「ニューラル・ネットワークの徹底調査」を参照してください。

決定木

決定木は、分類を目的とする教師あり学習の手法です。この類のアルゴリズムによって作成される木構造では、データに備わっている特徴から推測した決定ルールに基づいて、入力ベクトルの結果を予測します。決定木が有用な理由は、簡単に視覚化して、結果を導く要因を理解できることにあります。

図 4. 典型的な決定木
一連のはい/いいえの質問に基づいて決定を導くテーブルとフロー
一連のはい/いいえの質問に基づいて決定を導くテーブルとフロー

決定木のモデルには、分類木と回帰木という 2 つのタイプがあります。分類木の場合、ターゲット変数は離散値であり、葉がクラス・ラベルを表します (上記の例を参照)。回帰木では、ターゲット変数が連続する値を取ることができます。データ・セットを使用して決定木をトレーニングし、そのデータからモデルを構築します。モデルが構築された後は、決定木と未知のデータを使って決定を下すことができるようになります (いずれかの葉に到達するまで、現在のテスト・ベクトルに基づいて決定木を進んで行きます)。

決定木学習には数々のアルゴリズムがあります。そのうち最も初期のアリゴリズムは ID3 (Iterative Dichotomiser 3) 呼ばれるものです。ID3 は、ベクトルに含まれる単一のフィールドに基づいてデータ・セットを 2 つの別個のデータ・セットに分割していくことで機能します。データ・セットを分割するために使用するフィールドを選択するには、フィールドのエントロピー (そのフィールドでの値の分布の状態量) を計算します。ここで目標となるのは、決定木を構築するために次にデータ・セットを分割する際に、エントロピーが減少するようなフィールドをベクトルから選択することです。

ID3 よりも効率的なアルゴリズムには、C4.5 (ID3 の後継) や、決定木を構築する際の数値データの処理を改善した MARS (Multivariate Adaptive Regression Splines) があります。

教師なし学習

教師なし学習も比較的単純な学習モデルですが、その名前が示唆するように、教師なし学習では評価は行われず、そのパフォーマンスを測定する手段はありません。教師なし学習の目標は、データの中に潜む特徴に基づいて、データを各クラスに分類するマッピング関数を作成することです。

教師あり学習の場合と同じく、教師なし学習を使用するには 2 つのフェーズがあります。最初のフェーズでは、マッピング関数によってデータ・セットを複数のクラスに分割します。それぞれの入力ベクトルがいずれかのクラスに分類されることになりますが、アルゴリズムによってそれらのクラスにラベルを適用することはできません。

図 5. 教師なし学習を使用する 2 つのフェーズ
入力ベクトルにマッピング関数を適用して、適切なクラスに分類するフローを示す図
入力ベクトルにマッピング関数を適用して、適切なクラスに分類するフローを示す図

データをクラスに分割した結果を最終結果とすることもできますが (そこから、それぞれのクラスに関する結論を引き出します)、アプリケーションによっては、これらのクラスをさらに利用することができます。そのようなアプリケーションの 1 つがレコメンデーション・システムです。レコメンデーション・システムでは、入力ベクトルは 1 人のユーザーの特性や購入状況を表すことができ、あるクラスに属するユーザーは同様の関心を持っているユーザーを意味することになるため、それぞれのクラスに応じてマーケティングや製品の推奨を行うことができます。

教師なし学習を実装するには、さまざまなアルゴリズムを使用できます。例えば、k 平均法や適応共鳴理論、あるいは ART (データ・セットの教師なしクラスタリングを実装するアルゴリズムの一種) などのアルゴリズムです。

k 平均法

k 平均法は、信号処置に端を発した、単純でよく使われているクラスタリング・アルゴリズムです。このアルゴリズムの目標は、データ・セットに含まれるサンプルを k クラスターに区分することです。各サンプルは数値ベクトルであり、ベクトル間の距離をユークリッド距離として計算するために使用できます。

以下に、データを k = 2 クラスターに分割する単純な例を示します。この場合、サンプルと各クラスターの重心 (中心) との距離が求められて、その距離が小さいほうのクラスターにサンプルが割り当てられます。

図 6. k 平均法の単純な例
入力ベクトルにマッピング関数を適用して適切なクラスに分類するフローを示す図
入力ベクトルにマッピング関数を適用して適切なクラスに分類するフローを示す図

k 平均法を理解して実装するのは極めて簡単です。まず、データ・セットに含まれる各サンプルをランダムにクラスターに割り当てます。次に、メンバーとなっているすべてのサンプルの平均としてクラスターの重心を計算します。その後は、データ・セットを繰り返し処理して、所定のサンプルが、それがメンバーとなっているクラスターの重心ともう一方のクラスターの重心のどちらに近いのかを判断します (k = 2 という前提)。メンバーとなっているクラスターの重心よりも、別のクラスターの重心のほうに近いサンプルがあれば、そのサンプルを新しいクラスターに移動して、重心を再計算します。このプロセスを、別のクラスターに移動するサンプルがなくなるまで続けます。

図に示されているように、k 平均法ではサンプル・ベクトル内の特徴に関する情報なしで (つまり、監修なしで)、サンプル・データ・セットを k クラスターに分割します。

適応共鳴理論

適応共鳴理論 (ART) は、パターンの認識および予測機能を提供するアルゴリズムの一種です。ART は教師ありモデルと教師なしモデルに分けることができますが、ここでは教師なしモデルにフォーカスします。ART は、自己組織化ニューラル・ネットワーク・アーキテクチャーです。この手法では、既存の知識を操作しながら新しいマッピングを学習することができます。

k 平均法と同じく、ART1 はクラスター化に使用できますが、ART1 では実行時に k を定義するのではなく、データに応じてクラスターの数を変更できるという大きなメリットがあります。

ART1 で使用する主な機能には、比較フィールド (新しい特徴ベクトルが既存のカテゴリーにどれだけ適合するかを判断するために使用)、認識フィールド (アクティブなクラスターを表すニューロンを格納するフィールド)、リセット・モジュールの 3 つがあります。入力ベクトルを適用すると、比較フィールドがその入力ベクトルに最も適合するクラスターを識別します。認識フィールド内での入力フィールドの適合が警戒パラメーターより大きい場合、この新しいベクトルを反映するように、認識フィールド内のニューロンとの結合が更新されます。それ以外の場合は、新しいクラスターを構成するために、認識フィールド内に新しいニューロンが作成されます。新しいニューロンが作成されると、既存のニューロンがその知識を保持できるよう、既存のニューロンの重みが更新されます。このような仕組みで、サンプル入力ベクトルによってクラスターが変更されなくなるまで、データ・セットのすべてのサンプルが適用されていきます。そしてクラスターが変更されなくなった時点で、トレーニングが完了します。

図 7. ART1 の機能
入力ベクトルから比較フィールドを介して認識フィールドへと至るフローを示す図
入力ベクトルから比較フィールドを介して認識フィールドへと至るフローを示す図

ART には、バイナリー入力ベクトルまたは (ART2 のように) 実数値ベクトルをサポートする複数のアルゴリズムがあります。予測 ART は ART1/2 のバリエーションですが、教師ありトレーニングに依存します。

強化学習

強化学習は、入力を出力にマッピングする方法を学習できるだけでなく、一連の入力を依存関係と併せて出力にマッピングすることができる (例えば、マルコフ決定過程など)、興味深い学習モデルです。強化学習は、環境内の状態に応じて特定のアクションが取られる可能性のあるコンテキストで使用されます。このアルゴリズムでは、学習プロセスの期間内に、環境内の状態とアクションのペアをランダムに探索します (状態とアクションのテーブルを作成するため)。このプロセスを通じて学習した情報を使用する際は、状態とアクションのペアによる報酬を手掛かりに、所定の状態から目標とする状態を導くのに最善のアクションを選択します。強化学習について詳しくは、このリンク先の記事「Train a software agent to behave rationally with reinforcement learning」を参照してください。

図 8. 強化学習モデル
アクションが環境を通して評価され、アクションと出力がマッピング関数によって仲介されて再びアクションに戻るフローを示す図
アクションが環境を通して評価され、アクションと出力がマッピング関数によって仲介されて再びアクションに戻るフローを示す図

ブラックジャックをする単純なエージェントの例を考えてみましょう。状態はプレイヤーのカードの合計を表します。アクションは、ブラックジャックをするエージェントが取る可能性のある行動を表します (この例の場合、ヒットまたはスタンドです)。ブラックジャックをするエージェントをトレーニングするには、ポーカーのさまざまな持ち札が関係してきます。この場合、特定の状態とアクションの結び付きに対する報酬は、勝ち負けによって左右されます。例えば、状態 10 に対する値は、ヒットの場合は 1.0 で、スタンドの場合は 0.0 となります (ヒットが最善の選択肢であることを意味します)。状態 20 について学習した報酬は、ヒットの場合は 0.0 で、スタンドの場合は 1.0 です。それほど単純ではない持ち札の場合、状態 17 に対するアクションの値は、スタンドの場合は 0.95、ヒットの場合は 0.05 となります。このエージェントは確率的に、対戦時間の 95 パーセントはスタンドを選択し、5 パーセントはヒットを選択します。ポーカーのさまざまな持ち札にわたってこれらの報酬が学習されて、特定の状態 (つまり持ち札) に最善の選択肢が明らかになってきます。

評価によって各サンプルが格付けされる教師あり学習とは異なり、強化学習では目標とする状態 (状態 21 の持ち札) に至った場合にだけ評価による格付けが行われます。

Q 学習

Q 学習は強化学習の 1 つの手法であり、状態とアクションのペアのそれぞれに、特定の状態パスに従った場合の報酬を示す Q 値を導入します。Q 学習の一般的なアルゴリズムは、環境内の報酬を段階的に学習するというものです。各状態は、目標とする状態に達するまでのそれぞれの状態に対して取られるアクションを包含します。学習中は、選択されたアクションが (Q 値に応じて) 確率的に実行されるため、状態とアクションのスペースを探索することができます。目標とする状態に達すると、このプロセスが初期の位置から再度開始されます。

所定の状態に対してアクションが選択されると、状態とアクションのペアのそれぞれに対して Q 値が更新されます。状態とアクションのペアに対する Q 値は、報酬を使用して更新されます。この報酬は、アクションを現在の状態に適用することで達成される新しい状態に有効な最大 Q 値に伴う遷移 (遷移がない場合もあります) によってもたらされるものです (割引率が適用されます)。この値にはさらに、新しい情報が古い情報よりいかに貴重であるかを決定する学習レートが割引率として適用されます。割引率は、短期間の報酬と比べた将来の報酬の重要度を示します。環境にネガティブな報酬とポジティブな報酬が混在する場合や、目標の状態のみが報酬を示す場合があることに注意してください。

図 9. 典型的な Q 学習アルゴリズム
引き出し線で学習レート、報酬、割引率、新しい値、現在の値、将来の推定値が示された、Q 学習の方程式
引き出し線で学習レート、報酬、割引率、新しい値、現在の値、将来の推定値が示された、Q 学習の方程式

状態に対するアクションの確率的選択に応じて Q 値を更新できるよう、このアルゴリズムは目標とする状態に達するまで長期的に実行されます。アルゴリズムの実行が完了したら、Q 値を貪欲に使用して (所定の状態に対する最大の Q 値を設定したアクションを使用して)、目標とする状態に最も速く達することができるよう、入手した知識を活用できます。

強化学習には、別の特性を持つ他のアルゴリズムもあります。そのうちの 1 つ、Sarsa (State-action-reward-state-action) は Q 学習と似ていますが、アクションは最大の Q 値に基づいて選択されるのではなく、確率を考慮して選択されます。不確かな環境内で意思決定を行う方法を学ぶには、強化学習は理想的なアルゴリズムです。

さらに詳しく調べてください

機械学習は、それぞれに異なるニーズに合った多種多様なアルゴリズムを活用します。教師あり学習アリゴリズムは既存の分類を使用してデータ・セットのマッピング関数を学習する一方、教師なし学習アルゴリズムは、データに潜む特徴を基に、ラベルなしのデータ・セットを分類できます。さらに、強化学習では不確かな環境内を繰り返し探索することで、その環境内での意思決定のポリシーを学習することができます。

Ready to go deeper? Access code patterns and learn how to hook it all together. Take it to the next step by learning how to 機械学習エクササイズを実行する.


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


コメント

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cognitive computing
ArticleID=1060668
ArticleTitle=機械学習のモデル
publish-date=06142018