the university of electro-communications tokyo, japan (uec ...mm.cs.uec.ac.jp/deep1.pdf · the...

83
The University of Electro-Communications Tokyo, JAPAN (UEC) 「物体認識論」 総合情報学科 第6学期講義 第10回目(講義6回目) (15/12/22) 講義担当:柳井 http://mm.cs.uec.ac.jp/object/

Upload: others

Post on 03-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

The University of Electro-Communications

Tokyo, JAPAN (UEC)

「物体認識論」

総合情報学科 第6学期講義

第10回目(講義6回目)(15/12/22)

講義担当:柳井

http://mm.cs.uec.ac.jp/object/

第1回 (10/06):画像認識とは?イントロダクション.身の回りでの応用例から最新研究まで

第2回 (10/20):画像認識の基礎.画像処理.エッジ検出.色ヒストグラムに基づく画像検索.

第3回 (10/27):【演習1】 MATLAB の基礎.顔検出,物体検出を試してみる.

第4回 (11/10):【演習2】 MATLABでの画像の取り扱い.色ヒストグラムに基づく画像検索.

第5回 (11/17):様々な特徴量.輝度勾配ヒストグラム.局所特徴量.SIFT特徴量.

第6回 (11/24):一般物体認識.BoF法による特徴ベクトル生成.K-Means法.

第7回 (12/01):【演習3】 局所特徴量の抽出.特定物体認識.

第8回 (12/08):機械学習法.Nearest Neighbor法.線形/非線形SVM.NaiveBayes法.

第9回 (12/15):【演習4】 BoFベクトルの生成.K-means法.

第10回 (12/22):Deep Learningによる画像認識の基礎.確率的勾配降下法.

第11回 (1/12):Deep Learningの各種レイヤ-.誤差逆伝搬法.認識結果の評価方法.

第12回 (1/19):【演習5】 BoFと機械学習を用いた一般物体認識.

第13回 (1/26):【演習6】 Deep Learningによる一般物体認識.

第14回 (2/02):【演習7】 レポート課題説明(1):Web画像の自動収集.

第15回 (2/09):【演習8】 レポート課題説明(2):画像分類と,Web画像の再ランキング.

今回の予定本日の予定 (1/5は休講です)

「一般物体認識」の基本的な処理

「ライオン」

認識結果(名称と存在位置)

「山」

「椅子」

3つの基本要素

特徴抽出

機械学習手法

学習データ

「ライオン」

「山」

「椅子」

ラベル付き学習データ

特徴抽出

機械学習モデルの学習

学習

未知の画像

? 特徴抽出

学習済モデルによる分類

分類

[復習]

Bag-of-Features (BoF) 表現

細かいパターンの集合で,画像を表現

学習データのヒストグラムと比較し,分類

出現頻度

代表的パターン

元の画像 特徴的な部分 局所パターン 代表パターンヒストグラム

出現頻度

代表的パターン

出現頻度

代表的パターン“自動車”学習画像 “バイク”学習画像

どちらに似てる?

局所特徴量の分布を表現

[復習]

5[復習]

6

機械学習2:最近傍分類法

最も近い学習データのクラスに分類する.

最も類似している学習データの上位k個の多数決でクラスを決定.⇒ k-最近傍探索(k-NN)

k=1 のとき単にNN法という.A

B単純だが,対象によっては

意外とうまくいく.

学習データが十分にあれば,複雑な分離境界を表現可能

メモリベース,事例ベース ともいう「ライオン」

「トラ」

ライオンに似ていればライオントラに似ていればトラ

画像検索と同じ.

[復習]

正例と負例を与えて、それらを最適に分離する超平面を学習

マージン最大化

margin

テストデータ

機械学習2:サポートベクタマシン(SVM)

負例(negative sample)

正例(positive sample)

[復習]

仮定を付加する

実装する上での留意点

𝑃 𝑥𝑖 𝑐 は学習データのカウントによって求める

ただし確率0は困るので,すべてのトークンについて,実際の出現回数+1 をカウントとする.(ラプラス法)

𝑃 𝑥𝑖 𝑐 =クラス𝑐での単語𝑥𝑖の出現数+ 1

クラスでの出現全単語数+単語種類数

8

機械学習3:ナイーブベイズ法

n

i

ic

^

n

i

in

|c)P(xP(c)c

|c)P(x|c),x,,xP(xP(x|c)

1

1

21

maxarg

[復習]

今日の内容

Deep Learning (深層学習)

背景

3つの特徴:畳み込みネット,大規模データ,GPU

誰でも使えるオープンソースソフト

Deep Convolutional Neural Network

以前のNeural Networkについて

昔と今の違い.学習方法.

基本原理

学習方法:確率勾配降下法,誤差逆伝搬法

10

[背景]

近年,画像認識技術が急速に発展

2015年計算機による画像認識能力は

ついに人間を上回った!

1000種類画像認識コンテスト(2010~)

1000種類の物体のうちの1つが写った画像をコンピュータに見せて,名前を答えさせる課題.

12

acorn squash

ant

スマホでのリアルタイム1000種類認識

当研究室の大学院生が開発したアプリ.

1000種類の例

abacus, abaya, academic gown, accordion, acorn, acorn squash, acoustic guitar, admiral, affenpinscher, agama, agaric, aircraft carrier, airliner, airship, albatross, alligator lizard, alp, altar, ambulance, amphibian, analog clock, anemone fish, ant, apiary, apron, armadillo, artichoke, ashcan, assault rifle, axolotl, baboon, backpack, badger, bagel, bakery, balance beam, bald eagle, balloon, ballplayer,ballpoint, banana,

1000種類の例

そろばん、アバヤ、アカデミックガウン、アコーディオン、ドングリ、ドングリスカッシュ、アコースティックギター、提督、アーフェンピンシャー、アガマ、ベニテングタケ、空母、旅客機、飛行船、アホウドリ、ワニトカゲ、ALP、祭壇、救急車、両生類、アナログ時計、クマノミ、アリ、養蜂場、エプロン、アルマジロ、アーティチョーク、アッシュカン、アサルトライフル、アホロートル、ヒヒ、バックパック、アナグマ、ベーグル、ベーカリー、平均台、ハクトウワシ、バルーン、野球選手、ボールペン、バナナ、

2010年以降の優勝チームの成績5個候補を上げてその中に正解がある割合

0

20

40

60

80

100

120

2010 2011 2012 2013 2014 2015 訓練した人間

1000種類画像認識の精度

16

94.9%

72%

SIFT+BOF

75%

SIFT+BOF

85%

DeepLearning

8 層

88.3%

8 層

DeepLearning

93.3%

23層

DeepLearning

96.4%

152層

DeepLearning

人間を超えた!

人間

1000種類コンペティションは人工知能の進化を象徴している

1000種類画像認識国際コンペティション2012年 Deep Learning ショック!

Deep Learning(深層学習)を使った

参加チーム(トロント大)

従来手法(BoF)による参加チーム(トロント大以外すべて)

この表はエラー率なので,正解率は 100%-(エラー率)

85%

75%

1位と2位の差が10%!

トロント大チームは画像認識研究者

ではない.DeepLearningの研究グループ.

人工知能の進化:コンピュータが人間の知性を超える?

1997年 チェスで人間がコンピュータに負けた

2011年 クイズ(ジェパディ!)で人間が負けた

2015年 1000 種類画像認識で人間が負けた

今後 東大合格,羽生名人負ける,自動運転.

人工知能(AI)が究極に進化するとある時点(技術的特異点)で,

人間の予測不可能な段階に入る.

AIがさらに進化したAIを作り出す,という無限サイクルの始まり.

2045年問題.2045

20251チップで人間超え

コンピュータの指数関数的進化

最近,特に話題になっている理由は..

「深層学習 (Deep Learning)」の登場AIの人間超えの可能性を連想させる程,高性能.

コンピュータ上に,人間の脳を模倣した学習型の多層のネットワーク を構築.

大量のデータから学習.

1000種類認識の場合は,100万枚

計算量が膨大.学習にGPUで1週間以上

従来手法より大幅に性能が向上 ⇒ 人間並み.

6000万個の学習パラメータ

Google Photo: 深層学習画像認識

言葉による個人アルバム検索 : BBQ

言葉によるアルバム検索: curry

つけ麺!

出現頻度

代表的パターン

認識画像 局所パターン 代表パターンヒストグラム

機械学習による分類器

認識結果

従来手法 と Deep Learningの違い [従来] 細かいパターンの集合で画像表現

[Deep Learning] 研究者が設計

元の画像

認識結果

Deep Neural Network (人間の脳を模倣した学習型ネットワーク.特徴抽出と分類器を兼ねる.大量の学習データが必要.)

すべて大量データから学習

最後だけ学習

画像認識の多くの問題でDeep Learningが認識性能を大幅に向上させる.(動画以外)

これまでの常識が全部ひっくり返った

出現頻度

代表的パターン

認識画像 局所パターン 代表パターンヒストグラム

機械学習分類器

認識結果

2013~

画像認識におけるパラダイムシフト

元の画像

認識結果

Deep Neural Network

誰も予想できない急激な進歩.

画像認識での深層学習の成功の3大要因

1. 大規模畳込みネットワーク

画像向けの深層学習法

2. 大規模な学習データ

100万枚規模の(分類された)画像データベース

3. 深層学習の膨大な計算量の克服

GPUによる高速計算 DualGPUで1週間で学習

2012年の優勝チームトロント大チーム(Hintonチーム):これら3つを結びつけ,有効性を実証した

これまでの画像認識の基本原理

細かいパターンの集合で,画像を表現

学習データのヒストグラムと比較し,分類

出現頻度

代表的パターン

元の画像 特徴的な部分 局所パターン 代表パターンヒストグラム

出現頻度

代表的パターン

出現頻度

代表的パターン“自動車”学習画像 “バイク”学習画像

どちらに似てる?

局所特徴量の分布を表現

[復習]

画像認識に必要な 3大要素

画像表現

機械学習

大量の学習データ (Web画像ビッグデータ)

出現頻度

代表的パターン

認識画像 局所パターン 代表パターンヒストグラム

機械学習による

分類器(SVM)

認識結果

DeepLearning

(深層学習)の

畳み込みネット

で置き換えられた!

[1] 畳み込みネットワーク

認識画像

出現頻度

代表的パターン

局所パターン 代表パターンヒストグラム

認識結果

特徴抽出部分に相当分類部分に相当

特徴抽出から分類まで,すべて多層ネットワークで行う.入力が画像で,出力がクラス確率.End-to-end ネット.

「自動車」

224x224

RGB画像

クラス確率ベクトル

岡谷先生(東北大) PRMU2013/1チュートリアル講演資料

32x32

畳み込みネットは,学習された典型的パターンに反応するフィルタの集合.

フィルタの反応結果が後ろの層に伝搬.

畳み込みネットのルーツは,元電通大の福島先生(庄野先生の師匠)

学習されたフィルタが反応するパターン低次層:直線や円など単純パターンに反応

31

Zeiler, M. and Fergus, R.: "Visualizing and Understanding Convolutional Networks", ECCV, (2014).

「自動車」

学習されたフィルタが反応するパターン中間層:タイヤや格子模様など物体のパーツに反応

32

Zeiler, M. and Fergus, R.: "Visualizing and Understanding Convolutional Networks", ECCV, (2014).

「自動車」

学習されたフィルタが反応するパターン高次層:犬や花,一輪車など物体に反応

33

Zeiler, M. and Fergus, R.: "Visualizing and Understanding Convolutional Networks", ECCV, (2014).

「自動車」

画像認識での深層学習の成功の3大要因

1. 大規模畳込みネットワーク

画像向けの深層学習法

2. 大規模な学習データ

100万枚規模の(分類された)画像データベース

3. 深層学習の膨大な計算量の克服

GPUによる高速計算 DualGPUで1週間で学習

2012年のトロント大チーム(Hintonチーム):これら3つを結びつけ,有効性を実証した

大規模畳み込みネットワークの学習には大量画像データが必要

130万枚の1000カテゴリの学習データ

1000種類認識チャレンジデータセット(ImageNet Large Scale Visual Recognition Challenge)

大量画像データ

6000万パラメータ(AlexNet)の学習• 1回の認識(feed forward) に必要な演算:数十億回の加乗算• 学習には feed forward + feed backward(逆伝番)が必要• 数十億回 * 100万枚 * 30回 ⇒ 最新GPUで,約1週間

学習画像の例: acorn squash (冬カボチャ)

Acorn squash画像を1000枚程度用意する.

学習画像の例: airliner(旅客機)

Airliner 画像を1000枚程度用意する.

画像認識では学習データ構築が不可欠

画像認識研究する人は,誰もが行う作業です.

M2の学生は,100枚*100種類にボックスを付けました!⇒ 卒業のために必死に作業する.

毎年,研究室全員で一人3000枚以上の「OO」画像の選択を行なっています.国際映像コンテストの学習データ作成作業の割り当て.

有名データセットCaltech101,256は,カルフォルニア工科大のPhDの学生が一人で作成しまし

学習データ作成: 人手

自動では精度100%は,ほぼ不可能.

Web画像検索+人手 が普通.

昔は,研究者が自分でやる!もしくは,研究室内ソーシング.身内に頼む.

mother-sourcing (MIT の LabelMe が有名)

もしくは,授業履修者に課題として取り組ませる.

• class-sourcing アノテーション体験課題!

今は,「クラウドソーシング」! Crowd-sourcing

•Amazon Mecanical Turk (AMT) の利用が一般的.

•ほぼすべての大規模画像データセットはAMTによって作られている. e.g. ImageNet,

39

アノテーションページの例

http://mm.cs.uec.ac.jp/yanai/animal/

http://mm.cs.uec.ac.jp/yanai/meal/web2/data/

40

今回の 質感画像収集では,現状でもかなり精度がいいので,人手アノテーションは行っていません.

イルカ画像候補に,ひたすら,GOOD/OK/NG をつける作業.

オムライスアノテーション(大学院総合コミュニケーション科学課題)

http://bit.ly/uecfood

41

42

クラウドソーシングサービス (2005年)

Amazon Mechanical Turk

世界中の“人力”の利用 : crowd-sourcing

学習画像データ作成,認識結果評価に利用可能.

43

安価な対価(例えば,1枚0.1セント程度)で画像をチェックしてくれる.

世界中から作業者をWebで集める.

依頼タスク例:パエリア画像候補に○✕を付ける.

正解例サンプル画像

ノイズ除去タスク

その他、タスクの説明や、よい例、悪い例などを提示

44

作業単価:25枚にOXを付けて5セント(1枚0.2セント)

実際の作業依頼ページ例45

研究者の意図が一切入ってない⇒ 現実の「写真」に近い.

ImageNet

あらゆる言葉に関する画像をデータベース化.Wordnetの画像版.

名詞句21,841語の画像を合計14,197,122枚.

階層構造を持つ大規模画像DBの意義

画像認識の学習・評価データ.

画像と意味の大規模分析.

46

http://www.image-net.org/

[Deng et al. CVPR2009]

多言語テキスト検索による画像収集

クラウドソーシングによるクリーニング

image-net.orgで公開.

誰でも利用可.

(Stanford大)

47

大規模画像データセットは,インドの皆さんのおかげ です!

自由回答によるワー の作業者の国別人数

インド人が圧倒的に多い

インド人は何でも知ってる? 21841種類!

分からなければ,学習してもらう.

•計算機に「学習」させるのは大変でも,人間は簡単!

• 「お好み焼き」「たこ焼き」の区別も問題なし!

•もちろん,カレーについてはエキスパート.

India US Canada French UK Asia

1668 394 20 3 3 4

画像認識での深層学習の成功の3大要因

1. 大規模畳み込みネットワーク

画像向けの深層学習法

2. 大規模な学習データ

100万枚規模の(分類された)画像データベース

3. 深層学習の膨大な計算量の克服

GPUによる高速計算 DualGPUで1週間で学習

2012年のトロント大チーム(Hintonチーム):これら3つを結びつけ,有効性を実証した

大規模畳み込みネットワークの学習には大量画像データが必要

130万枚の1000カテゴリの学習データ

1000種類認識チャレンジデータセット(ImageNet Large Scale Visual Recognition Challenge)

大量画像データ

6000万パラメータ(AlexNet)の学習• 1回の認識(feed forward) に必要な演算:数十億回の加乗算

• 学習には feed forward + feed backward(逆伝番)が必要• 数十億回 * 100万枚 * 30回 ⇒ 最新GPUで,約1週間

GPUはdeep learningに必須

CPUのみの計算の 10~50倍程度高速化.

GTX Titan Black/X,980Ti, Tesla K20/40/80

PCクラスタから,GPUクラスタへ.

Dual GPUの時代に…

DeepLearningオープンソースの普及

C++による実装 (MATLAB, Pythonからも使える)

Caffe + Digits (supported by NVIDIA)

Pythonベース

TensorFlow (by Google)

Theano

Chainer (日本発,PFIというベンチャー)

Matlab

MatConvNet ⇒ 演習で使ってみます!

オリジナル言語

Torch7 (supported by Facebook)

54

(どれも検索すれば,すぐに見つかる)

GUIで,Deep Learning: Digits55

ラベル付き画像データがあれば,誰でも学習が簡単にできて,「OO認識システム」が容易に完成.

ただし,NVIDIAのGPUが必須.

Deep Learning+

画像ビッグデータ+

GPUによる高速計算

人間を超えた! ただし,超えたのは極めて限定的な課題

一般物体認識の分類 (1)

画像全体のカテゴリー分類

画像アノテーション:複数ラベルの付与

文生成:画像内容を説明する文を自動生成

クマ トラ ゾウ

ゾウキバ空草草原

クマ草水

トラ草草原

クマが水の上を歩いています

トラが草原にいます.

画像ラベリング:領域分割→分類

カテゴリー物体検出:ウィンドウ探索

オブジェクト領域抽出:認識+領域分割

一般物体認識の分類 (2)

58

tiger

grass

grass

grass

tiger

SDS(2014)約50% FCN(2015)約60

%FCN+CRF(2015)約

70%

他の課題,例えば領域分割でも深層学習で精度が20%以上向上

FCN : Fully Convolutional Semantic Segmentation Models

古典的ニューラルネットワーク(Neural Network)

ニューラルネットワーク

人間の脳をモデル化した学習手法

多数のニューロンの結合によって学習器を構築

階層型(リカレント型)と相互結合型

パラメータWiとθを学習によって求める

fは,シグモイド関数を用いることが一般的.

単体ニューロンはパーセプトロン(1957),

階層型はBP学習(1986).

1980~90年代の階層型ニューラルネットワークの構造

入力層

中間層

出力層

1980~90年代のNeural network

入力,中間,出力の3層構成(中間層は2層以上の場合もあるが,一般的には1層のみ)

全結合層のみ.各層のセル数もあまり多くない.

あまり大規模なネットワークは利用されない ⇒パラメータが多すぎて,学習が困難.⇒ 2000年前後のSVMの登場によって,忘れられた!

2000年以降は,Neural Networkは過去の手法となった. 多層パーセプトロン・バックプロパゲーション学習の利点

入力に多次元ベクトルを扱える

三層以上では非線形分離が可能• 非線形分離問題に特化するならSVMの方が有利

• もっとも特徴的なのは分類関数を非線形に近似できる事

問題点

実問題ではデータ数が多い場合がある• ネットワークの表現・組み方

• 計算時間 入力ベクトルの次元が増えると指数関数的に計算時間が増える>>次元の呪い

画像認識では,SVMが主流でニューラルネットはあまり使われない.(2012年以前)

Deep Neural Network

ILSVRC 2012 での,衝撃的な復活!

Deep Learning (特に,Deep

Convolutional Neural Network, DCNN)

昔のニューラルネットがdeepになって復活.

Layerが増えて,多層化.

単純なニューロン (𝑦 = 𝑓 ∑𝑤𝑖𝑥𝑖 )だけではなく,convolutional network の導入.(1990年代から既にあ

ったが,有効性がさほど認識されていなかった.)

Sigmoid関数 (𝑓 𝑥 = 1/(1 + 𝑒𝑥))の代わりにRectified Linear Unit (ReLU) (𝑓 𝑥 = max(0, 𝑥)) の導入.

大量のデータによる学習.(例えば,1000種類120万枚) (+dropoutによる過学習の防止)

計算機の高速大容量化.GPUによる高速計算.

•でも,学習方法は,Back Propagationで昔と同じ.

66

昔 vs 今

昔:3層

パラメータ:数百~千個程度

今:9層 6000万個のパラメータ

67

大規模画像認識のための標準ネットワーク構成 : Alex Net ILSVRC 2012 で,Alex Krizhevskyらが用いたネットワーク構成. Alex Krizhevsky, I.Sutskever, J. Hinton : ImageNet

Classification with Deep Convolutional Neural

Networks, NIPS 2012.

2013,2014はどのチームもこれをベースに改良,拡張.⇒ 事実上の標準ネットワーク.

68

Convolutional network

前半が畳み込み層(convolutional layer),後半が昔と同じ全結合層(full connection)

69

Convolutional layer

(畳込み層)Full-connection layer

(全結合層)

画像認識に必要な 3大要素

画像表現

機械学習

大量の学習データ (Web画像ビッグデータ)

出現頻度

代表的パターン

認識画像 局所パターン 代表パターンヒストグラム

機械学習による

分類器(SVM)

認識結果

DeepLearning

(深層学習)の

畳み込みネット

で置き換えられた!

Deep Neural Network

の基本原理

画像認識システムとは?

画像を入力すると,クラス確率を返すシステム.

事前の学習が必要: クラスクラス付き画像画像

72

「ライオン」

認識結果

「山」

「椅子」

クラス確率

「ライオン」

「山」

「椅子」

ラベル付き学習データ

特徴抽出

機械学習

モデルの学習

学習

未知の画像?

特徴抽出

学習済モデルによる分類

分類 [0.85,

0.10,

0.05]

𝒚 = 𝑓(𝒙)𝑓 ∶ 画像認識システム

𝒙 ∶ 画像(ベクトル)

𝒚 ∶ クラス確率(ベクトル)

画像認識システム𝑓(𝒙)の構築従来手法: SIFT⇒BoF⇒SVM

いかに 𝒚 = 𝑓(𝒙)を設計するか?

局所パターン(SIFT)⇒ BoFベクトル⇒ SVMによる分類

73

𝒚 = 𝑓(𝒙)𝑓 ∶ 画像認識システム

𝒙 ∶ 画像(ベクトル)

𝒚 ∶ クラス確率(ベクトル)

出現頻度

代表的パターン

認識画像 局所パターン 代表パターンヒストグラム SVM分類器

クラス確率(尤度)

𝒚

𝒙

𝑓(𝒙)

画像認識システム𝑓(𝒙)の構築深層学習 (Deep Learning)

いかに 𝒚 = 𝑓(𝒙)を設計するか?

多層のニューラルネットワーク: 画像からクラス確率まで

end-to-end(端から端まで)変換.

74

𝒚 = 𝑓(𝒙)𝑓 ∶ 画像認識システム

𝒙 ∶ 画像(ベクトル)

𝒚 ∶ クラス確率(ベクトル)

クラス確率(尤度)

𝒚

𝒙

𝑓(𝒙)

認識画像Deep Neural Network

Deep Neural Networkの学習

学習データに基づいて,任意の 関数𝑓(𝒙) を構築する手法.

77

𝒇(画像) ⇒ (ライオン確率,椅子確率,山確率)

𝑓(𝒙)

Deep Neural Network

「ライオン」

「山」

「椅子」

大量のラベル付き学習データ

Deep Neural Network

入力,出力ペアの学習データに基づいて,任意の 関数𝑓(𝒙) を構築する手法.

78

𝒇(𝒙) ⇒ (ライオン確率,椅子確率,山確率)

𝒇( ) ⇒ ( 1.00, 0.00, 0.00 )

𝒇( ) ⇒ ( 0.00, 1.00, 0.00 )

𝒇( ) ⇒ ( 0.00, 0.00, 1.00 )

となるように,ニューラルネットワークの内部パラメータを学習する.

Neural Net はパラメータの集合体

DeepNetは各レイヤがパラメータを持っている.

AlexNetと呼ばれる1000クラス画像分類ネット⇒ 約6000万個のパラメータ

79

11*11*3*96

= 34,848

5*5*96*256

= 614,400

3*3*256*384

= 884,736

3*3*384*384

= 1,327,104

3*3*384*256

= 884,736

6*6*256*4096

= 37,784,736

4096*4096

= 16,777,216

4096*1000

= 4,096,000合計 61,520,660 パラメータ

NeuralNetの学習

61,618,964 個の内部パラメータ 𝒘を持つ関数 𝑓(𝒙) をいかに学習するか?

80

𝒇( ) ⇒ ( 1.00, 0.00, 0.00 )

𝒇( ) ⇒ ( 0.00, 1.00, 0.00 )

𝒇( ) ⇒ ( 0.00, 0.00, 1.00 )

となるように 内部パラメータ 𝒘を求める.

誤差関数

61,520,660 個の内部パラメータ 𝒘をまずランダムで初期化.

画像を入れると 出力値𝒑(ほぼランダム)が出る 理想値𝒚

81

𝒇𝟎( ) ⇒ (0.23,0.53,0.31) ⇐ (1.00, 0.00, 0.00)

𝒇𝟎( ) ⇒ (0.30,0.27,0.43) ⇐ (0.00, 1.00, 0.00)

𝒇𝟎( ) ⇒ (0.49,0.38,0.13) ⇐ (0.00, 0.00, 1.00)

𝐸 が最小になるような 内部パラメータ 𝒘を求める.

誤差𝐸 = 出力値𝒑と 学習ラベル値(理想値)𝒚 との差

学習データ全てに渡って𝐸を最小化

初期ネットワーク𝑓(𝒙𝑖)の 出力値𝒑𝒊と理想値𝒚𝒊の誤差𝐸𝑖

82

学習画像1 𝒇𝟎( )⇒ (0.23,0.53,0.31)⇐ (1.00, 0.00, 0.00) ⇒ 𝑬𝟏

学習画像𝟐 𝒇𝟎( )⇒ (0.30,0.27,0.43)⇐ (0.00, 1.00, 0.00)⇒ 𝑬𝟐

学習画像𝑵 𝒇𝟎( )⇒ (0.49,0.38,0.13)⇐ (0.00, 0.00, 1.00)⇒ 𝑬𝑵

𝐸 = ∑𝑖 𝐸𝑖 が最小になるように内部パラメータ 𝒘を学習.以下では,𝐸は𝒘によって決まるので,𝐸(𝒘) と書く.

最急降下法(勾配降下法)で解く!𝒘𝑡+1 = 𝒘𝑡 − 𝜂𝜕𝐸

𝜕𝒘(𝜂:小さい値.学習率. 0.001)

勾配と逆方向に𝒘を少しずつ変化させる

𝐸(𝒘)

𝒘

𝜕𝐸

𝜕𝒘−𝜂𝜕𝐸

𝜕𝒘

𝒘𝑡𝒘𝑡+1

パラメータの𝒘の学習

61,520,660 個の内部パラメータ 𝒘を持つ関数 𝑓(𝒙) をいかに学習するか?

83

最急降下法(勾配降下法)𝒘𝑡+1 = 𝒘𝑡 − 𝜂𝜕𝐸

𝜕𝒘(𝜂:小さい値.学習率. 0.001)

勾配と逆方向に𝒘を少しずつ変化させる

繰り返し𝒘を変化させると,𝐸(𝑤) を最小化する 𝒘 が求まる.

𝐸(𝒘)

𝒘

𝜕𝐸

𝜕𝒘−𝜂𝜕𝐸

𝜕𝒘

𝒘𝑡𝒘𝑡+1

パラメータが多いので,大量の学習データが必要.一般には,各1000枚×1000種類=100万枚のラベル付き画像.⇒100万枚の画像を30~100回,𝑓 𝒙 を計算し誤差 𝐸(𝒘)を求める

30~100回繰り返す

パラメータ𝒘 が求まると,𝑓(𝒙) の学習が完了 ⇒ GPUで1週間

関数 𝑓(𝒙) = 学習済の画像認識関数

84

𝑓(𝒙) ⇒ (ライオン確率,椅子確率,山確率)

𝑓( ) ⇒ ( 0.95, 0.04, 0.01 )

𝑓( ) ⇒ ( 0.03, 0.95, 0.02 )

𝑓( ) ⇒ ( 0.02, 0.05, 0.93 )

となって,ニューラルネットワークの内部パラメータ𝒘が学習できた.

ポイント

勾配降下法を使うので,𝐸(𝒘) が微分可能でないといけない.⇒ 実際のネットワークは微分可能になっている.

6000万次元の𝒘が正しく学習されるには,大量のデータがあることが望ましい⇒ 一般には100万枚

上手く学習されれば,RGBの画素値を入力として,出力がクラス確率となる, 𝑓(𝒙)が求まる.

85

実際には,

勾配降下法の代わりに,確率的勾配降下法を用いる.

全学習データで 𝐸(𝒘)を計算する代わりに,100枚程度のミニバッチ毎に 𝐸(𝒘)を計算して,𝒘を更新.

100枚の画像はランダムで選択(「確率的」の由来) ⇒ 𝐸(𝒘) の関数の形が毎回異なるので,局所解に捕まりにくくなる.

86

𝐸1(𝒘)

𝒘

𝐸2(𝒘)

𝐸3(𝒘)

Deep Neural Network

の詳細

複数の種類のレイヤーから構成.

畳み込み層 (convolutional layer)

全結合層 (fully connected layer)

プーリング層 (pooling layer)

活性化関数 (activation function)

誤差関数(error function/loss function)

88

conv-af-pool-conv-af-conv-af-pool-conv-af-conv-af-conf-af-full-af-full-af-full-af-error

Convolutional Neural Nets (CNNs): 1989

LeNet: a layered model composed of convolution and

subsampling operations followed by a holistic representation

and ultimately a classifier for handwritten digits. [ LeNet ]

LeNet: 数字認識(0~9)のネットワーク

入力: 32x32 の濃淡画像, 出力: 0~9 のそれぞれの確率

Conv-af-pool-conv-af-pool-full-af-full-af-error

第1回 (10/06):画像認識とは?イントロダクション.身の回りでの応用例から最新研究まで

第2回 (10/20):画像認識の基礎.画像処理.エッジ検出.色ヒストグラムに基づく画像検索.

第3回 (10/27):【演習1】 MATLAB の基礎.顔検出,物体検出を試してみる.

第4回 (11/10):【演習2】 MATLABでの画像の取り扱い.色ヒストグラムに基づく画像検索.

第5回 (11/17):様々な特徴量.輝度勾配ヒストグラム.局所特徴量.SIFT特徴量.

第6回 (11/24):一般物体認識.BoF法による特徴ベクトル生成.K-Means法.

第7回 (12/01):【演習3】 局所特徴量の抽出.特定物体認識.

第8回 (12/08):機械学習法.Nearest Neighbor法.線形/非線形SVM.NaiveBayes法.

第9回 (12/15):【演習4】 BoFベクトルの生成.K-means法.

第10回 (12/22):Deep Learningによる画像認識の基礎.確率的勾配降下法.

第11回 (1/12):Deep Learningの各種レイヤ-.誤差逆伝搬法.認識結果の評価方法.

第12回 (1/19):【演習5】 BoFと機械学習を用いた一般物体認識.

第13回 (1/26):【演習6】 Deep Learningによる一般物体認識.

第14回 (2/02):【演習7】 レポート課題説明(1):Web画像の自動収集.

第15回 (2/09):【演習8】 レポート課題説明(2):画像分類と,Web画像の再ランキング.

今回の予定次回の予定 (1/5は休講です)