GAN とは何ですか?
敵対的生成ネットワーク (GAN) は、深層学習アーキテクチャです。2 つのニューラルネットワークをトレーニングして互いに競合させ、特定のトレーニングデータセットからより本物に近い、新しいデータを生成します。例えば、既存の画像データベースから新しい画像を生成したり、曲のデータベースからオリジナルの音楽を生成したりできます。GAN は、2 つの異なるネットワークをトレーニングし、相互に競合させるため、敵対的と呼ばれます。1 つのネットワークは、入力データのサンプルを取得し、それを可能な限り変更することで新しいデータを生成します。もう 1 つのネットワークは、生成されたデータ出力が元のデータセットに属するかどうかを予測しようとします。言い換えれば、予測ネットワークは、生成されたデータの真偽を判断します。システムは、予測ネットワークが偽物とオリジナルを区別できなくなるまで、偽のデータ値の改善された新しいバージョンを生成します。
敵対的生成ネットワークのユースケースにはどのようなものがありますか?
GAN アーキテクチャについて、さまざまな業界でいくつかのユースケースが考えられます。次に、いくつかの例を示します。
画像を生成する
敵対的生成ネットワークは、テキストベースのプロンプトを通じて、または既存の画像を変更することによって、リアルな画像を作成します。ビデオゲームやデジタルエンターテインメントにおいて、リアルで没入感のある視覚体験を生み出すのに役立ちます。
GAN は、低解像度の画像を高解像度の画像に変換したり、白黒画像をカラー画像に変換したりするなど、画像を編集することもできます。アニメーションや動画用に、リアルな顔、キャラクター、動物を作成することもできます。
他のモデルのためのトレーニングデータを生成する
機械学習 (ML) では、データ拡張は、既存のデータを使用してデータセットの変更されたコピーを作成することで、トレーニングセットを人為的に増やします。
データ拡張用の生成モデルを使用して、実世界のデータのすべての属性を備えた合成データを作成できます。例えば、不正な取引データを生成し、そのデータを別の不正検出 ML システムのトレーニングに使用できます。システムは、疑わしい取引と本物の取引を正確に区別できるように、このデータから学習します。
不足している情報を補完する
場合によっては、生成モデルに、データセット内で一部の不足している情報を正確に推測および補完してもらいたい場合があります。
例えば、地表データと地下構造の間の相関関係を理解することで、地面の下 (地下) の画像を生成するように GAN をトレーニングできます。既知の地下画像から学習することで、地熱マッピングや二酸化炭素回収および貯留などのエネルギー関連用途向けの地形図を使用して新しい地下画像を作成できます。
2D データから 3D モデルを生成する
GAN は 2D 写真またはスキャン画像から 3D モデルを生成できます。例えば、医療分野では、GAN は X 線と他の身体スキャンを組み合わせて、手術計画とシミュレーション用に臓器のリアルな画像を作成します。
敵対的生成ネットワークはどのように機能しますか?
敵対的生成ネットワークシステムは、ジェネレーターネットワークとディスクリミネーターネットワークという 2 つのディープニューラルネットワークで構成されます。どちらのネットワークも敵対ゲームでトレーニングします。敵対ゲームでは、一方は新しいデータを生成しようとし、もう一方は出力が偽のデータか、または本物のデータかを予測しようとします。
技術的には、GAN は次のように機能します。複雑な数式がコンピューティングプロセス全体の基礎を形成していますが、単純化した概要を次に示します。
- ジェネレーターニューラルネットワークはトレーニングセットを分析し、データ属性を識別します
- ディスクリミネーターニューラルネットワークも初期トレーニングデータを分析し、属性を個別に区別します
- ジェネレーターは、特定の属性にノイズ (またはランダムな変更) を追加することで、一部のデータ属性を変更します
- ジェネレーターは変更されたデータをディスクリミネーターに渡します
- ディスクリミネーターは、生成された出力が元のデータセットに属する確率を計算します
- ディスクリミネーターは、次のサイクルでノイズベクトルのランダム化を減らすためにジェネレーターに何らかのガイダンスを与えます
ジェネレーターは、ディスクリミネーターが誤る確率を最大化しようとしますが、ディスクリミネーターはエラーの確率を最小化しようとします。トレーニングのイテレーションでは、ジェネレーターとディスクリミネーターの両方が進化し、平衡状態に達するまで継続的に互いに対峙します。平衡状態では、ディスクリミネーターはデータが合成されていることを認識できなくなります。この時点で、トレーニングプロセスは完了です。
GAN トレーニングの例
Image to Image 変換における GAN モデルの例を用いて、上記の内容を説明してみましょう。
入力画像は人間の顔であり、これを GAN が変更しようとしていると考えてください。例えば、属性は目や耳の形状であることが考えられます。ジェネレーターが実際の画像にサングラスを追加して変更するとします。ディスクリミネーターは、サングラスをかけた複数の実際の人物と、サングラスを含むように変更された複数の生成画像から成る一連の画像を受け取ります。
ディスクリミネーターが偽物と本物を区別できる場合、ジェネレーターはパラメータを更新して、より本物に近い偽画像を生成します。ジェネレーターがディスクリミネーターを欺く画像を生成した場合、ディスクリミネーターはパラメータを更新します。競合により、平衡に達するまで両方のネットワークが改善されます。
敵対的生成ネットワークにはどのような種類がありますか?
使用される数式と、ジェネレーターとディスクリミネーターが相互にインタラクションするさまざまな方法に応じて、さまざまなタイプの GAN モデルがあります。
いくつかの一般的に使用されるモデルを次に示しますが、リストは包括的なものではありません。StyleGAN、CycleGAN、DiscoGAN など、さまざまな種類の問題を解決する多数の GAN タイプが他にもあります。
バニラ GAN
これは、ディスクリミネーターネットワークからのフィードバックがほとんどないか、またはまったくない状態でデータ変動を生成する基本的な GAN モデルです。通常、標準的な GAN では、現実世界のほとんどのユースケースで機能拡張が必要になります。
条件付き GAN
条件付き GAN (cGAN) は条件の概念を導入し、ターゲットを絞ったデータ生成を可能にします。ジェネレーターとディスクリミネーターは、通常はクラスラベルまたは他の形式の条件データとして追加情報を受け取ります。
例えば、画像を生成する場合、条件は画像の内容を説明するラベルとなる可能性があります。条件付けを使用すると、ジェネレーターは特定の条件を満たすデータを生成できます。
Deep Convolutional GAN
Deep Convolutional GAN (DCGAN) は、画像処理における畳み込みニューラルネットワーク (CNN) の性能を認識し、CNN アーキテクチャを GAN に統合します。
DCGAN では、ジェネレーターは転置畳み込みを使用してデータ分散をアップスケールし、ディスクリミネーターは畳み込み層を使用してデータを分類します。DCGAN は、トレーニングをより安定させるために、アーキテクチャガイドラインも導入しています。
超解像 GAN
超解像 GANS (SRGAN) は、低解像度の画像を高解像度の画像にアップスケールすることに焦点を当てています。目標は、画質と詳細を維持しながら、画像を強化して解像度を高めることです。
Laplacian Pyramid GANs (LAPGAN) は、問題を複数のステージに分割することによって、高解像度の画像を生成するという課題に対処します。これらは階層的なアプローチを採用しており、複数のジェネレーターとディスクリミネーターは、さまざまなスケールや解像度の画像を処理します。このプロセスは、低解像度の画像を生成することから始まり、GAN のステージが進むにつれて品質が改善されます。
AWS は敵対的生成ネットワークの要件をどのようにサポートできますか?
Amazon Web Services (AWS) は、GAN の要件をサポートする多くのサービスを提供しています。
Amazon SageMaker は、データの準備、機械学習モデルの構築、トレーニング、デプロイに利用できるフルマネージドサービスです。これらのモデルは多くのシナリオで使用でき、SageMaker にはフルマネージド型のインフラストラクチャ、ツール、ワークフローが用意されています。あらゆるアプリケーションのために GAN の開発とトレーニングを加速する幅広い機能を備えています。
Amazon Bedrock はフルマネージドサービスです。これを利用して、Amazon や主要な人工知能 (AI) スタートアップの基盤モデル (FM) またはトレーニングされたディープニューラルネットワークにアクセスできます。これらの FM は API を通じて利用できるため、さまざまなオプションから選択してニーズに最適なモデルを見つけることができます。これらのモデルを独自の GAN アプリケーションで使用できます。Amazon Bedrock を利用すると、スケーラブルで信頼性が高く、安全な生成系 AI アプリケーションをより迅速に開発およびデプロイできます。また、インフラストラクチャを管理する必要もありません。
AWS DeepComposer を使用すると、ML の使用をクリエイティブに開始できます。ミュージックキーボードと、ML スキルを拡張するために設計された最新の ML 手法を使用して実践できます。ML や音楽のバックグラウンドにかかわらず、デベロッパーは GAN の使用を開始できます。また、GAN モデルをトレーニングおよび最適化して、オリジナルの音楽を作成できます。
今すぐアカウントを作成して、AWS で敵対的生成ネットワークの使用を開始しましょう。