メインコンテンツへスキップ
見出し画像

【AIとの距離感・補足】ノイズから絵が生まれる、らしい|拡散モデル

    前の記事の最後で、「今使っているのは拡散モデルという別の仕組みらしい」と書いて、そのまま置いてきました。

    気になって調べました。


    🌫️ 拡散モデルとは何か

    拡散モデル(Diffusion Model)は、画像にノイズを少しずつ加えていって、最終的にぐちゃぐちゃにする過程を学習する仕組みです。つまり、「きれいな画像を壊す手順」を覚えることで、逆に「壊れた状態から復元する方法」を身につける、という発想です。

    そして、その逆を覚えます。ぐちゃぐちゃな状態から、少しずつノイズを取り除いていくと、もとの画像に戻せるようになる。

    この「逆向きの復元」を応用したのが、画像生成です。

    完全なノイズを出発点にして、少しずつ「それらしい画像」に近づけていく。プロンプトを入れると、AIがノイズの中から意図した画像を彫り出してくる、というイメージに近いかもしれません。


    🔄 GANとどう違うのか

    GANは生成器と識別器が対決しながら学習するモデルでした。一言でいうと、「偽物を作る側」と「見抜く側」が競い合うことで精度を上げていく仕組みです。精度は高いのですが、2つのネットワークのバランスが崩れると学習が不安定になりやすい、という課題があったそうです。

    拡散モデルは対決の構造を持ちません。ノイズを加える・取り除くという、比較的シンプルな手順を繰り返すことで学習します。

    学習が安定しやすく、多様な画像を生成できることから、2020年代に入って急速に普及しました。Stable DiffusionやMidjourney、Geminiの画像生成機能も、拡散モデルをベースにしています。

    毎日使っているのはこれだったんだな、と、少し遅れて気づきました。


    ⏱️ 「少しずつ」が肝らしい

    拡散モデルの特徴は、一発で画像を作るのではなく、何百回もの小さなステップを踏むことです。

    ステップ数を増やすと精度が上がる代わりに時間がかかる。減らすと速いけれど荒くなる。このトレードオフ、つまり「どちらかを立てるともう一方が犠牲になる」という関係を調整する研究が今も続いていて、「速くて精度も高い」方向に少しずつ改善されているようです。

    Geminiで画像を生成するとき、数秒で出てくる裏でこの処理が走っていると思うと、少し見え方が変わりました。速いのは当たり前じゃなかったんだな、と。


    🤔 VAEとの関係

    調べていくと、実は拡散モデルはVAEと組み合わせて使われることが多いとわかりました。

    画像をそのままノイズにするのではなく、VAEで一度圧縮した「特徴の塊」の空間でノイズと復元を行う。これを潜在拡散モデルと呼びます。つまり、画像を丸ごと扱うのではなく、いったん小さく圧縮した状態で処理することで、計算を効率化した仕組みです。Stable Diffusionはこの方式です。

    前の記事で調べたVAEが、ここでつながってきました。遠回りじゃなかったかもしれません。

    ま、いっか。

    画像

    練習問題はありません

    今回は補足記事のため、練習問題はお休みです。
    次回は本編に戻ります。


    あとがき

    ここまで読んでくださり、ありがとうございます。

    ノイズから生まれてるんですね〜
    拡散モデル…ふむふむ…なるほど?

    よし!

    「フォロー」や「スキ」をしていただけると励みになります!
    今後ともよろしくお願いします!


    画像

    ※シリーズ一覧用のマガジンです。よければ〜


    この記事が参加している募集

     
     
    生成AIを使いながら、気づきや学びをマイペースに発信しています。 遊びながら学ぶをモットーに、無理なく、楽しく続けていきたいです🌱 お仕事のご相談・ご依頼も受け付けております。 問い合わせ窓口:https://green27donguri.github.io

    あなたへのおすすめ