長野ディープラーニングハンズオン

2017/05/20(土)10:00 〜 18:00 開催
ブックマーク

イベント内容

長野ディープラーニングハンズオン概要

NSEG/GEEKLAB.NAGANOでディープラーニングのハンズオンをします。

条件は

  • ニューラルネット/ディープラーニングに興味がある
  • dockerを実行可能な自分のノートPCを持ってこれる
  • FizzBuzz程度の簡単なコーディングができる
  • Pythonはわからなくてもよい

やる範囲が結構多いため

5/20(土)に第1回
5/27(土)に第2回

と2週連続で2回にわたって行います。

Dockerインストールとイメージの準備

参加者のPython環境が違っているとそこでつまづく可能性が増えるので、環境を揃えたいと考えていました。
そこでdocker内の環境を使うことで統一した環境にしようと思います。

自分はMacはDocker for Mac
https://www.docker.com/products/docker
WindowsはProならばDocker for Windowsか、Docker for WindowsはVirtualBoxとの共存が出来ないため、DockerToolboxを入れて試しています。MacでもHyper-VがないCPUの場合はDockerToolboxを使ってください。
https://www.docker.com/products/docker-toolbox

今回は、でまちさんに作っていただいたPython3ベースでTensorFlowとJupyterが使えるdockerイメージ https://hub.docker.com/r/tatsushid/alpine-py3-tensorflow-jupyter/ をベースにして、今回Kerasでの学習に使うサンプルデータ込みのイメージを https://hub.docker.com/r/stealthinu/alpine-py3-tensorflow-jupyter-datasets/ に作りました。
dockerインストール後、このイメージを使ってコンテナを動かします。下記コマンドでポート8888でパスワードfoobarでコンテナが起動します。

docker run -itd -p 8888:8888 -e PASSWORD=foobar stealthinu/alpine-py3-tensorflow-jupyter-datasets

その後、ブラウザで下記URLに接続するとJupyterの表示がされます。

Docker for Windows/Mac やLinuxのDockerの場合

http://localhost:8888/

DockerToolboxを理容している場合(接続IPアドレスは docker-machine ip で確認出来ます)

http://192.168.99.100:8888/

パスワードが求められるので、先のdocker runで指定したPASSWORDの値、ここでは「foobar」を入力するとJupyterにログイン出来ます。

右端「New」ボタンから「Terminal」を選択してターミナルを出します。 下記コマンドでgit cloneを実行すると、ハンズオン準備勉強会用に作っているリポジトリがコピーされます。

git clone https://github.com/stealthinu/naganodeeplearning

ハンズオンで色々とソースを変更しますので、ブランチを切っておくと良いでしょう。

git branch handson
git checkout handson

ハンズオン内容

ハンズオンに先立って9回にわたりハンズオンの準備会を行なっています。
以下がその時にやった内容で、基本的にこれに沿った内容になります。

1回 ニューラルネットワークとは

  • ニューラルネットワークとディープラーニングの概要
  • 人力ニューロンになってニューロンの学習方法を学ぶ
  • Pythonの環境を整える

http://glnagano.connpass.com/event/43820/

2回 パーセプトロン

  • Pythonでニューロンの出力と学習を実装
  • パーセプトロンを実装
  • 数字(MNIST)をパーセプトロンで学習させる

http://glnagano.connpass.com/event/44785/

3回 バックプロパゲーション

  • 学習を一般化し誤差関数から学習を行なう説明
  • バックプロパゲーションの多層での学習方法の説明

http://connpass.com/event/45339/

4回 バックプロパゲーションの実装

  • アナログ値に拡張
  • バックプロパゲーションの実装
  • 数字(MNIST)をバックプロパゲーションで学習させる
  • 活性化関数を変えて試す
  • 層を増やして試す

https://glnagano.connpass.com/event/46210/

5回 ディープラーニングで使われる技術

  • 層を増やして試す
  • 学習の効率化(モーメント、Adamなど)
  • 活性化関数の変更(tanh、ReLUの意味と効果)
  • ローカルミニマムに陥らないための方法(事前学習、Dropout、バッチ正規化)

https://glnagano.connpass.com/event/46887/

6回 畳み込みニューラルネットワーク(CNN) 1

  • ネオコグニトロンの概要
  • ネオコグニトロンとCNNについて色々説明

https://glnagano.connpass.com/event/48317/

7回 畳み込みニューラルネットワーク(CNN) 2

  • CNNの構造説明
  • ConvolutionとPoolingの説明
  • ConvolutionとPoolingの順方向実装

https://glnagano.connpass.com/event/49653/

8回 畳み込みニューラルネットワーク(CNN) 3

  • ConvolutionとPoolingの逆方向実装
  • CNN実装
  • 文字認識のテスト
  • 重み可視化して観察など

https://glnagano.connpass.com/event/50147/

9回 (おまけ)ディープラーニングフレームワークの利用

  • Tensorflow/Kerasを利用してCNNの実装
  • Cloud ML利用してGPU利用した学習

https://glnagano.connpass.com/event/51399/

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。