SlideShare a Scribd company logo
1 of 245
Convolutional
Neural Network
入門講座
2016/05/13 丸山不二夫
“ConvNet architectures make the explicit
assumption that the inputs are images”
-- Andrej Karpathy
“ConvNets were largely forsaken
by the main stream computer-vision
and machine-learning communities
until the ImageNet competition in 2012”
-- Yann LeCun
はじめに
 Convolutional Neural Network (CNN, ConvNet)
は、現在のDeep Learningの中核技術であり、また、画
像認識を中心に、もっとも成果をあげているAI技術の一
つである。
 小論は、出来るだけ多くの技術者に、CNNとはどのような
ものであるのかを理解してもらうことを目的とした、CNNの
基本的な働きを解説した入門講座である。
 前提知識としては、前々回のマルレクの「ニューラル・ネッ
トワーク入門講座」 https://goo.gl/Q0mKfy の一部を想定
している。小論とあわせてチェックしてもらえばと思う。(両
者のカバーする範囲については、次の図をみて欲しい。)
以前の講演が扱った範囲
この講演が扱う範囲
はじめに
 CNNにフォーカスした講義ではあるが、CNNの近年の成
功とともに登場したいくつかの重要な手法(Drop Outや
訓練データの増量)、Convolution計算の高速化アルゴ
リズム等については、この「入門」講座では、全く触れられ
ていない。CNNの具体的な「応用」での実装技術につい
ては、別な機会に紹介できればと考えている。
 資料の最後に、CNNについての基本的な文献の日本語
抄訳をのせておいた。20年前の文献も含まれているのだ
が、講演資料とともに、是非、読んでもらえればと思う。
Agenda
 CNN以前のニューラル・ネットワーク
 CNN以前のニューラル・ネットワークの問題
 CNNのアーキテクチャー
 Convolutionの計算を経験する
 Convolutionの働きを見る
 CNNの応用
 参考資料
CNN以前の
ニューラル・ネットワーク
まず最初に、CNN以前のニューラル・ネット
ワークを振り返ってみよう。
ニューロンの働きのモデルとしての
ニューラル・ネットワーク
以前のマルレク「ニューラル・ネットワーク入門講座」
でも見たように、ニューラル・ネットワークは、ニューロ
ンの働きのモデルとして構想された。
ここでは、ニューロンと、信号の関係に注目しよう。
X
X1,X2,..X6は、0または1で
W1X1+W2X2+W3X3+
W4X4+W5X5+W6X6
+ b > 0
の時発火
重み:Wi
シナプスごとの賛成票の強さAをプラスの値に
反対票の強さBをマイナスの値にすると、
式が簡単になる。そうしたWiを「重み」という。
バイアス:b
ついでに、閾値 Cの符号を逆にすれば、
式はもっと簡単になる。それを「バイアス」という。
X1
X2
X3
X4
X5
X6
W2=3
W3=-1
W4=3
W5=2
W6=-2
W1=-2
先の次式を想起せよ
A – B – C > 0
符号を変えると
A + B’+ C’ > 0
の形になる。
復習
X
X1,X2,..X6は、0または1で
W1X1+W2X2+W3X3+
W4X4+W5X5+W6X6
+ b > 0
の時発火
X1
X2
X5
X4
X3
X6
W2=3
W3=-1
W4=3
W5=2
W6=-2
W1=-2
ニューロンから見れば
信号が、どういう経路で
きているかには、関心が
ない
一個のニューロンの場合
入力とニューロンの接続の
情報は、固定で、ニューロン
上のシナプスが記憶している。
入力ベクトルの並びの意味
X1
X2
X3
X4
X5
X6
W1X1+W2X2+W3X3+W4X4+W5X5+W6X6+b > 0 ?
重み W=[W1,W2,W3,W4,W5,W6]
バイアス b
入力 X=[X1,X2,X3,X4,X5,X6]
の場合の発火の条件
X1
X2
X3
X4
X5
X6
そのことは、式で表現
した場合は、どう反映
されるだろうか?
今、入力のX3とX5の
位置を交換してみよう。
XT =
一個のニューロンの場合
X1
X2
X5
X4
X3
X6
W1X1+W2X2+W5X5+W4X4+W3X3+W6X6+b > 0 ?
入力 X=[X1,X2,X5,X4,X3,X6]
の場合の発火の条件
重み W=[W1,W2,W5,W4,W3,W6]
バイアス b
入力とニューロンの接続の情報は、固定
で、ニューロン上のシナプスが記憶している。
だから、入力のベクトルを入れ替えると、重み
のベクトルも入れ替わる。それは、ベクトル表
現の問題で、もともと、入力と重みの「並び順」
に意味があるわけではない。入力と重みが、
シナプスで、一対一に対応していることが重要。
一個のニューロンの場合
X1
X2
X3
X4
X5
X6
ニューロン1
W1・XT + b1 > 0
ニューロン2
W2・XT + b2 > 0
ニューロン3
W3・XT + b3 > 0
ニューロン4
W4・XT + b4 > 0
ニューロン5
W5・XT + b5 > 0
ニューロン6
W6・XT + b6 > 0
入力 X=[X1,X2,X3,X4,X5,X6]
値:W11X1+W12X2+W13X3+
W14X4+W15X5+W16X6+b1
値:W21X1+W22X2+W23X3+
W24X4+W25X5+W26X6+b2
値:W31X1+W32X2+W33X3+
W34X4+W35X5+W36X6+b3
値:W41X1+W42X2+W43X3+
W44X4+W45X5+W46X6+b4
値:W51X1+W52X2+W53X3+
W54X4+W55X5+W56X6+b5
値:W61X1+W62X2+W63X3+
W64X4+W65X5+W66X6+b6
層としてのニューロンの場合
X1
X2
X5
X4
X3
X6
ニューロン1
W1・XT + b1 > 0
ニューロン2
W2・XT + b2 > 0
ニューロン3
W3・XT + b3 > 0
ニューロン4
W4・XT + b4 > 0
ニューロン5
W5・XT + b5 > 0
ニューロン6
W6・XT + b6 > 0
入力 X=[X1,X2,X5,X4,X3,X6]
値:W11X1+W12X2+W13X3+
W14X4+W15X5+W16X6+b1
値:W21X1+W22X2+W23X3+
W24X4+W25X5+W26X6+b2
値:W31X1+W32X2+W33X3+
W34X4+W35X5+W36X6+b3
値:W41X1+W42X2+W43X3+
W44X4+W45X5+W46X6+b4
値:W51X1+W52X2+W53X3+
W54X4+W55X5+W56X6+b5
値:W61X1+W62X2+W63X3+
W64X4+W65X5+W66X6+b6
層としてのニューロンの場合
層としても、入力ベクトルの入れ替えは、重みの入れ替えを必要とし、影響を与えない。
Full Connectの性質を考える
ここでは、もう少し詳しく、Full Connectなネットワー
クの性質を考えてみよう。 Full Connectのような
ノード間の密な結合は、ネットワークを記述するパラ
メータの、増大をもたらすことになる。
X1
X2
X3
X4
H1
H2
H3
M1
M2
M3
M4
Y1
Y2
Full Connectな
ニューラル・ネットワーク
入力層 隠れ層 出力層
X1
X2
X3
X4
H1
H2
H3
M1
M2
M3
M4
Y1
Y2
Full Connectなネットワークでは、隣り
合う層は「完全二部グラフ」で表現される
K4,3 K3,4 K4,2
完全二部グラフ
 頂点が二つの集合V1, V2に分かれていて、V1に属する
任意の頂点と、V2に属する任意の頂点との間に辺がある
もの。
V1
V2
完全二部グラフ
 完全二部グラフには、もう一つ、重要な特徴がある。それ
は、各集合内の頂点同士の間には辺が無いということで
ある。
 Full Connectなニューラル・ネットワークの、隣り合う層
のあいだのグラフは、完全二部グラフである。
V1
V2
完全グラフ
 完全グラフ(complete graph)とは任意の2頂点間に辺
があるグラフのことを指す。
完全グラフ
X1
X4
X7
X2
X5
X8
X3
X6
X9
Y1
Y4
Y2
Y5
Y3
Y6
Full ConnectするX層と
Y層の、要素の接続の様子。
ここでは、便宜的に、X層の
ノード X1とX6の接続のみを
図示した。
パラメーターの数は、
それぞれの層のノードの
数をかけたものなので、
ネットワークが複雑なもの
になるつれて、急速に大き
くなりうる。
Full Connectのネットワークの
入力層は、順序を持つ「配列」か?
Full Connectなネットワークでの入力層は、順序を
持つ「配列」なのだろうか? ここでは、そうではないこ
とを述べる。それは、そうしたネットワークでは、入力
層は、構造を持たないので「画像」データのもつ構造
的な情報を、直接には、正確に反映していないことを
意味する。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
層の中のノードのイメージ
 Full Connectなネットワークの
層の中のノードの集まりを、我々は、
次のように、ノードが順序を持つ一
次元のベクトルと考えることが多い。
 X=[X1,X2,X3,X4,X5,X6,X7,X8,X9]
といった、入力のベクトル表記や、
層全体の重み行列Wijを考えて、層
全体の出力をφ(X・W+b)で計算す
るなど、そうした形式化は有用である。
 ただ、それは、対象の一面である。
