書籍転載:Thinking Machines ― 機械学習とそのハードウェア実装(2)

書籍転載:Thinking Machines ― 機械学習とそのハードウェア実装(2)

機械学習における学習方法と性能評価の基礎知識

2017年4月28日

機械学習の基礎知識として、学習用データセットの準備と加工、学習方法(勾配降下法/誤差逆伝播法)やその分類(教師あり学習/教師なし学習/強化学習)、性能評価と検証について概説する。

高野 茂幸
  • このエントリーをはてなブックマークに追加

 前回は、書籍『Thinking Machines ― 機械学習とそのハードウェア実装』から「第1章 イントロダクション、1.1 機械学習の認知、1.2 機械学習と応用範囲」を転載しました。今回は、「1.3 学習と性能」を転載します。

書籍転載について

 本コーナーは、インプレスR&D[Next Publishing]発行の書籍『Thinking Machines ― 機械学習とそのハードウェア実装』の中から、特にBuild Insiderの読者に有用だと考えられる項目を編集部が選び、同社の許可を得て転載したものです。

 『Thinking Machines ― 機械学習とそのハードウェア実装』(Kindle電子書籍もしくはオンデマンドペーパーバック)の詳細や購入はAmazon.co.jpのページもしくは出版元のページをご覧ください。書籍全体の目次は連載INDEXページに掲載しています。

ご注意

本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどはBuild Insiderのそれとは一致しません。あらかじめご了承ください。

1.3 学習と性能

 ここではニューラルネットワークを中心とした学習と性能について説明するが、ニューロモルフィックコンピューティングにおいてもその事前準備や性能評価等は同様である。

1.3.1 学習前の事前準備
  1. データセットの用意
    学習や学習結果の性能評価に用いる各データにラベルを付加するのはそのデータ量の多さから機械学習システム開発者にとって労力を要する作業となる。また、各開発者の間で共通の標準的なデータセットがあれば、結果の比較・解析が可能になる。このため、表1.1に示すような各推論問題に対してラベルが付加されたデータセットが公開されている。
    Category Name Creator Descriptions Web Site
    Image MNIST NYU Handwritten Digits 10/100 【37】
    CIFAR10/100 Categories of Natural Images 【38】
    Face Multi-PIE CMU 337 subjects, 15 view points and 19 illumination conditions in four recording sessions for a total of more than 750,000 images 【39】
    Labelled Faces in the Wild UMASS 13,000 images 【40】
    Text 20 newsgroups Jason Rennie classification task, mapping word occurrences to newsgroup ID 【41】
    Reuters Corpuses text/topic prediction 【42】
    Speech Corpus TIMIT Speech Linguistic Data Consortium phoneme classification 【43】
    Music MuseData Stanford University electronic library of classical music scores 【44】
    Recommend MovieLens 100K/1M ratings for 1682/3900 movies by 943/6040 users subdivided into five disjoint subsets 【45】
    表1.1 Dataset Examples.
  2. 学習データの加工
    使用する学習用データ数とその時点での学習結果、得られている推論性能の相関について、学習用データ数が少なくても推論性能が良い場合、効率良く学習できていると評価できる。本書では、一つの学習用データ(学習用入力ベクトル)を訓練サンプル、複数の訓練サンプルで構成されたデータセットを訓練データと呼ぶことにする【36】。モデルを学習させるにあたり、学習効率を上げるために訓練データを加工しておくのが一般である。また、システムとして高い推論精度を持たせるためのモデル構成上の工夫もある。
    • データの正規化(Data Normalization)
      各訓練サンプルに線形変換を施し、その成分毎の平均や分散を揃える【36】
    • データ拡張(Data Augmentation)
      訓練データが少ないために発生する過適合(Over fitting。あるいは過学習という)を避けるために訓練データに何らかの加工を施してデータ数を水増しする【36】
    • モデル平均(Model Averaging)
      入力層と出力層が同じ複数のモデルについて出力の平均値を答え(期待値)とする【36】。同じモデルでパラメータの初期値を変えるアプローチや、異なるモデルで同じデータで訓練させるアプローチなどがある。
    パラメータの初期値はランダムに設定するが、この初期値により各パラメータは学習を経て到達する値が変わる。また、もっともらしい初期値を設定する方法として、ネットワークモデルの各層に対して事前に学習させる事前学習(Pretraining)を行うのが一般である*1
  • *1 一般的なパラメータの初期化方法は付録Aで後述している。
