近年注目を集めるディープラーニング技術のひとつに「CNN(畳み込みニューラルネットワーク)」というアルゴリズムがあります。画像認識に優れた技術で、画像の一部からでも全体を予測・認識できる特徴から、近年では自動車・医療診断・顔認証など、さまざまなシステムで活用が進んでいます。
本記事では、CNNとは何か、RNNやDNNとの違い、仕組みや活用事例について解説します。とくに社内で画像認識システムの実装を検討されている方は、ぜひ本記事を参考にしてください。
CNNとは

CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)とは、画像認識や映像解析などの分野で高い性能を発揮するディープラーニングのアルゴリズムの一種です。人間の視覚構造を模倣したニューラルネットワークであり、画像から特徴を抽出する能力に優れています。
従来までの機械学習では、画像認識を行う際に、人間が画像の特徴を抽出し、その特徴に基づいた「モデル」を構築する必要がありました。しかし、CNNでは畳み込み層とプーリング層と呼ばれる層が自動的に画像から特徴を抽出するため、人間が複雑な抽出を行う必要がなく、より高精度な認識が可能になりました。
CNNは、画像認識だけでなく、映像解析・音声認識・自然言語処理など、さまざまな分野で応用が進んでいます。とくに画像認識の分野では、人間の認識能力を超える精度を達成しており、医療・自動車・小売など、幅広い産業で活用されています。
「CNN」と「RNN」の違い
CNNとRNN(Recurrent Neural Network:回帰型ニューラルネットワーク)は、どちらもディープラーニングのアルゴリズムですが、得意とする分野が異なります。
CNNは、画像や映像などの空間的なデータ処理に優れており、画像認識や映像解析などの分野でよく用いられます。一方で、RNNは音声やテキストなどの時系列的なデータ処理に優れており、音声認識や自然言語処理などの分野でよく用いられます。CNNは畳み込み層とプーリング層を用いて画像から特徴を抽出しますが、RNNは再帰的な構造を用いて時系列データから特徴を抽出する点も違いのひとつです。
「CNN」と「DNN」の違い
DNN(Deep Neural Network:深層ニューラルネットワーク)は、多層のニューラルネットワークの総称であり、CNNもDNNの一種です。
DNNは全結合層と呼ばれる層を用いて、入力されたデータから特徴を抽出しますが、CNNは畳み込み層とプーリング層を用いて、画像から空間的な特徴を抽出します。つまり、CNNは画像認識に特化したDNNであると言えます。
CNNの仕組み

CNNは、主に下記3つの層から構成されています。
・畳み込み層
・プーリング層
・全結合層
畳み込み層
畳み込み層は、入力された画像から特徴を抽出する層です。フィルターと呼ばれる小さな行列を用いて、入力画像をスキャンし、1ピクセル→1ニューロンが対応するように結合され、特徴マップと呼ばれる画像を出力します。フィルターは画像のエッジや角などの特徴を検出するように設計されており、複数のフィルターを用いることで、さまざまな特徴を抽出することができます。
プーリング層
プーリング層は、畳み込み層で抽出された特徴マップを圧縮する層です。プーリング層では、特徴マップを小さな領域に分割し、各領域の代表値(最大値や平均値など)を抽出することで、特徴マップのサイズを小さくします。プーリング層を用いることで、特徴マップの位置ずれやノイズに対するロバスト性を高めることができます。
全結合層
全結合層は、畳み込み層とプーリング層で抽出された特徴マップを、最終的な出力に変換する層です。全結合層では、各ニューロンが前の層のすべてのニューロンと接続されており、入力された特徴マップから最終的な出力を計算します。全結合層は、従来のニューラルネットワークと同様の構造をしており、分類や回帰などのタスクに用いられます。
CNNの特徴

CNNは「局所受容野」と「重み共有」という2つの特徴を持っています。
局所受容野
局所受容野とは、人間が物体を見る際に持つ特徴のことです。通常、光の刺激が脳に達すると「単純型細胞(ある特定の形状に反応する細胞)」と「複雑型細胞(空間的な位置ずれを吸収し、同一形状と見なす細胞)」の2つのニューロンが反応しますが、CNNはこの2つの細胞を模倣して開発されています。
畳み込み層のフィルターが入力画像をスキャンする際に、小さな領域ごとに特徴を抽出するため、局所的な特徴を捉えることができます。これにより、画像の一部分が変化しても、全体的な認識結果に影響を与えにくくなります。
重み共有
重み共有とは、畳み込み層のフィルターが入力画像のすべての領域で共有される性質のことです。これは「ある位置での重要な特徴に関しては、別の位置でも重要である可能性が高い」という特徴を活用したものです。CNNでは、同じフィルターが入力画像のすべての領域をスキャンするため、同じ特徴を検出する際に、同じ重みを用いることができます。これにより、学習するパラメータの数を減らすことができ、学習の効率を高めることができます。
CNNの活用事例