Full Connectなネットワークは、
もっと強い性質を持っている。
順 序
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
?
はたして、このイメージは、
正しいのだろうか?
Full Connectのニューラ
ル・ネットワークの入力層
は、一次元の配列だと考
えることが多い。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
多分、こちらの方が正しいと思う。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
0次元の点の、構造を持たない「集合」
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
「配列」は、要素間で順序の構造を持つが、
「集合」の要素間には、順序はない。
0次元の点の、構造を持たない「集合」
X1
X2
X3
X4
X5
X6
X7
X8
X9
X8
X2
X5
X4
X3
X6
X7
X1
X9
構造は、前後の層の要素との関係で決まる
ただし、前後のすべての要素と関係がある。
0次元の点の、構造を持たない「集合」
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
forgetful
集合は、一次元の配列
としても「表現」できる。
ただし、集合は、配列に
含まれる順序構造を、
すべて「忘れた」もの。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X5
X4
X5
X3
X7
X8
X9
forgetful
ある集合を、一次元
の配列で表現したと
しよう。その配列の
要素を、一定の規則
で置き換えてみよう。
この時、もとの配列
と、置き換えられた
配列は、同じ集合の
「表現」である。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X2
X3
X4
X5
X6
X7
X8
X9
forgetful
集合は、二次元の配列
としても「表現」できる。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X4
X7
X2
X5
X8
X3
X6
X9
forgetful
これも、同じ集合の二次元
の配列での「表現」である。
要素の並びは、先のとは
異なっている。
X1
X2
X3
X4
X5
X6
X7
X8
X9
X1
X4
X7
X2
X3
X8
X5
X6
X9
forgetful
これも、同じ集合の二次元
の配列での「表現」である。
要素の並びは、先のとは
異なっている。
Full Connectなネットワーク
に、カラー画像を与えると
しよう。
この時、RGBの順に、画像を
一次元化しようが、GRB,BG
R,BGR...の順にしようが、結
果には関係ない。
ニューラル・ネットワークの複雑さと、
そのシンプルな把握の為の工夫
ニューラル・ネットワークは、複雑なものである。それ
を図で示そうとすると、その複雑さがわかる。
ただ、そこには規則性がある。ネットワークを「グラフ」
で表現し、その上を流れるデータを「テンソル」として
捉え、それらを「モジュール」として組み合わせる。
こうした把握は、ニューラル・ネットワークのプログラミ
ングを容易なものにした。ただ、そのことは、Full
Connectのネットワークを単純化するものではない。
ニューラル・ネットワークの例
(Full Connect)
これでも、
28x28=
784ノードが、
8ノードに
省略されて
いる
CNN以前の、通常の
ニューラル・ネットワークのモデュラー性
一つの「層」のグラフでの表現
行列
の積X
W
行列
の和
b
φの
適用
積
W
和
b
φ
積X
W
和
b
φ 積
W
和
b
φ
隠れ層の
ニューロン数:15
重み WH:784x15次元
バイアス bH:15次元
出力層の
ニューロン数:10
重み WO:15x10次元
バイアス bO:10次元
入力層 隠れ層 出力層
こっちのグラフの方が、ずっとわかりやすい!
隠れ層の
入力:784
784次元
TensorFlowのグラフ
Sigmoid SoftMax
積X
W
和
b
φ 積
W
和
b
φ
隠れ層の
ニューロン数:15
重み WH:784x15次元
バイアス bH:15次元
出力層の
ニューロン数:10
重み WO:15x10次元
バイアス bO:10次元
入力層 隠れ層 出力層
こっちのグラフの方が、ずっとわかりやすい!
本当に、それでいいのか?
隠れ層の
入力:784
784次元
TensorFlowのグラフ
Sigmoid SoftMax
CNN以前のネットワークの問題
CNN登場以前の、Full Connectなネットワー
クには、大きく言って、二つの問題がある。一
つは、パラメーターの数の爆発であり、もう一
つは、画像データの持つ局所的な特徴をうま
く抽出できないということである。
CNN以前のネットワークの第一の問題
パラメーターの数の爆発
 入力層にn個のデータがあるとしよう。この時、最初の隠
れ層の一つ一つのニューロンは、それぞれ、入力層のす
べてのデータを受け取るので、n個のシナプスを持つ。そ
れは、最初の隠れ層のニューロンが、n個の重みパラメー
ターを持つことを意味する。
 この隠れ層のニューロンの数を m個だとすると、最初の
隠れ層の持つパラメーターの総数は、 n x m + n とな
る。(最後の + n は、バイアスの個数である)
 実際の画像データで、この n x m が、どのくらいになる
のか、コンピュータ上でよく使われる画像フォーマットで見
てみよう。
よく使われる画像フォーマットの画素数
機械学習 総画素数
MNIST 28x28
[GreyScale]
784x1 手書き数字
10 クラス
CIFAR-10 32x32 1024x3 CIFAR-10/100
ImageNet
(ILSVRC-2010)
256x256 65,536x3 画像データ
1,000クラス
AlphaGO 19x19 361x1
PC/TV
VGA 640x480 307,200x3 DOS/V
XGA 1024x768 786,432x3 Windows3.0~XP
Full-WXGA 1366x768 1,049,088x3 低価格HDTVの主流
Full-HD 1920x1088 2,073,600x3 一般的なディスプレイ
4K 3840x2160 8,294,400x3 Xperia Z5 Premium
8K FUHD 7680x4320 33,177,600x3
CNN以前のネットワークの第一の問題
パラメーターの数の爆発
 MNISTの入力データ数は28x28=784、
CIFAR-10の入力データ数は32x32x3=3,072
CIFAR-10はカラー画像なので、x3になる、
ImageNetの入力データ数は、256x256x3=196,608
Full Connectなネットワークでは隠れ層の一個のニュー
ロンについて、これだけのパラメーターが必要になる。
 もうひとつ注意してほしいのは、これらの機械学習でよく
用いられる画像データは、コンピュータの世界で一般的な
画像データと比較すると、必ずしも大きなものではないと
いうことである。それは、25年前のDOS/Vの画像データ
より小さい。
 ちなみに、AlphaGOの入力データは、19x19x1である。
ImageNet 1000 Categories x AlexNet
⚪︎
❌
ImageNet (ILSVRC-2010)
14,197,122 images, 21,841 synsets indexed
 Full Connectなネットワークでは、入力層の全てのノード
が、次の層の全てのノードと接続しているので、入力層上
でのデータの並びは、大きな意味を持たない。
 ただ、画像データでは、一つ一つのピクセルの位置情報と
その並びは、意味を持つ。同時に、画像認識という視点か
ら考えれば、ピクセルの微細な位置のずれや画像の乱れ
は、画像の認識にとっては、大きな意味を持たない。こうし
た、相反する要求を、同時に満たすことが、求められるこ
とになる。
 また、RGBで表された三枚の画像のデータには、対応す
る箇所で、強い相関がある。同様に、画像上の特徴的な
パターンは、データ内部の局所的な強い相関として捉える
ことができる。
CNN以前のネットワークの第二の問題
画像データの特徴を捉えているか?
A
A A
A
位置のずれ
位置のずれ
画像の乱れ
画像の微細な位置のズレや乱れ
三つの画像
のピクセル
には相関が
ある
R
G
B
カラー画像のRGB表現
特徴的なパターン
CNNのアーキテクチャー
CNNは、これまで見たように、それ以前の
Full Connectなネットワークが抱えていた問
題を解決しようという試みから生まれた。CNN
は、問題に、どのように対応しようとしたのだ
ろうか? ここでは、それを見てみよう。
Full Connectなネットワークの問題
 パラメーターの数の爆発 ー> 完全二部グラフの見直し
 データの局所的な情報の抽出 ー> 入力データに、明確
な構造と位置情報を与える。完全二部グラフの見直し
 微細なシフトやゆがみの捨象 ー> 解像度を下げる
640x480  320x240  160x120  80x60
後述する Pooling層は、そうした役割を持つ。
Full Connectなネットワークの問題
 パラメーターの数の爆発 ー> 完全二部グラフの見直し
 データの局所的な情報の抽出 ー> 入力データに、明確
な構造と位置情報を与える。完全二部グラフの見直し
 微細なシフトやゆがみの捨象 ー> 解像度を下げる
 Full Connectな、ニューラル・ネットを、あらためて、
チューンする
ニューラル・ネットをチューンする
 入力データを、Full Connect = 完全二部グラフのように、
「集合」ではなく、「幅」と「高さ」 (と「深さ(RGB)」) を持っ
た、ピクセルの順序を持った「配列」として表現する。そうし
た位置情報によって、「近い」ピクセル間の、「局所的な相
関関係」を表現できる。
 次層のニューロンは、 Full Connect = 完全二部グラフ
