未分類

例:線形回帰

機械学習の単純なモデルとして線形回帰を見てみます.

タスクT

訓練データがn次元の特徴量ベクトルで,出力がスカラーである問題を次の式でモデリングし,未知の値に対する出力を予測します.

y=\bf{w}^\mathrm{T}\bf{x}

ここでwは係数,xが入力でyが出力です.

性能評価P

訓練データとは別のm個のテストデータと正解を用意し,平均二乗誤差の大小で性能を評価します.

正解を縦に並べたベクトルを\bf{y},回帰式の出力を縦に並べたベクトルを\bf{\hat{y}}とすると

MSE=\frac{1}{m}\sum_{i}(\bf{y}-\bf{\hat{y}})^{2}_{i}=\frac{1}{m}||\bf{y}-\bf{\hat{y}}||^2

となります.

/*MSEはmean square errorの頭文字です*/

wの決定

どうやったらwを決定できるかですが,訓練データのMSEを最小化すればうまくいきそうだということが直感的にわかります.

/*テキストの次のセクションで正当化するそうです.*/

訓練データのMSEが最小化されるのはMSEのwに関する勾配が零ベクトルとなればよいので,/*二次の条件を見ないでいいのはMSEが明らかに極大値を持たないからですね*/

\nabla MSE=\bf{0}

\frac{1}{m}は計算に関わってこないので無視し,\bf{\hat{y}}=\bf{Xw} \ \mathrm{where}\ \bf{X}=(\bf{x_1} \bf{x_2} ...)^\mathrm{T}であることを用いれば

\nabla(\bf{Xw-y})^\mathrm{T}(\bf{Xw-y})\\    =\nabla((\bf{Xw})^\mathrm{T}\bf{Xw}-2(\bf{Xw})^\mathrm{T}\bf{y}+\bf{y}^\mathrm{T}\bf{y})\\    =\nabla(\bf{w}^\mathrm{T}\bf{X}^\mathrm{T}\bf{Xw}-2(\bf{Xw})^\mathrm{T}\bf{y}+\bf{y}^\mathrm{T}\bf{y})\\    =2\bf{X}^\mathrm{T}\bf{Xw}-2\bf{Xy}=\bf{0}\\    \Rightarrow\bf{w}=(\bf{X}^\mathrm{T}\bf{X})^{-1}\bf{Xy}

となります.

未分類

タスク,性能評価,経験

機械学習アルゴリズムとは

経験Eを積み重ねながらあるクラスのタスクTを処理するコンピュータアルゴリズムで,何らかの方法Pでそのアルゴリズムの性能を評価すれば,Eをより多く積み重ねていくにつれて性能が上がるもの

とあります.

タスクT

Tには次のような種類があります.

  • 分類
  • 入力値がところどころ欠けた分類
  • 回帰
  • 転写(複数の出力を持つ分類)
  • 確率密度推定
  • 異常検知
  • 模倣
  • 欠損値の予測

/*確率密度推定はここに挙げた他のすべてのタスクを一般化したものです.他のすべてのタスクは結局確率密度推定に行き着くらしいです*/

性能評価P

AIの性能の評価方法としては,トレーニングデータとは別に用意したテストデータでどれだけうまく結果を出せるかというのを見ます.

その「結果」というのはタスクTに関連した「損失」(分類の失敗回数,回帰によって得られた式からのテストデータの乖離等)がどの程度になるかによって測られます.

しかし,損失の決定方法を決めるのは時に難しいことがあります.

例えば回帰において,全データから平均して近い式を得ることをよしとするのか,幾つか外れ値があってもその他のほとんどのデータでうまく当てはまった式を得れば良いのか,といった場合です.

また,性能を上げていくためにはなめらかなシグナル(勾配など)を利用する必要がありますが,しばしばシグナルがなめらかでなかったりします.

例えば,分類を行わせる場合,評価関数のパラメータにごく僅かな変化を加えても分類結果は全く変化しないでしょう./*つまり,損失の大きさは変わらない,と*/

したがってどのようにパラメータを変更すればより性能が上がるのか検討をつけることが出来ません.

このように直接的に性能評価しづらい場合には間接的に性能評価を行う「代理の性能評価関数」を使います.

経験E

経験にも様々な種類がありますが,最もシンプルなのは例題となるデータセットをアルゴリズムに観察させるものです.

/*active learningやreinforcement learningではより豊かな経験を詰むために追加データを要求したり環境とやりとりし続けたりするらしいです*/

