CNNが画像の特徴を自動的に抽出できる理由

CNNが画像の特徴を自動的に抽出できる理由

1. はじめに

従来の機械学習のシナリオのほとんどでは、まず特徴エンジニアリングなどの方法を通じて特徴表現を取得し、次にトレーニング用の機械学習アルゴリズムを選択します。トレーニングプロセス中、物事を表す特徴は固定されます。

その後、ディープラーニングが登場しました。ディープラーニングが外部に推奨する非常に重要な点は、ディープラーニングは特徴を自動的に抽出できるということです。 DNNからディープラーニングを理解し始めると、「ディープラーニングは特徴を自動で抽出できる」ということに戸惑うでしょう。しかし、CNNからディープラーニングを理解し始めると、「ディープラーニングは特徴を自動で抽出できる」ということが自然に理解できるようになります。

2. 特徴抽出

CNN ネットワークには主に 2 つの演算子があり、1 つは畳み込み層、もう 1 つはプーリング層です。ほとんどの人にとって、プーリング層を理解するのは難しくありません。プーリング層は、スライディング ウィンドウをスライドさせ、スライディング ウィンドウ内の値を合計または平均化するだけです。ほとんどの人は、次の図を見て畳み込み層を理解します。畳み込み層はスライディング ウィンドウをスライドさせ、スライディング ウィンドウ内で畳み込み演算を実行します。

CNN の畳み込み層とプーリング層がどのように動作するかを理解しても、CNN がどのように動作するかについての洞察が自動的に得られるわけではありません。まだ疑問が残ります。なぜ CNN の畳み込み層はこのようになっているのでしょうか? Lecun は CNN の畳み込み層を設計する際に何を考慮したのでしょうか?

この問題を理解するために、まず「画像の特徴を抽出するための最もシンプルなアイデアは何でしょうか?」という質問について考えてみましょう。問題を単純化するために、白黒画像内の文字が A か X かを分類します。

2 つの間の明確な違いは、A の上部のパターンです。

画像内で A の上部のパターンを抽出できる場合、画像内の文字は A です。抽出できない場合、画像内の文字は X です。画像に A のトップ パターンが含まれているかどうかを抽出するために、画像内で A のトップ パターンをスライドさせ、セグメント化されたローカル画像と A のトップ パターンの内積を計算します。下の図は、画像Aの部分1と2から切り出された局所画像とAの上部パターンの内積を示しています。

図によれば、A の画像のパート 1 は文字 A の上部であり、内積は 4 です。パート 2 は A の上部ではないため、内積は 1 のみです。図AのスライドAをトップモードにすると、結果は

次に最高値を取得し、最終結果は 4 になります。つまり、トップパターンを含む画像の「傾向」または「可能性」は 4 であると言えます。特徴を抽出しました。

X 画像に対して同じ操作を実行すると、結果は 3 になります。この結果は、X の交差から得られます。

ここで、画像内のスライドする A の上部のパターンは、実際には CNN の畳み込み層が行うことであり、A の上部のパターンは畳み込みカーネルであることがわかります。同時に、内積結果の最大値を取ることは、最大プーリング層の操作です。つまり、CNN は畳み込み層とプーリング層を使用して、最も単純な画像特徴抽出方法を実装します。もちろん、現実世界の CNN ははるかに複雑です。1) 現実世界の画像と畳み込みカーネルには複数のレイヤーがあります。これは理解しやすいです。画像が多層化されている場合、ローカルパターンも多層化される必要があり、畳み込みカーネルも当然多層化されます。 2) 現実世界の CNN は畳み込み層とプーリング層で構成されているのではなく、畳み込み層が複数層あります。これは理解しやすいですね。このとき、ローカルパターンは複数の連続した畳み込みカーネルによって表現されます。

3. 自動学習

上記の説明から、CNN モデルが畳み込み層とプーリング層を使用して画像の特徴を抽出する方法がわかりました。重要なのは、畳み込みカーネルが画像内のローカル パターンを表すことです。もう一度、上の例を見てみましょう。A のトップモードの畳み込みカーネルがわかっており、それを選択します。