のように、入力層のすべてのノードのデータを受けいれる
のではなく、隣接したノードからなる、限られた領域のノー
ドのデータのみを受け入れるようにする。(「局所的な受容
野」) それは、パラメーターの数を大きく減らす。
X1
X2
X3
X4
X5
X6
ニューロン1
W1・XT + b1 > 0
ニューロン2
W2・XT + b2 > 0
ニューロン3
W3・XT + b3 > 0
ニューロン4
W4・XT + b4 > 0
ニューロン5
W5・XT + b5 > 0
ニューロン6
W6・XT + b6 > 0
入力 X=[X1,X2,X3,X4,X5,X6]
値:W11X1+W12X2+W13X3+
W14X4+W15X5+W16X6+b1
値:W21X1+W22X2+W23X3+
W24X4+W25X5+W26X6+b2
値:W31X1+W32X2+W33X3+
W34X4+W35X5+W36X6+b3
値:W41X1+W42X2+W43X3+
W44X4+W45X5+W46X6+b4
値:W51X1+W52X2+W53X3+
W54X4+W55X5+W56X6+b5
値:W61X1+W62X2+W63X3+
W64X4+W65X5+W66X6+b6
入力 X=[X1,X2,X3,X4,X5,X6] Full Connect な場合
パラメーターの数は、6x6+6=42
X1
X2
X3
X4
X5
X6
ニューロン1
WA・X1-3
T + b > 0
ニューロン2
WA・X2-4
T + b > 0
ニューロン3
WA・X3-5
T + b > 0
ニューロン4
WA・X4-6
T + b > 0
入力 X=[X1,X2,X3,X4,X5,X6]
ニューロン1は、入力層の
X1,X2,X3の三つからしか
データを受け取らない。
その他のニューロンも、同
様に、三つのデータしか受
け取らない。
これらのニューロンは、入力
データの小部分を変換する
局所的な受容野、局所的な
フィルターとして機能する。
局所的な受容野と
フィルター
X1
X2
X3
X4
X5
X6
ニューロン1
WA・X1-3
T + b > 0
ニューロン2
WA・X2-4
T + b > 0
ニューロン3
WA・X3-5
T + b > 0
ニューロン4
WA・X4-6
T + b > 0
入力 X=[X1,X2,X3,X4,X5,X6]
ニューロン2は、入力層の
X2,X3,X4の三つからしか
データを受け取らない。
その他のニューロンも、同
様に、三つのデータしか受
け取らない。
これらのニューロンは、入力
データの小部分を変換する
局所的な受容野、局所的な
フィルターとして機能する。
局所的な受容野と
フィルター
X1
X2
X3
X4
X5
X6
ニューロン1
WA・X1-3
T + b > 0
ニューロン2
WA・X2-4
T + b > 0
ニューロン3
WA・X3-5
T + b > 0
ニューロン4
WA・X4-6
T + b > 0
入力 X=[X1,X2,X3,X4,X5,X6]
ニューロン3は、入力層の
X3,X4,X5の三つからしか
データを受け取らない。
その他のニューロンも、同
様に、三つのデータしか受
け取らない。
これらのニューロンは、入力
データの小部分を変換する
局所的な受容野、局所的な
フィルターとして機能する。
局所的な受容野と
フィルター
X1
X2
X3
X4
X5
X6
ニューロン1
WA・X1-3
T + b > 0
ニューロン2
WA・X2-4
T + b > 0
ニューロン3
WA・X3-5
T + b > 0
ニューロン4
WA・X4-6
T + b > 0
入力 X=[X1,X2,X3,X4,X5,X6]
ニューロン4は、入力層の
X4,X5,X6の三つからしか
データを受け取らない。
その他のニューロンも、同
様に、三つのデータしか受
け取らない。
これらのニューロンは、入力
データの小部分を変換する
局所的な受容野、局所的な
フィルターとして機能する。
局所的な受容野と
フィルター
X1
X2
X3
X4
X5
X6
ニューロン1
WA・X1-3
T + b > 0
ニューロン2
WA・X2-4
T + b > 0
ニューロン3
WA・X3-5
T + b > 0
ニューロン4
WA・X4-6
T + b > 0
入力 X=[X1,X2,X3,X4,X5,X6]
ニューロン1は、入力層の
X1,X2,X3の三つからしか
データを受け取らない。
その他のニューロンも、同
様に、三つのデータしか受
け取らない。
これらのニューロンは、入力
データの小部分を変換する
局所的な受容野、局所的な
フィルターとして機能する。
局所的な受容野と
フィルター
X1
X2
X3
X4
X5
X6
ニューロン1
WA・X1-3
T + b > 0
ニューロン2
WA・X2-4
T + b > 0
ニューロン3
WA・X3-5
T + b > 0
ニューロン4
WA・X4-6
T + b > 0
入力 X=[X1,X2,X3,X4,X5,X6]
より重要なことは、ここでは、
すべてのニューロンが、同じ
パラメーター(重みWAとバイ
アス b)を共有していること
である。
これらのニューロンは、同じ
働きをする同じものであると
みなしていい。それは、同一
の局所的な特徴を検出して
いると考えることができる。
WAは、三つの入力を受け取
るので、次の形をしている。
WA=[WA1,WA2,WA3]
パラメーターの共有
パラメーターの数は、3+1=4
異なるニューロンが、同じ重みWA
同じバイアスbを共有している
X1
X2
X3
X4
X5
X6
ニューロン1
WB・X1-3
T + b’ > 0
ニューロン2
WB・X2-4
T + b’ > 0
ニューロン3
WB・X3-5
T + b’ > 0
ニューロン4
WB・X4-6
T + b’ > 0
入力 X=[X1,X2,X3,X4,X5,X6]
同じ入力Xに対して、異なる
パラメーター WB,b’ を持つ
一群のニューロンを考える
ことができる。ここでも、すべ
てのニューロンが、同じパラ
メーターを共有している。
これらのニューロンは、先の
ニューロン群とは異なる局所
的な特徴を検出していると考
えることができる。
WA,WBと同様に、WC,WD,
...と、特徴検出のニューロン
群を追加しても、パラメータの
数は、大きくは増えない。
パラメーターの共有と
異なるフィルターの追加
同じパラメーターを持つ、
同じ働きのニューロンの並び
パラメーターの数は、4のn倍
異なる特徴を抽出する
別の受容野=フィルター
X1
X2
X3
X4
X5
X6
Y1
Y2
Y3
Y4
Y5
Y6
X1
X2
X3
X4
X5
X6
Y
Y
Y
Y
Full Connect CNN
接続の
局所化
パラメータ
の共有
パラメーターの数は、6x6+6=42 パラメーターの数は、3+1=4
Christpher Olahの”Conv Nets: A Modular Perspective”
http://goo.gl/EuPGgP から
その最も基本的なところでは、コンボリューションナル・ニューラル・ネット
ワークは、同じニューロンの沢山の同一のコピーを利用するニューラル・
ネットワークの一種だと考えることができる。 このアプローチは、学習され
るべき実際のパラメーターの数をかなり小さなものに抑えながら、パラメー
ターの値がニューロンがいかに振る舞うかを記述するのだが、ネットワー
クが多くのニューロンを持ち、計算的には大きなモデルを表現することを
可能にする。
同一のニューロンの複数のコピーを持つという、このトリックは、大まかに
言えば、数学やコンピューター・サイエンスでの関数の抽象に似たもので
ある。プログラミングをするとき、我々は関数を一度だけ書いて、それを多
くの場所で利用する。同じコードを違った場所で何百回も書かないことは、
プログラムを速くし、バグを少なくすることにもなる。同様に、コンボリュー
ションナル・ニューラル・ネットワークでは、ニューロンが一度学習すれば、
それを多くの場所で利用することができる。そうして、モデルの学習は容易
になり、エラーも減らせることになる。
先の例では、入力層は一次
元の配列だったが、この例で
は二次元の配列である。
局所的受容野Aは、四つの
入力層のノードからデータ
を受け取っている
局所的受容野Aは、全て
同じパラメーターを持っ
ている。同じものである。
その出力は、Full
Connect層に送られて
いる
David H. Hubel
Torsten Wiesel
1960年代
大脳視覚野の研究
60年代から70年代にかけての、Hubel と Wieselの
大脳視覚野の研究は、各方面に大きな影響を与えた。
ニューラル・ネットワークの最初の研究も、こうした影響の
もとで始まった。
Receptive Field of Single Neuron
一つのニューロンの「受容野」
一次視覚野 (V1)
ヒト成人の一次視覚野の平均ニューロン数はそれぞれの大脳半球につき、約1億4000
万個ほどであると見積もられる。V1 は視覚における空間情報の明確なマップを持つ。
視野と V1 における位置の対応は非常に正確で、盲点でさえも V1 でマップされている。
この対応関係は進化的に基本的で、V1 をもつ殆どの動物において見られる。
https://goo.gl/nvV9Id
視野と大脳視覚野(V1)における、
空間情報の正確なマッピング
Hinton, LeCun, Bengioの
“Deep Learning”からの抜粋
「ConvNetのコンボリューション層とプーリング層は、視覚神
経科学におけるシンプル細胞とコンプレックス細胞に、直接に
インスパイアーされたものだ。全体のアークテクチャーは、視
覚野の腹側経路のLGN–V1–V2–V4–IT という階層を思い
浮かばせるものだ。ConvNetモデルとサルが同じ絵を見せら
れた時、ConvNetの高位ユニットの活性化は、サルの下側
頭皮質の160のニューロンのランダムな集合の変異の半分
を説明するものだ。」
http://goo.gl/HRnXBy
三次元のデータのかたまりを
三次元のデータのかたまりに
変換するネットワーク
「画像認識専用ニューラルネット」として、ネットワーク
を、さらにチューンしよう。カラー画像データは、幅x高
さx深さ(RGB)の三次元の構造をしている。CNNは、
それぞれの階層で、三次元のデータのかたまりを三
次元のデータのかたまりに変換する、ニューラル・ネッ
トワークである。
三次元のボリュームから
三次元のボリュームへの変換
 基本的には、Full Connect ニューラル・ネットワークのよ
うに、無次元の集合から無次元の集合への変換としてで
はなく、三次元のボリュームから三次元のボリュームへの
変換として、ニューラル・ネットワークを再構築する。
 もちろん、最初の入力層に置かれるのは、幅 x 高さ x 深
さ(RGB)の三次元の座標位置を持つ、生のカラー画像で
ある。
 CNNは、入力をカラー画像と想定して、認識専用ニューラ
ルネットとしてチューンされたニューラル・ネットワークであ
る。
LeNet
三次元のボリュームから三次元のボリュームへ
平面が、複数枚、重ねて置かれているが ....
四角錐は、何を表しているのか?
AlexNet
三次元のボリュームから三次元のボリュームへ
ここでは、もう、全部、立体の直方体になっている。
小さな直方体の上に、四角錐がおかれている。
この小さな直方体は、何を意味しているのだろう?
三次元のボリュームから三次元のボリュームへ
これも、全部、立体の直方体になっている。
小さな直方体は、省略されている。
四角錐の位置が、先のとは異なっている。
CNNの三次元ボリューム
構成の概要を見る
先の図に現れた直方体や四角錐は、何を表している
のだろうか?ここでは、それを見てみよう。
入力データは、32x32のカラー画像だと
しよう。入力層は、32x32x3の三次元の
ボリュームからなる。
フィルターは、5x5x3のボリュームを
持つとしよう。フィルターは、画像上を
移動しながら、対応する要素ごとに
内積を計算してゆく。
フィルターは、5x5x3のボリュームを
持つとしよう。フィルターは、画像上を
移動しながら、対応する要素ごとに
内積を計算してゆく。
フィルターは、常に、入力ボリュームと
同じ「深さ」を持つ。ここでは、3である。
5x5x3のフィルターwと画像の5x5x3の
小部分xとの内積は、次の式で表される
一つの数字となる。bは、バイアスである。
5x5x3 chunk x
画像上の小部分の位置に対応して、
一つの数字が計算される。
画像を全て覆うように
小部分の位置をスラ
イドしながら、計算を
すると、このフィルター
によって、一つの平面
が形成される。それを、
activation mapと
呼ぶ。
二つ目のgreenのフィルターを考える
greenのフィルターに
ついても、画像を全て
覆うように小部分の
位置をスライドしなが
ら、計算をすると、この
フィルターによって、
もう一つのがactivation
mapが形成される。
もし、6個の5x5x3のフィルターを、画像に適用すれば、
別々の6個のactivation mapを得ることになる。
これらを積み重ねて、28x28x6のサイズの
「新しい画像」を得る。Convolutionの結果
得られる画像の「深さ」は、適用したフィルター
の個数に等しくなる。
6
もし、5個の5x5x3のフィルターを、画像に適用すれば、
別々の5個のactivation mapを得ることになる。
5
5個のフィルターでは、
CONV層は、28x28x5
に、格子状に配置された
ニューロンから構成され
ることになる。
5つの異なったニューロン
が、入力層の同じ5x5x3
の小さな領域のデータを
見ている。
Convolutional Neural Networkは、あいだにReLUの
ような活性化関数を置いた、Convolution層の連なりである。
6個のフィルター
Convolutional Neural Networkは、あいだにReLUの
ような活性化関数を置いた、Convolution層の連なりである。
6個のフィルター 10個のフィルター
Pooling層は、表現をもっと小さくして、扱いやすいものする。
それぞれのActivation Mapに独立に作用する。データの微細
なシフトや欠損は、捨象される。
この操作は、対象とする領域から、一番
大きな値を持つものをピックアップするだ
けである。データは、x-y方向に関しては、
縮小される。(「深さ」は、変化しない。)
この操作は、パラメーターを持たない。
Convolutionの
計算を経験する
具体的なデータで、実際に、Convolutionの
計算をやってみよう。次のページのデータをサ
ンプルとして利用する。
http://cs231n.github.io/convolutional-networks/
先の図が表しているもの
先のデータは、何を表しているのか、まず、それを見
ておこう。
入力データ
先の図が表しているもの
深さ3(RGB)の画像データとしよう
入力データ
フィルター1
先の図が表しているもの
入力データ
フィルター1 フィルター2
先の図が表しているもの
フィルターは、3x3x3のサイズ
入力データ
フィルター1 フィルター2
コンボリューションの結果
先の図が表しているもの
Activation Mapとか
Feature Mapと呼ばれる
データの形式
入力データ
この例では、入力データは、
3層からなる
入力データ
この例では、入力データは、
3層からなる
入力データ
この例では、入力データは、
3層からなる
入力データ
この例では、入力データは、
3層からなる
入力データ
この例では、入力データは、
3層からなる
入力データ
フィルターも、
3層から構成されている
フィルター1 フィルター2
入力データ
フィルターも、
3層から構成されている
フィルター1 フィルター2
入力データ
フィルターも、
3層から構成されている
フィルター1 フィルター2
入力データ
フィルターも、
3層から構成されている
フィルター1 フィルター2
入力データ
フィルターも、
3層から構成されている
フィルター1 フィルター2
入力データ
入力データの数(depth)と
フィルターの数(depth)は、
一致している
フィルター1 フィルター2
入力データ
入力データの各層と
フィルターの各層とは、
一対一に対応している
入力データ
入力データの各層と
フィルターの各層とは、
一対一に対応している
入力データ
入力データの各層と
フィルターの各層とは、
一対一に対応している
入力データ
入力データの各層と
フィルターの各層とは、
一対一に対応している
入力データ
入力データの各層と
フィルターの各層とは、
一対一に対応している
コンボリューションの計算
コンボリューションの計算
 対応する一層の入力データとフィルターを重ねる
 重なった対応する要素同士を掛け、それらを足す
 各層で同じ計算をする
 各層の計算結果とフィルターのバイアスを加える
 これで計算が終わるわけではない。これで、コンボリュー
