SlideShare ist ein Scribd-Unternehmen logo
1 von 37
ウルシステムズ株式会社
http://www.ulsystems.co.jp
mailto:info@ulsystems.co.jp
Tel: 03-6220-1420 Fax: 03-6220-1402
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
有名論文から学ぶディープラーニング
2016/3/25
講師役:近棟 稔
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
はじめに
 近年、機械学習やAIの最先端技術としてディープラーニング(深層学習)は非常に注目を
集めています。ディープラーニングが注目を集め始めたのはGoogle Trendsによると以下
のように2012年末になります。世の中のイベント的には2012年に各種機械学習コンテス
トでディープラーニングを採用したチームが連勝し始めた事がきっかけとなりました。
 今となっては、Google音声認識で人の声をテキスト化する際に用いられていますし、高精
度な物体認識を行いたい場合などに欠かせない技術となっています。
 この勉強会では大きなニュースとして扱われたディープラーニングの有名論文を引用しな
がら、ディープラーニングの内部を紐解いていきたいと思います。
1
Googleの猫 SuperVision
deep learning
ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 2
ニュースになったディープラーニング
の成果を振り返る
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2012年
Googleのコンピュータが自動的に猫を認識できるようになった
 「どの写真が猫だよ」と教えなくても、Youtubeからランダムに切り出した大量の画像から「教師なし
学習」によって人の顔や猫の顔に反応するニューラルネットワークを自己形成出来たというニュースで
す。
 具体的には、1000万枚の200x200ピクセルのカラー画像をYouTubeからランダムに取り出し、トレー
ニングデータとして利用したようです。トレーニングデータでは、顔の位置や拡大率は全く適当で、顔
がフレームから切れていたりします(上記論文に画像が添付されています)。また、どの画像が猫の顔
であるかなどの情報は与えていません。このデータでニューラルネットワークをトレーニングすると、
猫の画像や人の顔に対して特定のニューロンが発火するように出来たようです。使ったマシンは1,000
台(16,000コア)で、3日間学習したそうです。なお、ネットワークの深さは9層です。
3
猫の画像の時だけ
発火するニューロン
人の顔の画像の時だけ
発火するニューロン
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2012年
画像認識コンペティションでディープラーニングが圧勝
 Large Scale Visual Recognition Challenge 2012 (ILSVRC2012) というコンペティションにて、
Geoffrey Hintonチーム(カナダのトロント大学)が開発したSuperVisionが2位以下に大差をつけて勝
利しました。
 この論文の骨子としては、以下のものが含まれています。
 使ったのはDeep Convolutional Neural Networkで、画像のRGBピクセル値を直接学習しました。
 5つのコンボリューション層とmax-pooling層を持ち、softmaxを用いています。
 NVIDIAのGPUを2つ使い、1週間学習させています。
 activation functionとしてrectified linear unitを用いています。
 overfittingを避けるために、dropoutを用いています。
 autoencoderなどのpretrainingは、あえて採用しなかったそうです。採用すれば助けになりそうな
感触はあったものの、あえて使わず、それでも高い認識能力が得られたようです。
4
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2015年
LSTMで上手な受け答えが可能なチャットボットが作れた
 LSTMというニューラルネットワークの一種を用い、既存の人工無能よりもちゃんとした会話を成立可能
なチャットボットが作れたという物です。論文にはチャットの例が沢山掲載されています。
 チャットボットの学習のために使ったデータは、ITヘルプデスクのトラブルシューティングデータセッ
トと、映画の字幕データセットの2種類のようです。データによって受け答えの内容が違います。
5
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2015年
Atariのゲームを試行錯誤しながら上手にプレイできるように
 Atariのさまざまなゲームを、ゲームごとに特別にプログラミングすることなく、強化学習で上手にプレ
イできるようになったという論文です。
 この論文の場合、ソースコードも公開されています。luaというJavaScriptに似た言語で書かれていて、
ライブラリーとしてはtorchが使われていました。ソースコードのトータル行数は1460行しかありませ
ん!GPUだけでなく、CPUでも動作するようになっていました。(そのような起動スクリプトが入って
います)
6
(画像は論文からの抜粋)
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2016年
AlphaGoが世界棋士レーティングで4位のイ・セドルに勝利
 AlphaGoが世界棋士レーティングで4位のイ・セドルに勝利しました。今まで囲碁でコンピューターがプ
ロに勝つ事はまだまだ先のことだと言われてきましたが、これをディープラーニングで達成しました。
 convolutional neural network (CNN)が碁に最初に適用されたのは1994年だったそうです。ただ、当
時のニューラルネットワークは層が浅いものでした。2015年にDeepMindは12のコンボリューション層
とsoftmaxを使い、探索処理なしのNNによる直感勝負で当時最強の囲碁プログラムと互角の強さのプロ
グラムを作っています。 (論文:Move evaluation in Go using deep convolutional neural networks
に掲載)
 2016年の上記論文はフランスのプロ棋士であるFan Huiに勝利した後に書かれたもので、AlphaGoのア
ルゴリズムが説明されています。より詳しい内容は後述しますが、以下のような関数をNNで構築し、そ
れを用いてゲーム木の探索(深読み)を行うことで強い囲碁プログラムを作ることに成功しています。
 バリューネットワーク
局面の評価を行うニューラルネットワークです。局面を特殊加工したテンソルを引数に入れると、戻り値として勝率
が数字で出てくるようなものです。
 ポリシーネットワーク
局面を特殊加工したテンソルを引数に入れると、戻り値として次の一手をどこに打つべきか出力してくれます。
 ロールアウト用ポリシーネットワーク
ロールアウト(プレイアウトとも呼ばれる)に用いるポリシーネットワークです。早打ち用のポリシーネットワーク
と言ってもいいです。ポリシーネットワークは3ミリ秒かかりますが、これは2マイクロ秒で計算できます。
7
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
他にも色々・・・
全部ディープラーニング(ディープニューラルネットワーク)です。
 音声認識が実用段階に。(論文: Fast and Accurate Recurrent Neural Network Acoustic
Models for Speech Recognition)
→ 今の時代、声で入力はあたりまえ。
 画像を入力したら、自然言語(たとえば英語)で画像に対して説明文を適切に生成してく
れるものが作れた。(論文: Show and Tell: A Neural Image Caption Generator)
 いろいろな画像を、画家の作風を真似た画像に自動変換するプログラムが作れた。
(論文: A Neural Algorithm of Artistic Style)
8
ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 9
ニューラルネットワークは
何に使えるの?
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニューラルネットワークの利用可能範囲
 ニューラルネットワークは、意外にも機械学習で扱われる以下のすべての領域に適用可能です。
 教師あり学習
 回帰 (regression)
碁の局面を入力すると、出力として勝率(数値)を出してくれるようなものが
これに該当します。
 分類 (classification)
写真を入力すると、人の顔が写っているか否かを出力するものや、
手書きの数字文字画像を入力すると、0~9の数字のどれに該当しそうかを確率分布として出
力してくれるものが該当します。
 教師なし学習
 クラスタリング
自己組織化マップ(SOM)がこれに該当します。
 次元圧縮
autoencoderやRestricted Boltzmann Machineが該当します。
 強化学習
 Atariの例や、AlphaGoの例が該当します。
 ニューラルネットワークは任意のチューリングマシンをシミュレートする能力をもつ事が古くから知ら
れています。うまくニューラルネットワークを作れば、かなり利用範囲は広いはずです。
10
引数 関数: 出力𝑓
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
なんでもニューラルネットワークでいいの?
 なんでもニューラルネットワークで済まそう、というのはやりすぎな場合が多いようですが、一方で、
2001年にMichele BankoとEric Brillが出した論文によると、学習アルゴリズムの違いはそれほど重要で
はなく、使用する学習データの量が性能の決め手になるとも言われています。ここで言う性能は、スパ
ム検出が正確だったり、写真の分類に間違いが少ないといった意味での性能です。
11
http://ucrel.lancs.ac.uk/acl/P/P01/P01-1005.pdf
性能の高さ
学習データの量
学習アルゴリズムの違いが重要でないならば、な
ぜDeep Neural Network (DNN) が流行っている
のか、と疑問を感じると思いますが、それは今ま
での機械学習アルゴリズムが出せなかったような
性能がDNNでは出せてしまうためです。
一説には、左のグラフを見ると、大量のデータを
食わしていっても古い機械学習アルゴリズムは、
皆、頭打ちになっていますが、この頭打ちがDNN
の場合発生しにくいという事が言われています。
ただし、最近の研究では少ないデータにおいても、
DNNの有効性が分かってきているようですので、
大量データが必須というわけでもありません。
また、研究者にとっては驚きに満ちた成果が出し
やすいフロンティアだということも関係していそ
うです。次々と驚くような発見があり、興味深い
論文がハイペースで発表されています。
ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 12
ニューラルネットワークの基本
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
脳とニューロンとニューラルネットワーク
 「脳は最後のフロンティア」と言われています。脳の仕組みが真の意味で解明されれば、鉄腕アトムや
