機械学習の超初心者が、みんなが良いと言う記事を読んでまとめてみた

機械学習について勉強したいので調べてみたのですが、

同じ記事や同じ本をおすすめされてることが多かったので、自分なりにまとめてみました。

 

私は数学も機械学習も無知だし、まだ何も機械学習のコードを書いてません。
ただのリンク集になってます。

 

[実際にやってみた画像認識の内容も含めたブログ記事はこちらです](http://piikaachuu.hatenablog.com/entry/2017/06/21/090919)

# 機械学習をやるまえに

**最初に機械学習で何をしたいのかを決めることが重要**

ゴールを持つことが学習の進み具合を変えるらしい。 
たしかに、やりたいことがあれば、勉強量も定着量も全然違う気がする。 
無駄な知識を学ばないことも大切なんでしょう。

 

**すべての理論を理解しようとしない。**

機械学習は難しすぎるのでまず理解できないし、少しずつ簡単なものを実践して理解していくことが大切。

 

**まずはコードを書く！**

コードを書いていけば、なぜ動くのかをおおまかに理解していける。 
数式や理論の理解は後回し、慣れろ、ってことですね。

 

**「次元の呪い」というものがある**

学習データをすべて学習させようとしても精度が出ないことが多々ある。 
データを分類するために「データのどこに注目すればいいか」が、プログラムは判断できない。


**特徴抽出**

対象データから特徴となる量を抽出することが特徴抽出。 
これで「データのどこに注目すればいいか」をプログラムに教えることができる。 
よって、特徴抽出 → 特徴抽出したデータで学習させる という流れになる。


**機械学習の流れ**

1. データ収集
少なくとも100,000件くらいあるといいらしい。 
深層学習では、数万件のパラメータは当然という程のビッグデータがあることで機能するという。 
膨大なデータを処理するためには、高速な計算環境が必要。

2. データの整理
収集したデータは、一部欠落や不正データが入ってる場合があるため、情報を整理しなければならない。 
SQLやBigData処理（分散処理など）のスキルが必要。

3. 分析・分類
整理したデータの特徴を見極めたり、予測に必要なデータを推測する。 
定量評価。

4. 学習モデル作成
整理したデータから予測するモデルを作成する。 
Pythonなどの開発言語で使う。 
データの種類や目的によってアルゴリズムを選択（パラメータのチューニングなどのおすすめを出してくれるのもある）。 
正規化も必要。

5. データの予測と実験
訓練データからつくった学習モデルで予測する。 
学習〜テスト予測の実験を何度も繰り返す。 
精度が良くても過学習の可能性がある。

 

**AIは人間をアシストするもの**

特徴抽出を行わなければならないという点からもわかるとおり、機械学習などAIは勝手に「こういう課題があるから、こういうことをやりたい」と考えて答えを導き出すことはない。 
人間が膨大な量のデータを揃え、課題を与えることでしか機能しない。 
課題を持った人間がやらなければならない大量のデータに対する分析を自動で行ってくれることで仕事をアシストしてくれるのがAIなんでしょう。


# スライドで「機械学習とは」を感じよう

<iframe src="//www.slideshare.net/slideshow/embed_code/key/DZSdOKPdGrrCdM" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/unnonouno/jubatus-casual-talks" title="機械学習チュートリアル@Jubatus Casual Talks" target="_blank">機械学習チュートリアル@Jubatus Casual Talks</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/unnonouno">Yuya Unno</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/mL6b2Vezgnq1sN" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/takahirokubo7792/ss-46471269" title="実戦投入する機械学習" target="_blank">実戦投入する機械学習</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/takahirokubo7792">Takahiro Kubo</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/Lrm44rBOLaGuxq" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/nishio/ss-53221829" title="ルールベースから機械学習への道 公開用" target="_blank">ルールベースから機械学習への道 公開用</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/nishio">nishio</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/noemHl8eZ5ymye" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/hamukazu/python-62836565" title="Pythonで機械学習入門以前" target="_blank">Pythonで機械学習入門以前</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/hamukazu">Kimikazu Kato</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/2ZHuZTFBlUXnEz" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/hamukazu/python-71462844" title="Pythonを使った機械学習の学習" target="_blank">Pythonを使った機械学習の学習</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/hamukazu">Kimikazu Kato</a></strong> </div>


# 必ずと言っていいほど紹介されてる動画

[courseraの機械学習コース](https://www.coursera.org/specializations/machine-learning)

関連する記事はこちら。

[機械学習を1ヵ月で実践レベルにする #2 (オンライン講座)](http://qiita.com/junichiro/items/7a5b95d7122176e94fe0) 
[Courseraの機械学習コースのススメ 前編](http://qiita.com/mono0926/items/2c39649d24b2e515f4b5)

# 日本語なので聞きやすそうな動画

[schoo: 現場で使えるデータ分析 講座](https://schoo.jp/teacher/184) 
[gacco: 社会人のためのデータサイエンス講座](http://gacco.org/stat-japan/)


# これらの本は読んでおきたい

この２冊は、いろんな記事でオススメされてる頻出度高めの本だった。 
なので、私もこの２冊は絶対読んでおく。

- <a target="_blank" href="https://www.amazon.co.jp/gp/product/4274065782/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4274065782&linkCode=as2&tag=katarii-22&linkId=6c9b60affbe2091a908329db9109623f">プログラミングのための線形代数</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=katarii-22&l=am2&o=9&a=4274065782" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

<a target="_blank" href="https://www.amazon.co.jp/gp/product/4274065782/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4274065782&linkCode=as2&tag=katarii-22&linkId=4dac8f240eb6f8265720e0bce6f8c32c"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=4274065782&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=katarii-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=katarii-22&l=am2&o=9&a=4274065782" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

- <a target="_blank" href="https://www.amazon.co.jp/gp/product/4802610793/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4802610793&linkCode=as2&tag=katarii-22&linkId=72d4f7143cecdfbffd58643cc3b925af">Pythonによるスクレイピング&amp;機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=katarii-22&l=am2&o=9&a=4802610793" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

<a target="_blank" href="https://www.amazon.co.jp/gp/product/4802610793/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4802610793&linkCode=as2&tag=katarii-22&linkId=ddacb5291aaafcbb9594f71b930743de"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=4802610793&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=katarii-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=katarii-22&l=am2&o=9&a=4802610793" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

> **プログラムや理論がわからなくても、サンプルプログラムをコピペして動かすことが何よりも重要です。**
マルコフ連鎖やLSTMなどを用いたテキスト解析、チャットボットの作成、深層学習による牛丼の認識、機械学習・深層学習に必須なデータ収集テクニックまで網羅。

以下の本も初心者にわかりやすそうな書評がありましたので記載。

- <a target="_blank" href="https://www.amazon.co.jp/gp/product/4774176982/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4774176982&linkCode=as2&tag=katarii-22&linkId=767d4137fac9d8dff6ec188406a8af8e">ITエンジニアのための機械学習理論入門</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=katarii-22&l=am2&o=9&a=4774176982" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
 

# 実際に簡単なサンプルを試してみよう

Docker上で、TensorFlowを使って画風変換してみた。

[その記事はこちら](http://piikaachuu.hatenablog.com/entry/2017/06/21/090919)

 

# 機械学習にはたくさんの手法があることを知る

[機械学習の情報を手法を中心にざっくり整理](http://qiita.com/ishizakiiii/items/f6909696c616fd6294ca#手法)
[機械学習を始めたくなる！機械学習アルゴリズム解説スライドまとめ](https://freelance.levtech.jp/guide/detail/41/)

上記の記事は、機械学習の手法を網羅し、簡潔にまとめてある素晴らしい記事です。


# スライドで「Deep learningとは」を感じよう

<iframe src="//www.slideshare.net/slideshow/embed_code/key/kmGsDTDxgPbEo9" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/kazoo04/deep-learning-15097274" title="Deep learning" target="_blank">Deep learning</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/kazoo04">Kazuya Gokita</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/8kBoH6CJZnFwP" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/pfi/deep-learning-22350063" title="一般向けのDeep Learning" target="_blank">一般向けのDeep Learning</a> </strong> from <strong><a target="_blank" href="//www.slideshare.net/pfi">Preferred Infrastructure &amp; Preferred Networks</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/M8KOhMTwL9cx4j" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/mokemokechicken/pythondeep-learning" title="Pythonとdeep learningで手書き文字認識" target="_blank">Pythonとdeep learningで手書き文字認識</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/mokemokechicken">Ken Morishita</a></strong> </div>

<iframe src="//www.slideshare.net/slideshow/embed_code/key/HOaMz8D5dLzn3h" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/takahirokubo7792/ss-71453093" title="画像認識モデルを作るための鉄板レシピ" target="_blank">画像認識モデルを作るための鉄板レシピ</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/takahirokubo7792">Takahiro Kubo</a></strong> </div>


# 勉強のための 環境構築 をしよう

- [**ディープラーニングの有名ライブラリ5種を最短距離で試す半日コース（TensorFlow, Chainer, Caffe, DeepDream, 画風変換）**](http://d.hatena.ne.jp/shu223/20160105/1451952796)
- [Python で機械学習しよう！（環境構築 on Mac編）](http://moro-archive.hatenablog.com/entry/2014/11/28/173419)

# 勉強のためのプログラムを書こう

- [タイタニック生存者予測Tutorialの一覧](http://kagglechallenge.hatenablog.com/entry/2015/02/13/193155)
  - 『タイタニック乗客の生存予測』を題材に、予測モデルをいちから作っていくチュートリアル
- [機械学習の Python との出会い| 機械学習の Python との出会い](http://www.kamishima.net/mlmpyja/)
  - 単純ベイズ：入門編
  - Numpy
  - 単純ベイズ：上級編
  - ロジスティック回帰
- [pythonの機械学習ライブラリscikit-learnの紹介 - 唯物是真 @Scaled_Wurm](http://sucrose.hatenablog.com/entry/2013/05/25/133021)
      - Pythonの機械学習ライブラリ`scikit-learn`のチュートリアル
        - 補助
          - <iframe src="//www.slideshare.net/slideshow/embed_code/key/k2GeLgiZxDtSBm" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/AtsushiKanaya/scikitlearn" title="scikit-learnを用いた機械学習チュートリアル" target="_blank">scikit-learnを用いた機械学習チュートリアル</a> </strong> from <strong><a target="_blank" href="https://www.slideshare.net/AtsushiKanaya">敦志 金谷</a></strong> </div>
- [機械学習 はじめよう - 第18回　ロジスティック回帰](http://gihyo.jp/dev/serial/01/machine-learning/0018)

以下のコードを用意し、[こちらより実装](http://qiita.com/hik0107/items/9b6e1e989f4eaefdc31d#実装)する

```py
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import optimize

plt.style.use('ggplot')
```


# ライブラリごとの初歩記事

**TensorFlow**

- [TensorFlowを始める知識準備の手順](http://s0sem0y.hatenablog.com/entry/2017/01/17/155546)
- [多分もっともわかりやすいTensorFlow 入門 (Introduction)
](http://qiita.com/junichiro/items/8886f3976fc20f73335f)

**Theano**

[Theano の 基本メモ](http://qiita.com/mokemokechicken/items/3fbf6af714c1f66f99e9)

> THeano のチュートリアル

**Weka**

[Weka入門　～決定木とデータセットの作り方～　in松村研](http://www24.atpages.jp/antibayesian/weka/)

> 機械学習（データマイニング）ソフト

とある大学院生がこれを使って、GUIをポチポチして実装されたアルゴリズムでデータを自動分類していってたらしい。

**Keras**

- [無から始めるKeras](http://qiita.com/Ishotihadus/items/6ecf5684c2cbaaa6a5ef)
- [はじめての Keras](http://qiita.com/Ishotihadus/items/c2f864c0cde3d17b7efb)


# 真似していろいろつくってみよう

**感情分析（Sentiment Analysis）**

- [PythonでTwitterでのツイートをネガポジ判定してみた結果。。。](http://tt-
house.com/2013/08/twitter-nega-posi.html)
- [深層学習でツイートの感情分析](http://qiita.com/hogefugabar/items/93fcb2bc27d7b268cbe6)
- [Twitter Stream APIデータに対して初歩的な感情分析を試みる。](http://qiita.com/kenmatsu4/items/52ab6deffdd61e7d8c0f)
- [ディープラーニングを使って転職会議の企業クチコミデータを感情分析してみる](http://qiita.com/inuscript/items/54daa5aedde599e2637c)

**画像認識**

- [OpenCVでアニメ顔検出をやってみた](http://kivantium.hateblo.jp/entry/2014/09/16/231211)
- [ご注文はDeep Learningですか？](http://kivantium.hateblo.jp/entry/2015/02/20/214909)
- [ご注文は機械学習ですか？](http://kivantium.hateblo.jp/entry/2014/11/25/230658)
- ディープラーニングでおそ松さんの六つ子は見分けられるのか？
- [準備編](http://bohemia.hatenablog.com/entry/2015/11/22/161858)
- [実施編](http://bohemia.hatenablog.com/entry/2015/11/22/174603)
- [機械学習で芸能人の顔を分類してみよう！](http://ceblog.mediba.jp/post/148732090077/機械学習で芸能人の顔を分類してみよう)
- [ねこと画像処理 part 2 – 猫検出 (モデル配布) « Rest Term](http://rest-term.com/archives/3131/)
- [「顔以外」のものを画像認識する on iOS](http://qiita.com/shu223/items/ffd2202eaf92d342f83d)
- [ディープラーニングによる姿勢推定openposeで「男子の夢な（衣服の下を透視する）妄撮カメラ」を作ってみよう!?](https://getpocket.com/redirect?url=http://www.hirax.net/diaryweb/2017/05/18.html#10977&formCheck=0a6ffb8fda4298403eccae5acc800a8f)
- [Googleの猫認識 (Deep Learning) - 大人になってからの再学習](http://d.hatena.ne.jp/Zellij/20130608/p1)
- [画像認識によって焼きたてパンの種類を判断できるレジ装置](http://itpro.nikkeibp.co.jp/article/COLUMN/20140729/571322/)
- [低解像度の画像から、自動車のナンバープレートのナンバーを識別](http://itpro.nikkeibp.co.jp/article/COLUMN/20140729/571322/)
- [金貨が本物かどうか見極める - Qiita](http://qiita.com/ynakayama/items/33231bf23d40d1c1f344)
- [食べられるキノコを見分ける - Qiita](http://qiita.com/ynakayama/items/d67ffc172afaf0895de4)

**テキスト処理**

- [大量のニュースから興味関心のある話題をベイジアン分類で抽出する - Qiita](http://qiita.com/ynakayama/items/de19da95cb56763d757d)
- [twitter streamingAPIで突発的な流行語を抽出 - Qiita](http://qiita.com/shima_x/items/d1bdad274fb07a3e356d)
- [英文の誤りを見つけ出し、ネイティブが書いたかのような文章に校正](http://itpro.nikkeibp.co.jp/article/COLUMN/20140729/571322/)
- [指し手を「機械学習」することで将棋アルゴリズムを自動生成](http://itpro.nikkeibp.co.jp/article/COLUMN/20140729/571282/)
- [最新記事のいいね！数を予測してみる - Qiita](http://qiita.com/okappy/items/d0e5db0b88bd6085513d)
- [ナイーブベイズでツンデレ判定してみた - Qiita](http://qiita.com/IshitaTakeshi/items/dcc8d9271fb14c0a6f58)
- [東京都議会議員選挙の党派マニフェストを自動分類したよ - sleeping vote](http://d.hatena.ne.jp/stick23rd/20090710/1247210810)


# なんだかすごそうな人の紹介

http://qiita.com/tsunaki



# 参照元記事

- [機械学習をこれから始める人に押さえておいてほしいこと](http://qiita.com/IshitaTakeshi/items/4607d9f729babd273960)
- [機械学習を始めて２週間、機械学習を始めるのに必要だったこと](http://qiita.com/tsunaki/items/d440fa06f763b0bf17f7)
- [AIはproblem solvingマシンではない - ニューロサイエンスとマーケティングの間 - Being between Neuroscience and Marketing](http://d.hatena.ne.jp/kaz_ataka/20151011/1444523656)
- [数学を避けてきた社会人プログラマが機械学習の勉強を始める際の最短経路](http://qiita.com/daxanya1/items/218f2e3b922142550ef9)
- [機械学習を1ヵ月で実践レベルにする #1 (とっかかり編)](http://qiita.com/junichiro/items/ee50af10df77d52cd432)
- [【機械学習入門】基礎から実践まで学び尽くそう](https://mayonez.jp/topic/1817)を参考
- [【人工知能初心者向け】機械学習・Deep Learningプログラミング学習の道筋と参考書籍](http://qiita.com/ryosuke1120/items/2e0999a35878b997fdca)
- [機械学習を始めて２週間、機械学習を始めるのに必要だったこと](http://qiita.com/tsunaki/items/d440fa06f763b0bf17f7)
- [データサイエンティストに興味があるならまずこの辺りを見ておきな、って文献・動画のまとめ（随時追加）](http://qiita.com/hik0107/items/ef5e044d2f47940ba712)
- [機械学習はじめの一歩に役立つ記事のまとめ](http://d.hatena.ne.jp/shu223/20141209/1418127536)
- [統計の素人だけどPythonで機械学習モデルを実装したい、そんな人のための第一歩](http://qiita.com/hik0107/items/9b6e1e989f4eaefdc31d)