ebook

第 1 章

パターン認識にディープラーニングを利用すべき理由


ディープラーニングは、データ内のパターンを見つけるためのモデルの開発に使用されますが、これを実行する方法は他にもあります。この章では、なぜ他の手法ではなくディープラーニングを選択すべきなのかについて詳しく説明します。

dl-engineers-ebook-ch1-model-training-daisy

一度学習させたモデルは、ラベル付けされていないデータを入力しても、学習時に取り込んだ情報をもとに、最も適したラベルを適用します。

セクション

パターン認識

以下は、パターン認識の 2 つの簡単な例です。1 つは線形回帰を使用してセンサーデータの経時的な傾向を判断し、もう 1 つはk-means アルゴリズムを使用してデータを類似のグループにクラスター化しています。

dl-engineers-ebook-ch1-linear-reg-k-means

ディープラーニング以外の手法の多くが持つ利点は、ロジックがより理解しやすいことと、比較的単純で少ない量のデータを使用することです。ディープ ニューラル ネットワークを学習させる場合に、それが機能する理由を説明するのは難しく、ネットワークの学習には質の高いラベル付きデータがより多く必要となります。これを踏まえると、なぜ別の手法ではなくディープラーニングが選択されるのでしょうか。理由の 1 つは、ディープラーニングが大きな解空間の中から極めて複雑なパターンを検出することに適しているためです。

例として、画像内の特定のオブジェクトを検出してラベル付けし、オブジェクトの追跡や位置推定を行う場合や、ハードウェアの欠陥や素材の損傷がないか目視点検する場合などが挙げられます。

dl-engineers-ebook-ch1-raw-data-identified-pattern
dl-engineers-ebook-ch1-concrete-damage

上の例では、パターンは、歩行者や欠けたコンクリートなどを表す特定のピクセルの組み合わせです。これらは複雑なパターンであり、インスタンスごとに大きく異なる場合もあれば、他のパターンとほとんど区別がつかないほど微妙に変化する場合もあります。このため、選択したアルゴリズムは、こうした複雑なパターンの分類だけでなく、非常に大きな解空間での分類が必要になります。

画像以外のデータにも複雑なパターンが存在します。オーディオ信号では、話し言葉 (発声単語) を認識したり、数秒の楽節から曲を識別したりする必要があります。

また、時系列信号には、予知保全アプリケーションや生物医学業界にあるような複雑なパターンもあります。

パネルナビゲーション

ディープラーニングを使用した時系列予測

長・短期記憶 (LSTM) ネットワークを使用して時系列データを予測します。

パネルナビゲーション

長・短期記憶ネットワークを使用した ECG 信号の分類

PhysioNet 2017 Challenge からの心拍心電図 (ECG) データをディープラーニングと信号処理を使用して分類します。

パネルナビゲーション

ウェーブレット解析とディープラーニングを使用した時系列の分類

連続ウェーブレット変換 (CWT) と深層畳み込みニューラル ネットワーク (CNN) を使用して人間の心電図 (ECG) 信号を分類します。

上記のケースでは、その複雑度と解が存在する範囲の広さから、人間が自分でロジックを作成して管理しなければならないルールベースのアプローチを考えることは困難です。こうした場合に、ディープラーニングはより優れたアプローチになります。

注: 本 ebook の例では、データに離散ラベルを適用する「分類」を中心に説明しています。ただし、モデルの出力が離散ラベルではなく連続値である「回帰」も、ディープラーニングに使用できます。回帰用の畳み込みニューラル ネットワーク (CNN) の学習についてはこちらを参照してください。

ディープラーニングでは、ディープ ニューラル ネットワークを用いて、入力データと出力分類の関係をモデル化します。本章ではニューラル ネットワークの詳細については説明しませんが、単純に捉えるなら、ネットワークとは、データに対してそれぞれ特定の操作を実行する一連の層です。初期の層では大きなパターン内に存在する小さな特徴を検索し、以降の層ではそうした特徴の組み合わせを調べて、データに最も適したラベルを決定するという傾向があります。

dl-engineers-ebook-ch1-model-training-car
セクション

パターン定義に役立つ特徴とは

ディープラーニングの利点と、特徴の識別がより大きなパターン認識にどう役立つかを理解するために、加速度データからハイタッチを認識できるアルゴリズムを開発する必要がある場合を考えてみましょう。

下の画像では、プロットは 3 種類の腕の動きに対する加速度のパターンを示しています。中央のプロットがハイタッチです。では、ハイタッチのパターンを他に想定される腕の動作と区別するアルゴリズムの開発には、どのように取り組めばいいでしょうか。

すべての特徴が既知の場合

まず行うことは、この問題に対するシンプルなルールベースのアプローチを検討することかもしれません。1 つの解決策として考えられるのは、既知のハイタッチ プロファイルを使用して、センサーから連続して入力される加速度の測定値とパターンマッチングさせることです。たとえば、2 つの信号間の標準偏差を調べて、偏差が一定のしきい値以下になった場合に「ハイタッチ」と表示するといった関数です。

しかし、このアプローチの難しい点は、どのハイタッチも同じではないということです。人によって、手をより速くまたは遅く動かしたり、手のひらを打ち合わせる直前に一瞬止めたり、変わったやり方でハイタッチをしたりすることもあります。仮に代表的なプロファイルを複数用意できたとしても、こうしたアプローチでは、まだ認識したことがないハイタッチ動作には対応できない可能性があります。さらに、ハイタッチを確実にとらえようとプロファイルを増やしすぎたり、標準偏差のしきい値を引き上げたりすると、該当しない動作に誤ってハイタッチとラベル付けしてしまう危険性もあります。

より賢明なアプローチは、バリエーションが無数に存在するパターン全体を対象にするのではなく、どのハイタッチにも共通する小さな特徴を探せばよいと理解することです。

明示的にデータを収集していない新しいハイタッチが見られた場合であっても、「低速-低速-高速」という加速の組み合わせはハイタッチだと主張することができるかもしれません。たとえば下の図のハイタッチの場合、見た目は違っても、同じように「低速-低速-高速」という加速の特徴を示しています。

dl-engineers-ebook-ch1-high-five-graph-comparison

小さな特徴を探し、それがいつ、どの順番で現れるかを確認することで、単純なフルパターンのマッチング アルゴリズムよりも優れたルールベースの分類器を設計できます。

このようなルールベースの分類器の難しい点は、正しく分類するために必要な最適な特徴を確実に定義するには、探すべきパターンを熟知している必要があるということです。また、背の低い人、内気な人、文化の差など、アルゴリズムに意図せずに偏りが生じないよう、すべてのバリエーションに確実に対応している必要もあります。複雑なパターンの場合には、手作業では時間がかかり、対処が不可能なこともあります。

すべての特徴が既知ではない場合

ディープラーニングはこのような問題の解決に有効です。パターンの特徴は、直感的でなくても、設計者が明示的に定義しなくても、自動的に学習されます。このため、データ内の複雑なパターンを分類しようとして、そのパターンを他のパターンと区別するルールをすべて定義することはできないという場合には、ディープラーニングがよい選択肢となるかもしれません。

ただし、ディープラーニングには独自の要件があるという点に注意してください。大量の質の高いラベル付きデータが必要であり、適切なネットワーク アーキテクチャが必要であり、確実にそのネットワークをターゲットプロセッサに展開し、割り当てられた時間内に実行できるようにする必要があります。次の章では、こうした要件について説明します。