ドラえもんのようなヒトに近いロボットが作れそうですが、現状まだそこまで至っていません。とはい
え、fMRIやオプトジェネティクスといった技術によって急速に脳の解明は進んでいますので、いつの日
か真の意味で脳の仕組みが分かるかもしれません。
 ヒトの脳を構成する基本的な素子は「ニューロン」と呼ばれる神経細胞です。このニューロンの動作に
関しては、かなり昔(1943年)から詳細に分かっています。このモデル化された人工のニューロンをネッ
トワーク状に繋げたものがニューラルネットワークです。
 以下のように人工ニューロンをネットワーク状に繋げます。繋ぎ方は用途によってさまざまです。
13
https://ja.wikipedia.org/wiki/神経細胞
𝑥1
𝑥2
𝑥3
…
…
𝑥10000
𝑤1
𝑤2
𝑤3
𝑤10000
𝑏 yモデル化
𝑥1
𝑥2
𝑥3
𝑥4
𝑦1
𝑦2
𝑦3
𝑥1
𝑥2
𝑥3
𝑥4
𝑦1
𝑦2
𝑦3
情報が入力側に戻る場合もある
これは生物的には、より自然。
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニューラルネットワークの1つのノード(ユニット)について
 ニューラルネットワークを構成するノード(人工ニューロン)は以下のようなものです。まず、
複数の入力𝑥1, 𝑥2, 𝑥3があります。入力は、他のニューラルネットワークのノードからの出力
から来るものもありますし、画像の画素を入力として受け取るものもあります。この入力1
つ1つに対し、重み付け𝑤1, 𝑤2, 𝑤3があります。また、ノード1つには1つのしきい値𝑏(バイ
アス)を数値として持ちます。ノードからの出力結果はここでは𝑦とします。 𝑦を計算する
際にはactivation functionである𝑓を介して算出されます。
 activation function 𝑓(𝑢) として、古くはシグモイド関数が使用されてきましたが、現在は
rectified linear (ReLU) という活性化関数がとてもよく使われます。2011年のReLUの発
見により、より深いニューラルネットワークの学習(ディープラーニング)が可能になったた
めです。ReLUの発見は大きなブレイクスルーでした。
14
𝑥1
𝑦
u = 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 𝑥3
y = 𝑓 𝑢
𝑤1
𝑥2
𝑥3
𝑤2
𝑤3
𝑏
f(u): activation function (活性化関数)
𝑓
ReLU
𝑓(𝑢) = max(𝑢, 0)
0 𝑢
𝑓(𝑢)
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニューラルネットワーク
 実用化されているニューラルネットワークには、大きく2つの種類があります。
 feedforwardニューラルネットワーク(FFNN)
 recurrentニューラルネットワーク(RNN)
 主な違いは、情報の伝達が一方向であるか、それとも再度出力情報が入力側に戻ることがあるかです。
画像認識などで広く使われているのはFFNNです。RNNは情報のシーケンスを扱う際に用いられます。た
とえば、音声情報を扱う際や、文章の自動生成などで使われます。
 FFNNとRNNは組み合わせて使われる事もあります。
15
𝑥1
𝑥2
𝑥3
𝑥4
𝑦1
𝑦2
𝑦3
𝑥1
𝑥2
𝑥3
𝑥4
𝑦1
𝑦2
𝑦3
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニューラルネットワーク(NN)へ与える入力データのイメージ
 ニューラルネットワークに対する入力データは以下の様な形をした、固定の大きさの多次元配列(数学
的にはテンソル)です。
 たとえば、モノクロ画像をラスタスキャンしたものは1次元配列になり、NNへの入力に出来ます。モノ
クロ画像そのままであれば、2次元配列となりますから、これもNNへの入力にそのまま使えます。ちな
みに碁の局面も19x19の2次元配列になりますから、そのままNNへの入力として使えます。カラー画像
は1つのピクセルにつきRGBの3つのデータが入りますから、3次元配列となります。これも、NNへの入
力として使えます。
16
1
2
3
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
1 2 3
4 5 6
7 8 9
1次元配列
(ベクトル)
2次元配列
(行列)
3次元配列
(テンソル)
4次元配列
(テンソル)
・・・
写真のなまのRGBピクセルデータを入力 碁の局面のデータを行列として入力
(書けない)
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニューラルネットワーク(NN)からの出力データのイメージ
 ニューラルネットワークからの出力データに関しては、主に2つのデータ表現を用います。1つは単なる
1つの数値です。これは、回帰用にニューラルネットワークを使う場合に使用します。もう一つは、確率
分布を出力するタイプです。
 出力として確率分布を出力するというイメージは分かりにくいですが、具体的には以下の様なものです。
 上記のような確率分布でデータを入出力する際、ニューラルネットワークでは「one hot vector」とい
う表現もよく用いられます。これは、該当ノードだけ確率を1とし、他を0とした分布です。以下の例は
数字の表現方法です。アルファベットやASCIIコードを扱う場合も同じ要領になりますが、もっとベクト
ルの長さが長くなります。
17
画像が0である確率=0.1
画像が1である確率=0.2
画像が2である確率=0.5
画像が9である確率=0.1…
0 =
1
0
0
0
0
0
0
0
0
0
, 1 =
0
1
0
0
0
0
0
0
0
0
, 2 =
0
0
1
0
0
0
0
0
0
0
, 3 =
0
0
0
1
0
0
0
0
0
0
, 4 =
0
0
0
0
1
0
0
0
0
0
, 5 =
0
0
0
0
0
1
0
0
0
0
, 6 =
0
0
0
0
0
0
1
0
0
0
, 7 =
0
0
0
0
0
0
0
1
0
0
, 8 =
0
0
0
0
0
0
0
0
1
0
, 9 =
0
0
0
0
0
0
0
0
0
1
画像が2である確率が
一番く出力されたから、
「2」と判定している
みたいだ。
ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 18
ニューラルネットワークにおける
さまざまな種類の層(レイヤー)
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
 ニューラルネットワークでは、さまざまな層を組み合わせて1つのニューラルネットワーク
を構成し、全体として何かの機能を構築します。層にはさまざまな種類があるため、
層の種類を理解することがニューラルネットワークを理解する近道です。
 つまり、上記で言う「convolution層」「プーリング層」「LCN層」「全結合層」
「softmax層」などの内容が理解できれば、各種論文が使用しているディープラーニングの
ニューラルネットワークの構造が理解出来るようになります。
softmax層
全結合層
ニューラルネットワークを構成する層(レイヤー)の意味を理解すること
が、ディープラーニングを理解する近道
19
LCN層
プーリング層
convolution層
LCN層
プーリング層
convolution層<典型的な画像認識用 convolutional neural network (CNN)>
画像が0である確率=0.1
画像が1である確率=0.2
画像が2である確率=0.5
画像が9である確率=0.1
…
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
全結合層:汎用の層
 全結合層は古くからニューラルネットワークで使われてきた層です。用途は特に限定され
ておらず、汎用の層として利用可能です。現在でもニューラルネットワークの表現力を底
上げするためによく利用されます。
 ネットワークの形としては、1つ1つのユニット(人工ニューロン)が前の層のすべてのユ
ニットと結合している事が特徴です。このため、最も汎用性の高い層となっています。
 昔はこの全結合層を2~3層重ねた簡素なニューラルネットワークがよく使われていました。
現在でも素朴なニューラルネットワークを思い浮かべる際には、この全結合層が重なって
いるものと考えておけば、おおよそ間違いありません。
 活性化関数はLeRUが使われる事がほとんどです。
20
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
softmax層 : ニューラルネットワークにデータを分類させたい時に、
最終層として使うもの
 たとえば郵便番号のような手書き文字画像を0~9までの10個の数字に分類したい場合や、
囲碁で現在の局面から次の一手としてどこが良さそうかを確率分布で出力したい場合など
に、ニューラルネットワークの最終層としてよく用いられます。
 softmax層はネットワーク構造としては全結合層と同じです。異なるのは活性化関数で、
softmaxという特殊なものを使用します。
 softmaxでは、まず、各ノードでactivation functionにかける前の値𝑢𝑖をexp 𝑢 で変換しま
す。通常のactivation functionであればこの計算値をそのまま出力するところですが、
softmaxの場合は、𝑦1 + 𝑦2 + ⋯ + 𝑦𝑛が1になるように全体の値を調整します。これは、確率
分布として扱えるようにするためには、全体の確率の和が1である必用があるためです。数
式で記述すると、以下のようになります。
21
𝑦1
𝑦2
𝑦3
この値が大きかったら入力画像が「1」である確率が高い
この値が大きかったら入力画像が「2」である確率が高い
この値が大きかったら入力画像が「3」である確率が高い
u = 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 𝑥3で計算できる各𝑢𝑖に対して、
yi =
exp 𝑢𝑖
𝑖=1
𝑛
exp 𝑢𝑖
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
regression層(回帰層) :
ニューラルネットワークから数値を出力したい場合に使用します
 regression層はニューラルネットワークから数値を出力したい場合に使用します。たとえば、囲碁の局