CNNは、画像認識・映像解析・音声認識・自然言語処理など、さまざまな分野で活用が進んでいます。ここでは大手企業の事例を中心にご紹介します。
株式会社リクルート(ホットペッパービューティー)
リクルートテクノロジーズでは、以前より画像解析技術の調査/研究を進めており、同社のサービス「ホットペッパービューティー」における機能追加を実現しました。具体的には、CNNを活用した「①類似画像検索機能」と「②カラー検索機能」を実装。①では、閲覧しているネイル画像に似たネイル画像のレコメンドが可能になりました。また、②では①における色の割合を用いて、指定色の多い順に画像を提示することで、ユーザビリティの向上を実現しています。
その他にも、同サービスではカスタマー投稿における不適切画像の検出にCNNの技術を応用しています。セーフ/セクシャル/グロテスクの判定を2段階に分けて実施し、高精度な判別を実現。90%以上の精度で不適切画像を検出できています。
同社では、本取り組みを通じてCNNが実用レベルで通用することを実感し、今後さらなる横展開を見据えて実施していくようです。
Google合同会社
検索エンジン「Google」では、CNNを活用し、画像説明のキャプションを自動的に生成できるようになりました。具体的には、画像内のオブジェクトを分類するように学習されたCNNを活用し、各オブジェクトが画像内に存在する確率を割り当てることで、精度の高いキャプション生成を実現しています。
この実現により、同社では視覚障がいを持つ方でも写真を理解できるような検索環境の整備や、モバイル接続が遅い地域での画像提供(代替テキストの提供)を実現するなど、誰もが使いやすい検索環境に向けた取り組みを進めているようです。
株式会社デンソーテン
株式会社デンソーテンでは、自社で保有するAIモデル(CNN)を活用し、ドライブレコーダーに写った画像から、車両と信号を検出する物体検出と、状況判断を行うアルゴリズムを開発しました。
物体検出においては「追従処理」という仕組みを採用し、車間距離から物体の位置を特定し、時系列から割り出した予測位置から「距離の誤差」や「未検出」を抑制し、ズレの少ない高精度な検知を実現しています。また、状況判断においては、車と信号の相対位置の変化から信号無視を特定するなど、市場を想定した状況判断ロジックの構築を行っています。
このような取り組みを通じて、車間距離検知と信号無視検知の機能をSoC(システムオンチップ)に搭載し、今後さらなる性能改善や機能拡張に向けて活用を進めていくようです。
参照:通信型ドライブレコーダ向けAI/画像認識技術の開発 | DENSO TEN Technical Review | デンソーテン
パナソニック コネクト株式会社
パナソニック コネクト株式会社は、自治体・警察・インフラなどのさまざまな業界に向けて、顔認証技術を活用したシステムを提供しています。
同社のシステムは「CNN」と「Transformer」を融合させたアーキテクチャで構築されているのが特徴です。一般的にCNNは、高い精度で本人確認は行えますが、顔の向きが変化すると対応が難しいと言われています。一方で、Transformerは顔の向きが変化しても対応できますが、本人確認の精度はやや低いと言われます。そのため、同社では2つの技術を融合させることで、環境変動や経年変化にも強い顔認証技術を実現させました。
また、深層学習技術の軽量化に取り組むことで、認証速度の向上にも取り組んでいます。利用者に配慮したUXデザインが評価を受け、同社のシステムは1日あたり約30万回以上の頻度で使われているようです。
参照:CNNとTransformerを独自に融合、環境変化に強い世界1位の顔認証を支える技術:人工知能ニュース(1/2 ページ) - MONOist
国立がん研究センター
理化学研究所と国立がん研究センターの共同研究チームは、CNNを活用し、早期胃がんを発見することに成功しました。通常、早期胃がんは進行性胃がんや大腸がんなどと比べて判別が難しく、内視鏡画像検査でも発見が難しいという課題がありました。また、ディープラーニングに必要十分な学習データ(数十〜数百万枚の画像データ)の手配も困難と言われています。
しかし、同チームでは限られた画像データの中から小領域を切り出し、データ拡張技術を駆使して画像データを36万枚まで増産。学習データとして活用することで、陽性的中率は93.4%、陰性的中率は83.6%の高精度の画像認識を実現しました。さらに、早期胃がんの有無だけでなく、その領域まで検出することにも成功しています。
今後は理研の科学技術ハブ推進本部と提携し、大量の医療データを自動収集することで、学習データに反映する仕組みを構築していくようです。この仕組みが実現されれば、検出精度がさらに高まり、臨床現場での実用化まであと一歩となることが期待されます。
参照:AIで早期胃がん領域の高精度検出に成功|国立がん研究センター
本田技研工業株式会社
本田技研工業株式会社(ホンダ)は、AIを活用し、感性を定量評価する手法を開発しました。同社では、外装デザインなどの定性的な部分は燃費や機能などと異なり、定量評価が難しいという課題を感じていました。そこで、国内8社が販売する市販車の画像(計9,400枚)を集め、デザインがどのように評価されているのかを学習するアルゴリズムを考案。具体的にはCNNを使い、画像データから特徴を抽出し、独自の自然言語処理技術で感性的なワードをタグ付けすることで、学習データとして集計することを実現しました。
この結果、新車開発の外装デザインにおいて、顧客からの反応を予測し、90%の精度で定量評価することに成功しています。今後は、学習データを追加したり、ノイズとなるデータを排除することで、さらに精度を上げていくようです。
参照:ホンダが感性評価アルゴリズムをAIで開発 クルマの外装デザイン評価を自動推定
CNNを活用するメリット

