今まで、CouseraのAndrew Ng先生のMachine Leaningを受講したり、有名なゼロから作るDeep Learningを読み、本にしたがってコードを書いたりしていた。
ただ自分で新たにDeep Learningのネットワークを作って実装をする際になにから始めるかが不明だった。そんなときに以下のコースを見つけ、受講してみたら予想以上に良かった。
Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning
コースの特徴
- 数学的な説明はほぼない
- 機械学習について背景知識は必要
- 内容はかなり入門
- Jupyter Notebookで作業
- Googleのcolabなどへのリンクもあり、その上で作業も可能なので環境構築は不要
- 課題もCousera上のJupyter NotebookからSubmit可能
身についたこと
- Tensorflow/Kerasが使えるようになった
- 自分でネットワークの層を追加したり、試行錯誤できるようになった
内容
Week 1. A New Programming Paradigm
機械学習と通常のプログラミングの違いについて説明される。かなり基礎的な内容。
課題では回帰問題をTensorflowを使って解いた。
Week 2. Introduction to Computer Vision
Fashion MNISTのデータを使って分類問題を解く。この週にはCNNは用いず、画像データを一列のベクトルとして、DenseなNeural netで解く。この過程でKerasを使ったネットワークの構成の仕方が身についた。
また、epoch終了後にコールバックを呼び出す方法を学ぶ。これにより、accuracyが一定以上になったら学習を終了することができるようになった。
課題では通常のMNISTの分類問題を解いた。
Week 3. Enhancing Vision with Convolutional Neural Networks
Week 2.のFashion MNISTの分類問題をCNNで解く。CNNについてのごく簡単な説明と実際にTensorflow/Kerasで実装する方法について学ぶ。Convolution結果の可視化をしたりもして、理解が深まった。また、自分でConvolution層の数を変更したり、Max Poolingを除いてみたりなど試行錯誤して、accuracyや学習および推論の速度にどのような影響があるのか経験することができた。
Week 4. Using Real-world Images
Week 3で行ったことを実画像 (Mピクセル、カラー画像、オブジェクトが中央に写っていない)に適用する。具体的には「人」と「馬」画像の分類。以下が中間層の出力の可視化などが特に参考になった。
まとめ
レビューなどでも書かれているように確かに内容やエクササイズは簡単。CourseraのAndrew Ng先生のMachine Leaningやゼロから作るDeep Learningで学んだ後の次の一歩としていいのではないか。