2015/12/09更新

[機械学習] 今年から機械学習を学び始めてやったこと、Machine Learning Nowでやりたいこと

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日はMachine Learning Advent Calendar 2015の9日目の記事として、今年から学び始めた機械学習についてやってきたことをまとめ、そして最近リリースしたMachine Learning Nowについてブログを書きたいと思います。

画像


機械学習をどのように学んできたか?

時系列に書いてみたいと思います。

統計学との出会い(2015年1月〜4月)

僕は機械学習について今年の3月くらいに興味を持ち始めました。そしてそれ以前には統計に興味があり、以下2つの本を読んでウハウハしていました(統計の知識があったわけではありません)。

統計学が最強の学問である(Amazon)

統計学が最強の学問である[実践編]---データ分析のための思想と方法(Amazon)

上記2冊は統計についてほぼ未知の僕にとって楽しい登竜門でした。他の書籍が統計学の中身から説明するのに対して、上記の作品は統計学がどう使われるのかという目的視点で書いてあったので、読んでいて非常にワクワクしました。また上記の実践編の方では、(今となってはかなりざっくりと思いますが)z検定、t検定、回帰分析、ロジット分析などを概念的に学ぶことができました。モチベーション作りにすごく良い作品だと思います。
また、上記を読んでいた終盤からは、Rという言語に出会い、統計処理の関数を使ってみたりもしていました。回帰分析をしてみたりカイ二乗検定をしてみたり。

ただ上記だけではざっくりとしていて、具体的に手を動かすことはできませんでした。もっと詳細を知りたいと思って以下の本を購入しました。

オライリー - 統計クイックリファレンス 第2版(Amazon)

最初は良かったんですがね。。。半分くらい読んだロジスティック回帰の中身の説明あたりから理解できなくなりました。あっ数学必要なんだな。という悟りました。なので、この本は一旦止めて、数学の勉強に移ることにしました。


数学を学ぶ(2015年5月〜8月)

数学を学ぶといってもどうしたらいいのか、そんな感じでもやもやとしていました。線形代数という用語は上の本から学んでいたのですが、良いと思って買った本も難しすぎてイマイチ(イマイチなのでここでは紹介しません)。数学については何冊か無駄買いしてしまいました。
そんな中出会ったのがマセマ出版社の大学数学シリーズです。大学数学の道順(以下)も示されており、そして各書籍が非常にわかりやすいので、大変理解に助かりました。

引用:スバラシク実力がつくと評判の線形代数キャンパス・ゼミ(のカバーより)


マセマシリーズで読んだ本は以下でした(これからもシリーズ全体を継続して読むつもりです)。

スバラシク実力がつくと評判の線形代数キャンパス・ゼミ―大学の数学がこんなに分かる!単位なんて楽に取れる! (Amazon)

スバラシク実力がつくと評判の微分積分キャンパス・ゼミ―大学の数学がこんなに分かる!単位なんて楽に取れる!(Amazon)

スバラシク実力がつくと評判の統計学キャンパス・ゼミ―大学の数学がこんなに分かる!単位なんて楽に取れる!(Amazon)

上記の本を読んだことで、その後の学習が非常にスムーズに進めることができました。各資料や本に書いてある数式も読めるし、なぜその数式にしているのかもなんとなく理解できる気がします。


機械学習を学ぶ(2015年9月〜2015年11月)

数学の知識がバッチリになってきたので、機械学習の勉強を始めました。Googleさんに「機械学習 入門」と検索してでてくる内容を眺めていて、いろいろなことがあるんだなーとわかりました。しかし具体的に手を動かせる感じではありませんでした。

そんな中で出会ったのが、CourseraのMachine Learningという無料の講義です。スタンフォード大学のAndrew先生による動画の講義で、Octaveというプログラミング環境を使ってサンプルの実装も行います。英語ですが日本語の字幕もあり(そして字幕が訳者のテンションに違いがあり面白い)、学ぶことができます。
最後まで学びきる(プログラミング課題も解ききる)人はあまりいない(挫折する?)みたいですが、最後までやって非常に多くのことを学びました。例えば以下のことを学びました。

  • 機械学習とは
  • 教師あり学習と教師なし学習
  • 回帰問題と分類問題
  • 線形回帰(単変数、複数変数、非線形)
  • ロジスティック回帰
  • ニューラルネットワーク
  • サポートベクターマシーン
  • k-means
  • 異常検知
  • レコメンデーションシステム
  • 機械学習の評価と改善
  • 機械学習を組み合わせる
  • など
ほとんどすべての章にはプログラミング課題がついていて、実際に手を動かして学ぶことができます。ベクターや行列による演算の実装、勾配降下の実装などを行うことができ、例えばニューラルネットの章では手書き文字の判定を実装することができます。また、コストの定義、勾配の定義、最適化問題への取り組みなど、各アルゴリズムで共通の考え方を学べたのも大きなポイントだったと思います。

なかなか大変なんですが・・・、ぜひ最後までやりきることをお勧めします(これのおかげで他の本が読めるようになりました)。
上記のスタンフォード大学講義以外にもいくつか本は読んでいますが、知識の補強がメインです。


機械学習を学ぶ②(2015年12月〜)

上記の講義は良いのですが、出会えないものがありました。それはディープラーニングと強化学習です(他にも遺伝的アルゴリズムとかも)。それについては本で学ぶことにしました(現在勉強中です)。

深層学習 (機械学習プロフェッショナルシリーズ)(Amazon)

強化学習(Amazon)

深層学習の方は(スタンフォード講義で)ニューラルネットを実装した経験があるので、かなりサクサク読めますが、強化学習の方はなかなか進まず困ってます(強化学習について良いものがありましたらぜひ教えてください)。上記の本などを含めてもう少し知識を深めていけたらとおもいます。



Machine Learning Nowのリリース

先日、Machine Learning Nowという機械学習の情報収集ツールをリリースしました。作ったきっかけはスタンフォード講義を終わった後に、何か機械学習を適用した実装をしたいなーと思ったのがきっかけでした。また機械学習のことを追いかける(まずは日本語で)のに、情報がバラバラしていて何か良い方法を作りたいと思ったのも開発した経緯でした。



まだまだ開発中でやりたいことは山ほどありますが、ジャンル判定や人気予測などを機械学習で行います(一部実装中です)。そして今後は、英語リソースの獲得や公開される論文収集なども視野に入れて、機械学習分野を把握できるようなツールにしていけたらと思っています。



最後に

今日はMachine Learning Advent Calendar 2015の9日目の記事として、今年学んできたことをまとめてみました。いつかまとめておきたいなと思っていたので、良い機会をいただけましたこと感謝します。今後も機会学習を学習&適用していきたいと思いますので、時々ブログにもアウトプットできたらと思います。

最後になりますが本ブログでは、フロントエンドのネタやPythonネタなどを中心に情報を発信しています。気になった方はぜひ、RSSTwitterをフォローして頂けますと幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。