機械学習 (machine learning)

機械学習とは,Andrew Ng によれば「明示的にプログラミングすることなく,コンピュータに行動させるようにする科学」 のことです. 歴史的には,人工知能の研究分野の中で,人間が日々の実体験から得られる情報の中から,後に再利用できそうな知識を獲得していく過程を,コンピュータにおいて実現したいという動機から生じました. 現在では,数値・文字・画像・音声など多種多様なデータの中から,規則性・パターン・知識を発見し,現状を把握や将来の予測をしたりするのにその知識を役立てることが目的となっています.

しましまの私見に基づいて,機械学習の各種の問題を整理しました.

他分野との関連

  • 確率論機械学習で扱うデータは,いろいろな不確定要素の影響を受けており,こうして生じた曖昧さを扱うために利用されます.
  • 統計:観測されたデータを処理する手法として長く研究されてきたため深い関連があります.特に,多変量解析や統計的予測との関連は深いが,結論の正当性をより厳密に論じることに関心があり,機械学習ほど予測は重視していないように思われます.
  • 計算論的学習理論:組み合わせ的な概念を対象にその計算可能性と計算論を論じます.広義の機械学習の一つといえるでしょう.
  • 情報理論:データが含む本質的な情報を見極めるには,データの規則性を発見が欠かせません.
  • パターン認識:画像や音声の認識・分類などを対象にした予測問題を扱う分野でした.当初は,記号的な機械学習とは異なっていたが,現在では大きな差はなくなったように思えます.
  • データマイニング:データ分析の中で,実用的な側面や,発見的な側面を重視する場合といってよいでしょう.
  • アルゴリズム統計物理:データに対する計算を行うためにこれらの分野の手法を利用します.
  • 並列計算,データベース:大規模なデータを扱うために,これらの分野の技術も必要とされるようになってきました.

過学習と汎化誤差

過学習と汎化誤差は,機械学習を活用するうえで非常に重要な概念です.

例えば,過去の天気から,明日の天気を当てる規則を学習するとしよう.過去1週間のデータは,どの日も「晴れ」であったため「天気はどの日も晴れ」という規則を考える.この規則は,過去1週間のデータについては完全に正解を与えるが,明日の天気についてはどうだろうか?もちろん「雨」や「曇」の可能性があり,はずれる可能性があります.

このように,規則を作るために与えられたデータに合わせすぎた規則を得てしまうことを 過学習 とよび,過去のデータについてではなく,明日のまだ見ていない状況をどれだけ言い当てられるかを定量化したものを 汎化誤差 といいます. この汎化誤差をいかに小さくするかが機械学習の課題で,過学習を防ぐために正則化事前分布などの工夫があります. また,この汎化誤差を求めるために,多くの機械学習理論も研究されています.

関連項目

モデルと客観性

機械学習アルゴリズムでは,問題の前提を定義するモデル・仮説空間と,訓練データへの不適合さを測る損失関数とを定め,モデルの中から損失関数を最小にするものを探し出します.多くの機械学習手法がありますが,どれもこの枠組みです.どれも同じ枠組みなのに,どうしてこれほど多数の方法があるのでしょうか?

例えば,沖縄と札幌の天気を予測する問題では,それぞれの都市の性質を考慮すると予測は当たり安いでしょう.沖縄では,雪は降らないということを前提としたモデルは,降る可能性も考慮した場合より有効な予測ができます.すなわち,問題に合わせて適切なモデル損失関数・探索手法を選ぶと,より効果的に予測ができるため,多様な方法が考えられてきました. あらゆる問題に対して,他のどの手法よりもよりも,うまく問題を解けるような方法は存在できないことを示す no free lunch定理 などの理論も知られています. ですので,解こうとする問題を良く知り,それに対して適切な機械学習手法を選ぶことは重要となります.

