【連載】

ディープラーニングの原理とビジネス化の現状

2 ディープラーニングの学習方法

 

2/7

学習のやり方

この重みの変更であるが、重みを変えると、出力がどれだけ変わるかという傾きを計算し、誤差が小さくなるように重みを変更する。こう書くと簡単であるが、重みの数は、ニューロンの数の100倍のオーダーである。また、1つの重みの変更だけで誤差を最小にしようとすると、他の重みの出番が無くなってしまうという過剰な変更になり、他の画像ではうまく行かなくなってってしまう。このため、それぞれの重みの変更量は、誤差を最小にする値の1/10000とかいう小さい学習率を掛けて適用し、これを繰り返して、全体として誤差を小さくしていく。また、学習が進むに連れて学習率を下げるということも行われる。

学習では、重みの変更に対する誤差の減少の傾きを計算し、誤差が小さくなるように重みを変更する

1つの画像の学習でも大量の重みの変更を計算する必要があるが、学習には数万~数百万枚の画像を使うので、全体の計算量は膨大で、GPUを使っても何日も掛かる場合がある。

これを高速化するため、通常は、画像を1枚ずつ処理するのではなく、32画像とか1024画像をまとめ、全画像の誤差の傾きの平均値を使って重みを変更するという方法が使われる。

1画像ずつ処理すると、この処理はマトリクス×ベクトルの計算であるが、このようにまとめて処理すると、マトリクス×マトリクスの計算となり、処理性能が上がる。このように入力データをまとめたものをミニバッチと呼ぶ。

マトリクス×ベクトルの計算が,32~1024画像を一まとめにしてミニバッチとして処理すると、マトリクス×マトリクスの計算になり、効率が上がる

ニューラルネットワークによる画像認識では、次の図のように、元の画像の比較的小さな領域(例えば11×11ピクセル)のデータをLayer 1のニューロンに入力する。そして、例えばx方向に4ピクセルずらせた小領域の画像を、Layer 1のx方向の隣のニューロンに入力し、同様にy方向に4ピクセルずらせた小領域の画像をy方向に隣接したニューロンに入力するというやり方でLayer 1の全部のニューロンに入力を接続する。

各層の厚みは、その層のニューロンが出力するベクトルの要素数を表している。ディープラーニング躍進の始まりとなった2012年のImageNetコンペで優勝したAlexNetの場合、Layer 1の入力ベクトルは3要素であるが、出力ベクトルは48要素になっている。Layer 2は、Layer 1の5×5の小領域のデータを入力とし、128要素のLayer 2の出力ベクトルを生成するという形になっている。

そして、次の図のように、このようなニューロン層を重ねてネットワークを作る。

ニューラルネットワークは、下層からの出力の小領域を、上の層の1つのニューロンに接続する。この出力はベクトルで、要素数が各層の厚みで表現されている

学習のためには、この画像は何を表しているかという正解(教師)を教えてやることが必要で、正解に近づくように重みを変更して行く。

2/7

インデックス

連載目次
第7回 株の売買にディープラーニングを活用
第6回 ニコニコ動画のコメント分析にディープラーニングを活用
第5回 ディープラーニングを活用する世界の企業
第4回 ニューラルネットワークの仕組み
第3回 ディープラーニングの進歩を振り返る
第2回 ディープラーニングの学習方法
第1回 ディープラーニングシステムの基本を知る

もっと見る

関連キーワード


IT製品 "比較/検討" 情報

人気記事

一覧

イチオシ記事

新着記事

【特別企画】12万円(税別)で手に入る15.6型スタイリッシュゲーミングノート - 「G-GEAR note N1563J-710/T」
[21:18 6/30] パソコン
綾野剛、ライジング・スター賞で初NY! 謙虚な英語スピーチに拍手喝采
[21:00 6/30] エンタメ
役員報酬、1億円超は211社414人 - 三菱電機が最多
[20:55 6/30] マネー
約8割が週に1回以上は実感している「スマホ老眼」の症状って?
[20:50 6/30] ヘルスケア
【連載特別企画】アナログとデジタルをつなぐワコムのデジタルノート「Bamboo Spark」 第3回 Bamboo Sparkを超活用する
[20:49 6/30] パソコン