面を数値として評価するためのニューラルネットワークの最終層にregression層を使用することで、数
値を得るといった目的で使用します。
 activation function 𝑓 𝑢 としては、𝑦の値として欲しい範囲で使うものが変わるようです。最もベー
シックなものはlinear関数です。なお、AlphaGoではtanh 𝑢 が使われていました。
22
𝑦
linear関数
𝑓(𝑢) = 𝑢
0 𝑢
𝑓(𝑢)
ハイパボリック
タンジェント
𝑓(𝑢) = tanh 𝑢
0 𝑢
𝑓(𝑢)
-1
1
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
convolution層の説明の前に・・・
画像処理におけるconvolution(たたみ込み)演算
 画像処理では、 convolutionという処理が一般的に広く使われています。 たとえば、スムージングや
エッジ検出などで使います。このような概念はJava 2D APIのConvolveOpクラスなどで導入されていま
すし、GIMPなどのツールでも、 convolution行列を直接入力して変換を行う処理が提供されています。
(GIMPのメニューから、フィルター>汎用>コンボリューション行列で実行できます)
 convolutionの考え方は以下の通りです。
23
元画像 垂直方向エッジ検出 水平方向エッジ検出
元画像
「カーネル」と
呼ばれる行列
⊗ ⇒
新しい画像
(mapとも呼ばれる)
元画像に対し、カーネルと同じサイズのウインド
ウをずらしながら計算を行います。新しい画像の
ピクセル値は、以下のように計算します。
𝑥1
𝑥2
ℎ1
ℎ2
⊗ ⇒ 𝑥1ℎ1 + 𝑥2ℎ2
元画像 カーネル
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
convolution層(たたみ込み層) :
データを色々な見方(複数種類のフィルター)で見るための層
 convolution層は、前述のconvolution演算をニューラルネットワークにおける層として扱
います。(なお、本来はバイアスも加算されます。)
 通常の画像変換の際には「スムージング用のカーネル」や「エッジ検出用のカーネル」な
どの手で作られたカーネルを用いますが、convolution層ではカーネルに用いる行列をデー
タから自動生成します。自動生成したカーネルは、手で作ったカーネルに比べて、より
データの特徴をうまくとらえたカーネルとなります。
24
「カーネル」を
複数枚(K枚)適用
↑
ここを実際には
学習する
⊗
いろいろな種類の
map(画像)がK枚得られる
このようなmap1枚を「チャネル」と呼ぶ
activation
functionを
適用(大抵LeRU)
元画像(map)
参考: http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
pooling層:
画像などのデータ中にある「特徴」の位置依存性を緩和するための層
 convolution層の後にpooling層という層を置くことが多いです。pooling層は、画像などの
データ中にある「特徴」の位置をぼやかすための層として使用します。
 pooling層の典型的なものとして、max poolingというものがあります。max poolingは、
ウィンドウ内の最大ピクセル値を計算するという、とても簡単な変換をしています。
 なお、pooling層は学習の対象となるようなパラメーターはありません。決まった計算をす
るだけの層です。
25
入力の
mapの1枚
元mapに対し、ウインドウをずらしながら計算
を行います。新しい画像のピクセル値は、単純に、
ウインドウ内の最大ピクセル値となります。
𝑥1
𝑥2
max(𝑥1, 𝑥2)
元mapの
ウインドウ
max pooling
変換した
map1枚
max pooling
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
LCN層 (局所コントラスト正規化層):
画像などのコントラスト補正のための層
 pooling層の後にLCN(local contrast normalization)と呼ばれる局所コントラスト正規化の
処理を挟み込むことがあります。
 通常、画像はカメラの露出や光源の状況次第で画像全体の明るさやコントラストが大きく
変化します。このコントラストの変化を無視したい場合、LCN層を用います。
 なお、Pooling層と同様に、LCN層でも学習の対象となるようなパラメーターはありません。
26
入力の
mapの1枚
元画像に対し、ウインドウをずらしながら計算を
行います。新しい画像のピクセル値は、単純に、
ウインドウ内の平均を差し引くという計算を行い
ます。目的は、コントラスト補正です。
LCN
変換した
map1枚
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
LSTM層 (Long short-term memory層):
シーケンスを扱うための層
 LSTM層は他の種類の層とはずいぶん異なり、層の中に状態を持っています。層の中に状態を持つことに
より、層をデータが通過するたびに内部状態が変化し、それによってそれまで流されたデータに応じた
出力が可能となっています。
 LSTM層には、たとえば単語を覚えさせる事が出来ます。この場合、入力としてASCIIキャラクターの
「one hot vector」を用い、出力としてASCIIキャラクターの確率分布を出すようにすると、
「HELLO」は以下のように覚えさせられます。「L」の次の文字が固定されていないのがポイントです。
27
LSTM層
出力された情報が再度入力に戻る。
また、1回データが通る
たびに、内部状態が更新される。
LSTM層
「H」
「E」
LSTM層
「E」
「L」
LSTM層
「L」
「L」
LSTM層
「O」
「L」
LSTM層
<終>
「O」
同じ「L」を入力しても、文脈によって結果は異なる
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
convolutional neural network (CNN) の例
 convolutional neural network (CNN) の例を以下に再度示します。
 よく見かけるCNNは、convolution層, pooling層, LCN層の3層を1セットとし、それを何度か繰り返し
適用した後に、全結合層をいくつか適用し、最後の層にsoftmax層を利用してデータの分類を行います。
 CNNは、結局のところ、何通りもの画像変換を介して、適切にsoftmaxによるデータの分類が行えるよ
うにデータを咀嚼した後、softmax層でデータを分類するという構造となっています。
 このCNNを訓練するためには、教師データを用いて教師あり学習を行います。学習にはバックプロパ
ゲーションを使用します。(昔はautoencoderなどの事前学習を使っていましたが、最近は使われず、
単純にバックプロパゲーションを用いて学習を行います)
28
softmax層
全結合層
LCN層
pooling層
convolution層
LCN層
pooling層
convolution層
画像が0である確率=0.1
画像が1である確率=0.2
画像が2である確率=0.5
画像が9である確率=0.1
…
よくある
組み合わせ
よくある
組み合わせ
ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 29
ニュースになった論文を振り返る
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2012年
Googleのコンピュータが自動的に猫を認識できるようになった
 この論文では以下の様にconvolution層, pooling層, LCN層の3層を1セットとし、それを3回繰り返した
NNを用いています。ただし、訓練の仕方が特殊で、autoencoderという訓練方法を用いています。
 autoencoderでは、まずブロックAを訓練し、次にブロックB、最後にブロックCを訓練するといった訓
練方法を行います。(autoencoderの具体的な内容説明はスキップしてしまいます)
 このように訓練したところ、各LCN層のユニットに、以下のような性質を持つユニットが現れた、とい
うのがこの論文の内容となります。
 ブロックA:ナナメの線や縦の線など、概念的に単純な画像に反応するユニットが登場
 ブロックB:目や鼻といった、単純なオブジェクトに反応するユニットが登場
 ブロックC:人の顔や猫の顔といった、より上位の概念を持つ画像に反応するユニットが登場
30
LCN層
pooling層
convolution層
LCN層
pooling層
convolution層
LCN層
pooling層
convolution層
ブロックA ブロックB ブロックC
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2012年
画像認識コンペティションでディープラーニングが圧勝
 コンペティションで勝利したSuperVisionの構造は以下の通りです。
 なお、2014年にGoogleはGoogLeNetという画像認識用ニューラルネットワークを構築していますが、
以下のように非常に深いものになっています。SuperVisionが打ち立てた16.4%の誤認識率は更に下が
り、6.67%まで誤認識率が下がっています。これは人間の認識能力に匹敵するものです。
31
softmax層
全結合層
全結合層
pooling層
convolution層
convolution層
convolution層
pooling層
LCN層
convolution層
pooling層
LCN層
convolution層
論文: 「Going Deeper with Convolutions」より引用
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
 この論文で使われたニューラルネットワークは以下の通りです。
 これらのLSTMベースのNNを以下のように使うことによってチャットシステムを作成しています。
まず、人の入力はNNへ順に入力しますが、NNからの出力は無視します。入力の終わり(eos)に来ると、
NNからの出力を入力側に単に戻しはじめ、NNがeos(end of statement)を返すまで繰り返します。
ニュースになった論文:2015年
LSTMで上手な受け答えが可能なチャットボットが作れた
32
LSTM層
「H」
softmax層
「E」
「H」
LSTM層
LSTM層
softmax層
「E」
ITヘルプデスクの
トラブルシューティング
のデモで使われたもの
映画の字幕データセットの
デモで使われたもの
論文:
「A Neural
Conversational
Model」より引用
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
ニュースになった論文:2015年
Atariのゲームを試行錯誤しながら上手にプレイできるように
 以下がこの論文で用いられたニューラルネットワークです。
33
全結合層
全結合層
convolution層
convolution層
操作
最後の出力である「操作」は、
以下の論文の図にあるような
各種操作パターンを意味します。
たとえば「ボタンを押しながら
斜め上にスティックを倒す」操作などです。
操作の種類としては「入力なし」を含めると
18通り存在します。
このNNを訓練する際には、
以下の3つの情報を与えています。
・ゲームの画面(毎秒60フレーム)
・現在のゲームのスコア
・ゲームオーバーか否か
・可能な操作の種類
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
 AlphaGoは以下の3つのニューラルネットワークを用いています。
 バリューネットワーク