データセットは対象となるデータの特徴量を集めたものです.

例えば画像だったら輝度などがデータセットの構成要素となります.

例となるデータの特徴量ベクトルを行ベクトルとする行列を計画行列(design matrix)といいます.

/*このテキストでは各アルゴリズムが計画行列をどのように処理するかということを解説していくそうです*/

計画行列を得るためにはデータが特徴量ベクトルで表せる必要がありますが,画像サイズが異なるなどうまくベクトルに出来ない場合もあります.

そのような場合にも対処法は存在し,後ほど述べられます.

また,各例データにはラベルが付与されることがあります.(人が写った写真には0,車が写った写真には1など)

ラベルは数値であることもあれば文字列であることもあります.

未分類

ノーフリーランチ定理

/*Yoshua Bengio先生のテキストではイントロダクションの後は線形代数,統計学,数値最適化の初歩の復習が載っていましたが,私自身にとって既知であり,本題はDeep learningである事を考慮して省きました*/

/*TODO:no free lunch theoremと書いてあったのでググってみました*/

No Free Lunch Theorem—理想の**の探し方—

によると,No Free Lunch定理(NFL)とは

「すべての評価関数に適用できる効率のよいアルゴリズムは存在しない。」

とのことです.

証明はどうしてもよくわからなかったのですが,

  • 候補空間、評価値空間は有限である。

  • 探索履歴のみを見るような探索アルゴリズムに限る。

  • アルゴリズムの効率は評価関数の評価回数に関するものである(同じ点を何度も評価する可能性を考慮しない)。

  • すべての評価関数に対して平均した場合の話である(すべての問題に対して平均したという話ではない)。

  • アルゴリズムが探索空間や評価関数を変化させることはないとしている。

という条件を満たす最適化アルゴリズムで,どんな状況でも少ないステップ数で答えを出すものは存在しないと言っているみたいです.

ノーフリーランチ定理 – Wikipedia

によると,ある問題に特化したアルゴリズムがあるなら汎用のアルゴリズムではなくそっちを使うべきだ,といった文脈でよく使われるみたいです.

/*最初のリンクでは万人受けする人物はいないという比喩を使ってわかりやすく説明されているので読んでみるといいかもしれません*/

未分類

これからの課題

/*イントロダクションなのにもうこれからの課題が提示されてしまいました*/

AIと人間や他の動物との間には大きな情報処理の方法のギャップが存在しています.

これらの情報処理の方法の根底にある原理を基礎科学的に解明する必要があります.

また,近年のDeep learningの成果は教師あり学習によってもたらされたものが多いのですが,教師なし学習や教師あり/なし混合でも同じように成果を出す必要があります.

しかし,教師あり学習でも大量のニューロンを使って計算しており,数値最適化の難しさも相まって大量の計算リソースを消費しています.

これらの問題を解決することがこれからのDeep learningの発展に不可欠でしょう.

未分類

Deep learningの中心的トピックス

よく研究されている機械学習の分野として,教師あり分類というものがあります.

教師あり分類とは,カテゴリに関連付けられた入力を見せられて,新たな入力を学習成果に基づいてカテゴリに分類するというものです.

/*(動物の画像,動物),(食べ物の画像,食べ物)といった例を大量に見せられて学習した後犬の画像を見せられて「動物」と答えるって感じですかね*/

ここではたくさんの例から一般化した知識を見つけ出すのが重要となってきます.

与えられた例からどの程度知識を一般化させ,応用できるかという能力を「容量」といいます.

/*日本語訳された用語があれば教えてください*/

容量が与えられた例の数に対して大きすぎる場合,「当てはめ過ぎ」が起こります.

この場合,与えられた例においてはちゃんと知識を応用できるのに,新たな入力に対しては今までの例に囚われすぎてまともな出力を出すことができません.

また,「当てはめなさすぎ」という現象も起こることがあります.

当てはめ過ぎは統計学的な問題であるのに対し,当てはめなさすぎは様々な理由が絡んでいるためあまり研究が進んでいません.

当てはめなさすぎの主な理由は容量の不足というよりも,アルゴリズムに困難な数値最適化が必要になるということです.

最適化したい関数のことを目的関数(objective function),または訓練基準(training criteria)といいますが,

/*training criteriaの訳語がぐぐっても出ないので直訳しました*/

この訓練基準が凸関数になってない事が多いというのがよくある困難です.

