データ拡張: 機械学習向けの画像データセットを10倍に水増しする方法

2020年04月29日

機械学習モデルに必要な教師データで学習させるを十分に保有していない場合は、どうすればよいでしょうか。これに関して、研究者たちは長年にわたり様々な工夫をこらし、ソリューションを開発してきました。データ拡張はこれらのソリューションの一つです。より多くのデータポイントを見つけてアノテーションを付与する代わりに、保有しているデータを基に新しいデータを構築するという手法です。これは必ずしも簡単なことではなく、最良の結果が得られるとは限りませんが、実行可能な代替案です。

データ拡張手法を利用してデータセットを水増しするのは、データ数が限られている場合に役立つだけではありません。教師データセットが多様化するので、過学習を防ぎ、モデルの汎化能力を高めることができます。

 

データ拡張の実施方法

下の図をご覧ください。この記事では、現在最も活発に研究が行われている分野である画像データの拡張を中心にご説明いたしますが、これらの手法の大部分はどのようなデータにも適用できます。

データ拡張の種類を表すフローチャート

 

基本的な画像操作

まず簡単に実行できるのは、画像に対する幾何学的変換です。同じ画像を回転させて与えても、マシンは簡単に同一の物だと判断できると思うかもしれませんが、実はそうではありません。

画像の反転、トリミング、回転、変換などはすぐ簡単に実行できます。また、コントラストやシャープネス、ホワイトバランス、色ジッター、ランダムな色操作など測光変換と呼ばれる多くの手法を利用して、画像の色空間を変更することもできます。Instagramのフィルターを使ったことがあれば、私の言っていることがお分かりいただけるでしょう。フィルターによって自由にクリエイティビティを発揮できます。 

さらに、画像を結合したり、画像のセグメントをランダムに削除したり、あるいは様々な方法で上記の全てを組み合わせたりすることもできます。

https://arxiv.org/pdf/1809.06839v1.pdf より引用

 

機械学習を利用したデータ拡張

基本的な画像操作のほかに、機械学習や深層学習をデータ拡張に利用しようとするエンジニアが増えています。つまり、機械学習モデルを利用して、機械学習モデル用の教師データを作成できるのです。以下に最も有望な手法のいくつかを挙げておきましょう。

 

特徴空間拡張とオートエンコーダー

上記の例では入力空間で画像を変換しましたが、特徴空間で変換を行うこともできます。

ニューラルネットワークを利用すると、高次元のインプット(画像など)を低次元空間(特徴空間または潜在空間)へと非常に効率的にマッピングできます。できるだけ情報を失わないようにしながら3Dのテンソルを1Dのベクトルに変換することだと考えるとよいでしょう。画像を低次元化しておくと、はるかに拡張しやすくなります。

k近傍法、ノイズの追加、補間法など、様々な低次元化手法が多くの興味深いAI論文で提案されています。

オートエンコーダーは、特徴空間表現を抽出するための最も良い選択肢であることが証明されています。オートエンコーダーは入力データを再構築しようとする特別な種類のニューラルネットワークであり、エンコーダーとデコーダーの二つのネットワークから構成されています。エンコーダーは、データを受け取り、低次元(特徴空間)のベクトル形式に変換します。デコーダーはそのベクトルを受け取り、元のデータを再構築しようとします。

こうすると、中間の潜在ベクトルにはデータセットに関する全ての情報が含まれるので、抽出してデータ拡張など様々なことを実行できます。

 

GAN(敵対的生成ネットワーク)ベースのデータ拡張

生成モデルは完全に新しい画像を生成できるので、現時点で最もエキサイティングな手法の一つです。生成モデルは、大部分の機械学習モデルと異なり、データの境界ではなく分布を学習するため、データの新しいパターンを生成することが可能です。

この分野では、敵対的生成ネットワーク(GAN)が業界標準および研究標準となっています。GANは、ジェネレーター(生成器)とディスクリミネーター(識別器)の二つのネットワークから構成されています。ジェネレーターは、入力としてノイズだけを受け取り、偽物のデータを生成します。二番目のモデル、ディスクリミネーターは、本物の画像とジェネレーターが生成した偽物の画像を与えられ、本物か偽物かの識別を学習します。

二つのネットワークが互いに競合しながら学習を進める(このプロセスは敵対的学習と呼ばれます)ことにより、ジェネレーターの画像生成技術はどんどん進歩し、ディスクリミネーターの識別能力も同様に高まります。ジェネレーターの究極の目的は、ディスクリミネーターを騙すことであり、ディスクリミネーターの目標は騙されないようにすることだからです。この結果、ジェネレーターは非常に本物に近いデータを生成できるようになります。 

このように、GANは、これまで見たことのないようなリアルな画像や動画を生成しており、その一例がディープフェイクです。

 

メタ学習

最後に、メタ学習についてご説明しましょう。メタ学習は比較的新しい分野ですが、ニューラルネットワークを利用し、ハイパーパラメータを調整したりレイアウトを改良したりして、他のニューラルネットワークを最適化します。データ拡張に関しては、状況は少し複雑になりますが、簡単に言うと、分類ネットワークを利用して拡張ネットワークを調整し、より優れた画像を生成します。

下の図をご覧ください。拡張ネットワーク(多くの場合、GANが利用されています)にランダムな画像を入力すると、新たな画像が生成されます。生成画像と元の画像を二番目のネットワークに入力すると、このネットワークがそれらを比較し、生成画像の品質を判断します。そして、このプロセスを繰り返すことにより、拡張ネットワークが生成する画像の品質が改良されていきます。 もちろん、これは、利用可能な唯一の方法ではありませんが、この分野の様々な研究論文において非常に優れた出発点になっています。

https://arxiv.org/pdf/1712.04621.pdf より引用

結論

データ拡張は決して簡単なタスクではありません。興味深い論文も沢山ありまが、まだ改良の余地があります。例えば、GANのサンプル画像を改良したり、メタ学習を利用する新たな方法を見つけたり、様々な拡張手法の分類法を確立したりすることなどです。そしてもちろん、これらの手法をテキストや表形式データ、グラフデータなどに利用する新しい方法を開発することもできるでしょう。さらに、これらを強化学習や検索アルゴリズムなどに拡大することもできます。 

 

LionbridgeのAI学習データサービスについて

当社はAI向け教師データの作成やアノテーションのサービスを提供し、研究開発を支援しています。世界の各タイムゾーンを渡る、100万人のコントリビューターが登録されており、大規模なAIプロジェクトも素早く仕上げることができます。お問い合わせ・無料見積もりはこちらから。

※ 本記事は2020年4月6日、弊社英語ブログに掲載された寄稿記事に基づいたものです。本記事を気に入って頂けた方は、こちらもぜひ併せて御覧ください: ディープラーニング向け教師データセットの作り方

AI開発に肝心な学習データを提供いたします

メディア掲載結果

AI・機械学習の最新情報を配信中

Lionbridge AIのブログで紹介している事例記事やトレンドニュースといったビジネスに役立つ情報はもちろん、オープンデータセット集なども合わせてメール配信しております。