ションの一点が計算されただけ。
 フィルターを、入力データの全面を覆うように移動させる。
 フィルターの位置(同じことだが、読み出された入力データ
の位置)が、結果としてのコンボリューションの要素の位
置に対応する。
対応する一層の入力データとフィルターを重ねる
対応する一層の入力データとフィルターを重ねる
重なった対応する要素同士を掛け、それらを足す
0x-1+0x1+0x1+0x0+0x1+0x1+0x-1+0x0+2x-1
対応する一層の入力データとフィルターを重ねる
重なった対応する要素同士を掛け、それらを足す
各層で同じ計算をする
0x-1+0x-1+0x0+0x0+0x0+0x0+0x0+0x-1+1x-1
対応する一層の入力データとフィルターを重ねる
重なった対応する要素同士を掛け、それらを足す
各層で同じ計算をする
0x0+0x-1+0x0+0x-1+0x1+0x-1+0x-1+1x0+0x1
0x-1+0x1+0x1+0x0+0x1+0x1+0x-1+0x0+2x-1
+0x-1+0x-1+0x0+0x0+0x0+0x0+0x0+0x-1+1x-1
+0x0+0x-1+0x0+0x-1+0x1+0x-1+0x-1+1x0+0x1
+1 (baias)
=-2+ -1+0+1 = -2
各層の計算結果とフィルターのバイアスを加える
0x-1+0x1+0x1+0x0+0x1+0x1+0x-1+0x0+2x-1
+0x-1+0x-1+0x0+0x0+0x0+0x0+0x0+0x-1+1x-1
+0x0+0x-1+0x0+0x-1+0x1+0x-1+0x-1+1x0+0x1
+1 (baias)
=-2+ -1+0+1 = -2
これで計算が終わるわけではない。これで、
Activation Mapの一点が計算されただけ。
0x-1+0x1+0x1+0x0+0x1+0x1+0x-1+0x0+2x-1
+0x-1+0x-1+0x0+0x0+0x0+0x0+0x0+0x-1+1x-1
+0x0+0x-1+0x0+0x-1+0x1+0x-1+0x-1+1x0+0x1
+1 (baias)
=-2+ -1+0+1 = -2
フィルターの位置(同じことだが、読み出された
入力データの位置)が、結果としての
Activation Mapの要素の位置に対応する。
0x-1+0x1+0x1+0x0+1x1+2x1+2x-1+1x0+0x-1
+0x1+0x-1+0x0+1x0+2x0+2x0+1x0+0x-1+2x-1
+0x0+0x-1+0x0+0x-1+2x1+1x-1+0x1+2x0+2x1
+1 (baias)
=1+ -2+3+1 = 3
フィルターを移動し、同じ計算をする
0x-1+0x1+0x1+2x0+2x1+0x1+0x-1+2x0+0x-1
+0x1+0x-1+0x0+2x0+0x0+0x0+2x0+0x-1+0x-1
+0x0+0x-1+0x0+1x-1+0x1+0x-1+2x1+1x0+0x1
+1 (baias)
=2+ 0+1+1 = 4
フィルターを移動し、同じ計算をする
以下、省略して、パラパラマンガ
0x-1+0x1+0x1+0x0+0x1+0x1+0x-1+0x0+2x-1
+0x-1+0x-1+0x0+0x0+0x0+0x0+0x0+0x-1+1x-1
+0x0+0x-1+0x0+0x-1+0x1+0x-1+0x-1+1x0+0x1
+1 (baias)
=-2+ -1+0+1 = -2
一つ目のフィルター
一つ目の
フィルター
に対応
0x-1+0x1+0x1+0x0+1x1+2x1+2x-1+1x0+0x-1
+0x1+0x-1+0x0+1x0+2x0+2x0+1x0+0x-1+2x-1
+0x0+0x-1+0x0+0x-1+2x1+1x-1+0x1+2x0+2x1
+1 (baias)
=1+ -2+3+1 = 3
一つ目のフィルター
一つ目の
フィルター
に対応
0x-1+0x1+0x1+2x0+2x1+0x1+0x-1+2x0+0x-1
+0x1+0x-1+0x0+2x0+0x0+0x0+2x0+0x-1+0x-1
+0x0+0x-1+0x0+1x-1+0x1+0x-1+2x1+1x0+0x1
+1 (baias)
=2+ 0+1+1 = 4
一つ目のフィルター
一つ目の
フィルター
に対応
一つ目のフィルター
一つ目の
フィルター
に対応
一つ目のフィルター
一つ目の
フィルター
に対応
一つ目のフィルター
一つ目の
フィルター
に対応
一つ目のフィルター
一つ目の
フィルター
に対応
一つ目のフィルター
一つ目の
フィルター
に対応
一つ目のフィルター
一つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
二つ目のフィルター
二つ目の
フィルター
に対応
重要な、でも単純な、関係
 入力データの厚み(depth)と、フィルターの厚み(depth)、
は一致している(一致しなくてはならない)
 出力としてのコンボリューションのボリュームの厚み
(depth)は、フィルターによって生成されたActivation
(Feature) Mapの枚数に等しいので、フィルターの数に
一致する。
 コンボリューション層のその他の次元(Width, Height)
は、入力データの大きさとフィルターの大きさで決まる。そ
れについては、別項で。
あらためて、ConvolutionとCNNの
「3D Volume 描像」を見る
先に見た、大小の「直方体」、「四角錐」、そして図の
中に書き込まれていた小さな数字のの表すものを、あ
らためて確認しておこう。
LeNet
三次元のボリュームから三次元のボリュームへ
平面が、複数枚、重ねて置かれているが ....
四角錐は、何を表しているのか?
32x32x1  28x28x6  14x14x6
14x14x6  10x10x16  5x5x16  FC
AlexNet
三次元のボリュームから三次元のボリュームへ
ここでは、もう、全部、立体の直方体になっている。
小さな直方体の上に、四角錐がおかれている。
この小さな直方体は、何を意味しているのだろう?
224x224x3
 55x55x96  27x27x256
 13x13x384  13x13x384  13x13x256  FC
三次元のボリュームから三次元のボリュームへ
これも、全部、立体の直方体になっている。
小さな直方体は、省略されている。
四角錐の位置が、先のとは異なっている。
224x224x3
 55x55x96  27x27x256
 13x13x384  13x13x384  13x13x256  FC
「3D Volume 描像」 と
Convolution 再び
 この小さな直方体は、このフィルターが一回の演算で作用
するデータの三次元構造も表している。重なり合って、一
つのものとして描かれているが、ここには、二つの小さな
直方体があるのだ。一方はデータで、もう一方は、フィル
ターである。
 対応する要素同士が掛けられ、それが全部足し合わされ
る。それは、一つの数字になる。小さな直方体から伸びる
四角錐の頂点は、この一つの数字を表している。
 大きな直方体の中を、小さな直方体がスライドしてスキャ
ンする。四角錐の頂点は、一つの平面を形成する。スキャ
ンが終われば、別のフィルターについて、同じ操作が繰り
返され、それで、別の平面が形成される。こうして、平面は
積み重ねられ、それが次のボリュームの厚みになる。
Convolutionの働きを見る
それにしても、Convolutionという操作が、何
をしているのかは、わかりにくい。ここでは、そ
れを、もう少し直感的に把握することを考える。
ConvolutionとCNNの可視化は、それ自体
が、Computer Visionの新しい技術のひと
つである。
画像処理ソフトとConvolution
 実は、Convolutionは、意外と身近なところで利用されて
いる。PhotoshopやGIMPといった画像処理ソフトで、フィ
ルターを利用して、様々なエフェクトをかける操作が、
Convolutionの計算として実装されている。
 GIMPで実際に利用されている、5x5(あるいは、3x3)の
行列が、フィルターとして、どのような効果をもたらすかを、
以下に、いくつかの例で示す。これらは、Convolution
Filterの働きを示す一つの例である。
 Deep Learning登場以前の画像認識技術でも、輪郭や
エッジの検出に、こうした手法は、広く使われていた。
GPUの利用も、CNN以前に、画像処理の世界ではじまっ
たものだ。「画像の世界」というくくりで見れば、CNNも「連
続的な進化」という一面があることがわかる。
GIMPのフィルター
GIMPのフィルター
GIMPのフィルター
GIMPのフィルター
GIMPのフィルター
学習されるフィルターと
Activation(Feature) Map
 画像処理ソフトのフィルターとCNNのフィルターの大きな
違いは、画像処理ソフトのフィルターは固定されたものだ
が、CNNのフィルターは、長い「訓練」の過程を通じて、変
化し、学習されるものだということ。
 また、画像処理ソフトでは、フィルターの適用の結果自体
が、最終的な目的になるのだが、CNNでは、フィルターの
適用結果としてのActivation(Feature) Mapは、中間
生成物で、繰り返し、フィルター適用の対象となる。
 次ページの図は、CNNでのActivation(Feature) Map
の様子を示したもの。この図の水平方向に広がるMapを
垂直に積み重ねたものが、三次元の立方体になる。
 同時にこの絵は、「三次元ボリューム」描像も相対的なも
のであることを知らせている。本質的には「並列・分散」...
コンボリューショナル・ネットワークの内部。サモエド犬の画像(下左。下右のRGB(red,
green, blue)が入力)に対する、典型的なコンボリューショナル・ネットワーク・アーキ
テクチャーの各層(水平方向)の出力(フィルターではない)。それぞれの長方形の画像
は、それぞれの画像の位置で検出され、学習されたフィーチャーの一つに対する出力
に対応するフィーチャー・マップ。情報は、下から上に流れる。下位のレベルのフィー
チャーは、方向を持つエッジの検出器のように振る舞う。出力のそれぞれの画像のクラ
スについて、スコアが計算される。 ReLUは、rectified linear unitの略。
Activation(Feature) Mapを見る
Hinton,LeCun,Bebgioの”Deep Learning”から
Activation(Feature) Mapを見る
入力画像
フィルター
左上の入力画像に、
32個の5x5x3のサ
イズのフィルターを
適用して出来た、32
個のActivation
(Feature) Map
ただし、これを見ても
その働きは、よくわか
らない。
訓練されたフィルターを見る
 次の図は、AlexNetの最初のConvolutionで利用され
たフィルターの学習された結果を図示したものである。
 明らかに、学習結果としてのフィルターは、上段と下段で
様相が異なっているのが見て取れる。上段のフィルターは、
基本的には白黒の縦・横・斜めのパターンで、下段のフィ
ルターは、色付きの何らかのパターンを示している。
 HubelとWieselの大脳視覚野での、特定のパターンにの