しかし、現実世界ではそうすることはできません。大規模な画像ライブラリの場合、どのローカルパターンが効果的かはわかりません。たとえローカルパターンを選択した場合でも、それはあまりにも特殊であり、反一般化可能性を失ってしまいます。では、この問題にどう対処すればいいのでしょうか。つまり、畳み込みカーネルの値をどのように決定すればよいのでしょうか。

ここでは、有名な勾配逆伝播アルゴリズムについて説明しなければなりません。最初に、畳み込みカーネルのパラメータをランダムに初期化し、次に勾配逆伝播アルゴリズムに基づく最適化アルゴリズムを通じて畳み込みカーネルの値を適応的に調整し、モデル予測値と真の値の間の誤差を最小限に抑えます。このようにして得られた畳み込みカーネルのパラメータは直感的ではないかもしれませんが、特徴を効果的に抽出し、モデル予測値と真の値の間の誤差を最小限に抑えることができます。問題を単純化するために、単層画像を例として使用します。たとえ単層画像に簡略化したとしても、畳み込み層とプーリング層の勾配を計算するのは依然として困難です。さらに視覚化するために、畳み込み層を、勾配の計算が容易な複数の単純な線形演算子に分解し、プーリング層を、勾配の計算が容易な複数の単純な演算に分解します。

畳み込み層とプーリング層を分解すると、勾配を計算するための次の一連の式を簡単に得ることができます。

プーリング層自体にはパラメータがなく、勾配を返すだけで済みます。ここで、*** プーリング層に注意する必要があります。*** 操作はウィンドウ内の *** 値を選択します。これは連続関数ではないため、導関数 (勾配) は存在しません。仮定

つまり、行列xのi行j列目の値が***の場合、

もう一つの問題は、畳み込み層の勾配をどのように見つけるかということです。畳み込みを表すためにconv(xx,ww)conv(xx,ww)を使用し、conv(xx,ww)i,jconv(xx,ww)i,jは畳み込み結果のi行j列目を表し、xconv−i,jxconv−i,jは畳み込み結果のi行j列目を生成するために使用されるローカルイメージを表します(つまり、xconv−i,j⋅ww=conv(xx,ww)i,jxconv−i,j⋅ww=conv(xx,ww)i,j)。畳み込みカーネルパラメータの勾配は、次の式を使用して計算できます。

では、勾配をどのように戻すのでしょうか。下の図に示すように、まず画像サイズの行列を表す δ(i,j)δ(i,j) を定義し、i 行目と j 列目の畳み込み結果の画像領域を畳み込みカーネルパラメータで埋め、その他の領域は 0 にします。

この時点で、返される勾配の式が得られます。

4. まとめ

畳み込みカーネルを使用して画像のローカルパターンを特徴付けることにより、CNN は画像の特徴を抽出できます。勾配逆伝播アルゴリズムを使用することで、CNN は各畳み込みカーネルのパラメータを決定し、画像の特徴を自動的に抽出できます。このように考えると、「ディープラーニングは特徴を自動で抽出できる」ということが自然に理解できるはずです。

CNNなどのディープラーニングモデルが特徴を自動的に抽出することがなぜそれほど重要なのでしょうか?まずはペドロ・ドミンゴス[1]の「機械学習の本質とは何か?」という講演から始めましょう。ペドロ・ドミンゴス[1]は次のように主張している。

表現とは、関連する特徴をどのように表現するかを指し、特徴エンジニアリング、特徴演算子、特徴の組み合わせなどの問題が含まれます。目標とは、モデルに学習させたい内容を指し、問題のモデリングと目的関数が含まれます。最適化とは、勾配降下法、確率的勾配降下法、進化的コンピューティングなどの最適化アルゴリズムを使用してモデルを計算する方法です。従来の機械学習のシナリオのほとんどでは、表現とターゲットは分離されています。最適化アルゴリズムを使用して目標を達成するプロセスでは、物事を表現する特徴は固定されており、目標と最適化のフィードバックに応じて適応的に調整されることはありません。

ニューラル ネットワーク、またはディープ ニューラル ネットワークは、表現とターゲットを組み合わせて「共同学習」を行います。ディープラーニング モデルのトレーニング プロセス中に、機能関連のパラメーター (CNN 畳み込みカーネルのパラメーターなど) は、目的と最適化されたフィードバック (勾配) に応じて適応的に調整できます。特徴は適応的に調整することができ、ディープラーニングは深く階層化された特徴表現システムを確立することができます。