局面の評価を行うニューラルネットワークです。局面を特殊加工(碁のルールにもとづく)したテンソルを引数に入れると、
戻り値として勝率が数字で出てくるようなものです。
 ポリシーネットワーク
局面を特殊加工したテンソルを引数に入れると、戻り値として、ぱっと見、次の一手をどこに打つべきかを出力してくれ
ます。
 ロールアウト用ポリシーネットワーク
ロールアウト(プレイアウトとも呼ばれる)に用いるポリシーネットワークです。早打ち用のポリシーネットワークと
言ってもいいです。ポリシーネットワークは3ミリ秒ほど計算にかかりますが、これは2マイクロ秒で計算できます。
regression層
全結合層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
勝率
ニュースになった論文:2016年
AlphaGoが世界棋士レーティングで4位のイ・セドルに勝利
34
softmax層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
次に打つべき場所の分布
softmax層
次に打つべき場所の分布
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
AlphaGoにおける局面の評価方法
 AlphaGoでは、2種類の局面評価を行い、これらの局面評価結果をマージして、実際の局面評価結果としています。
 バリューネットワークによる局面評価
バリューネットワークは局面の評価を行うニューラルネットワークです。つまり、バリューネットワークの引数に局
面を入力すれば、その局面の勝率が計算されます。これが1つ目の局面評価方法です。
 ロールアウトによる局面評価
ロールアウト(もしくはプレイアウト)という方法を用いた局面評価が2つ目の局面評価方法です。
ロールアウトとは、具体的にはロールアウト用ポリシーネットワークを用いて、現在の局面から終局まで打ち続け、
どちらが結果的に勝ったかを見る方法です。碁盤は打つ所が361箇所しかなく、ロールアウト用ポリシーネットワー
クは高速なので、単純計算で722マイクロ秒で終局の陣地がどうなりそうかを見ることが出来ます。終局の陣地の状
態を見れば、どちらがどれだけ勝ったのか見ることが出来ます。
 上記2種類の局面評価は互いに補完しあう関係にあるようで、どちらの局面評価も重要です。
よって、AlphaGoではこの2種類の局面評価を「足して2で割る」ことで最終的な局面評価としています。
なお、前ページのポリシーネットワークに関しては、どんな手を深読みするべきかを判定するために使用しています。
35
regression層
全結合層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
convolution層
勝率
終局まで高速に打ってみて、終局の状態を知り、それをもって、現在の局面の判断を行う。
softmax層
次に打つべき場所の分布
ULS Copyright © 2016 UL Systems, Inc. All rights reserved.
おわりに
 今回の勉強会ではニューラルネットワークをどう訓練するかをスキップして説明すること
で、ディープラーニングにおける難しい話をスキップしています。
 ただし、本当に深い話まで分からないとディープラーニングに手がつけられないかという
と、そうでもありません。世の中には便利なライブラリーがあり、今回説明した程度の内
容の理解で色々試行錯誤することは出来る状況にあります。
 今回説明した有名論文も、たとえばAtariのゲームをプレイするニューラルネットワークは
torchで実装されていたりと、大抵何らかの優秀なライブラリーを使うことが多いのです。
 最終的には深い理解が必要ですが、そこにたどり着くまで何も動かせないわけではなく、
ライブラリーを利用する方向でいろいろな経験をしていく事が、ディープラーニングの勉
強を効率よく進めていく1つの方法ではないでしょうか。
36

Weitere ähnliche Inhalte

Was ist angesagt?

Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Yoshitaka Ushiku
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理Taiji Suzuki
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習Deep Learning JP
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAGIRobots
 
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative  Adversarial Networks【論文読み会】Self-Attention Generative  Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial NetworksARISE analytics
 
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-EncoderDeep Learning JP
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向Yusuke Uchida
 
Introduction to Prioritized Experience Replay
Introduction to Prioritized Experience ReplayIntroduction to Prioritized Experience Replay
Introduction to Prioritized Experience ReplayWEBFARMER. ltd.
 
[DL輪読会] マルチエージェント強化学習と心の理論
[DL輪読会] マルチエージェント強化学習と心の理論[DL輪読会] マルチエージェント強化学習と心の理論
[DL輪読会] マルチエージェント強化学習と心の理論Deep Learning JP
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Yamato OKAMOTO
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向Motokawa Tetsuya
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networkstm1966
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State SpacesDeep Learning JP
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてPlot Hong
 
[DL輪読会]Estimating Predictive Uncertainty via Prior Networks
[DL輪読会]Estimating Predictive Uncertainty via Prior Networks[DL輪読会]Estimating Predictive Uncertainty via Prior Networks
[DL輪読会]Estimating Predictive Uncertainty via Prior NetworksDeep Learning JP
 
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するモデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するTakahiro Kubo
 
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...Deep Learning JP
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門Takuji Tahara
 

Was ist angesagt? (20)

Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
【論文読み会】Self-Attention Generative Adversarial Networks
【論文読み会】Self-Attention Generative  Adversarial Networks【論文読み会】Self-Attention Generative  Adversarial Networks
【論文読み会】Self-Attention Generative Adversarial Networks
 
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
[DL輪読会]Temporal DifferenceVariationalAuto-Encoder
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向畳み込みニューラルネットワークの研究動向
畳み込みニューラルネットワークの研究動向
 
Introduction to Prioritized Experience Replay
Introduction to Prioritized Experience ReplayIntroduction to Prioritized Experience Replay
Introduction to Prioritized Experience Replay
 
[DL輪読会] マルチエージェント強化学習と心の理論
[DL輪読会] マルチエージェント強化学習と心の理論[DL輪読会] マルチエージェント強化学習と心の理論
[DL輪読会] マルチエージェント強化学習と心の理論
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
Optimizer入門&最新動向
Optimizer入門&最新動向Optimizer入門&最新動向
Optimizer入門&最新動向
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
 
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
【DL輪読会】Efficiently Modeling Long Sequences with Structured State Spaces
 
Long-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向についてLong-Tailed Classificationの最新動向について
Long-Tailed Classificationの最新動向について
 
[DL輪読会]Estimating Predictive Uncertainty via Prior Networks
[DL輪読会]Estimating Predictive Uncertainty via Prior Networks[DL輪読会]Estimating Predictive Uncertainty via Prior Networks
[DL輪読会]Estimating Predictive Uncertainty via Prior Networks
 
モデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留するモデルではなく、データセットを蒸留する
モデルではなく、データセットを蒸留する
 
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
【DL輪読会】Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Mo...
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 

Ähnlich wie 有名論文から学ぶディープラーニング 2016.03.25

人間の思考、機械の思考
人間の思考、機械の思考人間の思考、機械の思考
人間の思考、機械の思考maruyama097
 
全脳アーキテクチャ実現への長き道のりをいかに支えるのか
全脳アーキテクチャ実現への長き道のりをいかに支えるのか全脳アーキテクチャ実現への長き道のりをいかに支えるのか
全脳アーキテクチャ実現への長き道のりをいかに支えるのかドワンゴ 人工知能研究所
 
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised FinalソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised FinalRoy Sugimura, Ph.D
 
2018/3/23 Introduction to Deep Learning by Neural Network Console
2018/3/23 Introduction to Deep Learning by Neural Network Console2018/3/23 Introduction to Deep Learning by Neural Network Console
2018/3/23 Introduction to Deep Learning by Neural Network ConsoleSony Network Communications Inc.
 
Deep Learningを超える技術 大脳皮質のアルゴリズム BESOM
Deep Learningを超える技術 大脳皮質のアルゴリズム BESOMDeep Learningを超える技術 大脳皮質のアルゴリズム BESOM
Deep Learningを超える技術 大脳皮質のアルゴリズム BESOMkenji oda
 
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015 Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015 Tadahiro Taniguchi
 
今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能Keisuke Tameyasu
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境openrtm
 
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知Core Concept Technologies
 
Node-REDについて
Node-REDについてNode-REDについて
Node-REDについてAtsushi Kojo
 
ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術Shohei Hido
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用Kazuki Fujikawa
 
2018/07/26 Game change by Deep Learning and tips to make a leap
2018/07/26 Game change by Deep Learning and tips to make a leap2018/07/26 Game change by Deep Learning and tips to make a leap
2018/07/26 Game change by Deep Learning and tips to make a leapSony Network Communications Inc.
 
研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011Preferred Networks
 
データサイエンスの全体像とデータサイエンティスト
データサイエンスの全体像とデータサイエンティストデータサイエンスの全体像とデータサイエンティスト
データサイエンスの全体像とデータサイエンティストThe Japan DataScientist Society
 
Deep learningの軽い紹介
Deep learningの軽い紹介Deep learningの軽い紹介
Deep learningの軽い紹介Yoshihisa Maruya
 

Ähnlich wie 有名論文から学ぶディープラーニング 2016.03.25 (20)

