社会人からはじめる機械学習勉強 Week 14 – PRML4章まで

2016/4/4~4/10

今週1週間、会社で出張が入ったため、実装面での進捗はなし。家のPCは使えいないということで、本を持参して勉強をしていた。

PRML

機械学習では一番有名な本。ただし学術研究としての本であり、ただ実装できればいいエンジニアにとっては難易度は高いと思う。

読み始めから5章途中まで行った。

[書評]
副題にもあるとおり、パターン認識をベイズ的な取り扱いから理論立てていく本。
アカデミックに使用されている感じが強く、理論が多くてちゃんと計算も追ったり、演習もやるとなると読むのには時間がかかりそう。
演習まできちんとこなせば、確率論・微分積分・分布関数などこの分野を扱うにあたって必要な数学の基礎はしっかり身に付くと思う。
とくに頻度主義(事前分布を考慮しない、実践面ではこっちで十分なことが多いか)・ベイズ主義(事前分布を考慮して最尤推定する、計算が一段階難しくなる。)
にスポットを当てて書かれていて、ベイズ主義を学びたい場合はこの本を読むことは必須だろう。

しかし、現在多くのアプリケーションで用いられているのは頻度主義の理解で十分で、これを理解するためだけにこの本を読むのはtoo muchな印象。
上巻の5章・ニューラルネットワークまでだとそんな感じだけど、下巻で応用例を扱うっぽいので、ここを読んでみないと何とも言えないけど。

社会人からはじめる機械学習勉強 Week 13 – SRCNNの実装開始

2016/3/28~4/3

3/26~30まではPhuketへの旅行へ行っていたため、特に何も進まず。

機械学習用パソコンセットアップ

家のUbuntu環境をセットアップしなおした。現状多くのソフトがサポートしている環境であるUbuntu 14.04でセットアップ。

Python セットアップ

以下備忘録として、メモ抜粋。

python, numpy, scipy, matplotlib install

$ sudo apt-get install python python-dev
$ sudo apt-get install python-numpy python-scipy python-matplotlib

Ref: http://sat0yu.hatenablog.jp/entry/20130302/1362172589

$ sudo apt-get install python-pip
$ sudo pip –proxy=http://xx.xx.xx.xx:port install milksets

PIP setting

[Encode change from ‘ascii’ to ‘utf-8’]

This is necessary for pip to work properly on Ubuntu
Change default encoding

add write below at /usr/lib/python2.7/sitecustomize.py

import sys
sys.setdefaultencoding('utf-8')

Theano install

For Ubuntu 11.10 through 14.04:

$ sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ 
$ libopenblas-dev git
sudo pip install Theano

Updating theano module

$ sudo pip --proxy=http://xx.xx.xx.xx:yyyy install --upgrade theano
$ theano-cache clear

Upgrading scipy

$ sudo pip --proxy=http://43.74.40.42:10080 install --upgrade scipy

We can upgrade scipy when we get below warning

Pandas install

sudo pip install pandas

Image processing: OpenCV, CV2

I don’t know which one is necessary. all 4 procedures, it worked fine.

1. Install by pip

$ sudo pip --proxy=http://43.74.40.42:10080 install cv2

2. Install python-opencv

$ sudo apt-get install python-opencv

3. using script

Make “opencv.sh” and write following and execute.

version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9]+)+' | cut -c2-)"
echo "Installing OpenCV" $version
mkdir OpenCV
cd OpenCV
echo "Removing any pre-installed ffmpeg and x264"
sudo apt-get -qq remove ffmpeg x264 libx264-dev
echo "Installing Dependenices"
sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg cmake qt5-default checkinstall
echo "Downloading OpenCV" $version
wget -O OpenCV-$version.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".zip/download
echo "Installing OpenCV" $version
unzip OpenCV-$version.zip
cd opencv-$version
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make -j2
sudo checkinstall
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
echo "OpenCV" $version "ready to be used"

4. PYTHONPATH setting

Write inside ~/.bashrc

# Python Path setting
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH

Chainer install

Before installing chainer, I needed to install google apputils beforehand!!!

$ sudo pip --proxy=http://xx.xx.xx.xx:yyyyy install google-apputils
$ sudo pip --proxy=http://xx.xx.xx.xx:yyyyy install chainer

