Chainer を利用した ディープラーニング(Deep Learning)の プログラムの作成方法

RNNCNN等、Chainer による様々なネットワークの実装方法を例を挙げて解説!


講師


茨城大学 工学部 情報工学科 教授 博士(工学)  新納 浩幸 先生


1985年 東京工業大学理学部情報科学科卒業。
 1987年 同大学大学院理工学研究科情報科学専攻修士課程修了。
   同年 富士ゼロックス、翌年松下電器を経て、1993年茨城大学工学部助手。
 2015年 同学部教授。現在に至る。


セミナーポイント


 本セミナーはディープラーニングのフレームワークの一つである Chainer のチュートリアルです。Chainer は日本生まれの比較的新しいフレームワークであり、その扱いやすさが大きな特徴です。複雑なネットワークであっても、比較的容易に実装できます。
 まずディープラーニングの基本であるニューラルネットワークについて解説します。ディープラーニングは従来の3層からなるニューラルネットワークを複雑なあるいは巨大なグラフ構造に拡張したものと見なせます。基本はニューラルネットワークであり、その理解はディープラーニングの理解に直結します。その後に Chainer の部品と、ニューラルネットワークの Chainer による実装例を示します。これをプログラムのひな形として、様々なネットワークが Chainer により実装できることを解説します。複雑なネットワークの例としてRNN を取り上げ、RNN であってもこのひな形を拡張して作成できることを示します。
 上記のようにプリミティブな部品を使ってプログラムを作っていけば、独自の工夫を入れて改良するなど、柔軟な拡張、改良が可能です。ただし、ある程度型が決まっているタスクに対しては、マクロ的な記述方法があれば便利です。そのためVer.1.11 から Trainer が導入されました。分類問題に対しては Trainer を利用して、非常に簡単な実装ができます。Trainer についても解説します。また Ver.1.16 からは NStepLSTM が導入され、RNN のミニバッチが簡単に実現できるようになりました。NStepLSTM についても実装例を示します。またディープラーニングがブレークするきっかけとなった畳み込みニューラルネットワーク(CNN)の解説と Chainer を使った実装例も示します。

○受講対象:
 ・ニューラルネットワークの誤差逆伝播法と最急降下法について理解したい方
 ・Chainer によるディープラーニングのプログラムの作り方を知りたい方
 ・Trainer や NStepLSTM について知りたい方
 ・CNN とその Chainer による実装を知りたい方

○受講にあたり必要となる予備知識:

 ・機械学習とは何かくらいは知っている方
 ・プログラミングの経験のある方・またはプログラムの基本をある程度ご存じの方(どんな言語でもよいですが、少しでもプログラミング経験があれば大丈夫だと思います)
 ・Python のエキスパートである必要はありませんが、ある程度、その文法を知っている方が理解しやすいと思います。

○受講後、習得できること:
 ・最急降下法と誤差逆伝播法について理解できます
 ・Chainer によるディープラーニングのプログラム作成法が習得できます
 ・Trainer や NStepLSTM の使い方が理解できます
 ・CNN の Chainer による実装方法が理解できます


セミナー内容


1. ニューラルネット
  ディープラーニングは簡単に言ってしまえば従来のニューラルネットワークを多層にしたものです。またニューラルネットワークは一種のパラメトリックな関数であり、学習は回帰の問題です。結局、ディープラーニングも基本的には回帰の問題です。またニューラルネットワークの特徴となる活性化関数について解説します。

 1.1 ディープラーニングとニューラルネット
 1.2 ニューラルネットワークはパラメトリックな関数
 1.3 活性化関数


2. 最急降下法と誤差逆伝播法
  ニューラルネットは訓練データから関数を推定する回帰のモデルです。その推定方法が最急降下法です。ニューラルネットの関数のモデルはネットワークなので、この最急降下法がいわゆる誤差逆伝播法と呼ばれるものであることを解説します。

 2.1 ニューラルネットにおける学習
 2.2 目的関数
 2.3 最急降下法