み反応する局所的な受容野での「単純型細胞」の発見を
知っていれば、このAlexNetの第一段のフィルターによる
Convolutionが、同じような役割を担っていると「想像」す
ることは可能である。また、それは正しいのかもしれない。
 ただ、AlexNetのフィルターで、画像としてみることのでき
るのは、この第一段フィルターが最初で最期である。
上半分で学習
された48個の
フィルター
下半分で学習
された48個の
フィルター
CNNで学習されたフィルター
AlexNet
訓練されたフィルターを見る
 なぜなら、この第一段のフィルターは、入力データと同じく、
RGB(と解釈できる)の三層からなるので、カラー画像とし
て、「見る」ことができるのだが、他の上の階層のフィル
ターは、そのような構造を持っていない。
 例えば、AlexNetの第二段のフィルターは、5x5x256の
構造を持っている。5x5はともかく、256層からなるフィル
ターを、画像として「見る」ことはできない。
 AlexNetの「三次元ボリュームから三次元ボリュームへ」
という図式の中で、大きな直方体の内部に描かれた小さ
な直方体は、フィルターの三次元の構造を表している。こ
れを、一目でわかるように「可視化」するのは難しい。
CNNの階層と学習されたフィルター
 次の図は、CNNの各階層で学習されたフィルターが、下
位の階層、中位の階層、高位の階層で、それぞれ異なっ
た働きをしているであろうことを述べている。
 もちろん、一番左の下位のフィルターの画像を除いて、残
りの二枚のフィルターの「画像」から、その働きを想像する
ことは難しい。
CNNで学習されたフィルター
ConvolutionとCNNの可視化
ConvolutionとCNNの可視化
 ただ、CNNの各階層のフィルターが、それぞれ異なった働
きをしているだろうという「予想」は、正しいのだ。そのこと
を鮮やかに示す研究がある。「CNNの可視化」と呼ばれる
研究である。
 これまで、Convolutionの結果である Activation Map
や、Convolutionを引き起こすフィルターを、直接、見よう
としてきて、たいした情報は得られなかった。
 CNNの可視化では、あるフィルターの一つに注目して、そ
のフィルターを、元の画像が、どのように通過していくのか
を考える。あるフィルターがもっとも反応した画像を、反応
に順位をつけて、複数枚選び出す。それが、そのフィル
ターの働きを代表すると考えるのだ。今回の講演では、そ
の詳細を述べることはできない。
CNNの可視化
Visualizing and Understanding Convolutional Networks, Zeiler and Fergus 2013
Deep Inside Convolutional Networks, Simonyan et al., 2014
Striving for Simplicity: The all convolutional net, Springenberg et al., 2015
ConvolutionとCNNの可視化
 次の図は、こうして得られた、CNNの下位のフィルターと、
上位のフィルターが、どのような画像にもっとも反応したの
かを、それぞれのフィルターについて、上位9つの画像を
選んだものだ。
 下位の四つのフィルターについては、そのいずれもが、あ
る特定の単純なパターンに反応していることがわかる。た
とえば、「丸いもの」「波の跡」「グラデーション」「画面を垂
直に切る直線」等々。
 上位の四つのフィルターが抽出した特徴は、驚くべきもの
