畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)の違いとは?

2020年06月26日

ニューラルネットワークとは

ニューラルネットワークとは、生物の脳の神経細胞(ニューロン)をモデルとしたアルゴリズムを示します。機械学習では、タスクに適した人工ニューラルネットワークが利用されます。本記事では、畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)という二種類のニューラルネットワークをご紹介します。これらを解説したYouTube動画や画像を利用し、畳み込み ニューラルネットワークと再帰型ニューラルネットワークの違いやそれらがコンピュータビジョンおよび自然言語処理でどのように活用されているかについて説明させて頂きます。

 

畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)の違い

畳み込みニューラルネットワーク(CNN)と再帰型ニューラルネットワーク(RNN)の主な違いは、文などの時系列情報や連続データを処理する能力です。さらに、畳み込みニューラルネットワークと再帰型ニューラルネットワークは完全に異なる目的のために利用されるので、ニューラルネットワーク自体の構造も異なります。畳み込みニューラルネットワークは、畳み込み層のフィルタを利用してデータを変換します。一方、再帰型ニューラルネットワークは連続データ内の他のデータポイントから活性化関数を再利用して、次の出力を生成します。畳み込みニューラルネットワークと再帰型ニューラルネットワークの違いについて質問されることは多いのですが、両者の構造と活用事例を理解すれば、違いが明らかになるでしょう。まず、畳み込みニューラルネットワークが画像解析にどのように利用されているのかを見てみましょう。

 

畳み込みニューラルネットワーク(CNN)

畳み込みニューラルネットワーク(CNN)は、コンピュータビジョンで画像からパターンや物体を認識するために最もよく利用されるニューラルネットワークの一つです。畳み込み層においてフィルタ処理を行うことが大きな特徴として挙げられます。

畳み込み層

畳み込みニューラルネットワークは、畳み込み層と呼ばれる独自の層を持っており、これが再帰型ニューラルネットワークや他のニューラルネットワークとの明確な違いになります。畳み込み層では、インプットが次の層に渡される前に、フィルタを利用して変換されます。 

 

プーリング層

畳み込みニューラルネットワークは、畳み込みとプーリングを繰り返します。プーリングとは、学習サイズを決められたルールに従って小さくすることで、プーリングそうでは平均値や最大値を用いてサブサンプリングが行われます。
プーリングには3つの種類があります。平均プーリングは、指定した安易の画素の値の平均値を抽出しますが、学習の収束まで時間がかかってしまうことが欠点です。2つ目の最大プーリングは、指定した範囲の最大値で圧縮します。最大プーリングは小さな値の影響をなくすことができますが、局所解に陥るリスクがあります。最後に、Lpプーリングは、周りの値をp乗し、その標準偏差をとる手法で、最大プーリングと平均プーリング両方を含みます。大きな値を重要視し、小さな値の影響を減少できます。

 

畳み込みニューラルネットワークのフィルタ機能

簡単に言うと、畳み込みニューラルネットワークのフィルタは、下の図のようにランダム化された数値のマトリクスです。

畳み込みニューラルネットワークのフィルタの例とする、ランダム化された数値のマトリクス

フィルタの行と列は、活用事例や処理されるデータによって異なります。畳み込み層には、画像内を移動する多数のフィルタがあり、このプロセスが畳み込みと呼ばれます。フィルタが画像のピクセルを畳み込み、畳み込みニューラルネットワークの次の層にデータを渡す前に値を変換します。

フィルタがデータを変換する方法を理解するため、手書きの数字を認識できるようにCNNに学習させる方法を見てみましょう。以下は、MNISTデータセットから取得した数字の7の28 x 28ピクセル画像を拡大したものです。 

以下はピクセル値に変換した同じ画像です。

フィルタが画像全体を移動する(畳み込む)につれ、フィルタの値のマトリクスと画像のピクセル値から内積が計算されていきます。

フィルタは全てのピクセルをカバーするまで、3 x 3ピクセルのマトリクスを通じて移動し(畳み込み)ます。そして、計算された各内積が次の層でインプットとして利用されます。 

フィルタの初期値はランダム化されていて、最初の畳み込みはトレーニング段階として動作するため、初期出力はあまり役に立ちません。しかし、畳み込みを繰り返すたびに、畳み込みニューラルネットワークが損失関数を利用して自動的にこれらの値を調整し、学習の進行とともにフィルタの調整を継続します。そして、フィルタを調整することにより、画像のエッジや曲線、テクスチャーなどのパターンや特徴を識別できるようになります。損失関数を実装するためには、アノテーションを付与した学習データの形で、正しいアウトプットの例を畳み込みニューラルネットワークに提供する必要があります。転移学習を利用できない場合、多くの畳み込みニューラルネットワークは、膨大な量のアノテーション付きデータを必要とします。

 

畳み込みニューラルネットワークが苦手とする分野

畳み込みニューラルネットワークは、視覚データや不連続データの解析に優れています。しかし、個々の画像の連続である動画やひとまとまりのテキストなど時系列的な情報を解釈するのは苦手です。

固有表現抽出は、連続データの異なる部分が互いにどのように影響を与え合うかを示すとても良い例です。文の中で固有表現の前後に来る語は、テキスト分類方法に直接的な影響を与えます。文などの時系列データまたは連続データを処理する際は、過去のデータや連続データ内の「未来のデータ」から学ぶよう設計されたアルゴリズムを使用する必要がありますが、再帰型ニューラルネットワークはそれを実行することが可能です。

 

再帰型ニューラルネットワーク(RNN)

再帰型ニューラルネットワーク(RNN)は、時系列情報または連続した情報を解釈するために設計されたネットワークです。RNNは、連続データ内の他のデータポイントを利用して、より良い予測を行います。入力に対して、連続データ内の前後のノードの活性化関数を再利用して出力を生成します。再帰型ニューラルネットワークは、テキスト生成や画像のキャプション、作曲、株価予測などに利用されています。

再帰型ニューラルネットワークの構造。colah.github.ioより。

 

畳み込みニューラルネットワークと再帰型ニューラルネットワークについて簡単にご紹介した本記事が、二種類のニューラルネットワークの違いを理解する上でお役に立てれば幸いです。時系列データまたは連続データを処理する能力が主な違いの一つですが、ネットワーク自体の構造や活用事例も大きく異なります。 

 

LionbridgeのAI学習データサービスについて

AI向け教師データの作成やアノテーションのサービスを提供し、研究開発を支援しています。世界の各タイムゾーンを渡る、100万人のコントリビューターが登録されており、大規模なAIプロジェクトも素早く仕上げることができます。お問い合わせ・見積もりはこちらから。

ディープラーニング向けの学習データを提供いたします

メディア掲載結果

AI・機械学習の最新情報を配信中

Lionbridge AIのブログで紹介している事例記事やトレンドニュースといったビジネスに役立つ情報はもちろん、オープンデータセット集なども合わせてメール配信しております。