Section 1

第1章 弱教師付き学習の機械学習とは?

機械学習 #

人間と同じようにデータから学習していくしくみのこと。以下の3つに大別される。

  • 教師あり学習
  • 教師なし学習
  • 強化学習

教師あり学習 #

一番よく見るもの。訓練データにはラベルがついている。ラベルを付けることが「教師あり」。 学習の目標は訓練データのラベルとの関係性を究明すること。そして、まだ見ぬデータに対してその関係性に応じた予測を出すこと。

そしてラベルがついているので、厳密に最適化問題として定式化できる。

有名なタスクの例として、

  • 分類 複数のクラスのどれに属するかを分類する。離散値を出す。
  • 回帰 スコアなどの連続値を出す。
  • ランク付け 入力の相対的な順位を出力する。情報検索分野で使われる。

教師ありの特徴量抽出、または次元削減は、高次元の訓練データは扱いづらいことから前処理としてよく行われる。次元の呪いがあるので。

教師なし学習 #

ただ訓練データがあるのみで、ラベルはない状況。なので、数学的に明確に最適化する式を作るのが難しく、各データごとによりけりなad hocになってしまう。

有名なタスクの例として、

  • クラスタリング データがそれぞれどの集団に属しているかを分類する。
  • 外れ値検出 データの中から異常値を見つける。
  • 密度推定 データが生成されている分布として何があるのかを推定する。ベイズ推定は最初から分布の数などを固定した(ほんま?)
  • 次元削減 データの不必要な成分を削減する。主成分削減などは例。
  • 独立成分分析 従属する成分を取り除き、お互い独立した成分を抽出する。

強化学習 #

未知の環境下で、あるエージェントが意思決定を下すポリシーを考え、改良を行い、最終的にどんな状況下においても利得を最大化するような動きである。 教師あり、なし学習と全く違う。違いとして、以下のサイクルをずっと回すことが挙げられる。

  • 決定を下す
  • それによって報酬を獲得する。
  • 環境に反映
  • 環境に応じて、自分が新たな状態に移る。
  • その新しい環境でさらに考える

このサイクルを回すのは、オンライン学習という。逆に教師あり、なし学習は一度にすべて学習するので、(1回のバッチだけで行う)バッチ学習という。

しかし、回帰、分類、外れ値検出などは強化学習によっても効率的に行える。

強化学習の難しいところは、1歩先までしか見えないのに、今の最善が将来の最善とは限らないことである。今の決定を捨てれば最善がまた現れるかもしれないが、捨てる判断は難しい(exploration-exploitation tradeoff)。このように明確に決定を下したから最終的な結果は見えないことから、ある意味弱教師つき学習ともいえる。

分類タスクの各要素 #

この本では、分類タスクにおける、弱教師付き学習を主に論じる

分類タスクは訓練、テストの2つの段階がある(強化学習以外の機械学習全般そうでは? by me)訓練段階で訓練し、テスト段階で性能を評価する。 識別器の訓練では、訓練データ、識別器、学習基準、使用する最適化アルゴリズムを考慮しなければならない。

分類器 #

データを入れて各クラスのどれかを出力する写像。この写像の大枠(シグモイドとか、ガウス分布だとか)を、モデルという。表現力の高いモデルを使うといいというわけでもなく、過学習する危険性が。表現力が低すぎるといくら訓練しても最終的な理想なモデルにはたどり着かない学習不足=。

学習基準(Learning Criteria) #

どれぐらい上手く学習できているのかを評価する学習基準。よく使われているのは二乗誤差。だが、単に二乗誤差を減らすと過学習になるので、パラメタ$\mathbf{w}$に対して、定数$\lambda$を考えた$\lambda ||\mathbf{w}||$という正規化項も入れることで、係数ベクトルが非常に大きくなって過学習するのを抑止できる。

最適化アルゴリズム #

どのように最適化問題を解くのか。最小化したい式を見つけて、最小化するパラメタを見つける(その解が本当に最小化しない=局所最適解としても仕方ない)。手法は基本的に勾配降下法。計算する時、データが多いとすべてのデータを使って毎回の降下ベクトル、量を決めるのは計算上大変なので、数学的に裏付けされたデータの一部=ミニバッチのみを使用して計算する形=確率的勾配降下法(stochastic Gradient descent)。