SRCNN実装

以下、関連するリンク集。

SRCNN Website サンプルソースコードなど

Matlab, caffeを使って実装しているよう。

・写真のデータセットについて
1.ILSVRC
http://image-net.org/challenges/LSVRC/2013/
http://image-net.org/challenges/LSVRC/2015/
ILSVRCは、Detection, classification task用の写真Datasetを配っているので、写真の質は必ずしも良くないものが多いので不適切な気がする。

2.Places2
http://places2.csail.mit.edu/index.html
http://places2.csail.mit.edu/download.html
景色のDetectionのためのProjectで、10M枚を超える(500GB程度)写真のDatasetを提供している。景色写真が大量にほしかったらここで足りそう。
とりあえず一番小さいVaridation dataset 1.2GBだけダウンロードした。

3.Pexel (Flickrとかもあり)
本格的なTraining phaseに入る前までは、少ない枚数のサンプルがあれば十分なので、手動でPexelからCC0ライセンスの写真を使うことに。→最終的にはこれを使って訓練してる。

社会人からはじめる機械学習勉強 Week 12 – Theano tutorial Restricted Boltzmann Machine

2016/3/21~3/27

ディープラーニング実践勉強 Theano

先週から引き続き、ディープラーニングの実践勉強。

先週から引き続き教師なし学習編。先週Auto Encoderを一気にマスターしたので、今週はRestricted Boltzmann Machine (RBM)を一気にマスターしていく。

構成

6章でRBMについて学ぶ。この時点では単層の教師なし学習。

7章でRBMを積み重ねてPretrainingを行っていくDeep Belief Networkについて学ぶ。

6章 Restricted Boltzmann Machines

教材

細かい説明は上のリンク参照。また、「深層学習」でもRBMに説明されているので、読むとよい。

正直いままで学んできたものとは段違いに理解難易度が上がる。

7章 Deep Belief Networks 

教材

同上で詳細は略。Stacked Denoising AutoEncoderでやった時と同様に、1層目から順にPretrainingしていくことで学習の安定化を図り効果を高めるというもの。

設定している目標

2章/週のペースの勢いでやっていって4月末までに全部終わらせたい。

→結果論として次週WK13からは実践編ということで、SRCNNの実装に入ったこともあり勉強に時間とれなくなった。また、残りの章はこれまでの章と比べると説明が断片的で、補足的な感じがあるので、一旦優先度を下げて今回はここでdeeplearning.netの学習終了とする。

残りの部分についてはまた暇な時間ができたとき・使う必要に迫られたときに学習することにしようと思う。

社会人からはじめる機械学習勉強 Week 11 – Theano tutorial Auto Encoder

2016/3/14~3/20

ディープラーニング実践勉強 Theano

先週から引き続き、ディープラーニングの実践勉強。

先週、MLPとCNNを学び、教師あり学習をすべて終えたので、今週からは教師なし学習編。Auto Encoder, Denoising AutoencodersとStacked Denoising Auto-Encodersの部分、ということでAuto Encoderを一気にマスターする。

教師なし学習の意義・手法

教師なし学習というと、ラベル付けがされていない(正解が存在しない)データからある特定のデータの偏り方の分布=クラスタを見つけてグループ分けするというイメージ。(Coursera “Machine Learning” by Andreaw Ng ではそういった紹介もされていた。)しかし、教師なし学習のもう一つの利用法として教師あり学習の効率化のために用いることもできる。

deelplearning.netのTutorialでは一貫してMNISTのクラス分類タスクを課題としている。これは正解となるラベルが与えられているので、わざわざ教師なし学習をするメリットがないように思うかもしれない。しかし、教師なし学習を導入することで、各層の事前学習(Pretraining)が行えるようになりディープラーニングを効率化させることができる。

ディープラーニングで層を深くしていくと全体の層を一度にうまく学習させるのが難しくなってくる。例えば、Sigmoid関数を活性化関数として利用する場合には活性前の値が小さかったり大きかったりするとほぼ0か1に張り付いてしまい、その後の学習が現実時間では進まなくなる。そこで、全体を一度に学習させるのではなく、初めの各層を”データの特徴抽出をするための層”として事前学習させてあげることで本番の学習時に上記のような、学習がストップしてしまうといったことを回避することができディープラーニングをより深い層まで構築していくことができるようになる。

