今年の1月くらいから少し機械学習の勉強を始めたので、ここ3ヶ月で読んだ機械学習系の記事の中で良いと思ったものをまとめておきます。
僕が数式読むのが苦手なので、初心者向けの数式少なめな記事が中心になっています。既に知識が十分な方には物足りないまとめかもしれません。
※良い記事が見つかったら適宜更新していきます。
なお、3ヶ月間の勉強は主にUdacityが提供する
Deep Learning Nanodegree Foundation | Udacityのクラスで行いました。
499ドルと結構高かったですが内容は丁寧ですし、Pythonを使えるので初心者が勉強を始める時には悪くない選択肢かなと思います。(Octaveでやるのは辛い...)
機械学習全般
How to choose algorithms for Microsoft Azure Machine Learning
機械学習を使いたい時に目的・データの性質・要件に応じてどの手法を使うべきか、という情報が良くまとまっている。Azure Machine Learningを使わない時でも役立つ良記事。
Feature Selection For Machine Learning in Python
Deep Learning全盛の今でも手動で特徴選択しないといけない機会は割とある。特徴間の相関を見る統計的な特徴選択手法やPCA・ランダムフォレストなどから得られる特徴重要度による特徴選択手法などを教えてくれる記事。
What are the advantages of different classification algorithms?
強化版Yahoo知恵袋でおなじみのQuoraから。数多くある多クラス分類手法の特徴を丁寧に教えてくれる。
What is the difference between K-means and the mixture model of Gaussian?
こちらもQuoraから。クラスタリング手法ではおなじみのK-meansと混合ガウスモデルの違いについて。
画像処理
Machine Learning is Fun! Part 3: Deep Learning and Convolutional Neural Networks
かなりの良記事。畳み込みニューラルネットの構造とその構造が何故画像処理において何故高い性能を出せるかが直感的に分かる。数式を使わずに説明してくれているのも有難い。
この著者のMachine Learning is Fun!シリーズはCNN以外にも色々分かりやすく紹介してくれているので全部読む価値がある。
Convolutional Neural Networks (CNNs): An Illustrated Explanation
CNNの構造を数式と図をバランス良く使って説明してくれている。Zero-PaddingやReLuなどより詳細な部分も含めて説明してあるので、Machine Learning is Fun!の記事の後に読むと良いかも。
自然言語処理
LSTMについて
LSTMネットワークの概要
Understanding LSTM Networksの日本語訳記事。LSTMの従来のRNNに対する優位性などが分かる。LSTMの概要を知りたいならまずこれを読むと良さそう。
Attention and Memory in Deep Learning and NLP
自然言語系のニューラルネットで最近(?)注目されているAttentionとは何かというのを説明してくれる記事。
チャットボット
Deep Learning for Chatbots, Part 1 – Introduction
Deep Learning for Chatbots, Part 2 – Implementing a Retrieval-Based Model in Tensorflow
良記事。Part1ではチャットボットのタイプ別・領域別の難易度やアプローチの違い、現在の技術で実装可能なチャットボットの種別などを丁寧にまとめている。Part2では事前に用意された回答を返答するタイプのチャットボットをEncoder-Decoder形式のLSTMで実装している。
機械翻訳
Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences
これもMachine Learning is Fun!シリーズから。モデルベース→統計的手法→Sequence-to-Sequence Modelsと発展してきた機械翻訳の歴史を順に説明してくれるので全体感を掴める。機械翻訳について知りたい時に最初に読むのに最適。
Peeking into the neural network architecture used for Google's Neural Machine Translation
Google翻訳に使われているLSTMネットワークの概要まとめ。並列学習ができるようにuni-directionalなRNN層を積んでいるなど、単なる研究とは異なり実用化を重視している部分が見て取れ面白い。
強化学習
ゼロからDeepまで学ぶ強化学習
強化学習の概要が分かるので強化学習を勉強したい時は一番最初にこれを読むのが良さそう。日本語なのも嬉しい。
深層強化学習:ピクセルから『ポン』 – 前編
Andrej Karpathy氏の記事の日本語訳。方策勾配法を用いた強化学習をNumpyを使って130行のPythonコードで実装している。凄い。
Simple Reinforcement Learning with Tensorflow Part 0: Q-Learning with Tables and Neural Networks
強化学習の様々な要素をTensorFlowを使って実装してみせてくれるシリーズ記事。シンプルなテーブルベースのQ-LearningからA3Cまでやってくれているのでシリーズ全部読む価値がある。
敵対的生成モデル
Machine Learning is Fun Part 7: Abusing Generative Adversarial Networks to Make 8-bit Pixel Art
またMachine Learning is Fun!シリーズかと言われそうだがこれも良記事。DCGANの仕組みを説明し、それを任天堂の8Bitゲームのキャプチャ画像生成に使っている。
How to Train a GAN? Tips and tricks to make GANs work
学習が難しいと言われているGANを効率的に学習させる手法のまとめ。
半教師あり学習
半教師あり学習 - SlideShare
半教師あり学習の全体像を説明してくれているスライド。やはり最初に日本語で全体像を掴めるとやりやすい。
[機械学習] ビッグデータ時代のサンタ狩り - ML Advent Calendar 2013 最終日
ガウス混合モデルによる半教師あり学習の適用例。分かりやすい。
Understanding Semi-supervised Learning
半教師あり学習についての簡単な説明。短いので疲れている時も安心して読める。