なお、毎回進める量が大きすぎると収束しないし、小さすぎてもなかなかゴールまでたどり着かない。ちょうどよいというのが必要である。

機械学習の各側面 #

機械学習は古くから、Logical, Biolgically, statisticalの3つの側面がある。

  • logicalはルールベース。if文を重ねるという感じ。
    • 明確な解釈可能性を持つが、ノイズが混入するデータを実際に分類するときには過学習を引き起こす。
    • ノイズが混入して矛盾したりすると対処できなくなる。
  • biologicallyは生物の器官自体の挙動もまだ分からないところが多い中、今は実用的ではない。
  • statisticalは統計的に見ること。分布を仮定するベイズ推定ならば、ノイズで誤差が混入しても大丈夫。
    • 現在の機械学習の最も重要な側面でアプローチ。弱教師付き学習もここの分野の話。

頻度主義で学習を行うと、やりやすいし情報理論学習などで応用されている。正規化項を入れて過学習を防ぐのが大事。

ベイズ主義は機械学習で一般的。事前分布が正規化項の役割を果たすが、どのように事前分布を設定するのかが難しい。共役分布族を選ぶと計算が楽。

識別関数、識別モデル、生成モデルについて #

識別関数とは、$\mathbf{x}$を与えたら、$y$を出力する関数というかたちの識別器。創コストは低いが、どれほどの確率で決定されたのか、などの情報を知ることはできない野がデメリット。例としてSVM(疑似的にしか確率を補完できない)

識別モデルとは、$p(y | \mathbf{x})$を、直接推定する手法。SVMと違って確率として推定するので、補完せずとも確率が得られるが、計算コストは高い傾向にある。この本は識別モデルを中心にやる

生成モデルとは、ベイズの定理を利用して、下式の右辺を全部求めてからわざわざ計算して、$p(y | \mathbf{x})$を求めるものである。右辺の各パーツの計算は大変であるが、$p(\mathbf{x} | y)$がわかれば各クラスに所属する点をサンプリングできる(サンプリングなどと書いてるので、ベイズ推定は生成モデルが前提ですね)

$$ p(y | \mathbf{x}) = \frac{p(\mathbf{x} | y) p(y)}{p(\mathbf{x})} $$

なお、識別モデルも生成モデルもどのように各項を学習するのかについてはこの本は今の段階では触れられていない。あくまでまだ概念の話。

さらに、識別モデルと生成モデルの中間にあたる、密度比推定がある。密度関数自体はわからなくていいが密度比がわかればよい。これはかなり重要な思索である(論文とか見るとわかる経験談)

Transduction #

普通は訓練データで訓練し=induction、ラベルの予測を行う=deduction。しかし、ラベルがわからなくても、テストデータ自体がわかるときは識別器を介在せずに直接予測してもいい=Transduction。

例えば、二値分類において、訓練データはわずかしかないが、テストデータが大量にある場合を考える。 そもそもテストデータを事前に入手できるなら、訓練なんてせずに教師なし学習でクラスタリングすればいいじゃないか、という考え。

データ収集の改善と弱教師付き学習 #

ちゃんとラベル付けされてるデータはどうしても少なくなりがちなので、半端にラベル付けされたデータで訓練を行う弱教師付き学習は重要(本書の存在意義)。

全部ラベル付けが不能ならば、効率良く学習できるような点だけを選んでラベル付けをする、active learningというものがある。また、そもそもフリーランスという名のもとに労働力を搾取するクラウドソーシングを使えばコストを抑えられる。ただし、クラウドソーシングは非専門家につけてもらうので、信頼度は下がる。

また、すでに訓練済みの似たことをするも出るから、データを借りて学習を行うことで手間を減らす転移学習=transfer learningもある。これの発展形として、お互いに関連する複数の課題を相互に情報を共有詩ながら同時に学習するのは、マルチタスク学習という=multitask learning。

だがこの本の本筋は、ラベルの情報がより弱いデータで訓練する弱教師付き学習。一例としては、半教師付き学習=semi supervised learningがある。具体的な手法は ここを見るとわかりやすい。半教師付きは弱教師付きの一種らしい。