人間の思考、機械の思考
人間の思考、機械の思考人間の思考、機械の思考
人間の思考、機械の思考
 
全脳アーキテクチャ実現への長き道のりをいかに支えるのか
全脳アーキテクチャ実現への長き道のりをいかに支えるのか全脳アーキテクチャ実現への長き道のりをいかに支えるのか
全脳アーキテクチャ実現への長き道のりをいかに支えるのか
 
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised FinalソフトウェアとAIの進化が示唆するもの Final Final revised Final
ソフトウェアとAIの進化が示唆するもの Final Final revised Final
 
2018/3/23 Introduction to Deep Learning by Neural Network Console
2018/3/23 Introduction to Deep Learning by Neural Network Console2018/3/23 Introduction to Deep Learning by Neural Network Console
2018/3/23 Introduction to Deep Learning by Neural Network Console
 
Deep Learningを超える技術 大脳皮質のアルゴリズム BESOM
Deep Learningを超える技術 大脳皮質のアルゴリズム BESOMDeep Learningを超える技術 大脳皮質のアルゴリズム BESOM
Deep Learningを超える技術 大脳皮質のアルゴリズム BESOM
 
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015 Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
Os 12 記号創発ロボティクス / OS趣旨説明@JSAI2015
 
今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能今さら聞けないITエンジニアのための人工知能
今さら聞けないITエンジニアのための人工知能
 