教師なし学習は、正解ラベルをみずに、入力データの統計的偏りだけを見ている→”データの特徴抽出”を行っており、全体の層を用いずに初めの各層だけでの事前学習を可能にする。

deelplearning.netのTutorialで紹介されている教師なし学習は大まかに分類すると2つで、Auto EncoderとRestricted Boltzmann Machineとなる。今週はAuto Encoderを勉強する。

まとめ

  • 教師なし学習の本質は”データの潜在的な特徴抽出”を行えるということ。
  • 教師なし学習の2大手法
    • Auto Encoder  (オートエンコーダ)
    • Restricted Boltzmann Machine (制約ボルツマンマシン)

構成

4章で教師なし学習の”Auto Encoder”、それを改良したモデルである”Denoising Autoencoders”について学ぶ。

5章でAuto Encoderを複数層重ねて、教師あり学習に組み込むためのテクニックとして”Stacked Denoising Autoencoders”について学ぶ。

4章 Auto Encoders, Denoising Autoencoders

教材

細かい説明は上のリンクがわかりやすいので省略。

仕組みとしては、オートエンコーダは入力データを1.エンコード→2.デコードというプロセスで学習させる。入力データを復元できるようにエンコードするということは入力データの特徴をしっかりととらえているという事。デコード後の出力が入力と等しくなるようにするという問題設定をすることで、教師あり学習と同じように学習が行える。用いるのモデルは以前学習済みのMLP。

また、入力(画像)にノイズを加えてから入力してモデルを学習させることで、より本質的的な特徴量を見出すことができるようになり学習の効果があがる(事が多い)。→Denoising Auto Encoder。

5章 Stacked Denoising Auto-Encoders 

教材

同上で詳細は略。

はじめに事前学習としてDenoising Auto Encoderで1層目を学習させ、学習済みパラメータを用いた1層目と新たに足された2層目でDenoising Auto Encoderで2層目を学習させる。。。というように1層ずつ事前学習を積み重ねていくことができる。最後にきちんと事前学習されたパラメータから初めて通常の教師あり学習をすることで学習の効果を上げる・学習を安定させて進めることができる。というもの。

設定している目標

2章/週のペースの勢いでやっていって4月末までに全部終わらせたい。

「深層学習」読了

今まで読んできた、「深層学習」を読み終わった。

ディープラーニングについての理論が学べる本は少なかったのでとてもよかった。特に、CNN, RNN, RBMについて学ぶことができた。

Waifu2xの仕組み理解

先週CNNも勉強したことだし、そろそろ2月頭から興味をもっていたwaifu2xの動作も理解できるかな。という事でwaifu2xの勉強開始。

オリジナルのアイデアである、SRCNNの論文読んだ。

アイデアはCNNを使って、よく行われるタスクである画像のClassificationの代わりに、拡大画像の復元を行うというだけのものなので理解は簡単にできた。

ただ、オリジナルの論文とwaifu2xでは層の深さや畳み込みフィルターのサイズなどのパラメータ設定値が結構違う模様。このあたり(NNのパラメータ設計)がパフォーマンスにどのように影響してくるのかは興味あるところ。

waifu2xリンク集:

社会人からはじめる機械学習勉強 Week 10 – Theano tutorial MLP, CNN

2016/3/7~3/13

ディープラーニング実践勉強 Theano

先週から引き続き、ディープラーニングの実践勉強。

今週は2章のMultilayer Perceptronと3章のDeep Convolutional Networkを学ぶ。前半の教師あり学習編はこれで全部となる。

2章 Multilayer Perceptron

教材

Multilayer Perceptron(MLP)多層パーセプトロンは先週やったLogistic Regressionを多層にしただけなので、理解も実装もそこまで難しくない。1.5日程度で写経も終わらせて理解できた。

1月から勉強始めてきて、ようやく機械学習の勉強から今ホットな最先端技術であるディープラーニングまでたどり着いたという印象。

日本語のブログの方ではMLPの動作のVisualizationなんかもされていてより理解しやすくなってる。

