ディープラーニングについて調べていると、画像認識に使われる手法として畳み込みニューラルネットワークの解説が見つかりますが、
「図も数式もわかりにくくて頭の中が真っ白。どんな仕組みか、数式なしで知りたい!」
という方のために、本記事では、画像認識において最もホットな「畳み込みニューラルネットワーク」について、数式なしで丁寧に解説していきます。
初心者でも理解できるよう、画像分析に至るまでの手順も解説していますので、ぜひ最後まで読んで、畳み込みニューラルネットワークの概要を掴んでください。
畳み込みニューラルネットワーク(CNN)とは?何に使えるの?
畳み込みニューラルネットワーク(Convolution Neural Network)とは、AIが画像分析を行うための学習手法の1つで、一部が見えにくくなっているような画像でも解析することができます。略してCNNとよばれることもあります。
畳み込み層とプーリング層という2つの層を含む構造の順伝播型のネットワークで、特徴として、それぞれの層の間に生物の脳の視覚野に関する脳科学の知見にヒントを得た、「局所受容野」「重み共有」という結合をもっています。
”多層構造”に加え、工夫された2つの隠れ層という”構造”が組み込まれたニューラルネットワークといえます。
分析する画像が入力層に読み込まれた後、このデータをくまなくスキャンし、データの特徴(勾配、凹凸など)を抽出するために使われるのがフィルタです。抽出された特徴データは畳み込み層に送られ、そこで更に特徴の凝縮されたデータが作成されます。
多くは、最後に全結合の層を重ねて結果を得ますが、一般的なニューラルネットワークと異なり、重みを共有しているため、学習が効率的に行われ、良い(精度の高い)結果を得ることができます。
畳み込みニューラルネットワークの活用例
畳み込みニューラルネットワークは、例えば顔認識システムによく利用されています。
Facebookのタグ付けシステムDeepfaceは有名でしょう。
近年の具体例としては、コーネル大学のコーネル鳥類学研究室が開発した鳥用の顔認識システム「Merlin Bird Photo ID」、韓国科学技術院がベンチャー企業と共同開発した低電力で97%の精度をもつ顔認証システム「K-Eye」などがあります。
ニューラルネットワークについては「ニューラルネットワークとは?人工知能の基本を初心者向けに解説!」で解説していますので、詳しくはそちらをご覧ください。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >畳み込みニューラルネットワークの手順を、例を用いてわかりやすく解説!
畳み込みニューラルネットワークを利用した画像処理の流れを簡単に説明すると、
①フィルターを使用し、入力画像の全体に対して畳み込み層でフィルター処理を行う。
②処理した画像をプーリング層に流し込む。
③プーリング層で画像の解像度を下げる処理を行う。
④③の結果を用いて全結合層で結合することで、画像認識が可能、という流れになります。
なお、畳み込みニューラルネットワークを決定するためには、フィルタや重み、バイアスを具体的に決める必要があります。それぞれの手順を追って説明していきます。
畳み込みニューラルネットワークの手順① 画像から特徴を抽出
フィルタを使って、入力層データの中で位置を変えながらスキャンした部分のデータと、フィルター自体の持つデータとの差異を畳み込みの結果として畳み込み層に書き込んだものを特徴量といい、入力層の全データをスキャンしてできた畳み込みの結果の値の集まりを特徴マップといいます。
複数のフィルタを用意することで、入力層のデータの特徴を捉えやすくしています。
下の図は、用意した複数のフィルタのうち、一つが完全に入力層のデータの一部と同じであることを示しています。
畳み込みニューラルネットワークの手順② 画像を畳み込み
入力層のデータをフィルタのデータとピクセル毎に比較することで、畳み込み層にその類似度(特徴量)を書き込みます。下記の図はフィルタを利用して特徴量を抽出し、特徴マップを作成した例です。
畳み込みニューラルネットワークの手順③ 画像をプーリング
畳み込み層の情報はプーリング層で集約します。例えば最大プーリングという集約方法をとる場合、各ユニット(領域)のピクセルを比較し、その中の最大値をそのユニットの特徴量とします。
出力には、プーリング層のユニットすべてと全結合し、計算結果を利用して、フィルタ、重み、バイアスを更新していきます。
いかがでしたか? 畳み込みニューラルネットワークとは何かお分かりいただけましたか?
最新情報・キャンペーン情報発信中