ebook

第 2 章

データの収集


ディープラーニングでネットワークに学習させるには、質の高いラベル付きデータが大量に必要です。この章では、ラベル付きデータにアクセスして収集するさまざまな方法について説明します。

セクション

大量の学習データが必要な理由

どの手法で分類アルゴリズムを設計する場合でもデータは必要です。ルールベースのアルゴリズムを構築するにしても、そのルールを記述できるようにするためには、システムとそのシステムに入力される情報について理解する必要があります。

そうしたデータセットとディープラーニング システムが学習に必要とするデータとの違いで問題になるのは、主にその量です。

ルールベースのアルゴリズムを設計する場合には、人間であればその問題に関して長年の経験と知識を持っているため、明らかに解決策ではないアプローチやアイデアはすぐに破棄します。しかし、部分的に学習済みのモデルから始める場合を除き、学習させるディープ ニューラル ネットワーク自体には経験や既存の知識がありません。当たり前のことが当たり前にわからないのです。

したがって、ネットワークが信号の立ち上がりエッジなどの基本的な概念を理解するのはもちろん、そのエッジをもっと抽象的なパターンと組み合わせて分類しようとする場合、サンプルとしてさらに多くのラベル付きデータが必要となります。

このように、ディープラーニングは、より多くのデータを利用することにより、人間が問題解決に通常使う経験や知識を補うのです。

dl-engineers-ebook-ch2-knowledge-vs-size-graph
セクション

ラベル付きデータの取得

ネットワークの性能は、使用する学習用のラベル付きデータに依存するため、解空間全体をカバーするデータにアクセスできることが重要です。ラベル付きデータの取得方法はいくつかあります。解こうとしている問題の種類に応じて、1 つの方法を選択することも、複数の方法を組み合わせることもできます。

独自のデータを収集

センサーから独自のデータを収集することで、データベースをゼロから構築できます。自動運転車のように、数十億台もの車両がありとあらゆる環境や走行条件で走行しているような場合には、そうした車両のセンサーデータを記録するだけでデータを収集できるため好都合です。そして、長い時間を費やして記録した数百万マイルもの走行距離データを使い、膨大な時間をかけてラベリングを行って、データベースを構築します。

図 1.自律システムのワークフロー

一見、自分でデータを収集するのは、データセットが簡単に構築できる分かりやすい方法のように思えますが、注意すべき点もあります。

たとえば、データ収集は、必ず解空間全体で行う必要があることです。例を挙げると、人間が話す単語を識別するネットワークの場合、対象となるすべての単語に加え、同じ単語の発音が人によってどのように違うのかを網羅した学習データが必要です。一部のアクセントしか学習させていない場合、そのアクセントにモデルを合わせてしまい、問題の全範囲を学習できなくなるのです。

すべてのデータ収集が終わるとラベル付けが必要になりますが、これは簡単な作業ではありません。

既存のデータベース

運が良ければ、既存のデータベースにラベル付けの済んだデータが整っている場合もあるでしょう。たとえば、画像中の一般的なオブジェクトを認識するネットワークを設計する場合には、1,400 万枚以上のラベル付けされた画像が収録された ImageNet を利用することができます。

また、歌やスピーチなどの音声サンプルをラベル付けして収録した音声データセットもあります。さらに、他にも各種の信号を持つデータセットが常に作り出されています。

既存データの拡張

必要な学習データが既存のデータベースにすべて収録されていない場合、独自のラベル付きデータを追加して不足分を補うことで、データセットを拡張し、既存のデータに手を加えてより大きな解空間をカバーできます。

既存のデータに手を加える二つの例としては、人間の話し声のピッチ調整や、手書き文字の回転や拡大縮小などがあります。

音声認識: 音声データベースには、1 人の話者が話した言葉のみが収録されていることがあります。データセットを複製して周波数を調整することで、元のデータベースに収録されていたものとは異なるピッチの発話音声を識別するようにネットワークに学習させることができます。

文字認識: 既存の手書き文字データベースには、各文字が同じ大きさや同じ向きになるように拡大縮小や回転が適用された画像しか収録されていない場合があります。ネットワークが大きさの違う手書き文字や斜体の手書き文字を認識できるようにしたい場合は、データセットを複製して大きさや向きを調整することで、元のデータベースを拡張できます。

dl-engineers-ebook-ch2-speech-recognition-diagram

ただし、エンジニアリング上の問題が独特なものである場合は、既存データベースの拡張に、ゼロからデータベースを作成するのと同様の労力が必要になることもあります。

データの合成

問題の物理的性質を十分に理解してシミュレーションを構築できれば、それを使って学習データを合成できます。データの生成にはまずラベルが必要になるため、実質的にラベルが無料で手に入るということが、合成データの利点です。

図 1.自律システムのワークフロー

また、実データの収集にコストがかかりすぎる場合や、危険が伴う場合にも、合成データを利用できます。たとえば、データ収集のために物理的なシナリオを設定するよりも、失敗するとロボットのハードウェアが破損しかねないさまざまな状況でロボットのシミュレーションを行った方がコストを抑えられる場合があります。

一方で、オーディオ信号中の単語を分類するネットワークを構築する場合、人の発話のシミュレーションは、本物の音声を大量に収集するよりもはるかに難しいため、意味がないといえます。そのため、合成データ、実データ、あるいはその両方を組み合わせたもののいずれが自分の問題に適しているかどうかを判断する必要があります。

セクション

例: 波形データの合成

データ合成の例としては、MATLAB の例「ディープラーニングを使用したレーダー波形と通信波形の分類」をご覧ください。この例では、ディープラーニングを使用して CNN を学習させ、RF 波形の変調タイプを認識させています。

ネットワークが分類すべき変調方式の 1 つは、線形周波数変調 (LFM) です。下の図のように、単一の搬送周波数、掃引帯域幅、パルス幅、掃引方向で示されます。

図 1.自律システムのワークフロー

これは理想的なパターンですが、この信号を損なう要素は多数存在します。天候、無線機器のハードウェアによる歪み、アンテナ付近の障害物による反射、その他多くのノイズやエラーの原因などです。

以下の信号はそれぞれ別のノイズの多い LFM 波形です。

波形分類器は、線形周波数変調としてのこれらの信号の固有の特徴を認識できる必要があります。したがって、解空間 (分類アルゴリズムが機能すべき条件やシナリオ全体) は膨大であり、学習データはそのすべてを網羅する必要があります。ここで役立つのがディープラーニングや合成データです。

RF 変調方式とこれにノイズを発生させる障害については非常によく知られているため、合成された学習データにはうってつけです。この例では、変調方式ごとに 1 万個のフレームが生成されます。以下のプロットは、数種類の波形に対するフレームの例を示しています。

dl-engineers-ebook-ch2-mod-classification-deep-learning

この合成データは、ネットワークの学習に使用されます。本当の意味で試されるのは、このネットワークが「実際の」RF データにどれだけ適切にラベル付けできるかです。他のモデルと同様に、現実的なシナリオを使用して、このネットワークをハードウェア上で検証およびテストする必要があります。

セクション

合成データの使用に関する詳細を見る

パネルナビゲーション