CNNを活用する最大のメリットは、画像認識精度の高さです。画像内にある複雑なパターンから特徴を抽出し、的確な分類ができるのは、従来までの技術では実現できなかったものです。人間の認識能力を超える精度で画像認識を行えるため、実際にさまざまな分野で活用が進んでいます。
また、先述した「局所受容野」の特性から、画像の一部が隠れていても正確な認識ができることもポイントのひとつです。実運用の場面では、画像のすべてを読み取れるわけではないため、実用向きの技術ともいえます。また、CNNは「重み共有」という特徴により、学習するパラメータの数を減らすことができるため、メモリの要件も低くなり、リソースが限られた環境での導入も可能となります。
CNNを活用するデメリット/懸念点

CNNにはさまざまなメリットがありますが、活用するにあたっては下記のようなデメリットや懸念点にも注意をする必要があります。
・過学習のリスクがあること
・大量の学習データが必要になること
CNNは、大量のデータを用いて学習することで高い精度を実現しますが、データ量が少ない場合には「過学習(オーバーフィッティング)」と呼ばれる現象が発生し、未知のデータに対する認識精度が低下する可能性があります。過学習とは、事前の学習データを汲み取り過ぎた結果、それ以外の予測がうまくできなくなる状態のこと。主に、学習データが不足していることや偏ったデータを学習していることから生まれる問題です。
過学習の対策として、一般的には「正規化」や「ドロップアウト」といった方法がありますが、前提として大量の(偏りのない)学習データを用意することが重要です。言い換えれば、CNNの活用には一定以上の学習データが必要になるともいえます。また、複雑なモデルのため、学習には一定の時間がかかることも注意点として挙げられます。
まとめ

CNNは、画像認識の分野で高い性能を発揮するディープラーニングのアルゴリズムのひとつです。「局所受容野」と「重み共有」という特性から、実運用でも問題ないレベルの実装が可能です。実際に自動車・医療診断・顔認証など、各分野では実運用に向けた取り組みが行われています。このように、CNNを活用することで高精度な画像認識が可能になり、私たちの生活はより豊かなものになります。
一方で、CNNには過学習のリスクがあることや大量のデータが必要になることなど、さまざまなデメリットや懸念点も存在します。とくに画像認識の分野では、ひとつのミスが大きなトラブルに繋がりかねないため、取り扱いには注意が必要です。
このように、CNNの導入には高度なIT技術や経験が求められます。学習させるデータや環境に問題はないかなど、初期の設計段階から重要になるため、専門の支援会社に依頼をするのがおすすめです。
株式会社オルツでは、パーソナル人工知能を中心としたAI活用やDX推進を支援しています。課題のヒアリングからコンサルティング、実証実験まで一気通貫で行うほか、実際の開発や運用などの技術的な支援も可能です。少しでもご興味のある方は、下記のお問い合わせフォームからお気軽にご連絡ください。