初めての機械学習理論

[機械学習] : 初めての機械学習理論

はじめての機械学習

はじめての機械学習

はじめての機械学習

はじめての機械学習という本を読んで学んだことをまとめます。自分で理解した言葉としてまとめています。原文とは異なる可能性があります。またその他自分で勉強した内容についても紹介します。

機械学習とは

  • 「生物」以外の「機械」が学習を行う事。
  • 過去のデータやとある局面のデータを学習して新たな局面に当てはまる有効な知識構成を「汎化」と呼ぶ。
  • 機械学習はゲーム研究での適用が始まりで、人口知能と人間の対戦だった。
  • 評価関数の評価値が高くなるようなパラメータ調整が必要。=>パラメータ調整による機械学習
  • 数値だけでなく形などの構造も学習可能で、具体的な事例から一般知識を抽出する学習を「帰納的学習」と呼ぶ。
  • 与えられた原理や法則から具体的な事例を導く学習を「演鐸的学習」と呼ぶ。
  • 生物集団の進化モデルをベースにした学習を「遺伝的アルゴリズム」と呼ぶ。
  • 生物の個体が環境との相互作用によって知識を獲得するモデルを「強化学習」と呼ぶ。
  • 強化学習は環境からの報酬に従い、報酬を最大にする事が目的。
  • データマイニングテキストマイニングにも機械学習が用いられる。
  • 生物の神経組織の挙動モデルにより情報処理を行う仕組みを「ニューラルネットワーク」と呼ぶ。
  • この本での学習の一覧と概略は以下の通り。
学習 概略
パラメータ調整学習 時系列データから知識抽出
帰納的学習 暗記学習中心
教科学習 データ分類規則の学習
遺伝的アルゴリズム 規則的な学習
ニューラルネット パーセプトロン型のニューラルネットワーク

パラメータ調整による学習

  • パラメータ調整学習は与えられた学習データを自動的に調整。
  • 学習データの数値を数式に決定することを回帰分析という。例として最小二乗法などがある。
  • 時系列データの周期性や規則性を求めるケースに適用できる。
  • 気温の周期性を求める場合、学習データ(真のデータ)、予測結果、予測の真否を○×で表にまとめる等すると評価が分かる。

帰納的学習

  • Webサイト上のデータを大量に収集する場面にはテキストマイニングが有効。
  • テキストマイニングするには自然言語処理を必要とする。自然言語処理の流れは以下の通り。
  • 英文は単語がスペースで区切られているので形態素に分解するのは楽。日本語は大変。
  • 構文解析では生成文法に基づき文の構造を記号として置き換える。置き換えた内容を名詞や動詞句として判定する。
  • 意味解析は形態素と構文から判断。
  • 談話理解は上の処理を踏まえて文全体で判定。
  • n-gramというn個の記号や文字の並びから文の特徴を抽出する。
  • n-gram全体の個数を表にまとめて上位を見ると特徴が分かる。
  • n-gramの考え方はテキストの特徴を表す指標のtf-idfにも関連する。
  • 英語の場合n-gramは冠詞(the)や接続詞(and)が多くなる。
  • tf-idfとはある文章中の出現文字列が文章の特徴をどれだけ表しているかを表現する手法。
    • tf = term frequency idf = inverse document frequency
    • tfはその文章中の出現回数、idfは一般文章全体の割合。idfの値が大きいと出現頻度が少ない事を示す。

