Nov
15
長野ディープラーニングハンズオン準備勉強会(第2回)
パーセプトロンの理論と実装
Organizing : さとうきよし @stealthinu
Registration info |
参加枠 Free
FCFS
|
---|
Description
長野ディープラーニングハンズオン準備勉強会概要
GEEKLAB.NAGANO/NSEGでディープラーニングのハンズオンをしようと思っており、その準備として何人かで予定内容を毎回1.5時間づつくらいやり、つまづきやすいところやわかりにくいところを把握するための勉強会です。
そのためハンズオンの内容を一緒に作っていくような内容になります。ハンズオンに参加したい場合、これでしっかり予習出来ることになるのでおすすめだと思います。
ニューラルネット/ディープラーニングに興味のある方で、自分のノートPCでPythonでFizzBuzz程度の簡単なコーディングができることが条件です。
資料は最終的には独自のものを用意する予定ですが、「ゼロから作るDeep Learning/Pythonで学ぶディープラーニングの理論と実装」が大変良書なので、これを参考にしながら作る方針で考えています。(とりあえず本は購入しなくてよいです)
毎週火曜日夜 18:30~ GEEKLAB.NAGANOで全部で6回程度を予定しています。
第2回は11/15(火) 18:30 開催予定で、パーセプトロンの理論と実装について行います。
パーセプトロン
- Pythonでニューロンの出力と学習を実装
- パーセプトロンを実装
- 数字(MNIST)をパーセプトロンで学習させる
- XORの学習を試す
Dockerインストールとイメージの準備
参加者のPython環境が違っているとそこでつまづく可能性が増えるので、環境を揃えたいと考えていました。
そこでdocker内の環境を使うことで統一した環境にしようと思います。
自分はMacはDocker for Mac
https://www.docker.com/products/docker
WindowsはProならばDocker for Windowsか、Docker for WindowsはVirtualBoxとの共存が出来ないため、DockerToolboxを入れて試しています。
https://www.docker.com/products/docker-toolbox
dockerインストール後、でまちさんに作っていただいたPython3ベースでTensorFlowとJupyterが使えるdockerイメージ https://hub.docker.com/r/tatsushid/alpine-py3-tensorflow-jupyter/ を使ってコンテナを動かします。 下記コマンドでポート8888でパスワードfoobarでコンテナが起動します。
docker run -itd -p 8888:8888 -e PASSWORD=foobar tatsushid/alpine-py3-tensorflow-jupyter
その後、ブラウザで接続するとJupyterの表示がされます。
http://localhost:8888/
右端「New」ボタンから「Python3」を選択してノートを作ります。 最初のカラムに下記コマンドを入れて実行「」を押してください。 ハンズオン準備勉強会用に作っているリポジトリがコピーされます。
!git clone https://github.com/stealthinu/naganodeeplearning
「File」→「Open」→naganodeeplearning/chapter2/perceptron1.ipynb
を開くとハンズオン用のページが開きます。
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実装
- 文字認識のテスト
- 重み可視化して観察など
Presenter
Media View all Media
If you add event media, up to 3 items will be shown here.