mixiチェック

初心者が効率良く機械学習を勉強する方法

ここ3年くらい休日を利用して統計や機械学習を勉強してきたが、最近書籍やオンラインの講義が充実してきて、僕自身もそこそこ全体を理解できるようになってきたので、初学者が効率的に知識を吸収する方法を以下にまとめた。

CourseraのMachine Learning
まずはこの講義を一通り聞くのが良い。英語で説明しているが日本語の字幕を表示することも可能なので、英語が苦手な人は利用すると良い。html5とFlashで表示できるが、Flashの方が少し前の説明を聞き直すときなどにおいて使い勝手が良いように思った。
数学がかなり使われるが高校の代数と微積分を理解していれば問題ないレベルである。



戦略的データサイエンス入門
次にこの本。CourseraのMachine Learningは、初学者でも分かりやすいように留意して説明している反面、少し体系的ではない。それを補いかつ、実際の業務の中で機械学習やデータマイニングがどのように位置づけられ、どのような業務フローで作業が進んでいくかを理解出来る。この本を読むことにより、CourseraのMachine Learningで説明されていたことの理解度が深まり、かつ各知識が有機的につながるような感触を得られる。
また機械学習全般をおさえているので、今後自分がどんなことをしたいかに応じて、どのような知識が足りないのかも理解できるので、効率良く自分の目的に進んでいけると思う。
本の難易度については、難しい数式とかは殆ど使われていないので、地道に読んでいけば大抵の人には理解できると思う。
しかしこの本をもしCourseraのMachine Learningを聴くよりも先に読むとすると少し書かれていることが抽象的に感じるかもしれない。


Weka
これはコーディングの知識がなくても機械学習の計算をGUIの操作だけで行えるフリーのツールである。Javaがインストールされている環境で動作する。機械学習の各種アルゴリズムをプラグインで追加出来るので便利である。ただしDeveloper versionでないとプラグインのインストールが面倒なので、その辺は気をつけた方が良い。
機械学習の実装環境としては、以下が有名である。
・R言語
・Python(NumPy、scikit-learn)
・Weka
どれも一長一短あるのだろうが、Wekaはデータセットも付いているため、初学者がとりあえず機械学習のインプットやアウトプットがどのようなものかを体験した上で理解するには手頃である。
少し調べたところによると、Weka自体ライブラリとして使用することも可能なので、Javaでインプット・アウトプットを細かく実装して、機械学習の計算をさせることも可能なようだ。

以上の3点だけで、面倒な言語の習得・アルゴリズムの実装・評価・デバッグなどを全てすっとばして機械学習がどんなもので、かつ実際の業務の中でどのような位置づけを持ち、仮にシステム化する際どのような情報が必要なのかを具体的にイメージして、足らない部分が何なのかを正しく理解することが出来る。
僕自身はシステムエンジニアなので、あまりアルゴリズムの詳細に立入るような本は、上では避けて紹介した。

以下は個人的に気に入っている本であり、参考までに紹介する。

Rによるデータサイエンス
これはR言語を用いて機械学習をどのように実行すれば良いかが書かれている。
機械学習の各種アルゴリズムが網羅されており、アルゴリズムの簡単な概要、インプットデータ、処理の実装方法、アウトプットのグラフ化の必要最小限が書かれている。
このURLより書籍に書かれているコードもダウンロード出来る。



Mahoutイン・アクション
これはApacheプロジェクトの機械学習ライブラリであるMahoutを詳細に説明したものだ。性能面や評価の方法なども細かに書かれているので、良い本だと思う。
機械学習を実際にシステム化する際には、Mahoutを使うこともあると思うので、この本はJavaエンジニアが機械学習のシステムを作る際には手元に置いておくと良いと思う。


入門機械学習
スパムフィルタやメールの優先トレイ機能などをR言語で実装する説明などが書かれている。R言語で手早くこれらの機能をどう実現するのか知りたい人には参考になると思う。
しかしちょっと前までは僕にとってこの本の存在意義はかなりあったのだが、「戦略的データサイエンス入門」が出版されたら少し色あせた感じはする。なぜならスパムフィルタやメールの優先トレイは、自分で実装する必要性があまり無いので・・・。


フリーソフトでつくる音声認識システム
この本はタイトルの通りフリーソフトで音声認識システムを作るのにどのようなことが必要かが書かれているが、前半では初歩的な機械学習のアルゴリズム作成を実際に手を動かしながら学べるようになっているので、アルゴリズムが実際にどのように数値を補正しながら、パラメータを決めていくかが分かるので勉強になる。
フリーソフトではじめる機械学習入門」と同じ著者である。


統計学入門 (基礎統計学)
推定や検定の知識も機械学習では必要になるので、知らなければ一通り読んだ方が良い。


道具としてのベイズ統計
ベイズ統計の本である。


パターン認識と機械学習 上
通称PRMLと呼ばれる本である。機械学習のアルゴリズム"研究"に従事する人は読む必要があると言われるが、私は難しくて理解出来なかった。紹介はするが、正直勧めはしない。


統計的学習の基礎
PRMLで挫折し、かつあの本は一生理解出来ないと思ったので、凝りもせずこちらを買ってみた。PRMLよりは多少分かり易そうだが、まだ読んでいない。Amazonでは品切れだが、hontoなどでは購入出来た。

以上が、とりあえずここ3年ばかり勉強したことを整理した内容である。後から来る人の参考になればと思う。

最近のおすすめ商品

初めてのRuby
資本主義と自由
現代の金融入門[新版]
ケースで学ぶWebマーケティングの教科書
なぜ投資のプロはサルに負けるのか?
残酷な世界で生き延びるたったひとつの方法
神の雫 1-24巻 セット
20世紀少年 <最終章> ぼくらの旗 通常版 [DVD]
曲がれ!スプーン [DVD]
カムイ外伝 [DVD]
抜け忍 [DVD]
サマーウォーズ [DVD]
バジリスク ~甲賀忍法帖~ DVD-BOX
GHOST IN THE SHELL 攻殻機動隊 [DVD]
イース 7(通常版)
Panasonic デジタルカメラ ルミックス ブラック DMC-TZ10-K

少し古いけどおすすめの本

Linuxクイックリファレンス
入門bash 第3版
Spidering hacks―ウェブ情報ラクラク取得テクニック101選
ホントは役に立つ Oracleコマンド管理術 Tech Press (TECHPRESS)
詳解UNIXプログラミング
詳解TCP/IP 〈Vol.1〉プロトコル
ゲームで極める シェルスクリプトスーパーテクニック
データベース実践講義―エンジニアのためのリレーショナル理論 (THEORY/IN/PRACTICE)
Hacking:美しき策謀 ―脆弱性攻撃の理論と実際

ウェブページ

Powered by Movable Type 6.3.7

このブログ記事について

このページは、quantyが2014年8月10日 01:19に書いたブログ記事です。

ひとつ前のブログ記事は「最近のSNSと通信機器について」です。

次のブログ記事は「10年生き残った本」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

プロフィール

  • ハンドルネーム:quanty
  • ハンドルネームの由来:学生時代に物理学を専攻しており、量子(Quantum)と相対論(Relativity)の単語から作りました。
  • 職業:ITエンジニア
  • UNIX、Linux、ネットワーク、Javaが得意です。
  • Twitter:
    http://twitter.com/quantymt
あわせて読みたいブログパーツ