だ。それぞれのフィルターに対応する9つの画像は、これ
らのフィルターが、それぞれ、「眼」「花」「車輪」「文字」が
ある画像に反応していることを示している!
https://goo.gl/pbJQgm
低いレベルのフィルター 高いレベルのフィルター
CNNの可視化
与えられたフィルターに、もっとも反応する「画像」を見つける
眼 花
車輪 文字
フィルターと
対応する画像
CNNの可視化
http://cs231n.stanford.edu/slides/winter1516_lecture9.pdf
CNNの可視化
CNNの応用
以下の画像データは、Stanford大の Fei-
Fei Li & Andrej Karpathy & Justin
Johnsonの2016年冬の講義 “CS231n:
Convolutional Neural Networks for
Visual Recognition” から借用した。
http://cs231n.stanford.edu/syllabus.
html
カテゴリー分類
カテゴリー分類と
位置決め
オブジェクトの検出
インスタンスの
切り出し
単一のオブジェクト 複数オブジェクト
コンピュータ・ビジョンの課題
オブジェクトと位置の検出
顔認識、ビデオ動画の認識、数字の認識
関節の動きの認識、TVゲームの学習
ガンの検知、手書き漢字の認識、交通標識の認識
ウサギの網膜の
電子顕微鏡写真
次回マルレク 予告
言語理解とDeep Learning
日時: 7月下旬
場所: 未定
登壇者
丸山不二夫
AI研究の「本丸」の一つは、人間の言語能力を、機械に移植
することです。次回のマルレクでは、Chomskyの新しい言語
理論 Minimalist Programや、Recurrent Neural
Network の紹介を通じて、この問題へのアプローチの現状
を探ります。
参考資料 (日本語抄訳)
1. “Convolutional Networks for Images, Speech
and Time-Series” LeCun, Bengio
http://goo.gl/0qOsYK 1995年
2. “Deep Learning” Hinton, LeCun, Bengio
http://goo.gl/HRnXBy 2015年
3. “Convolutional Neural Networks for Visual
Recognition” Andrej Karpathy et al. 2016年
http://goo.gl/Dwhm5V
"Convolutional Networks for
Images, Speech and Time-
Series"
LeCun and Bengio 1995年
http://yann.lecun.com/exdb/publis/p
df/lecun-bengio-95a.pdf
INTRODUCTION
複雑で高次元の非線形のマッピングを、大規模なサンプルの
集まりから学習する多層のバックプロパゲーション・ネットワー
クの能力は、それらを、画像認識と音声認識の、明らかな候
補者としている (論文 “PATTERN RECOGNITION AND
NEURAL NETWORKS” を参照のこと)。伝統的なパターン
認識のモデルでは、人間によってデザインされた特徴抽出器
が入力から重要な情報を集め、重要ではない変異を取り除い
ていた。
訓練可能な分類器は、結果の特徴ベクトル(あるいは、記号
の列)を複数のクラスにカテゴリー分けする。このスキームで
は、標準的なフル・コネクテッドな多層のネットワークを、分類
器として利用することができる。潜在的に、もっと面白いアプ
ローチは、特徴抽出器をなくして、ネットワークに「生」の入力
データ(正規化されたイメージなど)を与え、バックプロパゲー
ションに依拠して、ネットワークの最初の幾つかの層を適切な
特徴抽出器に変えることである。このことは、通常のフル・コ
ネクテッドなフィード・フォワード(前向き)ネットワークでも可能
であり、文字認識のような仕事で成功例もあるのだが、いくつ
かの問題がある。
第一。典型的な画像、あるいは、発話された語のスペクトラム
表現は、データが大きく、しばしば、数百の変数を持つ。 フ
ル・コネクテッドの最初の層は、例えば、数百の隠れユニット
を持てば、すでに数万の重みを持つことになるだろう。訓練
データが少なければ、オーバー・フィッティングの問題が起き
るかもしれない。加えて、このたくさんの重みに対するメモリー
の必要は、いくつかのハードウェア実装を不可能なものにす
る。しかし、画像ないしはスピーチ アプリケーションでの構造
化されていないネットワークの主要な欠陥は、それらが入力
データの移動や局所的なゆがみに関して、不変性を組み込
んでいないということである。
ニューラルネットの固定サイズの入力層に送られる前に、文
字の画像・話された語のスペクトラム・その他の二次元ないし
は一次元の信号は、大まかにサイズは正規化され、入力
フィールドの中央に置かれなければならない。残念ながら、こ
うした前処理は、どれも完全なものになることができない。と
いうのも、手書き文字は、しばしば、文字ではなく語のレベル
で正規化され、それは、それぞれの文字のサイズや傾きや位
置の変異を引き起こすからだ。語も、スピードやピッチやイント
ネーションを変えて話される。
このことは、入力オブジェクト内の弁別可能な諸特徴の位置
の変異を引き起こすだろう。原理的には、十分な大きさのフ
ル・コネクテッドなネットワークは、こうした変異に対して不変
な出力を生み出すように学習することはできる。しかしながら、
こうしたことを学習するには、入力の様々な位置で、同じ重み
のパターンを持つユニットが沢山なければいけないという結
果に、おそらく、なるであろう。こうした重みのかたまりを学習
するためには、可能な変異の空間をカバーするために、非常
に大量の訓練用のインスタンスが必要になる。一方、コンボ
リューションナル・ネットワークでは、空間をまたいで重みのか
たまりの複製を強制するので、シフトについての不変性は、自
動的に得られる。
第二。フル・コネクテッドなアーキテクチャーの欠点は、入力
データのトポロジーが、全く無視されるところにある。入力変
数は、訓練の結果に影響を与えることなく、どのような(固定し
た)順番でも表現できる。それに対して、画像やスピーチのス
ペクトラル表現は、強い局所的な二次元構造を持ち、時系列
は、強い一次元構造を持つ。すなわち、空間的あるいは時間
的に近接している変数(ないしはピクセル)は、高度な連関を
持つ。局所的な連関は、空間的・時間的にオブジェクトを認識
する前に、局所的な特徴を抽出し結合することの利点の、よく
知られた理由である。コンボリューションナル・ネットワークは、
隠れ層の受容野を局所的なものに制限することで、局所的な
特徴の抽出を強制する。
コンボリューションナル・ネットワーク
コンボリューションナル・ネットワークは、以下の三つのアーキ
テクチャー的なアイデアを結合して、ある程度までのシフトや
歪みに対する不変性を保障しようとする。それは、局所的な
受容野・重みの共有(あるいは、重みの複製)・空間的時間的
サブサンプリングを時々行うこと、の三つである。文字を認識
する典型的なコンボリューションナル・ネットワークを、図1に
示した。(LeCun et al., 1990)
入力の平面は、大雑把にサイズが正規化され中央に置かれ
た文字のイメージを受け取る。ある層のすべてのユニットは、
その前の層の小さな近傍に位置付けられたユニットの集合か
ら入力を受け取る。
ユニットを入力上で局所的な受容野に結合しようというアイデ
アは、60年代初期のパーセプトロンにさかのぼる。それは、
HubelとWieselが、局所的な感受性を持ち、方向に選択的
に反応するニューロンを、ネコの視覚システムで発見したのと、
ほとんど同じ時期である。 局所的な結合は、視覚的な学習の
ニューラル・モデルで、何度となく再利用されてきた (Mozer,
1991; Le Cun, 1986を参照のこと。そして、この本の
NEOCOGNITRON)。局所的な受容野で、ニューロンは、方
向を持ったエッジや端点やカドといった基本的な視覚的な諸
特徴を抽出できる(スピーチのスペクトグラムでも似たような
諸特徴がある)。
こうした諸特徴は、より上位の層によって、結合される。先に
も述べたように、入力データの歪みやシフトは、目立った特徴
の位置の変動を引き起こすことができる。さらに、画像の一部
分で役に立つ基本的な特徴検出器は、画像全体にわたって
役に立つように見える。こうした知識は、その受容野が画像上
の異なる場所に位置付けられた一群のユニットを、強制的に
同一の重みベクトルを持つようにすることで、応用することが
できる。
こうした一群のニューロンの出力は、フィーチャー・マップを構
成する。それぞれの場所で、異なったフィーチャー・マップ中
の異なったタイプのユニットが、異なったタイプの諸特徴を計
算する。これのシーケンシャルな実装は、それぞれのフィー
チャー・マップについて、局所的な受容野を持つ一つのニュー
ロンで、入力の画像をスキャンすることになるだろう。そして、
このニューロンの状態を、フィーチャー・マップ上の対応する
位置に格納するだろう。この操作は、その後にスクワッシュ関
数が続く、小さなサイズのカーネルでのコンボリューションと等
価である。
このプロセスは、フィーチャー・マップを、単一の重みベクトル
を共有するニューロンの平面として実装することで、並列化で
きる。フィーチャー・マップ上のユニットは、画像の異なる部分
に同一の操作を実行するように制約されている。コンボリュー
ション層は、通常は、 (異なる重みベクトルを持つ)複数の
フィーチャー・マップから成る。それで、それぞれの位置で、複
数の特徴を抽出できる。
図1の最初の隠れ層は、5x5の受容野を持つ4つのフィー
チャー・マップを持っている。コンボリューション層の入力をシ
フトさせることは、出力をシフトさせるだろう。しかし、その他は、
変わらないままである。いったん、特徴が検出されると、他の
特徴に対する大まかな相対的な位置が保存されている限り
は、その正確な位置は、あまり重要ではなくなる。それゆえ、
コンボリューション層には、局所的な平均化とサブサンプリン
グを行う追加の層が続くことになる。そこで、フィーチャー・マッ
プの解像度が下げられ、シフトと歪みに対する感度が下げら
れることになる。
図1の第二の隠れ層は、2x2の平均化とサブサンプリングを
行う。その後に、訓練可能な係数と訓練可能なバイアスとシ
グモイドが続く。訓練可能な係数とバイアスは、非線形のスク
ワッシュをコントロールしている(例えば、係数が小さいと、
ニューロンは、擬似線形の動きをするようになる)。コンボ
リューション層とサブサンプリング層に続く層は、典型的には、
互い違いで、四角錐で結果をだす。それぞれの層で、フィー
チャー・マップの数は増え、空間的な解像度は低下する。
図1の第三の隠れ層は、それ以前の層の複数のフィー
チャー・マップから入力の結合を持つだろう。HubelとWiesel
の「シンプル細胞」と「コンプレックス細胞」のコンセプトにイン
スパイアーされた、コンボリューション層/サブサンプリング
層の組み合わせは、ネオコグニトロン・モデルで実装された。
しかし、バックプロパゲーションのような全体的な教師あり学
習の手続きは、当時は、利用できなかった。
すべての重みは、バックプロパゲーションで学習されるので、
コンボリューショナル・ネットワークは、自身の特徴抽出器を
統合したものと見ることができる。重みの共有というテクニック
は、自由なパラメーターの数を減らし、マシンの「容量」を小さ
なものにし、総合化の能力を改善するといった、興味深い副
作用を持っている (重みの共有と、学習と総合化については、
LeCun, 1989を参照されたい)。 図1のネットワークは、約
100,000 の結合を持つのだが、重みの共有によって、自由
なパラメーターは、2,600しかない。
こうしたネットワークは、手書き文字認識の分野での他の方法
(Bottou et al., 1994 また、HAND WRITTEN DIGIT
RECOGNITIONを参照されたい)と好意的に比較され、商業
的なアプリケーションでも利用されている。
単一の時間次元で重みを共有する固定サイズのコンボリュー
ショナルなネットワークは、タイム・ディレー・ニューラル・ネット
ワーク(TDNN)として知られている。TDNNは、音素の認識
(サブサンプリングなし)(Lang and Hinton, 1988;
Waibel et al., 1989)、話された語の認識(サブサンプリン
グあり) (Bottou et al., 1990)、また、オンラインの手書き
文字の認識 (Guyon et al., 1991)に、利用されてきた。
"Deep Learning"
http://www.cs.toronto.edu/~hinton/absps/
NatureDeepReview.pdf
Geoffrey E. Hinton
Geoffrey E. Hinton Yann LeCun,
Yoshua Bengio
Deep Learning
ConvNet
コンボリューショナル・ニューラル・ネットワーク
ConvNetは、複数の配列の形で入ってくるデータを処理する
ように設計されている。例えば、カラーの画像は、三つのカ
ラーチャンネルにピクセルの強度を含んだ、三つの二次元配
列から構成されている。多くのデータの様式は、複数配列の
形をしている。一次元では、言語を含めて、信号やシーケンス、
二次元では、画像や音のスペクトグラム、 三次元では、ビデ
オや立体画像などが、そうである。ConvNetの背景には、こ
うした自然な信号の諸特性を生かそうとする、四つの基本的
なアイデアがある。局所的な結合、共有された重み(パラメー
ター)、プーリング、そして、多くのレイヤーの利用である。
典型的なConvNetのアーキテクチャー(次図)は、ステージ
の系列として構造化されている。最初の幾つかのステージは、
二つのタイプの層、コンボリューション層とプーリング層から構
成される。コンボリューション層のユニットはフィーチャー・マッ
プに組織されている。その中では、それぞれのユニットは、
フィルター・バンクと呼ばれる重みの集合を通じて、前の層の
フィーチャー・マップの局所的なパッチと結合している。この局
所的に重みづけられた和は、ReLUのような非線形の関数を
通じて、次の層に渡される。フィーチャー・マップ内のすべての
ユニットは、同一のフィルター・バンクを共有している。ある層
の中の、異なったフィーチャー・マップは、異なったフィルター・
バンクを利用する。
コンボリューショナル・ネットワークの内部。サモエド犬の画像(下左。下右の
RGB(red, green, blue)が入力)に対する、典型的なコンボリューショナル・
ネットワーク・アーキテクチャーの各層(水平方向)の出力(フィルターではな
い)。それぞれの長方形の画像は、それぞれの画像の位置で検出され、学習
されたフィーチャーの一つに対する出力に対応するフィーチャー・マップ。情報
は、下から上に流れる。下位のレベルのフィーチャーは、方向を持つエッジの
検出器のように振る舞う。出力のそれぞれの画像のクラスについて、スコアが
計算される。 ReLUは、rectified linear unitの略。
こうしたアーキテクチャーの理由は二つある。第一に、画像の
ような配列データでは、局所的な値のグループは、しばしば、
高度な相関を持つ。それらは、特徴のある局所的なテーマを
形成していて、容易に検出される。第二に、画像やその他の
信号の局所的な統計は、位置について不変である。言い換え
れば、あるテーマが画像の一つの部分に現れることができる
なら、それは、画像のどんなところにも現われうる。だから、異
なった位置でのユニットが、同じ重みを共有し、配列の異なっ
た部分で、同じパターンを検出するというアイデアなのだ。数
学的には、フィーチャー・マップによって行われるフィルタリン
グの操作は、離散コンボリューションなので、この名がある。
コンボリューション層の役割は、先行する層から諸特徴の組
み合わせを検出することなのだが、プーリング層の役割は、
意味的に似た諸特徴を一つにマージすることである。ある
テーマを形成する諸特徴の相対的位置は、多少変化すること
がありうるので、テーマの信頼できる検出には、それぞれの
特徴の位置を粗くすることで行いうる。典型的なプーリング・
ユニットは、一つの(あるいは、いくつかの)フィーチャー・マッ
プ内の局所的なユニットのパッチの最大値を計算する。
隣り合うプーリング・ユニットは、一行あるいは一列以上シフト
されたパッチからの入力を受け取る。それによって、表現の次
元を下げ、小さなシフトや歪みに対する不変性を生み出す。2,
3のコンボリューションのステージ、非線形関数、プーリングが、
積み重ねられ、もっと多くのコンボリューション層とフル・コネク
ト層が、それに続く。ConvNetの勾配のバックプロパゲーショ
ンは、通常のディープ・ネットワークを通じて行われるものと同
じように単純である。そこでは、すべてのフィルター・バンクの
すべての重みが、訓練される。
ディープ・ニューラル・ネットワークは、多くの自然な信号が、
構成的な階層性を持つという性質を見つけ出した。その中で
は、高位のフィーチャーは、低位のフィーチャーを組み合わせ
ることで獲得される。画像では、局所的なエッジの組み合わせ
がテーマを形作り、テーマが集まって部品になり、部品はオブ
ジェクトを形作る。同じような階層が、発話やテキストにも存在
する。音は、音声、音素、音節、語、文を階層的に構成する。
プーリングは、先行する層の要素が位置や現れ方が異なって
いても、表現がほんの少ししか変化しないことを可能にする。
ConvNetのコンボリューション層とプーリング層は、視覚神経
科学におけるシンプル細胞とコンプレックス細胞に、直接にイ
ンスパイアーされたものだ。全体のアークテクチャーは、視覚
野の腹側経路のLGN–V1–V2–V4–IT という階層を思い浮
かばせるものだ。ConvNetモデルとサルが同じ絵を見せられ
た時、ConvNetの高位ユニットの活性化は、サルの下側頭
皮質の160のニューロンのランダムな集合の変異の半分を
説明するものだ。
ConvNetsは、neocognitron にルーツを持っている。その
アーキテクチャーは、いくぶん、似たものだ。しかし、それは、
バックプロパゲーションのような、エンドトゥエンドの教師あり
学習アルゴリズムを持っていなかった。time-delayニューラ
ルネットと呼ばれたプリミティブな、1D ConvNetは、音素と
単純な単語の認識に使われていた。
スピーチの認識とドキュメントの読み込みのためのtime-
delay ニューラル・ネットワークに始まって、1990年代の始
め頃には数多くのコンボリューショナル・ネットワークのアプリ
ケーションが存在していた。ドキュメント読み込みのシステム
は、訓練されたConvNetと言語の制約条件を実装した確率
的モデルを結合して使用していた。1990年代の終わり頃に
は、このシステムは、アメリカの小切手の10%以上を読み込
んでいた。のちには、一定数のConvNetベースの光学的文
字認識と手書き文字認識のシステムが、マイクロソフトによっ
て展開された。1990年代の初めには、 ConvNets は、自然
な画像の中の、顔や手といったオブジェクトの検知、顔認識で
も、まだ実験的なものであった。
ディープ・コンボリューショナル・ネットワークで
の画像の理解
2000年代の初め頃から, ConvNetsは、オブジェクトと画像
内の領域の検知・切り出し・認識に適用され大きな成功を収
めた。 これらはすべて、以下の例のように、ラベル付けられ
たデータが、相対的には豊富なものだった。交通標識の認識、
生物学的画像の切り出し、特に、コネクトームの為の。自然な
画像の中での、顔・テキスト・歩行者・人体の検出等である。
最近のConvNetの主要な実用的な成功は、顔認識である。
重要なことは、画像はピクセル・レベルでラベル付けができる
ということである。このことは、自律動作をするロボットや自動
走行カーを含むテクノロジーに、応用を見出していくだろう。
Mobileye と NVIDIAのような会社は、こうしたConvNet
ベースの方法を、将来の自動車のビジョン・システムに利用し
ている。 その他の応用で、重要さを増しているのは、自然言
語の理解とスピーチの認識である。
こうした成功にもかかわらず、ConvNetは、2012年の
ImageNetコンテストまで、コンピューター・ビジョンと機械学
習のコミュニティーから、ほとんど無視されていた。この時、
Webからとられた、1,000の異なったクラスを含んだ約100
万の画像のデータセットに、ディープ・コンボリューショナル・
ネットワークが適用され、驚嘆すべき結果を残した。最高の競
争相手のアプローチの、ほとんど半分のエラー率を達成した
のだ。
この成功は、GPU, ReLU、ドロップアウトと呼ばれる新しい正
規化のテクニック、そして、既存のデータを変形して多数の訓
練用のサンプルを生成するテクニックの効果的な利用によっ
てもたらされたものである。この成功は、コンピューター・ビ
ジョンの世界に革命をもたらした。ConvNetは、現在では、ほ
とんどすべての認識と検出の分野で、もっとも有力なアプロー
チである。最近の驚くべきデモは、 ConvNetとリカレント・
ネット・モジュールを結合した、イメージ・キャプションの生成で
ある。
現在のConvNetアーキテクチャーは、10から20のReLUの
層、数億の重みパラメーターを持ち、ユニット間の結合の数は
数十億になる。ただ、こうした大規模なネットワークを訓練す
るのに、ほんの2年前は、数週間かかっていたのだが、ハード
ウェアとソフトウェア、そして並列化のアルゴリズムの進化で、
訓練時間は、数時間に低下してきている。
ConvNetベースのビジョン・システムのパフォーマンスは、
Google, Facebook, Microsoft, IBM, Yahoo, Twitter,
Adobeを含む大部分の主要なテクノロジー企業、 さらには、
急速にその数を増やしているスタートアップ企業に、研究・開
発プロジェクトを開始させ、ConvNetベースのイメージ理解の
製品とサービスの展開を引き起こしている。
ConvNets は、チップあるいはFPGA(field-
programmable gate arrays)といったハードウェアでの効
率的実装が、簡単にできる。少なくない企業、 NVIDIA,
Mobileye, Intel, Qualcomm, Samsung といった企業
が、スマートフォン、カメラ、ロボット、自動運転カーに、リアル
タイムのビジョン・アプリケーションを可能にするConvNet
チップを開発している。
Convolutional Neural Networks
for Visual Recognition
http://cs231n.github.io/convolutional-
networks/
http://cs231n.stanford.edu/
Convolutional Neural Networks
(CNNs / ConvNets)
Convolutional Neural Networksは、前章で見た通常の
ニューラル・ネットワークと、とてもよく似ている。それは、学習
可能な重みとバイアスを持つニューロンから構成されている。
それぞれのニューロンは、入力を受け取り、内積を計算して、
ある場合には、それに非線形の関数が続く。ネットワーク全体
は、ここでも、一方の端の、生の画像のピクセルから、他方の
端のクラスのスコアまで、一つの微分可能なスコア関数を表
現している。さらにCNNにも、最後の層(Full Connectな)に
は、(SVM/Softmaxのような)損失関数もある。通常の
ニューラル・ネットワークのために開発してきた、手法やノウハ
ウは、全て、CNNにも適用できる。
それでは、何が変わったのか? ConvNetのアーキテク
チャーは、入力は画像だと明確に想定している。そのことは、
ある特徴を、このアーキテクチャーに組み込むことを可能とす
る。これらの特徴は、前向きの関数の実装をより効率的にし、
ネットワーク中のパラメーターの総量を大きく減らす。
Architecture Overview
復習: 通常のニューラル・ネットワーク
前章で見たように、ニューラル・ネットワークは入力(単一のベ
クトル)を受け取り、それを一連の隠れ層で変形する。それぞ
れの隠れ層は、一群のニューロンたちからなり、それぞれの
ニューロンは、先行する層の全てのニューロンと接続している。
一つの層の中のニューロンの機能は全く独立していて、互い
にどんな接続も共有しない。フル・コネクテッド層の最後の層
は、出力層と呼ばれる。クラス分類の設定では、これは、クラ
スの得点を表現する。
通常のニューラル・ネットワークは、
フル画像には、うまくスケールしない。
CIFAR-10では、画像は、 32x32x3 (32 幅, 32 高さ, 3
色チャンネル) しかない。だから、通常のニューラル・ネット
ワークの最初の隠れ層のひとつのフル・コネクテッドなニュー
ロンは、 32*32*3 = 3072 の重みを持つだろう。この量は、
なんとか管理できるようにも見える。しかし、明らかに、フル・
コネクテッド構造は、もっと大きな画像にはスケールしない。
例えば、もっとちゃんとした画像のサイズ、 200x200x3 なら、
ニューロンは、200*200*3 = 120,000 の重みを持つこと
になる。さらに、こうしたいくつかのニューロンを欲しいと思う
のは、ほぼ確実なので、パラメーターの数は、急速に積み上
がってゆく。明らかに、フル・コネクトは、無駄が多く、パラメー
ターの巨大な数は、すぐに、オーバーフィッティングに導く。
ニューロンの三次元のかたまり
Convolutional コンボリューショナル・ニューラル・ネットワー
クは、入力が画像であり、その構造が、もっと微妙なスタイル
で制限付けられているという事実を、うまく利用する。特に、通
常のニューラル・ネットワークとは異なって、CovNetの層は、
三次元(幅、高さ、深さ)に配列されている。(ここでの「深さ」
は、活性化されるかたまりの第三の次元を指しているので
あって、ネットワーク中の層の総数を指すことがある、フルな
ニューラル・ネットワークの「深さ」ではないことに注意) 例え
ば、CIFAR-10の画像の入力は、活性化される入力のかたま
りであって、そのかたまりは、32x32x3 (それぞれ、幅、高さ、
深さ)の次元を持つ。
すぐあとに見るように、ある層のニューロンは、その前の層の
全てのニューロンと結合している、フル・コネクテッドとは異
なって、その前の層の小さな領域のニューロンとのみ結合し
ているだけである。さらに、CIFAR-10の場合、最終の出力層
は、 1x1x10の次元を持つことになるだろう。なぜならば、
ConvNetのアーキテクチャーでは、全画面の情報を、クラス
ごとの得点からなる、一つのベクトルに還元するからである。
ここでは、それは、深さの次元に沿って配列されている。次の
図を見て欲しい。
上: 通常の三層のニューラル・ネットワーク。
下: 一つの層を図示したのだが、 ConvNetでは、ニューロン
を三次元(幅、高さ、深さ)に並べる。 ConvNetの全ての層は、
入力の三次元のかたまりを、出力の三次元のかたまりに変換
する。この例では、赤で示された入力層が画像を保持してい
る。だから、その幅・高さは、画像の次元である。そして、深さ
は( Red, Green, Blue のチャンネル)、3になる。
ConvNetは、複数の層からなる。全ての層は、単純なAPIを
持つ。それは、入力の三次元のかたまりを、微分可能な関数
で、出力の三次元のかたまりに変える。それは、パラメーター
を持つ場合もあれば、持たない場合もある。
ConvNetを構成する層
先にも述べたように、ConvNetのすべての層は、活性化した
一つのかたまりを、微分可能な関数を通じて、別のかたまりに
変換する。我々は、ConvNetアーキテクチャーを構成するた
めに、次の三つの主要な型の層を利用する。
コンボリューション層・プーリング層・フルコネクテッド層(これ
は、通常のニューラル・ネットワークと正確に同じものである)。
我々は、これらの層を完全なConvNetアーキテクチャーを形
成するために積み重ねる。
Example Architecture: Overview
以下で詳細を見るが、CIFAR-10の画像分類ための
ConvNetは、次のようなアーキテクチャーを持つことができる。
[INPUT - CONV - RELU - POOL - FC]
INPUT [32x32x3]層 は、画像の生のピクセルの値を持つ
だろう。この例で言えば、幅 32、高さ 32、三つのカラー・チャ
ンネルを持つ画像である。
CONV 層は、入力の局所的な領域に接続されているニュー
ロンの出力を計算する。それぞれのニューロンは、入力のか
たまりに接続されている領域と、自身の重みとのドット積を計
算する。これらは、[32x32x12] のかたまりになるだろう。
RELU 層は、 max(0,x)で閾値ゼロのような、活性化関数を
要素ごとに適用するだろう。これは、かたまりのサイズを変え
ない。 ([32x32x12])
POOL 層は、空間的次元(幅、高さ)にそって、ダウン・サンプ
リングの操作を実行する。結果は、 [16x16x12]のようにな
る。
FC (すなわち、フル・コネクテッド)層は、クラスの得点を計算
する。結果としてかたまりのサイズは、 [1x1x10]になる。こ
こで、それぞれの10個の数字が、CIFAR-10の10個のカテ
ゴリーのようなクラスの得点に対応している。通常のニューラ
ル・ネットワークのように、また、名前が示すように、この層の
全てのニューロンは、先行する層の全ての数字と接続されて
いる。
 このように、ConvNetは、もとの画像を、層から層へと、も
