May
20
長野ディープラーニングハンズオン
5/20(土)と5/27(土)の2回に渡って開催予定
Organizing : NSEG / GEEKLAB (主担当 さとうきよし @stealthinu)
Registration info |
参加枠 Free
FCFS
キャンセル枠 Free
FCFS
TA枠(準備会参加の方TAお願いします) Free
FCFS
|
---|
Description
長野ディープラーニングハンズオン概要
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利用した学習
Media View all Media
If you add event media, up to 3 items will be shown here.