説明
[機械学習]

機械学習ライブラリについて

本ライブラリは、機械学習の「教師あり学習」の機能を提供するライブラリです。機械学習とは、歴史的には、 人工知能の研究分野の中で、人間が、日々得ている実体験の情報の中から再利用できそうな知識を取得していく、という 過程をコンピュータで実現したいという動機から生まれました。現在では、数値・文字・画像・音声など、多種多様な データの中から、規則性・パターン・知識を発見し、現状の把握や未知の状況への予測をするのに役立てることが目的と なっています。

教師あり学習
「教師あり学習」とは、入力データとそれに関連する学習すべき付随情報(クラス毎に付けられたラベルや観測した数値)が 共に与えられ、付随情報が無いデータを与えられたときに、対応する付随情報を予測するための規則等を 取得する学習のことです。つまり、データと付随情報のペアを「入力と答えの例題(=教師からの助言)」とみなして、 それをガイドとして学習を行うというものです。
教師データ
学習のために事前に与えられる例題を「教師データ」と呼び、数学的な定義としては、ベクトルとラベルの組と して、$ ({\bf x_{1}}, y_{1} ), ({\bf x_{2}}, y_{2}), \dots ,({\bf x_{n}}, y_{n}) $のように与えられます。 これは「入力が${\bf x_{1}}$のときの答えは$y_{1}$, 入力が${\bf x_{2}}$のときの答えは$y_{2} $」 のような例題集と考えることもできます。
ベクトル${\bf x_{i}}$は、学習したい対象の特徴を現すデータとなるため、「特徴量」または「特徴ベクトル」と いいます。$y_{i}$は、${\bf x_{i}}$が分類上どのクラスに属するかを示すための離散的な値をとります。 通常、この数値は人間がラベル付けすることで提供されることが多いので、単にラベルとも呼ばれます。
note
$y_{i}$がラベルではなく観測データなどの実数値の場合は、入力に対する数値を予測する 学習になります。これを回帰問題といいますが、現段階では、本ライブラリでは回帰問題には対応していません。

教師データオブジェクト・学習オブジェクト

実際に機械学習を行い、その学習結果を用いて識別(入力データに対する予測)を行うには

が必要になります。本ライブラリでは、この「大量の教師データの管理」「学習した結果の保持」のために、 「教師データオブジェクト」「機械学習オブジェクト」を用います。

教師データオブジェクト
教師データオブジェクトは、実際に教師データ(特徴ベクトルとクラス付けをするラベル番号) を内部に保持するオブジェクトです。また、扱う特徴ベクトルの次元数、保持している教師データの データ数等もあわせて保持しています。ユーザは、この教師データオブジェクトに対して、 関数を通じて教師データの追加・操作を行います。そのため、大量の教師データ作成に伴うデータ管理や データ増加に伴うメモリの管理を気にする必要はありません。
機械学習オブジェクト
機械学習オブジェクトは、学習を行った結果得られる、識別のための様々な情報を保持するオブジェクトです。 機械学習のアルゴリズムは様々なものが提案されており、学習の結果得られる情報や、 学習の際に渡されるパラメータについてもアルゴリズム毎に異なります。また、識別を行うための 内部的な処理もアルゴリズムによって大きく異なってきます。
このような、学習アルゴリズムの違いを吸収し、学習結果を統一的に扱えるように、学習した結果は 機械学習オブジェクトという形で出力・保持されます。機械学習オブジェクトは、学習によって得られた 結果や、学習のパラメータといった情報をカプセル化し、学習アルゴリズムの違いを抽象化して保持します。 実際の識別の際には、機械学習オブジェクトを用いる関数を用いれば良いので、ユーザはどのようなアルゴリズムで、 学習が行われたか、識別はどのような処理で行うかを意識する必要がありません。

処理の流れ

実際に本ライブラリを用いて機械学習を行い、その結果を用いるまでの流れを示します。機械学習は大まかに 「教師データの準備と学習」「学習結果を利用した予測」の2ステップの流れになります。

教師データの準備と学習
教師データを準備し、学習を行うまでの流れは以下のようになります。なお、中央の青い点線より左側の処理は、 使用するユーザ自身が行う処理になります。

fie_ml_train.png

データセットのデータ全てに対して、3, 4の処理を繰り返します。

学習が終了すると、学習結果を保持した機械学習オブジェクトが生成されます。

学習結果を利用した予測
機械学習オブジェクトを用いて未知のデータを識別する流れは以下のようになります。 なお、中央の青い点線より左側の処理は、使用するユーザ自身が行う処理になります。

fie_ml_predict.png


学習アルゴリズム

本ライブラリでは、現在以下の学習アルゴリズムを実装しています。

アルゴリズムによって、学習の特性や学習時の制限事項などが異なってきます。詳しい内容については 各アルゴリズムのドキュメントを参照してください。


その他

誤識別が多発する場合
識別処理において、誤識別が多発し、意図したような結果が得られない場合は、以下の事を確認してください。

学習に時間がかかる場合
機械学習は、基本的に、入力された教師データを用いた一種の最適化問題を解くことになります。そのため、 対象となる問題(教師データ数、特徴量の次元数、クラス数など)が大規模になると、学習が終了するまでに時間を要する 場合もあります。 しかし、明らかに学習時間がかかり過ぎている場合は、以下の事を確認してください。

使用例
サンプルコード

参考文献:


Documentation copyright © 2009-2024 FAST Corporation.
Generated on Fri Aug 9 16:38:48 2024 for FIEライブラリ by doxygen 1.5.6-FASTSP-p2