参考文献

[1] ドミンゴス、ペドロ。「機械学習について知っておくべきいくつかの有用な事柄」Communications of the ACM 55.10(2012):78-87。

【編集者のおすすめ】

  1. Keras または TensorFlow?プログラマーはディープラーニングフレームワークをどのように選択すべきでしょうか?
  2. AIの原動力となるディープラーニング
  3. フロントエンドエンジニアは、これらの18のトリッ​​クをマスターすることで、ブラウザでディープラーニングを習得できます
  4. 人工知能がボトルネックに到達しました!学者らが「共同で」ディープラーニングに反対し、AIの今後の発展方向を指摘
  5. 不正行為防止スパムテキスト認識のためのZhihuのディープラーニング実践の詳細な説明
[編集者:パン・グイユ TEL: (010) 68476606]

<<:  シェア | Meituanのディープラーニングシステムのエンジニアリング実践

>>:  クック:人工知能が本当に知的であるためには、人間の価値観を尊重しなければならない

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

25年間の素晴らしい実績! MITの科学者はコンピューターに創造性を与え、ロボットの形状を自動設計させる

階段を登れるロボットが必要になったとしたら、このロボットはどのような形状であるべきでしょうか?人間の...

中国チームが世界初のAI全自動設計CPU「Enlightenment 1」を発表:人間の介入なし、性能は486に匹敵

6月30日、「半導体産業展望」の報道によると、中国科学院計算技術研究所などの機関がAI技術を活用し、...

AIデザイナー「ルバン」のコア技術が明らかに:1秒間に8,000枚のポスターをデザインする方法とは?

[[228895]] AI は囲碁のゲームを変え、今度はポスターのデザインを変えています。アリババ...

AIの「ショートカット」がシミュレーションを数十億倍高速化

[[314916]]シミュレーターは、NASA がエアロゾル モデルを使用してオーストラリアの火災に...

人工知能の波で私たちは職を失うのでしょうか?

[[200388]]概要: 私たちの仕事が機械に置き換えられるのはいつでしょうか? 最も危険な仕事...

AIは私たちが何を見て、何を考えるかを静かにコントロールしている

私たちの日常生活では、携帯電話のさまざまなアプリにますます依存するようになっています。外食時にレスト...

...

Pythonで簡単な顔認識を実装すると、私はこの星にとても似ていることが判明しました

近年、人工知能の人気が急上昇しており、画像認識、音声認識、機械翻訳、自動運転車など、AI の能力と威...

2020年のディープラーニング開発のレビュー

近年の傾向に倣い、ディープラーニングは 2020 年も最も急速に成長している分野の 1 つであり続け...

ロボット: 何を見ているんですか?人間とロボットのアイコンタクトが意思決定を遅らせる、サイエンス誌に掲載

あなたがロボットを見つめると、ロボットもあなたを見つめます。視線は人と人との間のシグナルであり、コミ...

深海か青い海か?自律型水中ロボットが急速に発展

科学技術の継続的な発展と革新が生産性の継続的な進歩を推進しています。産業革命以来、機械化された作業は...

JavaScript: ソートアルゴリズムとコード実装のトップ 10

この記事の内容には、(双方向) バブル ソート、選択ソート、挿入ソート、クイック ソート (穴埋めと...

自動運転車の未来に関するレポート:乗用車の95%が消滅し、7兆ドルの旅行市場に4つの大きなチャンスがある

[[199334]]自動運転車は20年以内に世界経済を劇的に変え、保険、メディア、セキュリティ、物流...

ワンクリックでコード化からコード化なしに変更できますか? AIブラックテクノロジーは本当にモザイクを除去できるのか?

モザイクは人々に嫌われており、「モザイクは人類の文明の進歩を妨げる」という諺が生まれたほどです。映画...

情報格差を打破せよ!大規模モデル向けの驚異的な 3D 視覚化ツールです。

最近、ニュージーランド出身のブレンダン・バイクロフトという男がテクノロジー界で大流行を巻き起こしてい...