aiconf2017okanohara
aiconf2017okanoharaaiconf2017okanohara
aiconf2017okanohara
 
Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境Rtm・ros相互運用プログラミング環境
Rtm・ros相互運用プログラミング環境
 
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
人と機械の協働によりデータ分析作業の効率化を目指す協働型機械学習技術(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
20150930
2015093020150930
20150930
 
ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知ディープラーニングによる時系列データの異常検知
ディープラーニングによる時系列データの異常検知
 
Node-REDについて
Node-REDについてNode-REDについて
Node-REDについて
 
ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術
 
[Japan Tech summit 2017] MAI 001
[Japan Tech summit 2017]  MAI 001[Japan Tech summit 2017]  MAI 001
[Japan Tech summit 2017] MAI 001
 
DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用DeNAにおける機械学習・深層学習活用
DeNAにおける機械学習・深層学習活用
 
2018/07/26 Game change by Deep Learning and tips to make a leap
2018/07/26 Game change by Deep Learning and tips to make a leap2018/07/26 Game change by Deep Learning and tips to make a leap
2018/07/26 Game change by Deep Learning and tips to make a leap
 
研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011研究・企業・生き方について 情報科学若手の会2011
研究・企業・生き方について 情報科学若手の会2011
 
データサイエンスの全体像とデータサイエンティスト
データサイエンスの全体像とデータサイエンティストデータサイエンスの全体像とデータサイエンティスト
データサイエンスの全体像とデータサイエンティスト
 
Deep learningの軽い紹介
Deep learningの軽い紹介Deep learningの軽い紹介
Deep learningの軽い紹介
 

Mehr von Minoru Chikamune

「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11Minoru Chikamune
 
「Googleを支える技術」の解説 2010.08.23
「Googleを支える技術」の解説 2010.08.23「Googleを支える技術」の解説 2010.08.23
「Googleを支える技術」の解説 2010.08.23Minoru Chikamune
 
省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18Minoru Chikamune
 
AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07Minoru Chikamune
 
Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15Minoru Chikamune
 
D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13Minoru Chikamune
 
「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20Minoru Chikamune
 
「グーグルの自動運転Carの技術要素」勉強会 2014.08.29
「グーグルの自動運転Carの技術要素」勉強会 2014.08.29「グーグルの自動運転Carの技術要素」勉強会 2014.08.29
「グーグルの自動運転Carの技術要素」勉強会 2014.08.29Minoru Chikamune
 
「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04Minoru Chikamune
 

Mehr von Minoru Chikamune (9)

「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11「機械学習 By スタンフォード大学」勉強会 2015.09.11
「機械学習 By スタンフォード大学」勉強会 2015.09.11
 
「Googleを支える技術」の解説 2010.08.23
「Googleを支える技術」の解説 2010.08.23「Googleを支える技術」の解説 2010.08.23
「Googleを支える技術」の解説 2010.08.23
 
省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18省メモリーに関するデザインパターン 2011.04.18
省メモリーに関するデザインパターン 2011.04.18
 
AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07AspectJによるJava言語拡張 2012.09.07
AspectJによるJava言語拡張 2012.09.07
 
Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15Stormとその周辺 2013.03.15
Stormとその周辺 2013.03.15
 
D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13D3によるデータビジュアライゼーション 2013.09.13
D3によるデータビジュアライゼーション 2013.09.13
 
「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20「Raspberry pi」勉強会 2015.03.20
「Raspberry pi」勉強会 2015.03.20
 
「グーグルの自動運転Carの技術要素」勉強会 2014.08.29
「グーグルの自動運転Carの技術要素」勉強会 2014.08.29「グーグルの自動運転Carの技術要素」勉強会 2014.08.29
「グーグルの自動運転Carの技術要素」勉強会 2014.08.29
 
「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04「Lispインタープリター」勉強会 2014.12.04
「Lispインタープリター」勉強会 2014.12.04
 

有名論文から学ぶディープラーニング 2016.03.25

  • 1. ウルシステムズ株式会社 http://www.ulsystems.co.jp mailto:info@ulsystems.co.jp Tel: 03-6220-1420 Fax: 03-6220-1402 ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 有名論文から学ぶディープラーニング 2016/3/25 講師役:近棟 稔
  • 2. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. はじめに  近年、機械学習やAIの最先端技術としてディープラーニング(深層学習)は非常に注目を 集めています。ディープラーニングが注目を集め始めたのはGoogle Trendsによると以下 のように2012年末になります。世の中のイベント的には2012年に各種機械学習コンテス トでディープラーニングを採用したチームが連勝し始めた事がきっかけとなりました。  今となっては、Google音声認識で人の声をテキスト化する際に用いられていますし、高精 度な物体認識を行いたい場合などに欠かせない技術となっています。  この勉強会では大きなニュースとして扱われたディープラーニングの有名論文を引用しな がら、ディープラーニングの内部を紐解いていきたいと思います。 1 Googleの猫 SuperVision deep learning
  • 3. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 2 ニュースになったディープラーニング の成果を振り返る
  • 4. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2012年 Googleのコンピュータが自動的に猫を認識できるようになった  「どの写真が猫だよ」と教えなくても、Youtubeからランダムに切り出した大量の画像から「教師なし 学習」によって人の顔や猫の顔に反応するニューラルネットワークを自己形成出来たというニュースで す。  具体的には、1000万枚の200x200ピクセルのカラー画像をYouTubeからランダムに取り出し、トレー ニングデータとして利用したようです。トレーニングデータでは、顔の位置や拡大率は全く適当で、顔 がフレームから切れていたりします(上記論文に画像が添付されています)。また、どの画像が猫の顔 であるかなどの情報は与えていません。このデータでニューラルネットワークをトレーニングすると、 猫の画像や人の顔に対して特定のニューロンが発火するように出来たようです。使ったマシンは1,000 台(16,000コア)で、3日間学習したそうです。なお、ネットワークの深さは9層です。 3 猫の画像の時だけ 発火するニューロン 人の顔の画像の時だけ 発火するニューロン
  • 5. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2012年 画像認識コンペティションでディープラーニングが圧勝  Large Scale Visual Recognition Challenge 2012 (ILSVRC2012) というコンペティションにて、 Geoffrey Hintonチーム(カナダのトロント大学)が開発したSuperVisionが2位以下に大差をつけて勝 利しました。  この論文の骨子としては、以下のものが含まれています。  使ったのはDeep Convolutional Neural Networkで、画像のRGBピクセル値を直接学習しました。  5つのコンボリューション層とmax-pooling層を持ち、softmaxを用いています。  NVIDIAのGPUを2つ使い、1週間学習させています。  activation functionとしてrectified linear unitを用いています。  overfittingを避けるために、dropoutを用いています。  autoencoderなどのpretrainingは、あえて採用しなかったそうです。採用すれば助けになりそうな 感触はあったものの、あえて使わず、それでも高い認識能力が得られたようです。 4
  • 6. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2015年 LSTMで上手な受け答えが可能なチャットボットが作れた  LSTMというニューラルネットワークの一種を用い、既存の人工無能よりもちゃんとした会話を成立可能 なチャットボットが作れたという物です。論文にはチャットの例が沢山掲載されています。  チャットボットの学習のために使ったデータは、ITヘルプデスクのトラブルシューティングデータセッ トと、映画の字幕データセットの2種類のようです。データによって受け答えの内容が違います。 5
  • 7. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2015年 Atariのゲームを試行錯誤しながら上手にプレイできるように  Atariのさまざまなゲームを、ゲームごとに特別にプログラミングすることなく、強化学習で上手にプレ イできるようになったという論文です。  この論文の場合、ソースコードも公開されています。luaというJavaScriptに似た言語で書かれていて、 ライブラリーとしてはtorchが使われていました。ソースコードのトータル行数は1460行しかありませ ん!GPUだけでなく、CPUでも動作するようになっていました。(そのような起動スクリプトが入って います) 6 (画像は論文からの抜粋)
  • 8. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2016年 AlphaGoが世界棋士レーティングで4位のイ・セドルに勝利  AlphaGoが世界棋士レーティングで4位のイ・セドルに勝利しました。今まで囲碁でコンピューターがプ ロに勝つ事はまだまだ先のことだと言われてきましたが、これをディープラーニングで達成しました。  convolutional neural network (CNN)が碁に最初に適用されたのは1994年だったそうです。ただ、当 時のニューラルネットワークは層が浅いものでした。2015年にDeepMindは12のコンボリューション層 とsoftmaxを使い、探索処理なしのNNによる直感勝負で当時最強の囲碁プログラムと互角の強さのプロ グラムを作っています。 (論文:Move evaluation in Go using deep convolutional neural networks に掲載)  2016年の上記論文はフランスのプロ棋士であるFan Huiに勝利した後に書かれたもので、AlphaGoのア ルゴリズムが説明されています。より詳しい内容は後述しますが、以下のような関数をNNで構築し、そ れを用いてゲーム木の探索(深読み)を行うことで強い囲碁プログラムを作ることに成功しています。  バリューネットワーク 局面の評価を行うニューラルネットワークです。局面を特殊加工したテンソルを引数に入れると、戻り値として勝率 が数字で出てくるようなものです。  ポリシーネットワーク 局面を特殊加工したテンソルを引数に入れると、戻り値として次の一手をどこに打つべきか出力してくれます。  ロールアウト用ポリシーネットワーク ロールアウト(プレイアウトとも呼ばれる)に用いるポリシーネットワークです。早打ち用のポリシーネットワーク と言ってもいいです。ポリシーネットワークは3ミリ秒かかりますが、これは2マイクロ秒で計算できます。 7
  • 9. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 他にも色々・・・ 全部ディープラーニング(ディープニューラルネットワーク)です。  音声認識が実用段階に。(論文: Fast and Accurate Recurrent Neural Network Acoustic Models for Speech Recognition) → 今の時代、声で入力はあたりまえ。  画像を入力したら、自然言語(たとえば英語)で画像に対して説明文を適切に生成してく れるものが作れた。(論文: Show and Tell: A Neural Image Caption Generator)  いろいろな画像を、画家の作風を真似た画像に自動変換するプログラムが作れた。 (論文: A Neural Algorithm of Artistic Style) 8
  • 10. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 9 ニューラルネットワークは 何に使えるの?
  • 11. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニューラルネットワークの利用可能範囲  ニューラルネットワークは、意外にも機械学習で扱われる以下のすべての領域に適用可能です。  教師あり学習  回帰 (regression) 碁の局面を入力すると、出力として勝率(数値)を出してくれるようなものが これに該当します。  分類 (classification) 写真を入力すると、人の顔が写っているか否かを出力するものや、 手書きの数字文字画像を入力すると、0~9の数字のどれに該当しそうかを確率分布として出 力してくれるものが該当します。  教師なし学習  クラスタリング 自己組織化マップ(SOM)がこれに該当します。  次元圧縮 autoencoderやRestricted Boltzmann Machineが該当します。  強化学習  Atariの例や、AlphaGoの例が該当します。  ニューラルネットワークは任意のチューリングマシンをシミュレートする能力をもつ事が古くから知ら れています。うまくニューラルネットワークを作れば、かなり利用範囲は広いはずです。 10 引数 関数: 出力𝑓
  • 12. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. なんでもニューラルネットワークでいいの?  なんでもニューラルネットワークで済まそう、というのはやりすぎな場合が多いようですが、一方で、 2001年にMichele BankoとEric Brillが出した論文によると、学習アルゴリズムの違いはそれほど重要で はなく、使用する学習データの量が性能の決め手になるとも言われています。ここで言う性能は、スパ ム検出が正確だったり、写真の分類に間違いが少ないといった意味での性能です。 11 http://ucrel.lancs.ac.uk/acl/P/P01/P01-1005.pdf 性能の高さ 学習データの量 学習アルゴリズムの違いが重要でないならば、な ぜDeep Neural Network (DNN) が流行っている のか、と疑問を感じると思いますが、それは今ま での機械学習アルゴリズムが出せなかったような 性能がDNNでは出せてしまうためです。 一説には、左のグラフを見ると、大量のデータを 食わしていっても古い機械学習アルゴリズムは、 皆、頭打ちになっていますが、この頭打ちがDNN の場合発生しにくいという事が言われています。 ただし、最近の研究では少ないデータにおいても、 DNNの有効性が分かってきているようですので、 大量データが必須というわけでもありません。 また、研究者にとっては驚きに満ちた成果が出し やすいフロンティアだということも関係していそ うです。次々と驚くような発見があり、興味深い 論文がハイペースで発表されています。
  • 13. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 12 ニューラルネットワークの基本
  • 14. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 脳とニューロンとニューラルネットワーク  「脳は最後のフロンティア」と言われています。脳の仕組みが真の意味で解明されれば、鉄腕アトムや ドラえもんのようなヒトに近いロボットが作れそうですが、現状まだそこまで至っていません。とはい え、fMRIやオプトジェネティクスといった技術によって急速に脳の解明は進んでいますので、いつの日 か真の意味で脳の仕組みが分かるかもしれません。  ヒトの脳を構成する基本的な素子は「ニューロン」と呼ばれる神経細胞です。このニューロンの動作に 関しては、かなり昔(1943年)から詳細に分かっています。このモデル化された人工のニューロンをネッ トワーク状に繋げたものがニューラルネットワークです。  以下のように人工ニューロンをネットワーク状に繋げます。繋ぎ方は用途によってさまざまです。 13 https://ja.wikipedia.org/wiki/神経細胞 𝑥1 𝑥2 𝑥3 … … 𝑥10000 𝑤1 𝑤2 𝑤3 𝑤10000 𝑏 yモデル化 𝑥1 𝑥2 𝑥3 𝑥4 𝑦1 𝑦2 𝑦3 𝑥1 𝑥2 𝑥3 𝑥4 𝑦1 𝑦2 𝑦3 情報が入力側に戻る場合もある これは生物的には、より自然。
  • 15. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニューラルネットワークの1つのノード(ユニット)について  ニューラルネットワークを構成するノード(人工ニューロン)は以下のようなものです。まず、 複数の入力𝑥1, 𝑥2, 𝑥3があります。入力は、他のニューラルネットワークのノードからの出力 から来るものもありますし、画像の画素を入力として受け取るものもあります。この入力1 つ1つに対し、重み付け𝑤1, 𝑤2, 𝑤3があります。また、ノード1つには1つのしきい値𝑏(バイ アス)を数値として持ちます。ノードからの出力結果はここでは𝑦とします。 𝑦を計算する 際にはactivation functionである𝑓を介して算出されます。  activation function 𝑓(𝑢) として、古くはシグモイド関数が使用されてきましたが、現在は rectified linear (ReLU) という活性化関数がとてもよく使われます。2011年のReLUの発 見により、より深いニューラルネットワークの学習(ディープラーニング)が可能になったた めです。ReLUの発見は大きなブレイクスルーでした。 14 𝑥1 𝑦 u = 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 𝑥3 y = 𝑓 𝑢 𝑤1 𝑥2 𝑥3 𝑤2 𝑤3 𝑏 f(u): activation function (活性化関数) 𝑓 ReLU 𝑓(𝑢) = max(𝑢, 0) 0 𝑢 𝑓(𝑢)
  • 16. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニューラルネットワーク  実用化されているニューラルネットワークには、大きく2つの種類があります。  feedforwardニューラルネットワーク(FFNN)  recurrentニューラルネットワーク(RNN)  主な違いは、情報の伝達が一方向であるか、それとも再度出力情報が入力側に戻ることがあるかです。 画像認識などで広く使われているのはFFNNです。RNNは情報のシーケンスを扱う際に用いられます。た とえば、音声情報を扱う際や、文章の自動生成などで使われます。  FFNNとRNNは組み合わせて使われる事もあります。 15 𝑥1 𝑥2 𝑥3 𝑥4 𝑦1 𝑦2 𝑦3 𝑥1 𝑥2 𝑥3 𝑥4 𝑦1 𝑦2 𝑦3
  • 17. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニューラルネットワーク(NN)へ与える入力データのイメージ  ニューラルネットワークに対する入力データは以下の様な形をした、固定の大きさの多次元配列(数学 的にはテンソル)です。  たとえば、モノクロ画像をラスタスキャンしたものは1次元配列になり、NNへの入力に出来ます。モノ クロ画像そのままであれば、2次元配列となりますから、これもNNへの入力にそのまま使えます。ちな みに碁の局面も19x19の2次元配列になりますから、そのままNNへの入力として使えます。カラー画像 は1つのピクセルにつきRGBの3つのデータが入りますから、3次元配列となります。これも、NNへの入 力として使えます。 16 1 2 3 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1次元配列 (ベクトル) 2次元配列 (行列) 3次元配列 (テンソル) 4次元配列 (テンソル) ・・・ 写真のなまのRGBピクセルデータを入力 碁の局面のデータを行列として入力 (書けない)
  • 18. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニューラルネットワーク(NN)からの出力データのイメージ  ニューラルネットワークからの出力データに関しては、主に2つのデータ表現を用います。1つは単なる 1つの数値です。これは、回帰用にニューラルネットワークを使う場合に使用します。もう一つは、確率 分布を出力するタイプです。  出力として確率分布を出力するというイメージは分かりにくいですが、具体的には以下の様なものです。  上記のような確率分布でデータを入出力する際、ニューラルネットワークでは「one hot vector」とい う表現もよく用いられます。これは、該当ノードだけ確率を1とし、他を0とした分布です。以下の例は 数字の表現方法です。アルファベットやASCIIコードを扱う場合も同じ要領になりますが、もっとベクト ルの長さが長くなります。 17 画像が0である確率=0.1 画像が1である確率=0.2 画像が2である確率=0.5 画像が9である確率=0.1… 0 = 1 0 0 0 0 0 0 0 0 0 , 1 = 0 1 0 0 0 0 0 0 0 0 , 2 = 0 0 1 0 0 0 0 0 0 0 , 3 = 0 0 0 1 0 0 0 0 0 0 , 4 = 0 0 0 0 1 0 0 0 0 0 , 5 = 0 0 0 0 0 1 0 0 0 0 , 6 = 0 0 0 0 0 0 1 0 0 0 , 7 = 0 0 0 0 0 0 0 1 0 0 , 8 = 0 0 0 0 0 0 0 0 1 0 , 9 = 0 0 0 0 0 0 0 0 0 1 画像が2である確率が 一番く出力されたから、 「2」と判定している みたいだ。
  • 19. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 18 ニューラルネットワークにおける さまざまな種類の層(レイヤー)
  • 20. ULS Copyright © 2016 UL Systems, Inc. All rights reserved.  ニューラルネットワークでは、さまざまな層を組み合わせて1つのニューラルネットワーク を構成し、全体として何かの機能を構築します。層にはさまざまな種類があるため、 層の種類を理解することがニューラルネットワークを理解する近道です。  つまり、上記で言う「convolution層」「プーリング層」「LCN層」「全結合層」 「softmax層」などの内容が理解できれば、各種論文が使用しているディープラーニングの ニューラルネットワークの構造が理解出来るようになります。 softmax層 全結合層 ニューラルネットワークを構成する層(レイヤー)の意味を理解すること が、ディープラーニングを理解する近道 19 LCN層 プーリング層 convolution層 LCN層 プーリング層 convolution層<典型的な画像認識用 convolutional neural network (CNN)> 画像が0である確率=0.1 画像が1である確率=0.2 画像が2である確率=0.5 画像が9である確率=0.1 …
  • 21. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 全結合層:汎用の層  全結合層は古くからニューラルネットワークで使われてきた層です。用途は特に限定され ておらず、汎用の層として利用可能です。現在でもニューラルネットワークの表現力を底 上げするためによく利用されます。  ネットワークの形としては、1つ1つのユニット(人工ニューロン)が前の層のすべてのユ ニットと結合している事が特徴です。このため、最も汎用性の高い層となっています。  昔はこの全結合層を2~3層重ねた簡素なニューラルネットワークがよく使われていました。 現在でも素朴なニューラルネットワークを思い浮かべる際には、この全結合層が重なって いるものと考えておけば、おおよそ間違いありません。  活性化関数はLeRUが使われる事がほとんどです。 20
  • 22. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. softmax層 : ニューラルネットワークにデータを分類させたい時に、 最終層として使うもの  たとえば郵便番号のような手書き文字画像を0~9までの10個の数字に分類したい場合や、 囲碁で現在の局面から次の一手としてどこが良さそうかを確率分布で出力したい場合など に、ニューラルネットワークの最終層としてよく用いられます。  softmax層はネットワーク構造としては全結合層と同じです。異なるのは活性化関数で、 softmaxという特殊なものを使用します。  softmaxでは、まず、各ノードでactivation functionにかける前の値𝑢𝑖をexp 𝑢 で変換しま す。通常のactivation functionであればこの計算値をそのまま出力するところですが、 softmaxの場合は、𝑦1 + 𝑦2 + ⋯ + 𝑦𝑛が1になるように全体の値を調整します。これは、確率 分布として扱えるようにするためには、全体の確率の和が1である必用があるためです。数 式で記述すると、以下のようになります。 21 𝑦1 𝑦2 𝑦3 この値が大きかったら入力画像が「1」である確率が高い この値が大きかったら入力画像が「2」である確率が高い この値が大きかったら入力画像が「3」である確率が高い u = 𝑏 + 𝑤1 𝑥1 + 𝑤2 𝑥2 + 𝑤3 𝑥3で計算できる各𝑢𝑖に対して、 yi = exp 𝑢𝑖 𝑖=1 𝑛 exp 𝑢𝑖
  • 23. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. regression層(回帰層) : ニューラルネットワークから数値を出力したい場合に使用します  regression層はニューラルネットワークから数値を出力したい場合に使用します。たとえば、囲碁の局 面を数値として評価するためのニューラルネットワークの最終層にregression層を使用することで、数 値を得るといった目的で使用します。  activation function 𝑓 𝑢 としては、𝑦の値として欲しい範囲で使うものが変わるようです。最もベー シックなものはlinear関数です。なお、AlphaGoではtanh 𝑢 が使われていました。 22 𝑦 linear関数 𝑓(𝑢) = 𝑢 0 𝑢 𝑓(𝑢) ハイパボリック タンジェント 𝑓(𝑢) = tanh 𝑢 0 𝑢 𝑓(𝑢) -1 1
  • 24. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. convolution層の説明の前に・・・ 画像処理におけるconvolution(たたみ込み)演算  画像処理では、 convolutionという処理が一般的に広く使われています。 たとえば、スムージングや エッジ検出などで使います。このような概念はJava 2D APIのConvolveOpクラスなどで導入されていま すし、GIMPなどのツールでも、 convolution行列を直接入力して変換を行う処理が提供されています。 (GIMPのメニューから、フィルター>汎用>コンボリューション行列で実行できます)  convolutionの考え方は以下の通りです。 23 元画像 垂直方向エッジ検出 水平方向エッジ検出 元画像 「カーネル」と 呼ばれる行列 ⊗ ⇒ 新しい画像 (mapとも呼ばれる) 元画像に対し、カーネルと同じサイズのウインド ウをずらしながら計算を行います。新しい画像の ピクセル値は、以下のように計算します。 𝑥1 𝑥2 ℎ1 ℎ2 ⊗ ⇒ 𝑥1ℎ1 + 𝑥2ℎ2 元画像 カーネル
  • 25. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. convolution層(たたみ込み層) : データを色々な見方(複数種類のフィルター)で見るための層  convolution層は、前述のconvolution演算をニューラルネットワークにおける層として扱 います。(なお、本来はバイアスも加算されます。)  通常の画像変換の際には「スムージング用のカーネル」や「エッジ検出用のカーネル」な どの手で作られたカーネルを用いますが、convolution層ではカーネルに用いる行列をデー タから自動生成します。自動生成したカーネルは、手で作ったカーネルに比べて、より データの特徴をうまくとらえたカーネルとなります。 24 「カーネル」を 複数枚(K枚)適用 ↑ ここを実際には 学習する ⊗ いろいろな種類の map(画像)がK枚得られる このようなmap1枚を「チャネル」と呼ぶ activation functionを 適用(大抵LeRU) 元画像(map) 参考: http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution
  • 26. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. pooling層: 画像などのデータ中にある「特徴」の位置依存性を緩和するための層  convolution層の後にpooling層という層を置くことが多いです。pooling層は、画像などの データ中にある「特徴」の位置をぼやかすための層として使用します。  pooling層の典型的なものとして、max poolingというものがあります。max poolingは、 ウィンドウ内の最大ピクセル値を計算するという、とても簡単な変換をしています。  なお、pooling層は学習の対象となるようなパラメーターはありません。決まった計算をす るだけの層です。 25 入力の mapの1枚 元mapに対し、ウインドウをずらしながら計算 を行います。新しい画像のピクセル値は、単純に、 ウインドウ内の最大ピクセル値となります。 𝑥1 𝑥2 max(𝑥1, 𝑥2) 元mapの ウインドウ max pooling 変換した map1枚 max pooling
  • 27. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. LCN層 (局所コントラスト正規化層): 画像などのコントラスト補正のための層  pooling層の後にLCN(local contrast normalization)と呼ばれる局所コントラスト正規化の 処理を挟み込むことがあります。  通常、画像はカメラの露出や光源の状況次第で画像全体の明るさやコントラストが大きく 変化します。このコントラストの変化を無視したい場合、LCN層を用います。  なお、Pooling層と同様に、LCN層でも学習の対象となるようなパラメーターはありません。 26 入力の mapの1枚 元画像に対し、ウインドウをずらしながら計算を 行います。新しい画像のピクセル値は、単純に、 ウインドウ内の平均を差し引くという計算を行い ます。目的は、コントラスト補正です。 LCN 変換した map1枚
  • 28. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. LSTM層 (Long short-term memory層): シーケンスを扱うための層  LSTM層は他の種類の層とはずいぶん異なり、層の中に状態を持っています。層の中に状態を持つことに より、層をデータが通過するたびに内部状態が変化し、それによってそれまで流されたデータに応じた 出力が可能となっています。  LSTM層には、たとえば単語を覚えさせる事が出来ます。この場合、入力としてASCIIキャラクターの 「one hot vector」を用い、出力としてASCIIキャラクターの確率分布を出すようにすると、 「HELLO」は以下のように覚えさせられます。「L」の次の文字が固定されていないのがポイントです。 27 LSTM層 出力された情報が再度入力に戻る。 また、1回データが通る たびに、内部状態が更新される。 LSTM層 「H」 「E」 LSTM層 「E」 「L」 LSTM層 「L」 「L」 LSTM層 「O」 「L」 LSTM層 <終> 「O」 同じ「L」を入力しても、文脈によって結果は異なる
  • 29. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. convolutional neural network (CNN) の例  convolutional neural network (CNN) の例を以下に再度示します。  よく見かけるCNNは、convolution層, pooling層, LCN層の3層を1セットとし、それを何度か繰り返し 適用した後に、全結合層をいくつか適用し、最後の層にsoftmax層を利用してデータの分類を行います。  CNNは、結局のところ、何通りもの画像変換を介して、適切にsoftmaxによるデータの分類が行えるよ うにデータを咀嚼した後、softmax層でデータを分類するという構造となっています。  このCNNを訓練するためには、教師データを用いて教師あり学習を行います。学習にはバックプロパ ゲーションを使用します。(昔はautoencoderなどの事前学習を使っていましたが、最近は使われず、 単純にバックプロパゲーションを用いて学習を行います) 28 softmax層 全結合層 LCN層 pooling層 convolution層 LCN層 pooling層 convolution層 画像が0である確率=0.1 画像が1である確率=0.2 画像が2である確率=0.5 画像が9である確率=0.1 … よくある 組み合わせ よくある 組み合わせ
  • 30. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. 29 ニュースになった論文を振り返る
  • 31. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2012年 Googleのコンピュータが自動的に猫を認識できるようになった  この論文では以下の様にconvolution層, pooling層, LCN層の3層を1セットとし、それを3回繰り返した NNを用いています。ただし、訓練の仕方が特殊で、autoencoderという訓練方法を用いています。  autoencoderでは、まずブロックAを訓練し、次にブロックB、最後にブロックCを訓練するといった訓 練方法を行います。(autoencoderの具体的な内容説明はスキップしてしまいます)  このように訓練したところ、各LCN層のユニットに、以下のような性質を持つユニットが現れた、とい うのがこの論文の内容となります。  ブロックA:ナナメの線や縦の線など、概念的に単純な画像に反応するユニットが登場  ブロックB:目や鼻といった、単純なオブジェクトに反応するユニットが登場  ブロックC:人の顔や猫の顔といった、より上位の概念を持つ画像に反応するユニットが登場 30 LCN層 pooling層 convolution層 LCN層 pooling層 convolution層 LCN層 pooling層 convolution層 ブロックA ブロックB ブロックC
  • 32. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2012年 画像認識コンペティションでディープラーニングが圧勝  コンペティションで勝利したSuperVisionの構造は以下の通りです。  なお、2014年にGoogleはGoogLeNetという画像認識用ニューラルネットワークを構築していますが、 以下のように非常に深いものになっています。SuperVisionが打ち立てた16.4%の誤認識率は更に下が り、6.67%まで誤認識率が下がっています。これは人間の認識能力に匹敵するものです。 31 softmax層 全結合層 全結合層 pooling層 convolution層 convolution層 convolution層 pooling層 LCN層 convolution層 pooling層 LCN層 convolution層 論文: 「Going Deeper with Convolutions」より引用
  • 33. ULS Copyright © 2016 UL Systems, Inc. All rights reserved.  この論文で使われたニューラルネットワークは以下の通りです。  これらのLSTMベースのNNを以下のように使うことによってチャットシステムを作成しています。 まず、人の入力はNNへ順に入力しますが、NNからの出力は無視します。入力の終わり(eos)に来ると、 NNからの出力を入力側に単に戻しはじめ、NNがeos(end of statement)を返すまで繰り返します。 ニュースになった論文:2015年 LSTMで上手な受け答えが可能なチャットボットが作れた 32 LSTM層 「H」 softmax層 「E」 「H」 LSTM層 LSTM層 softmax層 「E」 ITヘルプデスクの トラブルシューティング のデモで使われたもの 映画の字幕データセットの デモで使われたもの 論文: 「A Neural Conversational Model」より引用
  • 34. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. ニュースになった論文:2015年 Atariのゲームを試行錯誤しながら上手にプレイできるように  以下がこの論文で用いられたニューラルネットワークです。 33 全結合層 全結合層 convolution層 convolution層 操作 最後の出力である「操作」は、 以下の論文の図にあるような 各種操作パターンを意味します。 たとえば「ボタンを押しながら 斜め上にスティックを倒す」操作などです。 操作の種類としては「入力なし」を含めると 18通り存在します。 このNNを訓練する際には、 以下の3つの情報を与えています。 ・ゲームの画面(毎秒60フレーム) ・現在のゲームのスコア ・ゲームオーバーか否か ・可能な操作の種類
  • 35. ULS Copyright © 2016 UL Systems, Inc. All rights reserved.  AlphaGoは以下の3つのニューラルネットワークを用いています。  バリューネットワーク 局面の評価を行うニューラルネットワークです。局面を特殊加工(碁のルールにもとづく)したテンソルを引数に入れると、 戻り値として勝率が数字で出てくるようなものです。  ポリシーネットワーク 局面を特殊加工したテンソルを引数に入れると、戻り値として、ぱっと見、次の一手をどこに打つべきかを出力してくれ ます。  ロールアウト用ポリシーネットワーク ロールアウト(プレイアウトとも呼ばれる)に用いるポリシーネットワークです。早打ち用のポリシーネットワークと 言ってもいいです。ポリシーネットワークは3ミリ秒ほど計算にかかりますが、これは2マイクロ秒で計算できます。 regression層 全結合層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 勝率 ニュースになった論文:2016年 AlphaGoが世界棋士レーティングで4位のイ・セドルに勝利 34 softmax層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 次に打つべき場所の分布 softmax層 次に打つべき場所の分布
  • 36. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. AlphaGoにおける局面の評価方法  AlphaGoでは、2種類の局面評価を行い、これらの局面評価結果をマージして、実際の局面評価結果としています。  バリューネットワークによる局面評価 バリューネットワークは局面の評価を行うニューラルネットワークです。つまり、バリューネットワークの引数に局 面を入力すれば、その局面の勝率が計算されます。これが1つ目の局面評価方法です。  ロールアウトによる局面評価 ロールアウト(もしくはプレイアウト)という方法を用いた局面評価が2つ目の局面評価方法です。 ロールアウトとは、具体的にはロールアウト用ポリシーネットワークを用いて、現在の局面から終局まで打ち続け、 どちらが結果的に勝ったかを見る方法です。碁盤は打つ所が361箇所しかなく、ロールアウト用ポリシーネットワー クは高速なので、単純計算で722マイクロ秒で終局の陣地がどうなりそうかを見ることが出来ます。終局の陣地の状 態を見れば、どちらがどれだけ勝ったのか見ることが出来ます。  上記2種類の局面評価は互いに補完しあう関係にあるようで、どちらの局面評価も重要です。 よって、AlphaGoではこの2種類の局面評価を「足して2で割る」ことで最終的な局面評価としています。 なお、前ページのポリシーネットワークに関しては、どんな手を深読みするべきかを判定するために使用しています。 35 regression層 全結合層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 convolution層 勝率 終局まで高速に打ってみて、終局の状態を知り、それをもって、現在の局面の判断を行う。 softmax層 次に打つべき場所の分布
  • 37. ULS Copyright © 2016 UL Systems, Inc. All rights reserved. おわりに  今回の勉強会ではニューラルネットワークをどう訓練するかをスキップして説明すること で、ディープラーニングにおける難しい話をスキップしています。  ただし、本当に深い話まで分からないとディープラーニングに手がつけられないかという と、そうでもありません。世の中には便利なライブラリーがあり、今回説明した程度の内 容の理解で色々試行錯誤することは出来る状況にあります。  今回説明した有名論文も、たとえばAtariのゲームをプレイするニューラルネットワークは torchで実装されていたりと、大抵何らかの優秀なライブラリーを使うことが多いのです。  最終的には深い理解が必要ですが、そこにたどり着くまで何も動かせないわけではなく、 ライブラリーを利用する方向でいろいろな経験をしていく事が、ディープラーニングの勉 強を効率よく進めていく1つの方法ではないでしょうか。 36