ホーム Topics 畳み込みニューラル・ネットワークとは 畳み込みニューラル・ネットワークとは
IBMのニューラル・ネットワーク・ソリューションはこちら AI関連の最新情報を購読する
以下のクラウド、円グラフ、グラフのピクトグラムのコラージュを使用したイラスト
畳み込みニューラル・ネットワークとは

畳み込みニューラル・ネットワークは、イメージ分類や物体認識のタスクに3次元データを使用します。

ニューラル・ネットワークは機械学習のサブセットであり、ディープ・ラーニング・アルゴリズムの中核をなしています。それらは、入力層、1つ以上の隠れ層、および出力層を含むノード層で構成されます。各ノードは他のノードに接続され、順番としきい値が関連付けられています。個々のノードのいずれかの出力が、指定されたしきい値を超えると、そのノードがアクティブ化されて、ネットワークの次の層にデータが送信されます。それ以外の場合、データはネットワークの次の層に渡されません。

この記事では主にフィードフォワード(順伝播型)のネットワークに焦点を当てましたが、ニューラル・ネットワークにはさまざまなタイプがあり、ユースケースやデータの種類によって使い分けられます。例えば、回帰型ニューラル・ネットワークは自然言語処理や音声認識によく使われるのに対し、畳み込みニューラル・ネットワーク(ConvNetもしくはCNN)は分類やコンピューター・ビジョンのタスクによく使用されます。CNNが登場する前は、イメージ内のオブジェクトを識別するために、手作業で時間のかかる特徴抽出手法が使用されていました。しかし現在、畳み込みニューラル・ネットワークは、イメージ内のパターンを識別するために線形代数、特に行列乗算の原理を活用し、イメージ分類やオブジェクト認識のタスクに対してよりスケーラブルなアプローチを提供しています。とはいえ、計算負荷が高くなる可能性があるため、モデルのトレーニングにはグラフィック処理装置(GPU)が必要となります。

AIのためのデータ・ストア

データレイクハウス戦略をデータ・アーキテクチャーに統合することで、AIの拡張やコスト最適化の機会など、そのパワーを実感してください。

関連コンテンツ

データリーダー向けガイドを読む

畳み込みニューラル・ネットワークの仕組み

畳み込みニューラル・ネットワークは、イメージ、音声、オーディオ信号入力に対する優れた性能によって、他のニューラル・ネットワークと比べて際立った存在となっています。レイヤーには主に次の3つのタイプがあります:

  • 畳み込み層
  • プーリング層
  • 全結合(FC)層

畳み込み層は畳み込みネットワークの最初の層です。畳み込み層の後に、追加の畳み込み層やプーリング層が続くこともありますが、全結合層が最後の層になります。層が増えるごとにCNNは複雑さを増し、イメージのより多くの部分を識別できるようになります。以前の層は、色やエッジといった単純な特徴にフォーカスしていました。イメージ・データがCNNの層を通過するにつれて、オブジェクトのより大きな要素や形状が認識され始め、最終的に目的のオブジェクトが識別されます。

畳み込み層

畳み込み層はCNNの中核となる構成要素であり、計算の大部分がここで行われます。これには、入力データ、フィルター、特徴マップなどのいくつかのコンポーネントが必要です。入力が、3Dのピクセルのマトリックスで構成されるカラーイメージであると仮定します。これは、入力がイメージのRGBに対応する高さ、幅、奥行きの3つの次元を持つことを意味します。また、カーネルやフィルターとも呼ばれる特徴検出機構もイメージ受容野を移動して、特徴が存在するかどうか確認します。このプロセスが畳み込みと呼ばれます。

特徴検出機構はイメージのパーツを表す順番の2次元(2-D)配列です。フィルターのサイズはさまざまですが、一般的にはフィルターのサイズは3x3のマトリックスです。これによって、受容野のサイズも決まります。次に、フィルターがイメージの領域に適用され、入力ピクセルとフィルターの間の内積が計算されます。この内積は、出力配列に送信されます。その後、フィルターは1ストライドずつシフトし、カーネルがイメージ全体をスイープするまでこのプロセスを繰り返します。入力とフィルターの一連の内積から得られる最終出力は、特徴マップ、活性化マップ、または畳み込み特徴として知られています。

