Home Watson-AI 畳み込みネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第2回

畳み込みネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第2回

by kusui

 ディープラーニングにはいくつかの手法が存在するが、そのなかで最も成功しているのが、畳み込みネットワークである。畳み込みネットワークは主に画像認識で用いられ、その圧倒的な精度ゆえにディープラーニングが注目される1つの要因を作り出した手法でもある。

 畳み込みネットワークによる画像認識は応用範囲が広く、自動運転、監視カメラ、オンラインショッピングの商品検索など、さまざまな分野で活用が進んでいる。また少し変わったところでは、アルファ碁の碁盤の局面認識にも利用されており、その認識精度の高さがアルファ碁の強さの一因にもなっている。

 連載第2回では、この畳み込みネットワークを取り上げる。

 

ImageNet 2012で注目を
集めた畳み込みネットワーク

 世界中のコンピュータビジョン関連の研究者たちが集まる「ImageNet Large Scale Visual Recognition Challenge」(以下、ILSVRC)というコンペティションがある。

 ImageNet(http://image-net.org/)は、研究用に大量のカラー画像を提供しているサイトで、現在1400万点を超える画像を蓄積している。個々の画像は、「トイプードル」や「柔道」 など特定のカテゴリに分類される。これらの大量のカラー画像をどれだけ精度よく、正しいカテゴリに分類できるかを競うコンペティションが、2010年から開催されているILSVRCである。

 画像を正しいカテゴリに分類するという課題は、「一般物体認識」という名前で知られており、コンピュータビジョンの世界で盛んに研究されている分野の1つである。このコンペティションに2012年、カナダのトロント大学のチームが参戦した。「SuperVision」と名づけられたこのチームの武器が畳み込みネットワークで、結果は正答率83.5%。2位(正答率73.8%)に10ポイントもの大差をつけた圧勝であった。

 畳み込みネットワーク自体は、1998年にはすでに提唱されていたが、この結果によって大きな注目を集めるようになり、研究機関のみならず企業などでも盛んに研究され始めた。なお、このころから多層ニューラルネットワークを指して「ディープラーニング」と呼ぶようになるが、現在ディープラーニングというと、畳み込みネットワークを使ったものが大多数を占める。

 

視覚認識と畳み込み
ネットワーク

 畳み込みネットワークは人間の視覚をモデルに考案されており、前号で説明した一般的なニューラルネットワークとは異なる特殊な構造をもつ。まず、人間の視覚がどのように畳み込みネットワークとしてモデル化されるかを見てみよう。

 人間が物体を見る際に生じる経過を追ってみると、最初に物体から反射された光が目の奥の網膜に像を結ぶ。その後、視神経を通じて脳に刺激が達し、物体が何であるかを認識する。そのとき、物体の像全体を一度に把握するのではなく、ある限定された領域ごとに像をスキャンするように認識する。この限定された領域を、「局所受容野」と呼ぶ。

 局所受容野の光の刺激は、電気信号に変換されて脳に達し、そこで視覚認識に関係するニューロンが反応する。このニューロンには2種類あることが知られており、それぞれ「単純型細胞」「複雑型細胞」と名づけられている。

 単純型細胞は、ある特定の形状に反応する細胞である。さまざまな形状に反応する単純型細胞があり、それらが連携して活動することで複雑な形状の物体を認識する。

 一方の複雑型細胞は、形状の空間的なずれを吸収するような働きをする。単純型細胞だけだと、ある形状の位置がずれると別の形状と見なすが、複雑型細胞は空間的な位置ずれを吸収し、同一形状と見なせるように働く(図表1)

 

 

 畳み込みネットワークはこの2つの細胞の働きを模倣するように考案されており、単純型細胞に対応する「畳み込み層」、複雑型細胞に対応する「プーリング層」というコンポーネントが用意されている。 

 次に、この2種類の層を用いた畳み込みネットワークの構造を説明しよう。

 

畳み込みネットワークの構造

 ここでは前回取り上げた、0?9までの手書き文字画像を判別するという問題を題材に、畳み込みネットワークの構造を解説する。最も基本的な畳み込みネットワークの形は、図表2のようになる。最初の層が入力層で、画像の1ピクセルが1ニューロンに対応する(図表の1マスが1ニューロンに相当)。その次に単純型細胞に相当する畳み込み層、複雑型細胞に相当するプーリング層が続く。

 

 

 プーリング層のあとは、「全結合層」と「出力層」が接続される。全結合層は、プーリング層からの出力をまとめるために置かれる。構造的には前回説明したニューラルネットワークの中間層と同様である。出力層は0?9までの確率を出力するもので、これもニューラルネットワークの出力層と同様である。

 通常のニューラルネットワークとの違いは、畳み込み層とプーリング層の部分にある。以下に、この2層について詳述する。

 

◆ 畳み込み層

 畳み込み層は単純型細胞をモデルに考えられたもので、単純型細胞と同様、特定の形状に反応するように構成される。この特定の形状はフィルタと呼ばれ、データによる学習時に自動調整される。 

 たとえば0?9までの手書き文字を判別する場合、多くの手書き文字データを用意して畳み込みネットワークに学習させることにより、0?9の数字を判別するうえで、最も手がかりになるような直線・曲線などがフィルタとして設定される。

 図表3を見ながら、「今、データによる学習が終わり、90度の角をもつ線(図表3のAの部分)がフィルタとして設定された」と仮定して、畳み込み層の動きを追ってみよう。

 

 

 畳み込み層の個々のニューロンは、入力画像の一部領域のニューロン群とのみ結合する。この領域は単純型細胞の場合と同様、局所受容野と呼ばれ、入力画像をスキャンするように1ピクセルずつ移動する。

 1ピクセルずつの移動ごとに畳み込み層の1ニューロンが対応するように結合され、フィルタの形状が局所受容野に見つかれば、畳み込み層のニューロンが発火し(1に近い値を出力)、見つからない場合は発火しない(0に近い値を出力)というように動作する。

 なお、入力層と畳み込み層の間の結合を数式で表すと、図表4のようになる。ここでxが入力画像の各ピクセルの値、wが重み、bがバイアス、σが活性化関数である。

 

 

 入力画像の局所受容野にあたるニューロン(ここでは3×3の9ニューロン)が、畳み込み層の1つのニューロンへの入力値として使用されており、局所受容野が移動するごとに畳み込み層の別のニューロンが結合される構造である。

 データによるチューニング対象となるのは、重み(w)とバイアス(b)であり、ニューラルネットワークと同様、畳み込みネットワークの出力値と正解の値との差が小さくなるようにチューニングされる(重みとバイアスのチューニング方法については前号の内容を参照)。

 この重み(w)の組はフィルタと呼ばれ、まさに前述しような判別の手がかりとなる形状を現している。wはデータによるチューニング対象であることから、判別に有効な形状を畳み込みネットワークが学習中に自動調整するのがわかる。

 また、フィルタは複数構成することが可能である。通常、画像はさまざまな直線・曲線などが組み合わさって構成されるので、1つのフィルタを用いて判別するよりも、複数のフィルタを組み合わせて判別したほうが、識別性能が上がりやすい。

 そのため畳み込み層を設計する際には、通常、前述した入力層と畳み込み層のニューロンセットを複数個、構成する(図表5)。この各フィルタに対応する畳み込み層内のニューロンセットを、「チャネル」と呼ぶ。

 

 

◆ プーリング層

 プーリング層は、複雑型細胞をモデル化したもので、入力画像におけるフィルタ形状の位置ずれを吸収するように機能する。その仕組みは、畳み込み層と比較するとかなり単純である。

 プーリング層の個々のニューロンは、畳み込み層の一定領域のニューロンと結合する。ただし、この畳み込み層の領域同士は重複せず、1つの畳み込み層ニューロンは、ただ1つのプーリング層ニューロンのみと結合する(図表6)

 

 

 プーリング層の各ニューロンの出力値は、結合する畳み込み層のニューロンの出力値のなかで最大となる値を設定する。これにより、フィルタ形状の位置ずれを吸収することが可能となる。

 その仕組みを見てみよう。プーリング層のあるニューロンの発火は、対応する畳み込み層のニューロンのどこかが発火したことを意味する。これを入力層に戻して考えると、畳み込み層の複数ニューロンに対応する局所受容野の領域を合成した部分にフィルタ形状が存在することを意味するので、畳み込み層の1ニューロンでカバーする局所受容野からずれた範囲での形状検出が可能となる(図表7)

 

 

有名な畳み込みネットワーク

 ここまで畳み込みネットワークの基本構造と、それを構成する畳み込み層、プーリング層について説明したが、実際に用いる際にはさまざまなカスタマイズを施すケースが多い。近年では認識精度を高めるために、より深く複雑な構造をもつネットワークが提案されているが(GoogleNetやResNetなど)、ここでは構造が比較的簡単でありつつも、コンペティションなどで優秀な成績を修め、実用上、重要と思われるネットワークを紹介する。

◆ LeNet

 1998年に、Yann LeCunによって考案された初の畳み込みネットワークである。

 構造としては、畳み込み層とプーリング層のセットを2回繰り返すのが特徴である。近年開発されたものと比較すると、層が浅く単純であるが、MNISTの手書き文字画像では99%以上の精度を出せる。判別カテゴリが少ない場合などは、十分に実用に堪えうる。最初に畳み込みネットワークを適用する際には、このネットワークから試してみるのもよい。

◆ AlexNet

 2012年に、ImageNetコンペティションで優勝したトロント大学SuperVisionチームの開発したネットワークである。

 論文の筆頭著者Alex Krizhevskyの名前から、AlexNetと名づけられている。畳み込み層5層にプーリング層3層という、LeNetと比較するとかなり深い層構造になっている。1400万以上のカラー画像を1万カテゴリに分類するというコンペティション向けに開発されたため、高い認識能力を誇るが、学習時にチューニングすべきパラメータ数も多く、実装には高いスペックをもつハードウェアが必要となる。

◆ VGG

 2014年に、ImageNetコンペティションで優勝したオックスフォード大学のチームが開発したネットワークである。

 チーム名であるVisual Geometry Groupの頭文字から、VGGと呼ばれている。通常、畳み込み層の局所受容野は5×5ニューロン程度で構成されることが多い。しかしVGGでは、局所受容野を3×3と小さくする代わりに、畳み込み層を増加させる方法を採用している。構成する層の数に応じて、VGG-11やVGG-16などと呼ばれることが多い。

 以上今回は、ディープラーニングの代名詞ともなっている畳み込みネットワークを紹介した。畳み込みネットワークは、ディープラーニングのなかで最もポピュラーであり、基礎的な手法でもあるため、本連載では次号以降、実装についても触れたいと思う。

 

・・・・・・・・

著者|植田 佳明 氏

日本アイ・ビー・エム システムズ・エンジニアリング株式会社
アナリティクス・ソリューション
アドバイザリーITスペシャリスト

2001年、日本IBM入社。2005年に日本アイ・ビー・エム システムズ・エンジニアリングに出向し、当初はIAサーバー基盤、WebSphere Application Server関連のプロジェクトや技術サポートを担当。2012年よりSPSSを中心としたアナリティクス製品のサポートやデータ分析プロジェクトに従事し、近年ではWatson・ディープラーニングといった人工知能、コグニティブ関連の活動にも携わっている。

[IS magazine No.13(2016年10月)掲載]

・・・・・・・・

連載 ディープラーニング入門  全4回  CONTENTS

第1回 ニューラルネットワークの「基礎の基礎」を理解する

第2回 畳み込みネットワークの「基礎の基礎」を理解する

第3回 再帰型ニューラルネットワークの「基礎の基礎」を理解する

第4回 ディープラーニングの実装「基礎の基礎」

・・・・・・・・

related posts