IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
敵対的生成ネットワーク(GAN)は、既存のトレーニング・データセットからパターンを学習して現実的なデータを生成するように設計された機械学習モデルです。これは、 ィープラーニング技術を使用した教師なし学習フレームワーク内で動作します。このフレームワークでは、2つのニューラル・ネットワークが互いに反対に動作し、1つがデータを生成し、もう1つがデータが本物か生成されたものかを評価します。
ディープラーニングは、画像分類や音声認識などのタスクには優れていますが、生成モデルの計算の複雑さにより、リアルな画像やテキストなどの新しいデータを生成することはより困難になっています。
Ian Goodfellow氏が2014年の論文「Generative Adversarial Nets」で紹介したGANは、この課題に対する画期的なソリューションを提供します。1この革新的なフレームワークにより、生成モデリングに変革がもたらされて、高品質で現実的なデータを作成できるモデルとアルゴリズムの開発が容易になりました。
GANアーキテクチャーは、生成ネットワーク(生成器)と識別ネットワーク(識別器)という2つのニューラル・ネットワークで構成されています。GANトレーニング・プロセスでは、生成器がランダムインプット(ノイズ)から始めて、特定のトレーニング・セットからの実際のデータを模倣する画像、テキスト、音声などの合成データを作成します。識別器は、生成されたサンプルとトレーニング・セットからのデータの両方を評価し、本物か偽物を判断します。0から1の間のスコアを割り当て、スコア1はデータが本物であることを、スコア0は偽であることを意味します。次に、バックプロパゲーションを使用して両方のネットワークを最適化します。これは、損失関数の勾配がネットワークのパラメーターに応じて計算され、これらのパラメータが損失を最小化するように調整されることを意味します。生成器は、識別器からのフィードバックを使用して改善し、より現実的なデータを作成しようとします。
GANアーキテクチャーのトレーニングには、敵対的なプロセスが含まれます。生成器モデルは、識別器モデルをだまして偽のデータを本物と分類させようとします。一方、識別器は、本物のデータと偽のデータを区別する能力を継続的に向上させます。このプロセスは、各ネットワークの性能を測定する損失関数によって導かれます。生成器損失は、生成器がどれだけうまく識別器を騙してデータが本物であると信じ込ませることができるかを測定します。生成器損失が低いことは、生成器が現実的なデータを正常に作成していることを意味します。識別器損失は、識別器が偽のデータと本物のデータをどの程度区別できるかを測定します。識別器の損失が低いことは、識別器が偽のデータの識別に成功したことを示しています。
たとえば、犬の画像を生成するようにトレーニングされたGANでは、生成器はランダム・ノイズを犬に似た画像に変換し、識別器はこれらの画像をトレーニング・セットからの実際の犬の写真と照らし合わせて評価します。
時間が経つにつれて、この敵対的なプロセスにより、両方のネットワークが改善されます。これにより、生成器は元のトレーニング・データセットに非常によく似た説得力のある現実的なデータを作成できるようになり、識別器は本物のデータと偽のデータの微妙な違いを識別する能力を強化できます。
Vanilla GANは、典型的な敵対ゲームを行う生成器と識別器を含む敵対的生成ネットワークの基本形です。生成器は偽のサンプルを作成し、識別器は本物のデータ・サンプルと偽のデータ・サンプルを区別しようとします。Vanilla GANは、生成器と識別器の両方に単純な多層パーセプトロン(MLP)またはニューロンの層を使用するので、実装が容易です。これらのMLPはデータを処理し、データセット内の既知のオブジェクトを区別するためにインプットを分類します。ただし、トレーニング中に不安定になることで知られており、良い結果を得るためには、ハイパーパラメーターの慎重な調整が必要となることがよくあります。
cGANは敵対的生成ネットワークの一種であり、生成器と識別器の両方に「ラベル」または「条件」と呼ばれる追加情報が含まれています。2これらのラベルはコンテキストを提供し、生成器が、Vanilla GANのようにランダム・ノイズだけに頼るのではなく、指定されたインプットに基づいて特定の特性を持つデータを生成できるようにします。この制御された生成により、cGANは、アウトプットの正確な制御を必要とするタスクに役立ちます。cGANは、特定のオブジェクト、トピック、スタイルに合わせた画像、テキスト、合成データを生成するために広く使用されています。たとえば、cGANは、グレースケールを赤、緑、青の色モデル(RGB)に変換するように生成器を調整することで、白黒画像をカラー画像に変換できます。同様に、「白い毛むくじゃらの猫の画像を作成する」などのテキスト入力から画像を生成し、提供された説明と一致する出力を生成できます。
深層畳み込み敵対的生成ネットワーク(DCGAN)は、生成器と識別器の両方に畳み込みニューラル・ネットワーク(CNN)を使用します。生成器はランダム・ノイズをインプットとして受け取り、それを画像などの構造化データに変換します。転置畳み込み(または逆畳み込み)を使用して、ノイズを「ズームイン」することでインプット・ノイズをより大きく、より詳細なアウトプットにアップスケールし、意味のある画像を作成します。識別器は、標準の畳み込み層を使用してインプットを分析します。これらの層は、識別器が「ズームアウト」して、データの全体的な構造と詳細を確認して決定を下すのに役立ちます。このアプローチにより、DCGANは高品質の画像やその他の構造化データを効果的に生成します。
StyleGANは、1024×1024の解像度まで高解像度の画像を生成する敵対的生成ネットワークの一種です。StyleGANは、同じオブジェクトの画像のデータセットを使用してトレーニングされます。生成ネットワークは複数の層で構成されており、それぞれの層が基本的な特徴から複雑なテクスチャーまで、さまざまなレベルの詳細情報を画像に追加する役割を担っています。また、識別ネットワークには複数の層があり、詳細レベルを評価して全体的な品質を評価します。
CycleGANでは、生成器と識別器が周期的にトレーニングされます。これは、ペアになっていないデータセットを使用して画像間の変換を行うように設計されています。これは、生成器を使用して画像を絵画などの別のスタイルに変換し、その後、逆生成器を使用して元のスタイルに戻す動作をします。この手法を使用すると、サイクル一貫性と呼ばれるプロセスを通じて、再構成された画像を元の画像と確実に類似させることができます。これらの成果は、画像スタイルの転送や画像の強化などのタスクに特に役立ちます。
ラプラシアン・ピラミッドGAN(LAPGAN)は、画像を複数の精緻化することで、高品質の画像を生成するように設計されています。まず低解像度の画像を生成し、その後、一連のGANを使用して徐々に高解像度の詳細を追加します。ラプラシアン・ピラミッドとして知られるこのマルチスケール・アプローチにより、LAPGANは高解像度画像を生成する複雑さをより効果的に処理できるようになります。
DiscoGANは、対になったトレーニング・データを必要とせずに領域間共通の関係を学習するために使用されます。2つの生成器と2つの識別器を使用して、画像をある領域から別の領域に変換し、同じ領域に戻すことで、サイクル一貫性を通じて、再構成された画像が元の画像に確実に近づきます。これにより、DiscoGANは、対応していないデータセットを使用する場合でも、画像間の変換、スタイル変換、画像補正などのタスクに効果的です。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
GANは、コンピューター・ビジョン、画像生成、物体検出、画像から画像への変換、テキストから画像への生成、ビデオの次のフレームの予測など、さまざまな用途に使用できます。
GANは、存在しないサンプルの写真のようにリアルな画像を生成したり、テキストの説明からビジュアルを作成したりするために使用され、指定された属性やシーンに基づいた画像の作成が可能になります。BigGAN は大規模なデータセットでトレーニングされ、特定のクラスまたは条件に基づいてデータを生成し、画像生成において最先端の成果を実現します3アプリケーションとして、画像合成、色付け、再構成など、さまざまな用途で使用されています。たとえば、新しいGANベースのベイズ視覚的再構成手法であるGAN-BVRMでは、分類器を利用して機能的な磁気共鳴画像(fMRI)データを解読します。事前トレーニングされたBigGAN生成器は、カテゴリー固有の画像と、脳活動に一致した画像を選択した画像をエンコードすることで、画像刺激を再構築する際の自然性と忠実度の向上を実現します。GANは、トレーニングや分析に使用するMRI、CTスキャン、X線などの現実的な医療データを生成したり、創薬のための新しい分子構造を作成したりすることで、医療分野で大きな進歩を遂げています。
GANは、高解像度のバリエーションを生成することで低解像度の画像を強化し、画像の品質と詳細を向上させることができます。たとえば、NVIDIAのStyleGAN2は、コンテンツ、アイデンティティー、表現、ポーズなどの属性をきめ細かく制御して、高解像度で非常にリアルな画像を生成し、ユーザーが芸術的および実用的な用途向けに画像を作成および操作できるようにします。4
GANは、スケッチを描画バージョンに変換するなど、画像をある領域から別の領域に変換することにより、スタイル変換と画像編集を実現します。たとえば、CycleGANは写真を絵に変換するために使用されます。このプロセスには、1つの生成器が画像をソース領域(写真)からターゲット領域(絵画)に、またはその逆に、循環型制約を通して変換することが含まれており、マッピングが意味の一貫性を確実に維持できるようにします。
GANは、重要な視覚情報を保持しながら、動画コンテンツをさまざまなアスペクト比や形式に合わせて調整することで、教師なし動画リターゲティングに使用されます。Recycle-GANは、CycleGANで一般的に見られる同様の循環的な戦略を利用し、それを動画データに特に適用します。たとえば、Recycle-GANは、ワイドスクリーンの動画をソーシャル・メディア・プラットフォーム用の正方形のフォーマットに変換できるため、動画内の重要な要素や動きが損なわれないようにすることができます。5
GANを使用すると、表情の変化や老化の影響など、画像内の顔の特徴を変えることができ、エンターテインメントやソーシャル・メディアの用途での可能性を示しています。StyleGANは、潜在空間から抽出された「スタイル」に基づいて、生成されたサンプルにレイヤー単位の変更を適用することで機能します。このプロセスにより、髪の色や表情などのさまざまな属性を直感的に制御できるため、ユーザーは手作業で調整することなく、特定の特徴に応じて顔を操作できます。たとえば、 StyleGANを使用すると、人物の髪の色を茶色からブロンドに変えたり、自然な表情に笑顔を加えたりすることができます。
GANは、物体検知に使用され、トレーニング・データの品質と多様性を強化することで、物体検知モデルの性能を大幅に向上させることができます。実際のデータによく似た合成画像を生成することで、GANはトレーニング・データセットを強化し、モデルの一般化を改善し、より正確に実行できるようにします。たとえば、研究によると、物体検知用のディープラーニング・モデルは、ノイズやぼかし、その他の歪みなどの影響を受けた低品質な画像に適用すると、性能が著しく低下することがわかっています。6この論文では、モデル・アーキテクチャーや推論速度を複雑にすることなく、品質の変化に対する物体検知モデルの堅固性を強化するために、GANを利用するGAN-DOフレームワークを紹介しています。実験結果では、GAN-DOが従来のファイン・チューニング手法を上回るパフォーマンスを実現し、物体検知の精度向上につながることが実証されています。
GANとは別に、変分オートエンコーダー(VAE)は、実世界のデータを模倣した新しいデータ・サンプルを作成できるディープラーニング・モデルです。VAEは確率モデルです。つまり、データ内で発生するさまざまな結果や値の可能性を表す確率分布の観点からデータを表します。これらのモデルは、トレーニング・データセットからパターンを学習し、正確な複製ではなく、元のデータセットのバリエーションである新しいデータを作成するように設計されています。変分オートエンコーダー(VAE)には、2つのコンポーネントが含まれています。エンコーダー(認識モデル)は、画像などの複雑なインプット・データをより単純な低次元データに圧縮し、デコーダー(生成モデル)は、圧縮された表現から元のインプットを再作成します。また、トレーニング・データセットのパターンから、まったく新しいデータ学習のサンプルを生成することもできます。通常、VAE はよりぼやけて鮮明度の低い出力を生成しますが、トレーニングではより安定しています。一方、GANはより鮮明でよりリアルな出力を生成しますが、不安定であるためトレーニングが困難です。
最終的に、VAEとGANのどちらを選択するかは、望ましいアウトプット品質、トレーニングの安定性、解釈可能な潜在表現の必要性など、タスクの特定の要件に依存するため、各モデルはさまざまなアプリケーションでそれぞれの価値があるものになります。
敵対的生成ネットワーク(GAN)は、画像、テキスト、音声など、非常に現実的で多様なデータを生成できます。これらは、自然言語処理(NLP)によるテキスト・データを生成して言語モデルを改善したり、音楽生成で新しい楽曲やリアルな楽器の音を作成したりするなどの用途で使用されます。シミュレーションやゲームでは、GANを使用して現実的な環境と登場人物を生成し、標準から逸脱するパターンを特定することで異常検知を行います。GANは、コストがかかる、または非現実的な実験の複雑なデータをシミュレートすることで、科学研究にも役立ちます。データ拡張を通じて機械学習(ML)プロセスを強化し、トレーニング セットの量と多様性を増やして、限られたビッグデータの課題に対処します。GANは、強化学習、ロボティクス、NLPなどのテクノロジーとさらに統合され、AIシステムを進歩させることが期待されています。
トランスフォーマーの台頭にもかかわらず、GANはその軽量なアーキテクチャーと計算効率により重要性を維持しており、エッジ・デプロイメントに最適です。GANは、トランスフォーマーに比べてパラメーターが少ないため、主要な機能(顔の属性など)のきめ細かな操作のための制御された生成を提供し、特定のタスクのファイン・チューニングを簡素化します。GANでは、単一のフォワード・パス(またはアウトプットを生成するためにニューラル・ネットワークを1回通過するインプットフロー)を必要とするため、推論速度が向上します。そのため、携帯電話やIoTシステムなどのリソースに制約のあるエッジ・デバイスでのリアルタイムの用途に最適です。これらの利点により、GANは、エッジ環境での画像翻訳、超解像度、リアルタイム動画合成などのタスクには実用的な選択肢となります。
しかし、GANには大きな課題があります。主な問題の1つは、トレーニングの不安定性です。生成器と識別器が適切に収束しないことで、アウトプットの品質が低下する可能性があります。モード崩壊は、生成器が限られた種類を生成し、トレーニング・データの完全なダイバーシティーを捉えることができないもう1つの課題です。また、GANには大量のデータと相当なリソースも必要となるため、広範な使用の妨げとなる可能性があります。従来のメトリクスでは、生成されたデータのニュアンスを完全に把握できない可能性があるため、GANで生成されたアウトプットの品質を評価することには課題があります。GANはディープ・フェイクやその他の潜在的に有害なコンテンツの作成に使用される可能性があるため、生成されたサンプルの倫理的な使用を保証することへの関心は高まっています。
GANは、TensorflowとKerasを使用して実装できます。PythonでGANモデルを作成するには、トレーニング・データセット、生成スクリプト、識別スクリプトが必要です。以下は、開始に役立つステップバイステップ・ガイドです。
ステップ1:GANモデルの構築とトレーニングに必要なライブラリー(TensorFlowやnumpyやmatplotlibなどのその他の必須ライブラリーなど)をインポートします。
ステップ2:データセットをロードして前処理し、ターゲットのデータ分布(画像、テキストなど)を確実に表現するようにします。
ステップ3:ランダム・ノイズを取得して、ターゲット分布に一致するデータ・サンプルを生成するTensorFlowまたはKeras層を使用して生成モデルを構築します。
ステップ 4:ジェネレータが生成した実データと偽データのサンプルを分類するための識別器モデルを構築します。
ステップ5:生成器と識別器の両方に適切な最適化ツールを使用し、損失関数を定義します。
ステップ6:生成器と識別器を単一のGANモデルに組み入れて、生成器が識別器を欺くようにトレーニングします。
ステップ 7: 実際のデータと偽のデータを使用して、識別器と生成器を交互にトレーニングするループを実装します。
ステップ 8: 収束を確実にするために、エポックにわたる生成器のアウトプットと識別器の精度を分析します。
ステップ9:トレーニングされた生成器を使用して、ターゲット・データ分布を模倣する新しいサンプルを作成します。
ステップ10:生成されたデータをプロットまたは分析して、GANがターゲット分布をどの程度学習したかを検証します。
これらのステップに従って、TensorFlowを使用して基本的なGANモデルを実装できます。
GANの将来は有望であり、現実性、安定性、効率性、倫理的配慮の面での進歩が期待されています。GANが他のテクノロジーとの統合を進め、新しい用途が見つかるにつれて、さまざまな業界や分野に革命をもたらし続けるでしょう。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。
1 Goodfellow, I. J.、Pouget-Abadie, J.、Mirza, M.、Xu, B.、Warde-Farley, D.、Ozair, S.、... & Bengio, Y.(2014年)。「Generative adversarial nets. Advances in neural information processing systems」27
2 Alqahtani、Hamed & Kavakli、Manolya & Kumar、Gulshan(2019年).「Applications of Generative Adversarial Networks (GANs): An Updated Review. Archives of Computational Methods in Engineering」28.10.1007/s11831-019-09388-y
3 Qiao, K.、Chen, J.、Wang, L.、Zhang, C.、Tong, L.、Yan, B.(2020年)。「BigGAN-based Bayesian reconstruction of natural images from human brain activity」Neuroscience、444、 92–105. https://doi.org/10.1016/j.neuroscience.2020.07.040
4 Alarcon, N.(2020年)。「Synthesizing High-Resolution Images with StyleGAN2」 NVIDIA Technical Blog。https://developer.nvidia.com/blog/synthesizing-high-resolution-images-with-stylegan2
5 Bansal, A.、Ma, S.、Ramanan, D. & Sheikh, Y.(2018年)。「Recycle-GAN: Unsupervised Video Retargeting」arXiv。https://doi.org/10.48550/arXiv.1808.05174
6 Prakash、CD、Shrivastava、A.、Torresani、L. (2019年)。「It GAN DO Better: GAN-based Detection of Objects on Images with Varying Quality」arXiv。https://arxiv.org/abs/1912.01707