特徴検出器の重みは画像上を移動しても固定されたままです。これはパラメーター共有とも呼ばれます。重み値のようないくつかのパラメータは、バックプロパゲーションや勾配降下のプロセスを通じて、トレーニング中に調整されます。ただし、出力のボリューム・サイズに影響を与える3つのハイパーパラメーターがあり、これらはニューラル・ネットワークのトレーニングを開始する前に設定する必要があります。これらには以下が含まれます。

1.フィルターの数は出力の深さに影響します。例えば、3つの異なるフィルターがあれば、3つの異なる特徴マップが生成され、3つの深さができます。

2.ストライドは、カーネルが入力行列上を移動する距離、つまりピクセル数です。ストライド値が2以上になることはまれですが、ストライドが大きいほど出力は小さくなります。

3.ゼロパディングは通常、フィルターが入力画像に適合しない場合に使用されます。これは、入力行列の外側に位置するすべての要素をゼロに設定し、より大きい、または等しいサイズの出力を生成します。パディングには以下の3つのタイプがあります。

  • 有効なパディング:これはパディングなしとも呼ばれます。この場合、次元が一致しない場合、最後の畳み込みは削除されます。
  • 同じパディング:このパディングでは、出力層が入力層と同じサイズになります。
  • フル・パディング:このタイプのパディングは、入力の境界にゼロを追加することで出力のサイズを大きくします。

それぞれの畳み込み演算の後、CNNは正規化線形関数(ReLU)変換を特徴マップに適用し、モデルに非線形性を導入します。

追加の畳み込み層

前述したように、最初の畳み込み層に続いて別の畳み込み層を作ることができます。それを行うと、CNNの構造は階層化され、後の層が前の層の受容野内のピクセルを見ることができるようになります。例として、イメージに自転車が含まれているかどうかを判定しようとしていると仮定してみましょう。自転車はパーツの集合体と考えることができます。フレーム、ハンドル、ホイール、ペダルなどで構成されています。自転車の個々のパーツはニューラル・ネットワーク内で下位のパターンを構成し、そのパーツの組み合わせが上位レベルのパターンを表すことで、CNN内に特徴の階層が形成されます。最終的に、畳み込み層は画像を数値に変換して、ニューラル・ネットワークが関連するパターンを解釈して抽出できるようにします。

プーリング層

ダウンサンプリングとも呼ばれるプーリング層は、次元数の削減を行い、入力内のパラメーターの数を減らします。畳み込み層と同様に、プーリング演算は入力全体にわたってフィルターをスイープしますが、このフィルターには順番がない点が異なります。代わりに、カーネルは受容野内の値に集計関数を適用し、出力配列に値を適用します。プーリングには主に次の2つのタイプがあります:

  • 最大プーリング:フィルターが入力全体を移動するときに、最大値を持つピクセルが選択され、出力配列に送信されます。なお、このアプローチは平均的なプーリングと比べてよく使われる傾向にあります。
  • 平均プーリング:フィルターが入力全体を移動するときに、受容野内の平均値が計算され、出力配列に送信されます。

プーリング層では多くの情報が失われますが、CNNにとっても多くのメリットがあります。複雑さが軽減し、効率が高まり、過剰適合のリスクを抑えることができます。

全結合層

全結合層という名前は、それ自身を的確に表しています。前述したように、部分結合の層では、入力イメージのピクセル値が出力層に直接結合されていません。しかし、全結合層では出力層の各ノードが前の層のノードに直接結合されます。

この層は、前の層とそのさまざまなフィルターを通じて抽出された特徴に基づいて分類のタスクを実行します。畳み込み層とプーリング層は ReLu関数を使用する傾向がありますが、FC層は通常ソフトマックス活性化関数を利用して入力を適切に分類し、0から1までの確率を生成します。

畳み込みニューラル・ネットワークの種類