教示学習

  • 教示学習は教師あり学習とも呼ばれる。教師を無しに指示を受けずに学習を進める手法を教師無し学習と呼ぶ。
  • 教師あり学習
    • 効率で精密な学習。
    • 教師が正確な学習を教示。
    • 学習データに現れない状況への対応ができない。
    • 学習を汎化することができない。
  • 教師無し学習
    • 学習の汎化や学習データに依存しない学習が可能。
    • 誤った学習をする可能性がある。
  • 教示学習の適用例としてはカテゴリ分類がある。人間にどのカテゴリに属するかを示してもらい知識を学習する。
  • 分類知識の例としては電子メールのスパム判定がある。
  • 分類知識は分類システムの動作を決定する知識関数。
  • 知識分類は命題のYes or Noの判断木という知識の木構造で表現することができる。
  • 判断木は論理式よりも記述が冗長化することがあり、論理式と比較してデータ構造が大きくなってしまう。
  • 他の知識表現としてプロダクションシステムがあり、AならばBというルールを用いた表現。
  • 分類知識の学習は成功しない場合があることを前提にすべき。
  • 判断木の機械学習アルゴリズム
    • 学習セットが空ならば終了。
    • 学習セットの要素が全て単一カテゴリに属するならば終了。
    • 学習セットをサブセットに分類する処理を再帰的に繰り返す。
    • 属性が無く分類が終わっていなければ手続き終了。
  • プロダクションシステムではif 条件式 then カテゴリという式を当てはめる。
  • 特定の分類知識を使って学習データをセットを分類した場合、正しく分類された場合と壮麗外の場合を調べる事が可能。得点を与えて評価。
  • ランダム生成に基づく分類知識獲得アルゴリズム
    • 学習データセットの読み込み
    • 乱数に寄る分類知識生成
    • 分類知識の評価

進化的手法による規則学習

  • 教示的な学習は探索空間が膨大でどのあたりに有用な知識が存在しているかが不明な場合に有効。探索範囲が明確である場合は、系統的な探索を行う方が有利。
  • 人工知能の研究では縦型、横型、最良優先、最適化経路探索、Aアルゴリズム、A*アルゴリズムなどがある。
  • ランダム探索で一定の方向性を与える方法として焼きなまし法というものがあり、ランダムさを示すパラメータを初期値では高く設定し、そのパラメータを少しずつ修正して徐々に効率の良い探索点を探すこと。探索を1点とするのではなく複数の探索点を同時に調べる粒子群最適化法、蟻の群れの挙動を模擬することで探索を進める蟻コロニー最適化法などがある。
  • 進化的計算のなかでも遺伝的アルゴリズム(Genetic Algorithm, GA)は研究が進んでいて、探索空間の複数の探査点を同時に処理して行く。
  • 遺伝的アルゴリズムにおける評価関数を適応度関数と呼ぶ。選択にはルーレット選択、ランク選択、トーナメント選択など様々な方法がある。
  • 選択された遺伝子は子孫を作る事ができ、複製や一部改変することを交叉(crossover)、突然変異(mutation)がある。
  • 遺伝的アルゴリズムでは最良会を求める代わりにまずまずの結果を与える解を素早く求める事を目的としている。
  • 採用する遺伝的アルゴリズムの一般的な方法としてSimple GA(SGA)というものがある。
  • SGAの処理手順
    • 遺伝子プールの初期化
    • 交叉
    • 突然変異
    • 結果の出力
    • 繰り返し
  • エリート保存は世代交代で親世代のエリート遺伝子を子供世代にそのまま残すこと。子世代の結果が親世代と比較して低下しないようにする。

ニューラルネット

  • 生物の神経細胞やネットワーク挙動にヒントを得た機械学習システム。生物の神経網と明確に区別したい場合は人工神経路網、人工ニューラルネット等と呼ぶ事もある。
  • 神経細胞をモデル化したニュールセル(ニューロン、人工ニューロン、ニュール素子)をノートとして用い、複数のニューロセルを結合してネットワークを構成する。
  • ニューロセルは複数の入力を待ち、それぞれに特定の重み付けをした上で足し合わせをする。足し合わせた結果から閾値を引いて値を求める。数式で書くと次のよう。 xは入力、wは重み、vは閾値

u = \sum_{i}x_{i}w_{i}-v

  • uの値を適当な関数fに適用してニュール素子の出力zを獲得する。fは出力関数。出力関数はステップ関数やシグモイド関数のようになる。シグモイド関数は以下のように示される。

