合成データ (Synthetic Data)とは?
合成データとは
人工知能 (AI)を導入する企業は、モデルに十分なデータを収集するという大きなハードルに直面しています。多くの導入事例では、適切なデータが利用可能でないケースや、取得が非常に困難で、非常にコストがかかる場合が多いです。大手テクノロジー企業でさえ、この分野で困難に直面しているのが現状です。
2018年、研究者グループが大手顔認識ソフトウェアをテストしたところ、白人男性の顔は簡単に識別できる一方で、そのほかの人種の個人を識別しようとすると、エラー率が最大34%高くなることを発見しました。これらのモデルのトレーニングに使用されたデータが不完全であったため起きた事例です。では、このような状況で企業は何ができるでしょうか。合成データは、有力なソリューションの1つです。
合成データとは、コンピュータープログラムによって人工的に生成されたデータです。企業は、すべての潜在的なユースケースやエッジケースを埋めるため、トレーニングデータを合成データで補完することがあります。
データ収集コストを削減したり、プライバシー要件に適合したりすることができます。計算能力の向上やクラウドなどのデータストレージオプションの登場により、合成データはこれまで以上にアクセスしやすくなりました。これは疑いようのないポジティブな進展です。
合成データを使用する理由
AIプロジェクトで合成データを使用する理由をいくつか示します。
モデルのロバスト性の向上
データを収集する必要がなく、モデルにより多様なデータを提供できます。合成データを使用すると、異なる髪型や顔髭、異なるメガネ、異なる頭のポーズなど、同じ人物の変化を含むバリエーションのデータを使用してモデルをトレーニングできます。また、肌の色、民族的特徴、骨格、そばかすなどを含む多様な顔を作成し、よりロバスト性の高いモデルを構築できます。
リアルデータよりも高速生成
合成データの場合、短期間で大量の合成データを生成できるメリットがあります。現実にはまれにしか発生しないイベントに依存している場合に特に役立ちます。たとえば、自動運転車のデータを収集する際、極端な道路状況など、現実のデータを収集するのが非常に困難である場合があります。
さらに、データサイエンティストは、合成データが生成されると同時に自動的にラベル付けするアルゴリズムを設定することができるため、時間のかかるアノテーション付けプロセスを短縮することができます。
エッジケースを考慮
機械学習アルゴリズムは、バランスのとれたデータセットを好む傾向にあります。
顔認識の例では、企業がデータの不完全な部分を埋める目的で、より濃い肌の顔の合成データを作成した場合、モデルの精度が向上するだけでなく、モデルをより倫理的にすることにも成功しています。
合成データは、データが広く利用可能でないか、存在しないエッジケースなど、すべてのユースケースをカバーするために必要な存在です。
ユーザーの個人データ保護
業界やデータの種類によっては、企業が機密データを扱う際に、セキュリティ上の課題に直面することがあります。
例えば、医療分野では、患者データに個人健康情報 (PHI)が含まれていることが多く、その使用には高いレベルのセキュリティが必要となります。
合成データは、実在の人物に関する情報を参照しないため、プライバシーの懸念を軽減します。チームが特定のデータプライバシー要件を満たす必要がある場合は、合成データを組み込むことを検討しましょう。
合成データの実用例
ビジネスの観点から見ると、合成データはモデルの検証、モデルのトレーニング、新製品のテストデータなど、数多くの用途があります。いくつかの業界では、機械学習における合成データの利用を先駆けて導入しています。
自動車
自動運転車を開発する企業は、性能をテストするシミュレーションを行っていることが一般的です。
異常気象のような特定の条件下のデータは取得が困難であり、また取得することが危険な場合がほとんどです。一般的に、道路上での実走行テストに頼ると、考慮すべき変数があまりにも多くなり、すべての運転経験を想定することが困難です。そのため、合成データは、手作業によるデータ収集に代わる、より安全で迅速な方法として有効活用されています。
医療
ヘルスケア業界は、機密性の高いデータを扱う業界であることから、合成データの採用に適しています。合成データを活用することで、あらゆるタイプの患者の生理機能を把握し、最終的にはより迅速かつ正確な診断に役立てています。
例の1つに、Googleのメラノーマ検出モデルがあります。これは、肌の色が濃い人の合成データ (臨床データでは残念ながらあまり扱われていない分野)を使用して、すべての肌タイプでうまく機能する能力をモデルに組み込んでいます。
セキュリティ
合成データは、企業のセキュリティを高める目的で使用されています。人工的に作成された画像や映像を指すディープフェイクという言葉を聞いたことがあるかもしれません。企業はディープフェイクを作成し、自社のセキュリティシステムや顔認識プラットフォームをテストすることができます。また、ビデオ監視も、合成データを活用することでより低コストかつ高速にモデルをトレーニングすることができます。
データポータビリティ
企業は、トレーニングデータを他者と共有可能な、信頼性の高い安全な方法を必要としています。合成データの興味深い使用例として、データセットを他の人が利用できるようにする前に、個人を特定できる情報 (PII, Personally Identifiable Information)を隠すことです。これはプライバシー保護合成データと呼ばれ、科学研究データセット、医療データ、社会学データなど、個人を特定できる情報を含む可能性のあるものの共有にとても有用です。
合成データの作成方法
合成データを生成するには、いくつかの手法があります。最も一般的なものをご説明します。
分布からの数値を抽出
実際のデータはないが、データセットの分布がどのようなものかを理解している場合、分布から合成データを生成することができます。この手法では、任意の分布 (正規分布、指数分布など)の無作為標本を生成して、偽データを作成します。
実データを分布に当てはめ
実データがある場合は、モンテカルロ法などのテクニックを使い、そのデータに最もフィットする分布を見つけ、それを使って合成データを生成することができます。
ディープラーニング
ディープラーニングモデルは合成データを生成することができます。
- VAEモデル:ディープラーニングを使用した確率的生成モデルの一種です。この教師なしモデルは、初期データセットを圧縮してデコーダーに送り、デコーダーはその初期データセットの表現を出力します。
- GANモデル:GANモデルは2つのネットワークから構成されます。2つのニュートラルネットワークをトレーニングし、お互いに競合させ、特定のトレーニングデータセットから、より本物に近い新しいデータを生成するものです。合成データを実際のデータセットと比較し、繰り返しファインチューニングを行います。
実データの量や、合成データの使用目的に応じて、上記の手法を組み合わせることが最も効果的である可能性があります。