とのピクセルの値から最後のクラスの得点へと変換する。
ある層はパラメーターを含み、また、ある層はパラメーター
を含んでいないことに注意してほしい。特に、 CONV/FC
層は、入力のかたまりの活性化だけではなく、パラメー
ター(ニューラル・ネットワーク重みとバイアス)の関数であ
る変換を実行している。その一方で、 RELU/POOL層は、
固定された関数を実装している。 CONV/FC層のパラ
メーターは、グラディエント・ディセントの手法でConvNet
が計算するクラスの得点が、それぞれの画像に対して訓
練用データに付けられたラベルと矛盾しないように、訓練
される。
まとめ
 ConvNetのアーキテクチャーは、画像のかたまりを出力
のかたまり(クラスの得点を保持している)に変換する層
のリストである。
 いくつかの異なったタイプの層がある (例えば、
CONV/FC/RELU/POOL が最も有名である)
 それぞれの層は、三次元のかたまりを受け取り、微分可
能な関数を通じて、それを三次元のかたまりに変換する。
 それぞれの層は、パラメーターを持つこともあれば、持た
ないこともある。 (例えば、 CONV/FC 層はパラメーター
を持ち、RELU/POOL 層はパラメーターを持たない。)
 それぞれの層は、追加のハイパー・パラメーターを持つこ
ともあれば、持たないこともある。 (例えば、
CONV/FC/POOL層は持ち、RELU層は持たない。)
Convolutionl Neural Network 入門

More Related Content

What's hot

モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選Yusuke Uchida
 
[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object DetectionDeep Learning JP
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理Taiji Suzuki
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision TransformerYusuke Uchida
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習Yusuke Uchida
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習Deep Learning JP
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)Deep Learning JP
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出Kai Sasaki
 
