備忘録_データから学習する

備忘録_データから学習する

「学習」とは訓練データから最適な重みパラメータの値を自動で獲得することである。損失関数を基準として、その値が最も小さくなる重みパラメータを探し出すということが学習の目的である。

ニューラルネットワークの特徴はデータから学習できる点にある。データから学習するとは、重みパラメータの値をデータから自動で決定できるということである。

データ駆動

データから答えを探し、データからパターンを見つけ、データからストーリーを語る。これが機械学習で行うことであり、データがなければ何も始まりません。そのため、機械学習の中心には「データ」が存在します。

何らかの問題を解決しようとする場合

人が解決する場合

人の経験や直感を手掛かりに試行錯誤を重ねて解決をする

機械学習の場合

人の介入を極力避け、集められたデータから答え(パターン)を見つける

「5」という数字を認識しようとした場合

人が認識する場合

簡単に「5」だと認識できるが、どういう規則性で「5」と認識したのかを明確に述べることは困難である。

機械学習の場合

画像から特徴量を抽出して、その特徴量のパターンを機械学習の技術で学習する。特徴量を使って画像データをベクトルに変換し、その変換されたベクトルに対して、機械学習で使われる識別器(SVMやKNNなど)で学習する。集めれれたデータの中から「機械」が規則性を見つけだす。

特徴量・・・入力データ(画像)から本質的なデータ(重要なデータ)を的確に抽出できるように設計された変換器を指す。コンピュータビジョンの分野で有名な特徴量としてはSIFTやSURF、HOGがある。

機械学習での注意

画像をベクトルに変換する際に使用した特徴量は「人」が設計したものである為、問題に応じて適した特徴量を使わなければ、良い結果が得られない。つまり、特徴量と機械学習によるアプローチでも、問題に応じて「人」の手によって適した特徴量を考える必要がある。

ニューラルネットワークのアプローチ

ニューラルネットワーク(ディープラーニング)によるアプローチは人の介在しないで重要な特徴量までも「機械」が学習する。

ニューラルネットワークの利点はすべての問題を同じ流れで解くことができる点にあります。対象とする問題に関係なく、データそのままの生データとして、”end-to-end”(端から端まで)で学習することができる。

訓練データとテストデータ

機械学習の問題では、訓練データとテストデータの2つのデータに分けて、学習や実験などを行うのが一般的である。汎用能力を正しく評価したいために、訓練データとテストデータを分離する必要がある。

訓練データ

最適なパラメータを探索する。
教師データと呼ぶ場合もある。

テストデータ

訓練したモデルの実力を評価する。

汎用能力

まだ見ぬデータに対しての能力であり、この汎化能力を獲得することが機械学習の最終的な目標である。特定のデータだけではなく、任意のデータを認識できる必要がある。その為、ひとつのデータセットだけでパラメータの学習と評価を行ってしまうと、正しい評価が行えないことになる。

過学習(overfitting)

あるデータセットだけに過度に対応した状態である。