ディープラーニングによる光学検査の自動化
第 3 章
ディープニューラルネットワークの構築と学習
六角ナットの (自主) 検査/評価の例では、畳み込みニューラル ネットワーク (CNN) の学習を行います。
CNN は、「ディープ」ニューラル ネットワークの一種で、画像のような構造をもつデータを直接処理することができます。また、入力層、いくつかの隠れ層、および出力層から構成されています。これらの層は、ノード (ニューロン) を介して相互接続されています。
以下は、CNN を単純化したものです。
データがネットワークを通過すると、いくつかの層 (畳み込み、reLu、プーリング) は画像から特徴量を抽出・学習し、ソフトマックス層で分類されます。
ネットワークの学習を行う 2 つの方法
ディープニューラルネットワークをゼロから学習させる方法と、事前学習済みのネットワークを微調整する方法があります。
ゼロから学習させる
この方法では、得られる結果の精度が最も高くなりますが、難易度が最も高い方法でもあります。新しいアプリケーションや、出力カテゴリが多いアプリケーションに適していますが、膨大な量のデータやディープラーニングの専門知識が必要であるため、ほとんどのケースでは 2 つめの方法が使用されています。
事前学習済みのネットワークを微調整する
この方法では、転移学習を使用します。これは、AlexNet や GoogLeNet のような既存のネットワークを利用して、もともとこれらのネットワークにはなかったクラスを含む新しいデータを追加するというものです。ネットワークの調整が完了したら、新しいタスクを実行できます。
転移学習は、ゼロから学習させるよりもはるかに高速で簡単です。さらに、必要なデータが非常に少なくて済むという利点もあります (数百万ではなく数千の画像)。
実験マネージャー
実験マネージャーアプリでは、さまざまな条件でネットワークを構築・学習し、その結果を比較できます。たとえば、以下を行うことができます。
- ハイパーパラメーターを広範にスイープする
- さまざまなデータセットを使用した結果を比較し、ネットワークを学習させる
- 同一の学習データセットを複数のネットワーク上で再利用することによって、さまざまなアーキテクチャをテストする
実験マネージャーには、学習プロットや混同行列などの可視化ツールや、実験結果を絞り込むためのフィルターが用意されています。