福島邦彦とYann LeCunは、それぞれ1980年の研究(ibm.com外部へのリンク)と1989年の「Backpropagation Applied to Handwritten Zip Code Recognition(バックプロパゲーションの手書き郵便番号認識への応用)」で、畳み込みニューラル・ネットワークに関する研究の基礎を築きました。さらに有名なのは、Yann LeCunがバックプロパゲーションを応用して、一連の手書きの郵便番号のパターンを識別して認識するニューラル・ネットワークのトレーニングに成功したことです。彼は1990年代を通じてチームとともに研究を続け、先行研究と同じ原理を文書認識に応用した「LeNet-5」を完成させました。それ以来、MNISTやCIFAR-10などの新しいデータ・セットやImageNet Large Scale Visual Recognition Challenge(ILSVRC)などのコンテストの導入により、さまざまなCNNアーキテクチャーのバリエーションが数多く登場しました。そのようなアーキテクチャーには、次のものがあります。

  • AlexNet(ibm.com外部へのリンク)
  • VGGNet(ibm.com外部へのリンク)
  • GoogLeNet(ibm.com外部へのリンク)
  • ResNet(ibm.com外部へのリンク)
  • ZFNet

一方、LeNet-5は古典的なCNNアーキテクチャーとして知られています。

畳み込みニューラル・ネットワークとコンピューター・ビジョン

畳み込みニューラル・ネットワークは、イメージ認識やコンピューター・ビジョンのタスクを強化します。コンピューター・ビジョンは人工知能(AI)の一分野であり、コンピュータやシステムがデジタル・イメージ、ビデオ、その他のビジュアル入力から意味のある情報を導き出し、それらの入力に基づいて行動を起こすことを可能にします。この推奨提案機能は、イメージ認識のタスクとは区別されます。このコンピューター・ビジョンの一般的な応用例としては、以下のようなものがあります:

  • マーケティング:ソーシャル・メディア・プラットフォームでは、プロフィールに投稿された写真によって写っている可能性のある人物を提案してくれるため、フォト・アルバム内の友人を簡単にタグ付けできます。
  • ヘルスケア:コンピューター・ビジョンが放射線技術に組み込まれており、医師が健康な人体構造内の癌性腫瘍をより適切に識別できるようになりました。
  • 小売:ビジュアル検索が、いくつかのEコマース・プラットフォームに組み込まれており、手持ちの衣服を補完するアイテムをブランドが推奨できるようになりました。
  • 自動車:自動運転車の時代はまだ完全には到来していませんが、その基礎となる技術は自動車に搭載され始めており、車線検出機能などを通じてドライバーと同乗者の安全性を向上させています。
関連ソリューション
IBM SPSS Neural Networks

IBM SPSS Neural Networksは、複雑な関係を発見し、データからより大きな価値を引き出すのに役立ちます。

IBM SPSS Neural Networksの詳細はこちら
IBM Watson Studio

信頼性の高いAIを、あらゆるクラウド上で構築、拡張します。ModelOpsのためのAIライフサイクルを自動化します。

IBM Watson Studioの詳細はこちら
参考情報 Pythonによる畳み込みニューラル・ネットワーク

Pythonを使って、手書きの数字を分類する簡単なネットワークを実装します。

畳み込みニューラル・ネットワークの紹介

畳み込みニューラル・ネットワークを作成するためのさまざまな手順を紹介します。

二重畳み込みニューラル・ネットワーク

本稿では、IBMの研究により、二重畳み込みニューラル・ネットワーク(DCNN)によってCNNのパフォーマンスを大幅に向上できることを提案しています。

ディープ・パート・エンベッディングを使用した畳み込みニューラル・ネットワークの学習

IBMの研究者は、さまざまなクラスの新しい畳み込みニューラル・ネットワーク(CNN)を学習するために使用できるディープ・パート・エンベッディング(DPE)の新しい概念を提案しています。

PythonでYOLOv8の物体検知モデルをトレーニング

事前トレーニング済みの物体検知モデルをチューニング

次のステップ

AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、デプロイしましょう。わずかなデータ、わずかな時間でAIアプリケーションを構築できます。

watsonx.aiの詳細はこちら デモの予約