3章 Deep Convolutional Network

教材

画像認識で最もメジャーな手法として用いられている、Convolutional Neural Network (CNN) 畳み込みニューラルネットワークの勉強。waifu2xでも使われているのでとても興味を持っていた分野にたどりついた。

ちなみに理論面は「深層学習」の書籍を合わせて読んでおくとよりわかりやすいと思う。(自分は英語だけでは100%理解できないので。)

学習のポイントとしてはCNNに用いられている層には

  • Convolution layer:畳み込み層
  • Max pooling layer

があるので、まずはこれらを一つ一つ実装して動作確認することで理解していくとよい。実際にConvolutional Neural Networks (LeNet)では、オオカミの写真を使ってConvolutionの説明、次の節でMax Poolingの説明をしている。

日本語のブログTheano で Deep Learning <3> : 畳み込みニューラルネットワークを参考に自分で持ってきた写真でConvolutionとMax Poolingを実際に試した。→実践すると理解が深まるし、少しコードをいじることで応用力もつくので良いと思う。

ここまで終わったら、公式Tutorialの方のCNN Putting all togetherを写経して試す。CNNいままで本で理論だけ勉強してイメージしづらく難しいと思っていたけど、実践しながら勉強していくことで理解できた!

設定している目標

2章/週のペースの勢いでやっていって4月末までに全部終わらせたい。

Coursera → “Machine Learning” 学習完了

引き続き、Courseraを勉強。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つくらいのペースでVideo見ていっている(通勤前の30分くらいのみ)

今週とうとうすべて見終った。ビデオなのでイメージ説明もあるし、解説が丁寧でとってもわかりやすかった。Andreaw Ng先生ありがとうございました。

中期プラン

2月中は基礎づくり。

3月にDeep learning, nural network, convolutional nural networkに入っていけるのが目標。
3月初め現状: 実践面ではこれからやっとLogisticから始めるくらいなので予定より遅れているけど、理論部分はCNNも大体把握できてる。上記のDeeplearning.netで進めていきたい。

4月にはDeep learning, nural network, convolutional nural networkに入ること。実際にツールをトライ&エラーで試せるようになること。
 予定そのままで。

5月になにかで実践を始めたい。wife2xを自分で完全にソースコード追えるようになるとかとか。

6月 強化学習に移る?写真ではなく動画のUpscaleをCNNでできないか??

社会人からはじめる機械学習勉強 Week 9 – Theano tutorial Logistic Regression

2016/2/29~3/6

deeplearning.net tutorial

先週から引き続き、ディープラーニングの実践勉強。

、、、ググっていたら同じように最近Deeplearning.netを学び始めている人のBlogを発見。しかもわかりやすい!

ということで、上二つを交互に見ながら進めていくことに。

Python Tutorial 

Theano に入る前の基礎勉強。9章のクラスを読了。Iterator, Generatorについて学んだ。

1章 Logistic Regression

Deeplearning.netでは、MNISTという手書きの数字0~9を画像識別するタスクを、各手法を通じて実装していくことで各手法の理論・実装方法やTheanoの使い方を理解していくことができる。MNISTの識別タスクは機械学習ではHello worldにあたる入門の位置づけ的存在のよう。

今週は、1章のLogistic regression読了。そして実践力をつけるために、Deeplearning.netのソースコードをCloneし、そのコードを写経していった。

写経はとても重要だと思う、実際に書きながら追っていくことで結構理解が深まった。

とくに感じた(はまった)点として、Pythonは変数の型宣言がないために、その変数がなになのか、とくに機械学習の場合はその変数の次元(ベクトル・行列なのか、また各階数におけるの次元数など。)が明記されていないためわかりづらい。また、Numpyにおいて、ベクトルと行列の演算がどうなるのか(暗黙に次元数が違うものを足し算する場合の挙動など)は実際に簡単なコード動かしながら理解していかないと、わからないだろう。とくに、写経においては、各変数について細かく次元を書き下していくと理解ができる。

目標設定

4月末までに全部終わらせたい。上記のブログよりはやい2章/週のペースの勢いでやらないといけない、、、1.5か月で終えられたら最高だけど。。。

Coursera

