MIT 6.S191 Introduction to Deep Learning
MITの2020年度Deep Learningコースのビデオやスライドが、MITライセンスで公開されている。 "Introduction to Deep Learning"というタイトルの通り、Deep Learningの解説が分かりやすい。
レクチャーのスライド等のコンテンツは、MITライセンスで公開されているので、以下のリファレンスを明記すると無償で利用できる。
© Alexander Amini and Ava Soleimany MIT 6.S191: Introduction to Deep Learning IntroToDeepLearning.com
レクチャー1: Intro to Deep Learning
レクチャーは、1から10まである。レクチャー1のIntro to Deep Learningでは、次の内容を知ることができる。
- ディープラーニングとは
- 何故、今ディープラーニングなのか?
- パーセプトロン
- パーセプトロンでニューラルネットワークを構築する
- ニューラルネットワークの適用
- ニューラルネットワークのトレーニング
- ニューラルネットワークの実践
- 最適化
- ミニバッチ
- 過学習
レクチャーのスライドには、必要に応じてTensorFlowによる具体的なコードが記載されていてわかりやすい。
レクチャーコード
レクチャーのプログラムコードも公開されている。コードは、Google Colabで作成されており、説明文を読みながら実際にPythonのコードをウェブブラウザ上で動かすことができるようになっている。
Part1_TensorFlow.ipynbでは、実際にコードを実行して次の内容を確認することができる。コードは一部が穴埋め形式になっており、自分でコーディングして完成させる必要がある。
- パート1: TensorFlowの概要
- TensorFlowのインストール
- 何故TensorFlowはTensorFlowと呼ばれているのか?
- テンソルの計算
- TensorFlowのニューラルネットワーク
- TensorFlowの自動微分
例えば、テンソルの計算部分では、関数内の#TODOと記載された部分に自分でPythonコードを追記して実行する。
### Defining Tensor computations ###
# Construct a simple computation function
def func(a,b):
'''
TODO: Define the operation for c, d, e
(use tf.add, tf.subtract, tf.multiply).
'''
c = a + b # TODO
d = b - 1 # TODO
e = c * d # TODO
return e
# © Alexander Amini and Ava Soleimany
# MIT 6.S191: Introduction to Deep Learning
# [IntroToDeepLearning.com](http://introtodeeplearning.com/)
# Consider example values for a,b
a, b = 1.5, 2.5
# Execute the computation
e_out = func(a,b)
print(e_out)
6.0
レクチャーのビデオやスライドを閲覧するだけでコードの穴埋め部分を完成させるのは難しい。コードで使用されているディープラニングライブラリのTensorFlowとKerasを理解せざるを得ない。また、Pythonと数値ライブラリnumpyの理解も必要になる。
参考になるTensorFlowのチュートリアル
レクチャーコードの穴埋め部分を完成させるにはTensorFlowの知識が必要になるが、TensorFlowの公式サイトに丁寧な解説がある。初心者のための TensorFlow 2.0 入門
Kerasライブラリを使って、画像を分類するニューラルネットワークを構築するチュートリアル。 https://www.tensorflow.org/tutorials/quickstart/beginner?hl=ja
はじめてのニューラルネットワーク:分類問題の初歩
ファッションMNISTデータセット(スニーカーやシャツなどの写真)を使ったニューラルネットワークのモデル訓練。
https://www.tensorflow.org/tutorials/keras/classification?hl=ja
畳み込みニューラルネットワーク (Convolutional Neural Networks)
手書きの数の画像を分類(MNIST)をするための、シンプルな畳み込みニューラルネットワークのチュートリアル。
https://www.tensorflow.org/tutorials/images/intro_to_cnns?hl=ja
Writing custom layers and models with Keras
Kerasを利用したカスタムレイヤーとモデルの作成
https://www.tensorflow.org/guide/keras/custom_layers_and_models?hl=ja
Colabがすばらしい
レクチャーのコードを実際に穴埋めして、説明文を読みながらインタラクティブにPythonコードを実行できるColabがすごく良い。Googleアカウントがあれば無償で利用できる。しかもGPUも使える。PythonやTensorFlowを使ったディープラーニングの学習には欠かせない。