1.3.2 学習とその方法
  1. 勾配降下法と誤差逆伝播法
    訓練データと訓練サンプルとは、ネットワークモデルを学習させる使役的な行為に対する視点であり、学習を課する側の視点での学習データや学習サンプルに対する呼び方と言える。任意の訓練サンプルにおいて、入力値と期待値に差がなくなるように学習する事でネットワークモデルの目的とする推論性能を得る。この差を表す関数を一般に誤差関数あるいは損失関数という(コスト関数、目的関数と呼ぶ事もある)。
    一般に学習行為は重みなどで構成されるパラメータセットで構成された関数として得られる誤差関数の値が収束する様に、何らかの方法で更新する仕組みによる、いうなれば反復計算の事と言える。
    • 勾配降下法(Gradient Descent Method)
      誤差関数を重みwを引数とする関数として捉え(Ew))、この誤差が最小になるように反復計算で収束させる方法を勾配降下法(Gradient Descent Method)と呼ぶ。何らかの初期値を持つパラメータを反復計算で大局的な極小点を見つけることは一般に難しく、代わりに局所的な極小点に近づける方法である。極小点はEw)の勾配値がゼロなので、∂Ew)/∂wがゼロに近づくように反復計算を行う。
    • オンライン学習とバッチ学習(Online Learning and Batch Learning)
      各訓練サンプルに対して勾配降下法の操作を行う学習をオンライン学習(Online Learning)あるいは確率的勾配降下法(SGD; Stochastic Gradient Descent)という。また、訓練データに対して勾配降下法を行う学習をバッチ学習(Batch Learning)という【36】
      訓練データサイズが大きい場合、バッチ学習はそのデータサイズに応じた学習時間と中間データ量を要するので学習後の推論性能検証の効率が低くなりやすく、相応の計算機リソースを必要とする。そこで訓練データをプラットフォームに合わせて分割し、分割した単位で学習させる方法をミニバッチ学習(Mini-Batch Learning)といい、分割の単位を一般にエポック(Epoch)という。
    • 誤差逆伝搬法(Back Propagation)
      勾配降下法に基づいた各層各パラメータの更新量を、上位層側(出力層側)から得る値を利用した計算により得る方法である。従って、出力層での誤差関数等の値からパラメータの勾配降下量を計算し、入力層方向へ各層各パラメータの更新量を決める値を計算しながら逆方向へ伝搬させていく【46】。誤差逆伝播法は付録Aで述べている。
  2. 学習方法の分類
    脳を模したネットワークモデルの学習方法は三つに分類できる。推論結果を基に各パラメータ値を補正するため学習時に正答判定を行い、これを反映する教師あり学習(Supervised Learning)、学習時に正答判定を行わず、自律的に推論結果を補正する教師なし学習(Unsupervised Learning)があり、また他に報酬獲得を利用する強化学習(Reinforcement Learning)がある。
    • 教師あり学習(Supervised Learning)
      教師あり学習(SL; Supervised Learning)はラベルのある訓練データを利用してパラメータを更新する学習方法である。出力層で誤差関数や報酬が与えられる。
    • 教師なし学習(Unsupervised Learning)
      教師なし学習(UL; Unsupervised Learning)はラベルのない訓練データから隠れ層のパラメータを更新する学習方法である。出力層で誤差関数や報酬が与えられない。
    • 強化学習(Reinforcement Learning)
      強化学習(RL; Reinforcement Learning)は環境との相互作用によって学習する方法である【47】。強化学習対象はその行動の成功率を報酬(Reward)として受け取り、受け取った総報酬量が最大になるように複数の行動候補から選択することを学習する。
    訓練サンプルにラベルのあるものとないものが混在している訓練データに対応したLadder Network(付録B.3で後述)やDeep Generative Model(3章で後述)のようなネットワークモデルもあり、この場合の学習方法を半教師あり学習(Semi-Supervised Learning)という。
    ニューラルネットワークモデルの学習における訓練方法を工夫することで推論性能を向上させる研究もある。敵対的訓練(Adversarial training)は未加工の入力と加工済み入力データをクラス分けするネットワークモデルの学習プロセスであり、加工済みデータに対するロバスト性だけでなく未加工のデータについて汎化性能(後述)を向上させる【48】。敵対的訓練はラベル付き訓練データセットが学習に必要である。Virtual Adversarial Training【48】は訓練データ中にラベル付き訓練データが少数存在する環境に対応させた敵対的訓練の拡張モデルであり、教師ありと半教師あり学習で汎化性能の良い推論を可能にする。