引き続き、Courseraを勉強中。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つくらいのペースでVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい → 来週までに終えたい。

社会人からはじめる機械学習勉強 Week 8 – deeplearning.net

2016/2/22~2/28

deeplearning.net tutorial

もう機械学習の勉強を始めて2か月もたっているわけで、とにかくもう理論勉強だけではなく、実装ができるような力をつけていきたい。やっぱり実装というのは参考コーディング例などがないと難しいわけで、機械学習に詳しい友達がいない自分はどこから探していいのかわからなかった。

ともあれはじめないと進まないので、実践ディープラーニングで勧められていたhttp://deeplearning.net/tutorial/を始めてみたい。
このチュートリアル内に書いてあるように、Theanoの勉強から始めることに。

Python Tutorial 

まずはPythonの基礎・概要をざっと学習するところから。これはversion 3の説明のよう。。。

6章くらいまで流し読みして終わり。1日くらい。
9章のクラスは読んだ。1節はScopeの話だが文字ばっかなので飛ばした方が良い。

numpy quickstart tutorial

Pythonでベクトル・行列演算をする場合に使うライブラリであるnumpyの説明。Quickstart tutorialだけでも丸一日かかるくらいの分量がある。

ArrayとMatrixの違い → Array使っとけばよし。

Theano tutorial

ここまではTheanoを使うための基礎知識準備で、これがメインコンテンツ。Theanoは機械学習のためのライブラリ。来週から本格的にTheanoの勉強に入りたい。

Theano関連で見つけた参考リンク

知能コンピューティングに関わる技術情報を公開していく予定です。

Theano による Amazon Web Service (AWS) 上での GPU 計算

本文書では AWS の GPU 計算サーバ (GPU インスタンス) 上で Theano を使用する方法を説明します。 Theano 入門 で紹介したプログラムを CPU と GPU で実行し、その計算速度を比較します。

Theano 入門

Python 用の数値計算ライブラリ Theano の使い方を説明します。応用例として Restricted Boltzmann Machine を実装します。

http://www.chino-js.com/ja/tech.html より

Python 開発環境構築 - PyCharm

PythonのコーディングにはPyCharmを使用することにした。PyCharmはJetBrains社開発のIntelliJをベースプラットフォームとしているIDEのPython用。Web関連の機能を使用しなければ無料で使用できる。Android開発をしていた自分にとってはAndroid Studioと同じPlatformで動いてて使いやすい!

実践編その他

Logistic regressionの実践をこのブログのコピーして実行してみた。

多クラス分類もしっかりやってる。

理論編はこちらが微分までしっかりやっていてよい。

*上のブログはMathJaxっていう数式Webエディタ使ってて、ブログでTex使いたかったらこれはいいなーと思った!
→1日かかったけどできた。(でも収束がおそい、、、なんかコードミスってるかも。)

Coursera

引き続き、Courseraを勉強中。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つくらいのペースでVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい→けど無理そうだな。。。

社会人からはじめる機械学習勉強 Week 7 – CNN・RNN・RBM

2016/2/15~2/21

深層学習

深層学習」を継続して勉強中。今週はCNN、RNN、RBMを読んでる。理論の概念理解ができる。でも実装には結びつかない。

  • Convolutional Neural Network
    畳み込みニューラルネットワーク。主に画像処理で扱われる。画像の2次元位置情報を活用し、ローカルな部分にのみ畳み込み計算を実行する。パラメータ重みの共有などでモデルを効率化することができる。
  • Recurrent Neural Network
    再帰ニューラルネットワーク。入力に対して”時間”の概念が加わったもの。自然言語処理での文章解析など、長さが決まっておらず、刻々と次の要素が表れるようなデータに用いられる。LSTM(Long Short Term Memory)についても解説有り。
  • Restricted Boltzmann Machine
    教師なし学習、生成モデル。教師なし学習なので、入力データのみから、そこに存在するデータの統計的偏り=特徴を抽出する。RBMは、入力データに存在する”特徴抽出”を物理的なモデルを使用して行うことができる。
    Deep learningでは層を重ねていくと発生するVanishing gradient問題があるので、各層ごとに独立して学習を進めていく(Pretraining)という手法が有効活用される。RBMを使うと初めの層から独立して学習を進めていくことができる。

