# 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 (opens new window)

# レクチャー1: Intro to Deep Learning

レクチャーは、1から10まである。レクチャー1のIntro to Deep Learning (opens new window)では、次の内容を知ることができる。

  • ディープラーニングとは
  • 何故、今ディープラーニングなのか?
  • パーセプトロン
  • パーセプトロンでニューラルネットワークを構築する
  • ニューラルネットワークの適用
  • ニューラルネットワークのトレーニング
  • ニューラルネットワークの実践
    • 最適化
    • ミニバッチ
    • 過学習

レクチャーのスライドには、必要に応じてTensorFlowによる具体的なコードが記載されていてわかりやすい。

# レクチャーコード

レクチャーのプログラムコードも公開されている。コードは、Google Colab (opens new window)で作成されており、説明文を読みながら実際にPythonのコードをウェブブラウザ上で動かすことができるようになっている。

Part1_TensorFlow.ipynb (opens new window)では、実際にコードを実行して次の内容を確認することができる。コードは一部が穴埋め形式になっており、自分でコーディングして完成させる必要がある。

  • パート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 (opens new window)

# はじめてのニューラルネットワーク:分類問題の初歩

ファッションMNISTデータセット(スニーカーやシャツなどの写真)を使ったニューラルネットワークのモデル訓練。

https://www.tensorflow.org/tutorials/keras/classification?hl=ja (opens new window)

# 畳み込みニューラルネットワーク (Convolutional Neural Networks)

手書きの数の画像を分類(MNIST)をするための、シンプルな畳み込みニューラルネットワークのチュートリアル。

https://www.tensorflow.org/tutorials/images/intro_to_cnns?hl=ja (opens new window)

# Writing custom layers and models with Keras

Kerasを利用したカスタムレイヤーとモデルの作成

https://www.tensorflow.org/guide/keras/custom_layers_and_models?hl=ja (opens new window)

# Colabが圧倒的すごい

レクチャーのコードを実際に穴埋めして、説明文を読みながらインタラクティブにPythonコードを実行できるColabのすごさが体感できた。Googleアカウントがあれば無償で利用できる。しかもGPUも使える。PythonやTensorFlowを使ったディープラーニングの学習には欠かせない。


Copyright© 石丸技術士事務所, 2020 All Rights Reserved.