教師あり学習(Supervised Learning)

0

1. 概要

教師あり学習(Supervised Learning)は機械学習の1つの学習方法カテゴリーを指す.入力データから出力データを推定する関数を,$N$個の学習用の[入力データ – 出力ラベル]のペアを用いてモデルのパラメータを推定する学習方法である.

ここではまず,教師あり学習の概要をつかんでもらうために,教師あり学習モデルの学習手順と,およびデータセットの概要を「動物画像の3クラス分類」というタスクを例に,説明していきたい.

教師あり学習を行う前に,まず入力ベクトルに対する出力ラベルの対応具合を予測モデルに教え込ませたい学習用データセット(Training dataset)を用意する.まず作業者の手作業によって各入力データに対応する正解をあらかじめ用意しておく.例えば3種類の動物「猫(クラス1)」「犬(クラス2)」「パンダ(クラス3)」のうちいずれかの動物が一匹のみ写っている画像を入力として,その動物が何の動物に相当するかのクラスを識別するシステムを考える.この時,正解データの各画像には,手作業で人間がクラス番号の1,2,3のいずれかに予め割り当てる.

機械学習なので,学習フェーズとテストフェーズの2つで構成される.

[学習] :予め準備しておいた正解ペアの学習データセットから,データセットの「データ(入力) -> ラベル(出力)」の挙動をなるべく再現でき,かつデータセットに存在しない入力データに対しても,そのデータを観測した時に与える正解ラベルに近い機械学習モデルによる関数を,アルゴリズムごとに異なる学習アルゴリズムを用いて自動的に学習する(例:Support Vector Machinesや,クロスエントロピーでクラス識別を学習するCNNでは,ロス関数も最適化方法も異なる).

[テスト]:学習が済んでパラメータの最適化が完了した予測モデルを,未知のサンプル画像が入ってきた時に入力することで,学習データセットと同じような予測ラベルを出力することができる.

2. 入力と出力のデータの中身

概要の具体例で大まかに教師あり学習の手続きをつかめたと思うので,今度は使用するデータを一般化して定義を述べる.

機械学習の入力は,通常ベクトル値$\bf{x}$であり,これを特徴ベクトル(Feature Vector)と呼ぶ.特徴ベクトルを構成する各次元のスカラ値$lx_i$を特徴(Feature)と呼び.それら特徴量のスカラ値をN個集めて構成したN次元のベクトル$\bf{x} = [x_1,x_2,\ldots,x_N]$として特徴ベクトルが構成される.英語では,特徴が複数次元分固まった集合をベクトルとしてみなしたものなので,学術論文等では特徴ベクトルとは呼ばずにFeaturesと呼ぶことが標準的である.(※ 深層学習ではFeatureではなく,表現(Representation)と呼ぶことが主流)

教師あり学習では,画像や音や言葉の生データをそのまま特徴ベクトルとして推定器に入力することは少なく,通常は生データを特徴ベクトルに変換する特徴抽出(Feature Extraction)を行い,識別性の高い(discriminative)特徴ベクトルに変換し,その変換/抽出された特徴ベクトルとラベルを用いて,関数(=予測モデル)の学習を行う.特徴ベクトルが高次元ベクトルの場合は次元の呪いの影響も受けやすいので,PCAや線形スパースモデルなどの次元削減手法で低次元ベクトルに変換したのち,それらの次元削減済み特徴ベクトルから予測モデルを学習することも多い.

それが,画像認識CNNが登場して以降の画像認識系の教師あり学習においては,CNN自体が特徴抽出の役割も予測モデルの役割も両方兼ねてEnd-to-End学習を行うことが標準的になり,事情が変わったといえる.Deep Neural Networkのネットワーク構造の内部において,どこからどこまでが古典的な「特徴抽出」に相当するかを擬似的に考えて古典風に考えやすくすることは多いが,特徴抽出モデルや次元削減モデルを,別途分離して学習することが少なくなってきている.もちろんEnd-to-Endで学習して精度が出しづらい問題設定や,データセットの性質がある場合は,複数のネットワークを分割して学習し,テスト時にそれらの予測スコアをヒューリスティックな重みで足し合わせたものを最終スコアにする場合ある.

一方,特徴ベクトルから推定したいスカラー値$y$もしくはベクトル値$bf{y}$のことを,機械学習ではラベルと呼ぶ.識別問題のラベルは正(Positive)/負(Negative)の2値ラベル,もしくは$N$個のクラスを識別する場合はN値化された離散値をラベルに用いる(冒頭の動物3クラスの例はこちら).回帰問題では,連続値のスカラやベクトルをラベルに用いる(例:OpenPoseなどの人物姿勢推定モデルで回帰された各関節の2次元座標値や,カメラ姿勢の推定でのカメラの6 DoF,あるいは視線推定で眼画像から回帰されたスクリーン上の2次元座標など).

汎化誤差と過学習

学習データセットの入力サンプル(の分布)に対してのみ予測が正確でも,未知サンプルへの予測精度が悪いと学習データセットに近いサンプルにしか通用せず意味がない.したがって,教師あり学習では『汎化誤差(generalization error)が最も小さいモデルを,最適な予測モデルとして(できる限り自動で)選択する』ことが第一目標となる.

もし学習データにあまりにも強く関数を適合させてしまうと,過学習(over-fitting)されたモデルが学習されてしまい,データセット(の分布)に存在しないサンプル(out-of-sample)ではうまく予測ができない「汎化性能の良くないモデル」が学習されてしまう.そこで,教師あり学習ではたとえば交差検定(cross-validation)などの対策を行い,モデルの過学習具合を学習後に確認するなど,データセットに存在しないサンプルも用いて学習済みモデルの性能を検査することで,モデルの汎化性能を計測し,汎化性能の高いパラメータを探索できるようする.

汎化性能が性能の良いモデルを教師あり学習で学習するには,学習データセットとして「(1)モデルのパラメータ数に対する十分な量がある」,(2)データとラベルの関係性の十分な多様性のある」という2つの条件を満たすものを用意することが肝心である.経験的リスク最小化の場合だと正則化(regularization)構造化学習を採用して,過学習による悪影響を軽減しようとすることが多い.またDeep Learningの代理ロス最小化では,早めの停止(early-stopping)ドロップアウト(Dropout)などを利用するなどして,Deep Learning特有の過学習対策を行って汎化性能を上げる努力を行うことが多い.

References

0