1.3.3 性能評価と検証
  1. 推論性能評価指標
    設計した機械学習モデルの推論性能は推論精度、汎化性能、適合率、再現率、Fスコアで評価する。
    • 推論精度(Accuracy)
      推論の確からしさを示す一般的な指標である。入力ベクトル総数(推論総数)に占める推論の正答数の割合である正答率で表す。また、推論誤差Eとは推論精度A(1 ≥ A ≥ 0)に対してE = 1 − Aで得られる不正答率を指す。推論のスループットが高くてもこの精度が低ければ実効スループット(例えばスループットと推論精度の積算値)は低いと言える。
    • 汎化性能(Generalization Performance)
      訓練データで学習したネットワークモデルが実際に使用される時の推論精度の事であり、訓練データ以外の一般入力データ(ベクトル)に対する推論精度あるいは推論誤差を示す指標である。過適応や未適応状態のネットワークモデルは汎化性能が低い、つまり設計開発したネットワークモデルについて学習の結果としてそれぞれパラメータセットが訓練データ専用となってしまったり、訓練データを反映していないパラメータの典型的な例である。
      • 過適応(Over fitting)
        訓練データ等、特定のデータセットに過剰に適応してしまう、ネットワークモデルの学習時に発生する問題を過適応、あるいは過学習という。
      • 未適応(Under fitting)
        訓練データに対して適応が不十分な状態であり、ネットワークモデルの学習時に発生する問題を未適応という。
      過適応と未適応に対応するために統計的機械学習では一般に誤差関数に正則項(Regularization)を追加してパラメータの更新の強弱を調整している。
    • 適合率(Precision)と再現率(Recall)
      推論精度はデータに偏り(Skewという)がある時その確からしさを保証できない。また、テストデータの正解と不正解の割合やその時の推論について取りこぼしの割合を鑑みて評価する必要がある。
      • 適合率(Precision)
        推論の確度を示す指標として真に正解した割合を評価するために適合率を使用する。例えば癌検出では誤認識は許されないので適合率で測る。対象集合がStarget、正解集合Sokとした時、適合率=((Starget ∪ Sok)−(Starget ∩ Sok))/Stargetである。どの程度患者を正解しているかの割合を示す。
      • 再現率(Recall)
        推論が推論対象のデータ全てに対してもれなく(取りこぼしなく)正しく判定している割合を示す指標である。癌の認識時に全患者数中で正しく判定できているかを再現率で測る。対象集合がStarget、正解集合Sokとした時、再現率=((Starget ∪ Sok)−(Starget ∩ Sok))/Sokである。正解がどの程度患者をカバーしているかを示す。
    • Fスコア(F Score, F1 Score)
      適合率と再現率は両方を同時に100%にすることは一般に難しい。適合率と再現率の両方からネットワークモデルの性能を総合的に評価する時にFスコアを使用する。Fスコア =(2×適合率×再現率)/(適合率+再現率)である。
  2. 推論性能検証方法
    性能評価用のパラメータ値を得るために学習に使用した訓練データを性能評価に使用すると過適応(Overfitting)、あるいは未適応(Underfitting)の状態を含んだ見積り値になるため、汎化性能を検証できない。例えば過適応は設問に対する答えを知っているテストで高得点を得ることに等しい。従って学習に使用する訓練データを含まない別の試験用の訓練データ(テストセットと呼ぶ)を用意して汎化性能を見積もる必要がある。
    さらに設計したネットワークモデルの最適なパラメータ数(次数)を検証する場合は訓練データとテストセットを含まない別の検証用の訓練データ(検証セットという)を使用して最小となる次数を探索した上で、その次数のネットワークモデルについてテストセットを使用して汎化性能を検証する必要がある。この解析検証の妥当性を含む検証方法を交差検証(Cross-validation)という。一般に全訓練データを訓練データ、テストセット、そして検証セットに分割して性能検証を行う。
  3. 学習性能評価指標
    • 学習曲線(Learning Curve)
      訓練データサイズを横軸に推論誤差あるいは推論精度をプロットした曲線を学習曲線という。一般論として推論精度は訓練データサイズに対して比例しない。ある程度のサイズがないと推論精度は向上しないし、ある程度以上の訓練データ量になると対数関数の様に訓練データサイズに対しての推論精度の向上率は鈍化する。
    • 学習速度(Learning Speed)
      学習が訓練データ数に対してどれだけ推論精度が向上しているかの比率で、学習曲線の傾きと言える。一定の傾きになる事はなく、ある程度以上の訓練データ量になると推論精度の向上率は鈍化するので傾きである学習速度も低下する。

 次回は、「第1章 イントロダクション、1.4 機械学習の位置づけ」を転載します。

【参考文献】

※以下では、本稿の前後を合わせて5回分(第1回~第5回)のみ表示しています。
 連載の全タイトルを参照するには、[この記事の連載 INDEX]を参照してください。

1. 機械学習の定義と応用範囲、認知されるキッカケとなった出来事

機械学習はいまなぜ広く認知され注目されているのか。知っておきたい代表的な出来事を紹介。また、機械学習とは何かを定義し、その適用範囲を分類する。

2. 【現在、表示中】≫ 機械学習における学習方法と性能評価の基礎知識

機械学習の基礎知識として、学習用データセットの準備と加工、学習方法(勾配降下法/誤差逆伝播法)やその分類(教師あり学習/教師なし学習/強化学習)、性能評価と検証について概説する。

3. 第4次産業革命とは? 機械学習とブロックチェーンの役割

機械学習の新技術活用は第4次産業革命と呼ばれるが、その意味を説明。さらに、機械学習がデータ処理系であれば手続き処理系に相当するブロックチェーンについても概説する。

4. マイクロプロセッサからGPU/FPGAの利用へ ― 機械学習ハードウェア実装に関する時代変遷

計算機システムのハードウェア実装では、従来の主要要素であるマイクロプロセッサの性能向上が停滞してきたことから、GPUやFPGAが採用されるように時代が変遷してきた。その内容について概説する。

5. 機械学習ハードウェアの基礎知識: 特定用途向け集積回路「ASIC」

特定アプリケーションに特化した回路を集積する方法であるASICについて概説。アプリケーションを表現するアルゴリズムのソフトウェア実装とASIC実装を比較しながらASIC実装の特徴と制約を説明する。

サイトからのお知らせ

Twitterでつぶやこう!