f(u) = \frac{1}{1 + e^{-u}}

  • ニューロセル単体でも情報処理が可能だが、ニュールセルを複数結合してニューラルネットを構成することで更に高度な情報処理機構を実現することが可能。ネットワークの最終的な出力が計算されることをフィードフォワードネットワーク(Feed Foward Network)または階層的なネットワークと呼ぶ。ニューロセルが自分自身にフィードバックして入力の一部になることをリカレントネットワーク(Recurrent Network)と呼ぶ。リカレントネッワークのうち、ニューロセルが互いに双方向に結合しているものをポップフィールドモデル(Hopfield Model)と呼ぶ。
  • パーセプトロンはフォードフォワード型のネットワークで特定の形式を持ったニューラルネットパーセプトロンは3層の階層構造をもったニューラルネット。入力層→中間層への加重や閾値は乱数で、中間層→出力層への加重や閾値は学習で決まる。
  • パーセプトロンでは入力層から中間層の結合荷重を変更しなくても、中間層から出力層への結合荷重を適切に選ぶことで論理積/論理和等の動作を行う事ができる。しかし中間層→出力層の調整では排他的論理和(XOR)に対応する出力はできない。入力層→中間層の荷重値によっては排他的論理和も実現が可能。
  • 学習データセットを与えて出力誤差が小さくなるように結合荷重と閾値を調整する。結合荷重と閾値の学習にはへブの学習則(Hebbian learning rule)を用いる。へブは頻繁に信号を伝達するシナプスの結合がより強化される。正しい結果を与える回路はより結合荷重を大きくして誤った結果を与える回路の結合荷重は小さくする事でネットワークとして学習が可能。
  • パーセプトロンの学習手続き
    • 適当な終了条件まで以下を繰り返す。
    • 学習データセットの中の一つの例として(x_{1},x_{2},o_{1})について以下を計算する。
    • (x_{1},x_{2})を用いて中間層の出力h_{i}を計算する。
    • h_{i}を用いて出力層oを計算する。
    • 出力層のニューロセルについて以下を計算する。
    •  w_{i} = w_{i} + \alpha * E * o * (1-o) * h_{i}
  • パーセプトロンの線形分離不可問題を回避して階層型のニューラルネットをより幅広い対象について学習を行うためには出力層に加えて中間層の結合荷重を調整する必要がある。バックプロパゲーション(back propagation、誤差逆伝播)
  • バックプロパゲーションの学習手続き
    • 適当な終了条件まで以下を繰り返す。
    • 学習データセットの中の一つの例として(x_{1},x_{2},o_{1})について以下を計算する。
    • (x_{1},x_{2})を用いて中間層の出力h_{i}を計算する。
    • h_{i}を用いて出力層oを計算する。
    • 出力層のニューロセルについて以下を計算する。
    •  w_{i} = w_{i} + \alpha * E * o * (1-o) * h_{i}
    • 中間層のj番目のニューロセルについて以下を計算する。
    • \bigtriangleup_{j} = h_{j} * (1-h_{j}) * w_{j} * E * o * ( 1 - o )
    • 中間層j番目のニューロセルのi番目の出力について以下を計算する。
    • w_{ji} = w_{ji} + \alpha  * x_{i} + \bigtriangleup_{j}

その他用語

用語 意味
学習データ、訓練データ 機械に学習させるデータ
正解データ 学習した成果を評価するデータ
素性/特徴量 現象を特徴付けるもの
ラベル 学習したデータをどれかのクラスに分類する単位
従属変数(目的変数) 説明したい変数、注目した変数
独立変数(説明変数) 説明するために用いられる変数
回帰分析 従属変数が独立変数によってどれだけ説明できるかを定量的に測定する事
交差検定 標本データをTraningSetとTestSetに分類し、TraningSetで学習をする。TraningSetの評価にTestSetを使う
マイクロ平均 Nセットのテストをする場合、テストを合計してから評価値を計算
マクロ平均 Nセットのテストをする場合、各セットを計算してからそれらを平均する計算
正確度(Accuracy) 値が真値に近いことを示す尺度
精度(Precision) 複数個の値の中でばらつきが少ない尺度
評価関数 精度を評価するための関数を利用して数値化する

マイクロ平均の式 : n_{i}回のテストのうち,x_{i}回が正解の場合
\frac{ \sum_{i=0}^Nx_{i} }{ \sum_{i=0}^Nn_{i} }
マクロ平均の式 : n_{i}回のテストのうち,x_{i}回が正解の場合
\frac{1}{N} \sum_{i=0}^N\frac{x_{i}}{n_{i}}