日本語でDeep Learningについて学べる本は貴重、特にConvolutional Neural NetworkやRecurrent Neural Networkについて説明してある本はまだ少ないので重宝する。

Coursera

引き続き、Courseraを勉強中。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。
 PCAやった。Principal Component Analysis・主成分分析。固有値の大きい順に固有ベクトル使うってだけ、超簡単。

実践・実装

これまでずっと理論を学んできた。が、そろそろとにかく実践に進みたい。という事で、”Deep leaning 実践”でググっていくつかSlide shareを読んだ。
caffe, theano, pylearn2, tensor flow, chainerなどなどいろいろなディープラーニングライブラリがある模様。

実践ディープラーニング で勧められていたhttp://deeplearning.net/tutorial/を始めてみたい。
このチュートリアル内に書いてあるように、そのためには事前準備として、Theanoライブラリの勉強から始めることに。

Links

社会人からはじめる機械学習勉強 Week 6 – 深層学習

2016/2/8~2/14

マレーシアでは中国の旧正月で連休、ということでKota Kinabaluへ旅行へ行っていた。

深層学習

空き時間見つけて「深層学習」を読んでた。
感想:4章CNN前まで読破。理論面の理解がわかりやすい。でも実装には結びつかない。

日本語でDeep Learningについて学べる本は貴重、特にConvolutional Neural NetworkやRecurrent Neural Networkについて説明してある本はまだ少ないので重宝する。

その他引き続き、Courseraを勉強中。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。

社会人からはじめる機械学習勉強 Week 5 – 中期目標決め

2016/2/1 ~ 2/5

勉強中

フリーソフトで作る音声認識システムーパターン認識・機械学習の初歩から対話システムまで

 読了。前半の一般的に使える理論編が良かった。後半は音声認識の実践に特化していて、現状使う予定ないので、流し読み。

実践 機械学習システム Pythonによる機械学習プログラミング

 実践ということで実際にプログラム書きながらやって行けるけど、結構わかりづらいというか地味にコード読み込む作業が必要だったり、躓いて調べたりする時間がかかる。公開されているコードの実装も著者の実装を読み解読していくといった感じで、うまくRefactoringされていない印象。ちゃんとした基礎力をつけるにはよさそうだけど、スピード感もって学びたい自分にとってはちょっと重いかも。
 → Deferする。
 → 先に下の深層学習の本を躓くところまで読み進めていこう。

Wired A.I. 
 雑誌的な読み物、たまにつまむ程度。
 現在のA. I.に関する世界の企業(大企業・ベンチャーともに)の動向がわかり参考になる。

Coursera “Machine Learning” by Andreaw Ng 
 1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。

ドットインストール
 新しいプログラミング言語をさくっと学びたいときに重宝するサイト。1レッスン3分程度で高速に学んでいける。機械学習では今Python言語で使えるライブラリが多く、トレンドのようなので、Pythonを勉強することに。
 Python入門 全24回、2日で完了。

・Slideshareなど。
 牧野さんの強化学習

次読みたい本

CNNの勉強の本命

基礎理論の勉強の役に立ちそう。

将来の目標設定

興味あること洗い出し。

Major
・機械学習の会社へ行って、何らかの作業を自動化していきたい。
・金融取引を自動で行う機械。最適行動の選択。

やるべきこと
・会社決め、会社をSurveyしてくこと。
・Kaggleなどへの参加できるだけの実力を身に着ける。
 * 2017.1.4追記:結局ほかのことに忙しくて時間も無く、しなかった。2017年に入り最近ようやく始めた。

Minor 
アプリでやりたいこと、、、
・自動画像生成      → Launcher appでの異なるテーマに対するアイコン自動生成
・画像・動画のUpscaling → 高画質なコンテンツの自動復元・生成ツール、アニメや映画を高画質で見るために自分も使いたい。

やるべきこと
・CNNの学習
・機械学習ツールの学習(Chainer, Tensor networkなどなど、、、)

2月中は基礎づくり。

3月にDeep learning, neural network, convolutional neural networkに入っていけるのが目標。

4月にはDeep learning, neural network, convolutional neural networkに入ること。実際にツールをトライ&エラーで試せるようになること。