【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining
【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining
【ECCV 2018】Exploring the Limits of Weakly Supervised Pretrainingcvpaper. challenge
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報Deep Learning JP
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法Hirokatsu Kataoka
 
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...SSII
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイcvpaper. challenge
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化Yusuke Uchida
 

What's hot (20)

モデル高速化百選
モデル高速化百選モデル高速化百選
モデル高速化百選
 
[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection[DL輪読会]Focal Loss for Dense Object Detection
[DL輪読会]Focal Loss for Dense Object Detection
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
画像認識と深層学習
画像認識と深層学習画像認識と深層学習
画像認識と深層学習
 
[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習[DL輪読会]相互情報量最大化による表現学習
[DL輪読会]相互情報量最大化による表現学習
 
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
 
AutoEncoderで特徴抽出
AutoEncoderで特徴抽出AutoEncoderで特徴抽出
AutoEncoderで特徴抽出
 
【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining
【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining
【ECCV 2018】Exploring the Limits of Weakly Supervised Pretraining
 
[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報[DL輪読会]ICLR2020の分布外検知速報
[DL輪読会]ICLR2020の分布外検知速報
 
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
SSII2020SS: グラフデータでも深層学習 〜 Graph Neural Networks 入門 〜
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
ResNetの仕組み
ResNetの仕組みResNetの仕組み
ResNetの仕組み
 
continual learning survey
continual learning surveycontinual learning survey
continual learning survey
 
LBFGSの実装
LBFGSの実装LBFGSの実装
LBFGSの実装
 
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
SSII2021 [SS1] Transformer x Computer Visionの 実活用可能性と展望 〜 TransformerのCompute...
 
Transformer メタサーベイ
Transformer メタサーベイTransformer メタサーベイ
Transformer メタサーベイ
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
 
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からのDeep Neural Network高速化
 

Similar to Convolutionl Neural Network 入門

Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~nlab_utokyo
 
R-CNNの原理とここ数年の流れ
R-CNNの原理とここ数年の流れR-CNNの原理とここ数年の流れ
R-CNNの原理とここ数年の流れKazuki Motohashi
 
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...de:code 2017
 
2018/02/27 Recurrent Neural Networks starting with Neural Network Console
2018/02/27 Recurrent Neural Networks starting with Neural Network Console2018/02/27 Recurrent Neural Networks starting with Neural Network Console
2018/02/27 Recurrent Neural Networks starting with Neural Network ConsoleSony Network Communications Inc.
 
(2022年3月版)深層学習によるImage Classificaitonの発展
(2022年3月版)深層学習によるImage Classificaitonの発展(2022年3月版)深層学習によるImage Classificaitonの発展
(2022年3月版)深層学習によるImage Classificaitonの発展Takumi Ohkuma
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開Seiya Tokui
 
(2021年8月版)深層学習によるImage Classificaitonの発展
(2021年8月版)深層学習によるImage Classificaitonの発展(2021年8月版)深層学習によるImage Classificaitonの発展
(2021年8月版)深層学習によるImage Classificaitonの発展Takumi Ohkuma
 
ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural NetworksImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural NetworksKouhei Nakajima
 
いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成Yoshi Sakai
 
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介KCS Keio Computer Society
 
TensorFlowとCNTK
TensorFlowとCNTKTensorFlowとCNTK
TensorFlowとCNTKmaruyama097
 
Convolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をするConvolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をするDaiki Shimada
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaTaisuke Oe
 
Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...
Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...
Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...KCS Keio Computer Society
 
Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Taiga Nomi
 
画像処理分野における研究事例紹介
画像処理分野における研究事例紹介画像処理分野における研究事例紹介
画像処理分野における研究事例紹介nlab_utokyo
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Preferred Networks
 

Similar to Convolutionl Neural Network 入門 (20)

MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearningMIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
R-CNNの原理とここ数年の流れ
R-CNNの原理とここ数年の流れR-CNNの原理とここ数年の流れ
R-CNNの原理とここ数年の流れ
 
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
 
2018/02/27 Recurrent Neural Networks starting with Neural Network Console
2018/02/27 Recurrent Neural Networks starting with Neural Network Console2018/02/27 Recurrent Neural Networks starting with Neural Network Console
2018/02/27 Recurrent Neural Networks starting with Neural Network Console
 
(2022年3月版)深層学習によるImage Classificaitonの発展
(2022年3月版)深層学習によるImage Classificaitonの発展(2022年3月版)深層学習によるImage Classificaitonの発展
(2022年3月版)深層学習によるImage Classificaitonの発展
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
(2021年8月版)深層学習によるImage Classificaitonの発展
(2021年8月版)深層学習によるImage Classificaitonの発展(2021年8月版)深層学習によるImage Classificaitonの発展
(2021年8月版)深層学習によるImage Classificaitonの発展
 
ImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural NetworksImageNet Classification with Deep Convolutional Neural Networks
ImageNet Classification with Deep Convolutional Neural Networks
 
いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成いきなりAi tensor flow gpuによる画像分類と生成
いきなりAi tensor flow gpuによる画像分類と生成
 
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
U-Net: Convolutional Networks for Biomedical Image Segmentationの紹介
 
TensorFlowとCNTK
TensorFlowとCNTKTensorFlowとCNTK
TensorFlowとCNTK
 
研究を加速するChainerファミリー
研究を加速するChainerファミリー研究を加速するChainerファミリー
研究を加速するChainerファミリー
 
Convolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をするConvolutional Neural Netwoks で自然言語処理をする
Convolutional Neural Netwoks で自然言語処理をする
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using Scala
 
Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...
Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...
Outrageously Large Neural Networks:The Sparsely-Gated Mixture-of-Experts Laye...
 
Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷Deep learningの概要とドメインモデルの変遷
Deep learningの概要とドメインモデルの変遷
 
2018/6/26 deep learning Neural Network Console hands-on
2018/6/26 deep learning Neural Network Console hands-on2018/6/26 deep learning Neural Network Console hands-on
2018/6/26 deep learning Neural Network Console hands-on
 
画像処理分野における研究事例紹介
画像処理分野における研究事例紹介画像処理分野における研究事例紹介
画像処理分野における研究事例紹介
 
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
Deep learningの発展と化学反応への応用 - 日本化学会第101春季大会(2021)
 

More from maruyama097

ContainerとName Space Isolation
ContainerとName Space IsolationContainerとName Space Isolation
ContainerとName Space Isolationmaruyama097
 
ニューラル・ネットワークと技術革新の展望
ニューラル・ネットワークと技術革新の展望ニューラル・ネットワークと技術革新の展望
ニューラル・ネットワークと技術革新の展望maruyama097
 
Neural Network + Tensorflow 入門講座
Neural Network + Tensorflow 入門講座Neural Network + Tensorflow 入門講座
Neural Network + Tensorflow 入門講座maruyama097
 
機械学習技術の現在+TensolFlow White Paper
機械学習技術の現在+TensolFlow White Paper機械学習技術の現在+TensolFlow White Paper
機械学習技術の現在+TensolFlow White Papermaruyama097
 
Cloud OSの進化を考える
Cloud OSの進化を考えるCloud OSの進化を考える
Cloud OSの進化を考えるmaruyama097
 
機械学習技術の現在
機械学習技術の現在機械学習技術の現在
機械学習技術の現在maruyama097
 
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twittermaruyama097
 
Facebook Parseの世界
Facebook Parseの世界Facebook Parseの世界
Facebook Parseの世界maruyama097
 
Project Araとものづくりの未来
Project Araとものづくりの未来Project Araとものづくりの未来
Project Araとものづくりの未来maruyama097
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02maruyama097
 
Project Araと新しいものづくりのエコシステム
  Project Araと新しいものづくりのエコシステム  Project Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステムmaruyama097
 
エンタープライズと機械学習技術
エンタープライズと機械学習技術エンタープライズと機械学習技術
エンタープライズと機械学習技術maruyama097
 
人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識
人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識
人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識maruyama097
 
Cyber-Physical Systems とは何か?
Cyber-Physical Systems とは何か?Cyber-Physical Systems とは何か?
Cyber-Physical Systems とは何か?maruyama097
 
Project Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステムProject Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステムmaruyama097
 
人間の思考、機械の思考
人間の思考、機械の思考人間の思考、機械の思考
人間の思考、機械の思考maruyama097
 
グローバル・ネットワークの成立とネットワーク・マーケット
グローバル・ネットワークの成立とネットワーク・マーケットグローバル・ネットワークの成立とネットワーク・マーケット
グローバル・ネットワークの成立とネットワーク・マーケットmaruyama097
 
大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?
大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?
大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?maruyama097
 

More from maruyama097 (20)

ContainerとName Space Isolation
ContainerとName Space IsolationContainerとName Space Isolation
ContainerとName Space Isolation
 
ニューラル・ネットワークと技術革新の展望
ニューラル・ネットワークと技術革新の展望ニューラル・ネットワークと技術革新の展望
ニューラル・ネットワークと技術革新の展望
 
Neural Network + Tensorflow 入門講座
Neural Network + Tensorflow 入門講座Neural Network + Tensorflow 入門講座
Neural Network + Tensorflow 入門講座
 
機械学習技術の現在+TensolFlow White Paper
機械学習技術の現在+TensolFlow White Paper機械学習技術の現在+TensolFlow White Paper
機械学習技術の現在+TensolFlow White Paper
 
Cloud OSの進化を考える
Cloud OSの進化を考えるCloud OSの進化を考える
Cloud OSの進化を考える
 
機械学習技術の現在
機械学習技術の現在機械学習技術の現在
機械学習技術の現在
 
大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter大規模分散システムの現在 -- Twitter
大規模分散システムの現在 -- Twitter
 
Facebook Parseの世界
Facebook Parseの世界Facebook Parseの世界
Facebook Parseの世界
 
Aurora
AuroraAurora
Aurora
 
Project Araとものづくりの未来
Project Araとものづくりの未来Project Araとものづくりの未来
Project Araとものづくりの未来
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
Project Araと新しいものづくりのエコシステム
  Project Araと新しいものづくりのエコシステム  Project Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステム
 
エンタープライズと機械学習技術
エンタープライズと機械学習技術エンタープライズと機械学習技術
エンタープライズと機械学習技術
 
人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識
人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識
人間に出来ること --- 人間 vs 機械 Part I 進化と自然認識
 
Cyber-Physical Systems とは何か?
Cyber-Physical Systems とは何か?Cyber-Physical Systems とは何か?
Cyber-Physical Systems とは何か?
 
Project Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステムProject Araと新しいものづくりのエコシステム
Project Araと新しいものづくりのエコシステム
 
人間の思考、機械の思考
人間の思考、機械の思考人間の思考、機械の思考
人間の思考、機械の思考
 
グローバル・ネットワークの成立とネットワーク・マーケット
グローバル・ネットワークの成立とネットワーク・マーケットグローバル・ネットワークの成立とネットワーク・マーケット
グローバル・ネットワークの成立とネットワーク・マーケット
 
Google Dremel
Google DremelGoogle Dremel
Google Dremel
 
大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?
大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?
大規模分散システムの現在 -- GFS, MapReduce, BigTableはどう変化したか?
 

Recently uploaded

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (10)

SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

Convolutionl Neural Network 入門