畳み込みニューラルネットワーク(convolutional neural network)の略語。
Stable Diffusionの基盤となっている技術の1つ。ディープラーニングを実用段階に押し上げた花形。
画像生成モデル(U-Net拡散モデル)のほかVAEやUpscalerでも応用技術が使われている。
1979年、『ジャパン・アズ・ナンバーワン』が刊行された年にNHK系列の研究者であった福島邦彦博士によって発表された「位置ずれに影響されないパターン認識機構の神経回路のモデル - ネオコグニトロン」から着想を得ている。
つまり我が国の研究者がその確立に大きく貢献した技術である。
福島博士はこの業績により、2021年にバウアー賞を受賞した。
大事なことだからもう一度書く。我が国の研究者から着想を得たと世界的に認められている技術である。
U-Netのエンコーダ部分はまんまCNNなのでそちらのページを見ると分かりやすい、かもしれない。
動物の視覚の仕組みにヒントを得たアーキテクチャで画像処理に向いている。
階層的なネットワークで、細部の特徴から大域的な特徴まで段階的に入力データを分析する。
画像であれば画像について、まず細かい範囲について特徴を抽出する。
次の層では上の層で出した特徴量を束ねて、もう少し広い範囲についての特徴を抽出する。
…という処理を何層かに分けて行う(SDXLの拡散モデルではエンコーダ部は8ブロック)。
CNNの画期的な面は、データの特徴量をある程度勝手に認識してくれることである。
それ以前は画像であればお絵かきソフトの線画抽出とか類似色選択ツール、あるいは音楽再生ソフトの周波数分析みたいな、汎用性が低く特定のタスクに特化したものしかなかった。
なので今よりエンジニアに画像データに関する深い理解と数多くのアルゴリズムの使い分けが求められていた。専門的知識を持って調節する必要のあるパラメータも多かった。
また、描かれているオブジェクトの位置ずれ等にも非常に弱かった。
しかしCNNは適切な学習データを大量にぶち込めば後の調整はある程度気を利かせてくれる。もちろんどれがどのデータと説明したアノテーションはいるし、学習データに偏りがないか等を気にかける必要はあるが。
しかし、CNNもStable Diffusion 1系が出た時点でSOTAつまり最先端技術から外れつつあった。
SD1系のテキストエンコーダはCLIPだが、オリジナルのCLIPはそれ自身画像認識もできた。しかしCLIPは画像認識にCNNだけでなくVision Transformer(ViT)も採用していた。
何故CNNが「歴史的」SOTAに落ちたかというと、CNNには位置的に離れたオブジェクト同士の関係性をうまく扱う仕組みがないという弱点がある。
CNNは動物の視覚を模しているが、実際の動物はモノの細部を見るときもそれが全体のどの部分化を意識しながら見ている。
しかしCNNの浅層は本当に細部だけを見ており、(CNN自体には)位置的に離れた部分の特徴量を参照する仕組みがない。
このために形状に関する観察力が弱く、色や素材感、模様に引っ張られやすいという欠点が指摘されている*1。
SD1系のU-Net拡散モデルも、信頼と実績があり効率的なU-Netを使っているもののViT同様に長距離依存関係を扱えてプロンプトも注入できるTransformerとの折衷案になっている。
その後、Transformerベースの画像生成モデルであるDiTが発表されてU-Net拡散モデルもSOTAの座を失いつつある。
しかしTransformerは重いので、VAEやUpscalerとしてはCNNは今も現役である。