モデルによっては,同じデータから違う結果が得られることもあります,すなわち,主観によって結果が変わることがあります. どんな結果が良いかは,予測した結果が,将来実際に起きるかどうかを調べることになります. George E. P. Box の“Essentially, all models are wrong, but some are useful(全てのモデルは誤りではあるが,役に立つものもある)”は的確なイメージで,そのモデルを使うことに論理的根拠はないのですが,現実のデータの分析では役に立ちます. その性質が完全に定まっている公理に基づいて結論を得るのではなく,その性質が分かっていないデータを根拠にしているため,こうした調整はどうしても避けられません. こうした部分も機械学習の難しさです.

関連項目

学習の枠組みに基づく分類

どのような手順で,どういった構成のデータを与え,どういう基準に基づいて学習するかといった枠組みでの分類です.

その他の条件によってもいろいろな学習の形態があります.

関連項目

データの性質に基づく分類

データの性質の違いによってもいろいろな対処が考えられています.

  • データの特徴に対する手法としては,データの値がところどころ観測されず分からなくなっている欠損値や,データが大きすぎるのでうまく小さくするデータスカッシングなど
  • 個々のデータがベクトル以外のグラフ時系列などの場合
  • その他自然言語処理, 画像処理, 音声処理などの応用に応じた方法など

関連項目

リンク集

日本語の資料

英語のチュートリアル資料

その他の英語資料

ポータルサイト・組織

Freeware

統合環境・コマンド群

  • R:フリーの統計分析ソフトとしては非常に著名.非常に多くのライブラリがある.GUIは充実していないので,コマンドラインが苦手な人には難しいかも.
  • Weka:フリーの分析ツールの先駆け.javaで書かれており,GUIの分析環境もある.他のソフトからも学習アルゴリズムが呼び出されて利用されてもいる.
  • RapidMiner:データ分析のGUI環境.最初は Yale という名前だったが,現在は rapid-I社 がオープンソースで提供している.サポートがなければ無料.Wekaアルゴリズムが利用できる.
  • KNIME (Konstanz Information Miner):Eclipse ベースのオープンソースのGUIのデータ分析環境.自身のアルゴリズムに加え,Weka, R, python なども呼び出せる
  • OrangepythonベースのGUIを備えた分析ツール
     
  • Massive Online Analysis (MOA)データストリーム実時間分析環境
  • MUSASHI:データ分析用のコマンド群
  • ProM:プロセスの実行ログからビジネスプロセスのためのマイニングをするツール (java)

ライブラリ

特定のアルゴリズムの実装は,それぞれのアルゴリズムのページにまとめています.Freeware からたどって下さい.

レポジトリ

python用については python のページを参照

C/C++用

java 用

matlab/octave/scilab 用 (octaveのページも参照)

その他

関連文献

以下は,しましまの私見に基づく本の紹介です.機械学習を学ばれたいと思われた場合に参考にしていただければと思います.

入門

大学1〜3年,センスがあれば高校の人向けです. こうした分野に全くなじみが無い場合には,最初にこれらの本をざっと読んでもよいと思います.

  • 金谷 健一「これなら分かる最適化数学—基礎原理から計算手法まで」共立出版 (2005)
  • 金谷 健一「これなら分かる応用数学教室—最小二乗法からウェーブレットまで」共立出版 (2003)
    • 機械学習では線形代数などが必要になりますが,それらを学ぶ本として薦めています.
    • 式の展開が非常に丁寧に書いてあるため,慣れていないときに式を追うのによいと思います.
    • Amazon.co.jpへのリンク:
  • Toby Segaran,當山 仁健(訳), 鴨澤 眞夫(訳)「集合知プログラミング」オライリージャパン (2008)
    • 機械学習を使ってどんなことが出来るのかを知るのによい本です.
    • モデルの意味や,パラメータの働きなどの説明はほとんどないので,コードを他の問題に適用するとには,他の本で動作原理を学ぶ必要があると思います.
    • Amazon.co.jpへのリンク:

中級

大学 3〜4年から修士の人向け. 機械学習の基本概念と各種のアルゴリズムを俯瞰できる本. それぞれ,特徴があるので,組み合わせて読んでもよいと思います.

発展

修士以上の人向けのものや,英語のものを取り上げました.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-12 (火) 14:52:40 (259d)