機械学習とは、コンピュータに大量の訓練データを与えて,コンピュータが自ら学習することにより、未知のデータに対して判断を行えるようにすることです。
「ネコかイヌかを判断するAIモデルを作る」という極めて単純な例で、機械学習の手法を説明します。
学習方法による区分
その他の「学習」
「教師あり」とは、データとともに「正解」を与えて、これからAIにモデルを作成させる方法です。この「正解」は、機械学習では「ラベル」といい、多変量解析での被説明変数に相当します。
「教師あり」の代表的モデルには、「回帰」と「分類」があります。
統計の多変量解析で広く用いられている回帰分析と同じで、被説明変数と説明変数の関係を定量的に分析し、分析結果に基づく予測します。
代表的なのは最小二乗法です。説明変数を身長、胸囲。性別、被説明変数を体重として、多人数のデータを与え、ある人の説明変数を与えて体重を推定するようなときに適用できます。説明変数には量的・質的特性があってもよいが、被説明関数は量的変数であり、多様な値になるのが特徴です。
被説明変数が回帰では数量であるのに対して、分類が質的であることが特徴です。多変量解析での判別分析やロジスティック回帰分析が対応します。
いかにAI(人工知能)とはいえ、プログラム通りに動作するアプリケーションです。まず最初にデータを与える必要があります。
多数のネコとイヌを連れてきて、身長、体重、目の特徴、声などの特性を調べて、それを、x1、x2、…、xn とします。
また、ネコなら y = 1, イヌなら y = -1 とします。この y をラベル(正解)といいます。教師ありのモデルではラベルを用い、教師なしモデルではラベルはありません。
(画像認識技術を用いて写真を与えるだけで、xi などの特性をAIが自動的に取得することもできます。その場合でも、その写真がネコ・イヌであることを人間が教える必要があります。)
ここで集めたデータは、手順により次のように区分されます。
モデルの作成とは、「何らかの手段」により、
y = a0 + a1x1 + a2x2 + … + a2xn
となる係数 a を求めることです。
(ここでは単純に一次式としましたが、複数の変数を組み合わせたハイパーパラメタを変数にすることがあります)。
ネコとイヌについて、大量のデータを集め、その特性 x1、x2、…、xn を調べて、何らかの手段により a の値を決定し、y を求めます。そして、y > 0 ならばネコ、y < 0 ならばイヌだと判別します。
この 式のことをモデルといいます。
(注)ここで「何らかの手段」が重要です。「AIはが自分でルールを作る」とはいえ、厳密には人間がかなり関与しています。
「ヒゲの数」や「目の形」などの特性を人間が与えるならば、多変量分析の判別分析がそのまま使えて計算方法も確立しており、プログラムも容易に入手できます、この場合は、ルール全体を人間が与えているので、ルールベースといいます。ルールベースになるモデルは、「人工知能」である必要はありません。本章では対象にしません。
それに対して、「ネコとイヌの画像を見せて~」のようなケースでは、画像から特性を見出して(xを決めて)ルールを作るのはAIです。まさしく自分でルールを作っています。このモデル化にはニューラルネットワークを使いますが、ニューラルネットワークの構成などは人間が設定します。「人間が設定した枠組みの中でのルール自動作成」だということになります。
作成されたモデルに、検証データを与えて、判別がどの程度の信頼度があるかを検証し、実務的に十分でなければ、検証データを用いてモデルの改善(f の変更)をします。
訓練データの量が大きければよいモデルができると考えがちですが、それは不適切です。
そもそもこのモデルは、他のデータを与えたときにネコかイヌかを判別させることが目的ですから、モデル作成に使った訓練データ以外データ(検証データ)でモデルの信頼性(判別能力)を検証する必要があるのです。
(注)過学習
結果のモデルが訓練データによく適合することは重要なことですが、訓練データに過度に適合してしまうと、訓練データのノイズ(極端な値)や訓練データにしかない特徴にまで適合して、それ以外のデータには適用できない結果にあることがあります。それを過学習(Overfitting)といいます。
結果のモデルに検証データを用いて評価するのは、過学習になっていないかを確認するためです。
過学習の詳細については後述します。
最終テスト、実務化のステップです。テストデータにより確認したり、あえて紛らわしいデータも含む新しいデータで確認したりします。結果として、ネコ・イヌの判別が必要な業務にはこのモデルを用いればよい(汎用化)とします。
正しい学習をするには、モデル訓練時の入力データの統計的分布と、検証/テスト時、本番環境での入力データの統計的分布が一致していることが前提になります。
何らかの事情でこれが崩れると、モデルの性能が期待通りに発揮されない原因になります。
特に、訓練データとテストデータの分布が異なる場合を「トレーニング・テスト分布シフト」といいます。それを防ぐために、これらのデータを区別せずに収集して、乱数により分ける情報が推奨されています。しかし、本番の段階でこれを保証するには困難なときもあります。
いくつかの点とその近似式の関係で説明します。1次式や2次式を当てはめたのでは、点と曲線は離れてしまいます。また、3次・4次と次数を増やせば距離は短くなり、最後には曲線がすべての点を通り誤差は0の式になりますが、その曲線は極端に変化が大きく、別な点での式の値は現実的ではない値になりましょう。
教師あり機械学習でも同様で、訓練データの持つノイズや特徴までも取り入れた過度な精度のモデルになり、他のデータには使えないモデルになることがあります。過度な精度になることを過学習といいます。
作成したモデルが、学習を終えたモデルが学習に使った入力データのみだけでなく未知の入力に対しても高い精度で判定を行えるかという性能のことです。
データをランダムに訓練データと検証データにわけるのは、訓練データが少なくなる犠牲を払っても、検証データによる過学習の評価をして、汎化性能を高めることが重要だとするからです。
教師なし学習とは、ラベル(正解)を与えない(多変量解析では被説明変数がない)データを分析します。
教師なし学習┬クラスタリング┬非階層型クラスタリング(K-means法)≒主成分分析
│ └階層型クラスタリング(ウォード法)
└次元削減≒因子分析
「似たデータを近くに、似ていないデータを遠くに配置して、グループ化する」技術です。
顧客のグループ化を考えましょう。人間による分類では、購買額の大小、来店頻度、特定商品の購入有無など、事前に設定した項目を基礎にしてグループ化するのが通常ですが、AIではそのような既定概念を排して「ともかく3つのグループに分類せよ」と指示するだけで、システムが顧客の特性値から「似たもの集め」をします。これにより、思わぬ発見ができることがあります。
クラスタリングは、目的は同じですが結果表示の違いにより、非構造型クラスタリング(下左図)と構造型クラスタリング(下右図)に分かれます。
次元削減とは、低次元表現が元データの何らかの意味ある特性を保持高次元空間から低次元空間へデータを変換する方法です。
多変数解析での因子分析がその基本になります。
●主成分分析と因子分析の違い
主成分分析は多数の観測変数から少数の主成分という合成変数を作り出す手法で、観測変数が原因で主成分は結果です。
因子分析は観測変数に影響を与えている共通因子を抽出する方法で、共通因子が原因で観測変数が結果となります。因子分析では、主成分分析と同様に固有値の計算が必要になるだけでなく、少ない因子で寄与率が高くなる因子負荷量を求めるために、軸の回転という複雑な計算が行われます。
教師なし/教師あり機械学習とは異なり、強化学習は動的な環境で特化型人工知能に用いられます。「最終的なゴール」を設定し、それに向かった最適な答えを導き出すための方法を模索するやり方です。その方法として、試行錯誤を通じて、報酬(評価)が得られる行動や選択を学習します。
例えば将棋に関する強化学習は、敵軍の王将をとることに最大の評価として設定し、システムに将棋を教えるのに、ある手を打ったときに、その結果に対する得点を与えます。また、ロボットにある操作を教えるのに、操作の目的と人間の動作を観察させ、ロボット自身にやらせてその結果を得点で評価します。これを繰り返すことにより強くなります。
システムは最大の得点を得る(最良の手を打つ)ためのルールを見つけ出します(教師なし学習)。その結果に対して教師は新たな得点を与え(教師なし学習)、コンピュータはその得点によりルールを修正します。
かなり複雑なので、一定のレベルに達するまで、かなりの訓練期間がかかります。また、連続手に対する得点の与え方やコンピュータが獲得したルールが合理的であるという保証はありません。
例えば、サッカーの選手は一般の人に比べて、ラグビーや野球の技量修得が容易でしょう。このように、ある領域の知識を別の領域の学習に適用させる技術です。
ネコには和猫やペルシャ猫、イヌには秋田犬やスピッツなどの品種があり、その品種判別のモデルを作りたいとします。通常ならば、ネコのモデルとイヌのモデルを作成しますが、ネコのデータは多いのに対して、イヌのデータは少ないとします。イヌのモデルは精度の低いものになります。
このとき、ネコのモデル化で得られた知識を、イヌのモデルに応用することにより、精度を向上させることができます。
このように、大量の高品質なデータのある領域の知識を転移させることで、限られたデータしかない領域においても高精度なモデルを作成する技術を転移学習といいます。