生成的反証ネットワークとは何か?簡単ガイド

生成的反証ネットワークとは何か?簡単ガイド
人工知能(AI)は、ちょっとした【カンブリア爆発】(https://www.pbs.org/wgbh/evolution/library/03/4/l_034_02.html)を経験している。ほんの少し前まではサイエンス・フィクションのように思われていたものが、ここ数年で現実のものとなってきている。ChatGPT](https://openai.com/blog/chatgpt)のようなツールのリリースのおかげで、関心は高まる一方だ。しかし、カンブリア大爆発のように、AI進化の飛躍から生まれるものはひとつだけではない。実際には、AIソフトウェアを同時に進化させている多くの前線があるのだ。
この記事では、そうしたAIの種類の1つである、生成的敵対的ネットワークについてお話しします。
識別型と生成型
動物の化石をドメイン、キングダム、系統に分類するように、AIネットワークも分類する。最も高いレベルでは、AIネットワークを "識別型 "と "生成型 "に分類する。ジェネレイティブ・ニューラル・ネットワークとは、新しいものを生み出すAIのことだ。これは、すでに存在するものを特定のバケツに分類する識別型ネットワークとは異なる。私たちが今やっているように、生成的敵対的ネットワーク(GAN)を適切な分類にバケツ分けするのだ。
つまり、「Midjourney」(https://www.midjourney.com/home/?callbackUrl=%2Fapp%2F)のように、テキストタグを使って新しいビジュアルイメージを作りたい場合、生成的ネットワークを使うことになる。しかし、分類とタグ付けが必要な膨大なデータの山があれば、識別モデルを使うだろう。
生成的逆数ネットワークはどこに当てはまるか?
GANという名前は、生成的であることを暗示している。しかし、この2番目の言葉も実は重要だ。GANは、識別モデルと生成モデルの両方を巧みに応用したものなのだ。GANモデルは、最初に分類された学習データ群で学習する。そして生成モデルは、モデルに適合すると思われる新しいインスタンスの生成を試みる。第2ラウンドとして、識別モデルは、生成されたコンテンツと訓練セットのコンテンツの両方を受け取る。生成されたコンテンツかトレーニング・セットの一部かのどちらかに分類しようとします。
これがGANの頭文字をとった「逆行性」の部分である。モデルの生成的な部分は、識別モデルを確実に「騙す」ことができるようになるまで、より良いコンテンツを生成しようとし続ける。GANの基本的な目標は、高品質のコンテンツを生成する生成モデルを訓練することだが、そのために生成モデルと識別モデルの両方を使用する。
教師あり vs 教師なし
識別型か生成型かというドメイン分類の次に、モデルが "教師あり "か "教師なし "かという分類を行う。これはもう少しはっきりしない分類である。教師あり/教師なしという分類は有益だが、多くの種類のAIモデルはハイブリッド・アプローチを利用する。教師ありモデルは、その名の通り、一般的に学習段階で人間の監視が必要となる。教師ありモデルのトレーニング・フェーズでは、初期入力と希望する出力が複数回繰り返される。
教師なしモデルは、その名の通り、人間の入力が少ないか全くない状態で動作する。モデルの目標は、オリジナルのトレーニングセットを使用し、各ラウンドの後に、より良いコンテンツを生成するために、より改善されたトレーニングを複数回受けることです。
生成逆説的ネットワークはどのタイプか?
GANは教師なしAIモデルである。敵対的学習サイクルの往復スタイルは、生成されたコンテンツを継続的に改善するように設計されています。GANを使用する開発者にとっては、最初のデータ・トレーニング・セットの高品質な分類を提供し、複数の反復を実行するコンピューティング・パワーを提供する必要がある。しかし、一度必要なリソースを提供すれば、最小限の人的作業でGANを実行することができる。
生成的逆数ネットワークと畳み込みニューラルネットワークの比較
GANを扱う新しい開発者によくある質問は、それらが畳み込みニューラルネットワーク(CNN)とどのように関連しているかということだ。CNNは識別モデルの一種で、ラベル付けされた既存のコンテンツに基づいてデータを分類するために使われる。多くのGANでは、学習サイクルの最初の段階で、生成されたコンテンツに挑戦する識別モデルとしてCNNを使用する。CNNは、コンピュータの画像認識アーキテクチャで使用する画像の分類によく使用される。
CNNはGANアーキテクチャの生成ステップとしても使われることがある。生成ステップの出力としてコンテンツを生成するためにCNNを使用するには、通常、従来のCNNを使用するのではなく、 変分オートエンコーダのような追加ロジックを追加する必要がある。このツールを従来のCNNと組み合わせて使うと、GAN学習プロセスの世代ステップと敵対ステップの両方にCNNを使うことができる。
よくある質問
GANとは何か、そしてGANが何をするのかが大体分かったところで、GANに関するよくある質問と、なぜあなたのプロジェクトにGANを選ぶのかについて説明しよう。
GANの一般的な使い方は?
GANの主な利点の1つは、多種多様なコンテンツの現実的な例を生成できることです。適切な種類の学習データがあれば、テキストベースのプロンプトを使用して、以下の種類のコンテンツを生成することができます:
- 画像
- 音声コンテンツ(音楽など)
- 白黒画像のカラー化
- 手描きスケッチから写実的な表現への変換
- 前のフレームに基づいて、ビデオの未来のフレームを予測する
- ディープフェイクの作成](https://www.theguardian.com/technology/2020/jan/13/what-are-deepfakes-and-how-can-you-spot-them)
なぜ生成的逆数ネットワークを選ぶのか?
これまで、GANがどのように分類され、どのように機能し、何ができるのかについて多くのことを話してきた。しかし、「なぜGANを使うのか」という素朴な疑問には答えてこなかった。GANを使用する理由の1つは、学習に使用する大規模なデータセットがない問題を扱う場合です。GANの性質は、限られた量のトレーニングデータで作業でき、その後GANにさらにデータを生成させてトレーニングルーチンにフィードバックできることだ。多くの機械学習システムでは、事前にラベル付けされたかなりの量のデータで学習させる必要がある。GANを使用する場合、その必要はない。
GANはまた、画像を扱い、生成することに特に長けている。テキストプロンプトから新しい画像を作成する場合でも、生成されたコンテンツで入力画像を更新する場合でも、GANは視覚的に印象的な結果を提供するのでエキサイティングだ。
なぜ生成的逆数ネットワークの使用を避けるのか?
GANの採用を考えている場合、考慮すべき欠点がいくつかある。まず、GANは、安価にモデルを訓練しようとする場合には適していません。GANは、多段階のトレーニング・サイクルと複数回のトレーニングを受ける必要があるため、トレーニングに特にコストがかかります。そのため、厳しい予算を守ろうとする場合、GANの採用は良い選択ではないかもしれません。
さらに、GANは時に mode collapseと呼ばれる現象が起こります。出力される内容は、訓練データの限られたサブセットであり、期待するような多様性の範囲ではありません。
GANは適合すれば大きな実用性を発揮する
進化のメタファーに話を戻すと、GANはカニやカメではない。何年経っても同じ役割を果たす動物ではない。GANは進化しているのだ。研究者たちは、GANに何ができるのか、どのように設計し、訓練するのがベストなのかをまだ解明していない。ワークフローに機械学習を導入しようと考えているなら、GANを研究することは大いに意味があるが、あなたの仕事に適したツールではないかもしれない。もしそう思えないのであれば、合わない仕事に詰め込もうとするのは避けるべきだ。しかし、もしあなたがGANに適合する仕事、特に画像操作や作成を行っているのであれば、GANを採用しトレーニングすることで、あなたのワークフローに大きなメリットがもたらされる可能性が高い。
費用対効果の高いベクトルデータベースアルゴリズムである Zillizをチェックしてみよう。