3. Chainer の仕組み
  ディープラーニングの学習も関数を推定する回帰の問題であり、最急降下法が使われます。最急降下法では勾配を求める部分がポイントです。Chainer ではどのように勾配を求めるのかを説明します。具体的に Chainer のプログラムで利用するオブジェクトを説明しながら、どのように関数を推定しているのかを確認してゆきます。

 3.1 合成関数と計算グラフ
 3.2 計算グラフを利用した勾配計算
 3.3 Chainer 基本オブジェクト

  3.3.1 Variable
  3.3.2 functions
  3.3.3 links
 3.4 最適化

4. Chainer の基本プログラム
  まず Chainer のプログラムのひな形を示します。次に簡単な分類問題を例として、その問題を解く Chainer のプログラムをひな形に沿って作って見ます。またミニバッチによる動作及び誤差の累積による動作を簡単な例で示し、それらの違いを説明します。

 4.1 Chainer のプログラムのひな形
 4.2 パラメータ推定
 4.3 Chainer による分類問題の分類器構築プログラム
 4.4 ミニバッチ
 4.5 誤差の累積


5. Trainer
分類問題に対しては上記で示したプログラムのひな形を更にマクロ化した Trainer というものが使えます。Trainer を使えば、分類問題に対するネットワークの作成と学習は非常に容易になります。ここでは Trainer の使い方を示します。
 5.1 基本形
 5.2 TupleDataset
 5.3 Trainer の長所と短所
 5.4 iterators


6. Recurrent Neural Network
  Recurrent Neural Network (RNN) は従来のフィードフォワード型のネットワークではなく、少し複雑なネットワークです。どういうネットワークで何に使えるかを説明した後に、Chainer による RNN のプログラムを示します。ただしChainer が提供する L.LSTM は用いずに、ネットワークの図から LSTM を Chainer で作成する方法を示します。

 6.1 RNN とは何か
 6.2 RNN のネットワーク図
 6.3 Chainer による RNN のプログラム
 6.4 LSTM
 6.5 LSTM のネットワーク図
 6.6 Chainer による LSTM のプログラム


7. NStepLSTM
  RNNは各データが時系列データであり、その長さがばらばらです。そのためにバッチ処理には煩雑な作業が伴います。NStepLSTM を使うと、長さの違いを気にせずにバッチ処理ができます。ここでは NStepLSTM の使い方を示します。

 7.1 RNN におけるバッチ
 7.2 ignore_label の利用
 7.3 NStepLSTM の利用方法


8. 畳み込みニューラルネットワーク(CNN)
  画像認識で大きな成果を出した畳み込みニューラルネットワークについて解説します。畳み込み層とプーリング層をブラックボックス的に見れば、従来のニューラルネットワークと同じ構造になっています。畳み込み層やプーリング層で行っていることを解説し、それぞれの層に対応する関数の使い方を示します。これにより簡単に畳み込みニューラルネットワークが実装できます。

 8.1 CNN とは何か
 8.2 畳み込み層
 8.3 プーリング層
 8.4 Convolution2D 関数
 8.5 max_pooling_2d 関数
 8.6 Chainer による CNN のプログラム


9. GPU の利用
  現在、ディープラーニングの学習には GPU は必須と言えます。導入に際しての基礎知識と、Chainer からの利用方法を説明します。

 9.1 GPU とは何か
 9.2 GPU の選択
 9.3 CUDA の導入
 9.4 cuDNN の導入
 9.5 CuPy
 9.6 Chainer での GPU の利用
 9.7 Trainer での GPU の利用


  <質疑応答>


※セミナーに申し込むにはものづくりドットコム会員登録が必要です

開催日時


10:30

受講料

46,440円(税込)/人

※本文中に提示された主催者の割引は申込後に適用されます

※銀行振込

開催場所

東京都

MAP

【大田区】大田区産業プラザ(PiO)

【京急】京急蒲田駅

主催者

キーワード

AI(人工知能)   データマイニング/ビッグデータ   情報マネジメント一般

※セミナーに申し込むにはものづくりドットコム会員登録が必要です

開催日時


10:30

受講料

46,440円(税込)/人

※本文中に提示された主催者の割引は申込後に適用されます

※銀行振込

開催場所

東京都

MAP

【大田区】大田区産業プラザ(PiO)

【京急】京急蒲田駅

主催者

キーワード

AI(人工知能)   データマイニング/ビッグデータ   情報マネジメント一般

関連記事

もっと見る