このような最適化しづらい関数は最適値を見積もるようなアルゴリズムを用いますが,そういうアルゴリズムはよく局所最適解に陥ってしまうのが問題です.

このように当てはめなさすぎはDeep learningの中心的な論点と言っても過言ではありません.

また,多くの学習アルゴリズムでは最尤法を用いる必要がありますが,尤度を最大化することが難しいという問題もあります.

勾配を計算することさえ難しいことがあります.

確率論も中心的な論点です.

また,他に重要な概念として,多様体学習があります.

「多様体仮説」では一見データが高次元のパラメータを持っていても,実はより低次元の構造の近くに分布していると主張しています.

/*例えばパラメータが10個あっても,実は10次元空間の中のある曲面の近くに分布しているというイメージをしました.参考*/

これを認めるとほとんどのパラメータの組み合わせは実現しにくく,そのより低次元の構造近くの組み合わせだけが実現することになります.

また,多様体仮説では小さな変化を加えても不変のカテゴリ変数が存在すると主張しています.

/*画像を少し拡大縮小しても「画像に写っているもの」は変わらない,と言っているんだと理解しました.小さな変化と言ったのはあまりに横にばかり拡大したりグニャグニャ曲げるエフェクトを書けたりするともはや「画像に写っているもの」は変わってしまうということだと思います.*/

関連して「natural clustering hypothesis」では異なる分類のデータは十分離れた異なる多様体上に存在すると主張しています.

/*体重,体長,表面の色等のデータを与えられた時,象とヒトでは十分離れたところにある,ということでしょうかね*/

これらの考え方はregularized auto-encoderのアルゴリズムにおいて未知の多様体の構造とデータが従う確率分布を見出す仕組みを理解するのに大変重要です.

未分類

機械学習について

/*まだまだイントロダクションなので具体的なコードや数式は出ず,用語の説明になります*/

機械学習アルゴリズム(以下学習者)はいくつかの例を見せられて学習していきますが,それらの例は何らかの変数(確率変数)に関連づいていて,それらの変数に関する関数やモデルを構築します.

構築された関数やモデルを使えば,それらの確率変数から有益な出力を得ることができます.

/*原因から結果を推測できるようになるということでしょうか.例えば10年分の気象データを見せられて,湿度が高い日は高確率で雨が降っている,よって湿度が高い日は雨が降りやすいに違いないと推測できるようになるとか*/

さて,「変数の取りうる値の組み合わせ」という用語があります.

これは例えば10個の2値変数が存在すれば2^{10}通りの取りうる組み合わせがあるということです.

機械学習ではどの値の組み合わせが再び起こりそうであるかというのが肝になるわけですが,問題は取りうる値の組み合わせが天文学的数字になったりしてとても全て調べ尽くすことが出来ない場合があるということです.

このような問題を「次元の呪い」といいます.

人間の脳もこういった問題に直面することがあるはずなのですが,どのように解決しているのでしょうか?

このような場合,人間の脳は進化の過程で得られた天下りの知識を使用します.

天下りの知識というのは事前確率という形で与えられ,それと現在の状況を加味して事後確率を計算し,未来を予測します.

/*ここらへんは多分に私の解釈を含んでいるので誤りがあるかもしれません.*/

ベイジアン機械学習では次元の呪いを避けるために事前確率を明確な形で保持させ,ベイズの定理を用いて最も起こりそうな結果を予測します(もっとも,その「明確な形で」というのがなかなか難しく,コンピュータ上でデータなりコードなりで表現するのが難しいものもあります.)

未分類

表現学習と先生

Deep learningは特徴を自力で抽出する(Representation learning/*=表現学習?*/)システムですが,表現学習の手法としては教師あり学習と教師なし学習があります.

教師あり学習ではデータと「正解」がセットで与えられます.

正解とはデータを見せられた時にシステムに出して欲しい出力のことです.

/*猫の絵のデータと「猫」という正解をセットで与えてシステムに猫の姿を覚えさせるというような理解でいいのでしょうか*/

データと正解のセットを「ラベル付きの例」と呼んだりします.

ラベル付きの例はまずラベルを付与するのが大変だし,ラベルがないデータのほうがたくさん存在しています.

ラベルのないデータから学習を行うことを教師なし学習と言って,上の理由から教師なし学習のほうが使う側にとってはありがたいということになります.

いくつかのディープラーニングのアルゴリズムはラベルのないデータから学習できる点が特長です.