{"notes":[{"id":"classic-cnns/fcdm","category":"classic-cnns","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"FCDM","subtitle":"Transformerしか使えないのか？","author":"Z. Yuan","paperDate":"2026-03-10","publishedOn":"2026-04-07","paperTitle":"Reviving ConvNeXt for Efficient Convolutional Diffusion Models","paperUrl":"https://arxiv.org/abs/2603.09408","bibliography":{"title":"Reviving ConvNeXt for Efficient Convolutional Diffusion Models","authors":["Taesung Kwon","Lorenzo Bianchi","Lennart Wittke","Felix Watine","Fabio Carrara","Jong Chul Ye","Romann Weber","Vinicius Azevedo"],"url":"https://arxiv.org/abs/2603.09408","pdfUrl":"https://arxiv.org/pdf/2603.09408v1","codeUrl":"https://github.com/star-kwon/FCDM","preprint":{"id":"2603.09408","submittedOn":"2026-03-10","url":"https://arxiv.org/abs/2603.09408"},"publication":{"venue":"CVPR","year":2026,"kind":"conference","url":"https://openaccess.thecvf.com/content/CVPR2026/html/Kwon_Reviving_ConvNeXt_for_Efficient_Convolutional_Diffusion_Models_CVPR_2026_paper.html"},"citation":"@misc{classiccnnsfcdm2026,\n  title = {{Reviving ConvNeXt for Efficient Convolutional Diffusion Models}},\n  author = {Taesung Kwon and Lorenzo Bianchi and Lennart Wittke and Felix Watine and Fabio Carrara and Jong Chul Ye and Romann Weber and Vinicius Azevedo},\n  year = {2026},\n  eprint = {2603.09408},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2603.09408}\n}\n","citationPath":"/content/papers/citations/classic-cnns/fcdm.7438c4ca3414.bib"},"thumbnail":{"src":"/content/papers/assets/2a98fdd408b56d724e2b57d3c4a4a2e3c8f3d1ffc8384c400f1ffceff0f84aad.png","width":1960,"height":1280},"locale":"ja","path":"/content/papers/ja/classic-cnns/fcdm.817df41633bf.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"拡散モデルのバックボーンの役割","text":"拡散モデルのバックボーンの役割","depth":3},{"id":"畳み込みも同じように拡大できるか","text":"畳み込みも同じように拡大できるか","depth":3},{"id":"問題の解決","text":"問題の解決","depth":2},{"id":"fcdmブロック","text":"FCDMブロック","depth":3},{"id":"u型構造調整項目は2つだけ","text":"U型構造、調整項目は2つだけ","depth":3},{"id":"dicoとの違い","text":"DiCoとの違い","depth":3},{"id":"考察","text":"考察","depth":2},{"id":"実験設定","text":"実験設定","depth":3},{"id":"どのサイズでもditを上回る","text":"どのサイズでもDiTを上回る","depth":3},{"id":"guidanceを使うと","text":"guidanceを使うと","depth":3},{"id":"解像度を倍にする","text":"解像度を倍にする","depth":3},{"id":"アブレーション","text":"アブレーション","depth":3},{"id":"gpu-4枚","text":"GPU 4枚","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/convnext","relation":"referenced","topic":""},{"id":"classic-cnns/convnext-v2","relation":"referenced","topic":""},{"id":"feature-fusion/unet","relation":"referenced","topic":""}]},{"id":"classic-cnns/convnext","category":"classic-cnns","legacyPath":"classic-cnns/2201-convnext","legacySlug":"2201-convnext","legacyPaths":[],"title":"ConvNeXt","subtitle":"卷積を再び偉大に","author":"Z. Yuan","paperDate":"2022-01-10","publishedOn":"2024-06-30","paperTitle":"A ConvNet for the 2020s","paperUrl":"https://arxiv.org/abs/2201.03545","bibliography":{"title":"A ConvNet for the 2020s","authors":["Zhuang Liu","Hanzi Mao","Chao-Yuan Wu","Christoph Feichtenhofer","Trevor Darrell","Saining Xie"],"url":"https://arxiv.org/abs/2201.03545","pdfUrl":"https://arxiv.org/pdf/2201.03545","codeUrl":"https://github.com/facebookresearch/ConvNeXt","preprint":{"id":"2201.03545","submittedOn":"2022-01-10","url":"https://arxiv.org/abs/2201.03545"},"publication":{"venue":"CVPR","year":2022,"kind":"conference","url":"https://arxiv.org/abs/2201.03545"},"citation":"@misc{classiccnnsconvnext2022,\n  title = {{A ConvNet for the 2020s}},\n  author = {Zhuang Liu and Hanzi Mao and Chao-Yuan Wu and Christoph Feichtenhofer and Trevor Darrell and Saining Xie},\n  year = {2022},\n  eprint = {2201.03545},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2201.03545}\n}\n","citationPath":"/content/papers/citations/classic-cnns/convnext.801b4060b807.bib"},"thumbnail":{"src":"/content/papers/assets/37882616c5c72df33699003256d14bf7c58c8ea5d1e9e4fb5b1c33268c9a6923.jpg","width":1224,"height":432},"locale":"ja","path":"/content/papers/ja/classic-cnns/convnext.4e647352c822.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"解決策","text":"解決策","depth":2},{"id":"ネットワークアーキテクチャの再設計","text":"ネットワークアーキテクチャの再設計","depth":3},{"id":"現代的なトレーニング技術の導入","text":"現代的なトレーニング技術の導入","depth":3},{"id":"マクロ設計","text":"マクロ設計","depth":3},{"id":"resnext-化","text":"ResNeXt 化","depth":3},{"id":"逆瓶頸","text":"逆瓶頸","depth":3},{"id":"大きな畳み込み核","text":"大きな畳み込み核","depth":3},{"id":"微細設計","text":"微細設計","depth":3},{"id":"討論","text":"討論","depth":2},{"id":"モデル設定の概要","text":"モデル設定の概要","depth":3},{"id":"imagenet-上での性能","text":"ImageNet 上での性能","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"vision-transformers/convmixer","relation":"comparison","topic":"畳み込みによる画像パッチの混合"},{"id":"vision-transformers/caformer","relation":"comparison","topic":"畳み込みによる画像パッチの混合"},{"id":"reparameterization/replknet","relation":"comparison","topic":"大きなカーネルと簡潔な畳み込み骨格"}]},{"id":"classic-cnns/convnext-v2","category":"classic-cnns","legacyPath":"","legacySlug":"","legacyPaths":[],"title":"ConvNeXt V2","subtitle":"畳み込みも穴埋めができる","author":"Z. Yuan","paperDate":"2023-01-02","publishedOn":"2025-09-27","world":"external/convnext-v2","paperTitle":"ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders","paperUrl":"https://arxiv.org/abs/2301.00808","bibliography":{"title":"ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders","authors":["Sanghyun Woo","Shoubhik Debnath","Ronghang Hu","Xinlei Chen","Zhuang Liu","In So Kweon","Saining Xie"],"url":"https://arxiv.org/abs/2301.00808","pdfUrl":"https://arxiv.org/pdf/2301.00808v1","codeUrl":null,"preprint":{"id":"2301.00808","submittedOn":"2023-01-02","url":"https://arxiv.org/abs/2301.00808"},"publication":{"venue":"CVPR","year":2023,"kind":"conference","url":"https://openaccess.thecvf.com/content/CVPR2023/html/Woo_ConvNeXt_V2_Co-Designing_and_Scaling_ConvNets_With_Masked_Autoencoders_CVPR_2023_paper.html"},"citation":"@misc{classiccnnsconvnextv22023,\n  title = {{ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders}},\n  author = {Sanghyun Woo and Shoubhik Debnath and Ronghang Hu and Xinlei Chen and Zhuang Liu and In So Kweon and Saining Xie},\n  year = {2023},\n  eprint = {2301.00808},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/2301.00808}\n}\n","citationPath":"/content/papers/citations/classic-cnns/convnext-v2.065fc6e2e545.bib"},"thumbnail":{"src":"/content/papers/assets/0af11b7bcef637ee0205fe47b31901b1b775a0336ccab0042e73e8d9643589c0.png","width":1640,"height":600},"locale":"ja","path":"/content/papers/ja/classic-cnns/convnext-v2.ccc536a1140c.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"maeはなぜそのまま使えないのか","text":"MAEはなぜそのまま使えないのか","depth":3},{"id":"問題の解決","text":"問題の解決","depth":2},{"id":"fcmae全畳み込みのmae","text":"FCMAE：全畳み込みのMAE","depth":3},{"id":"事前学習を替えるだけでは足りない","text":"事前学習を替えるだけでは足りない","depth":3},{"id":"特徴の崩壊","text":"特徴の崩壊","depth":3},{"id":"grnチャネルどうしを競わせる","text":"GRN：チャネルどうしを競わせる","depth":3},{"id":"convnext-v2ブロック","text":"ConvNeXt V2ブロック","depth":3},{"id":"考察","text":"考察","depth":2},{"id":"アーキテクチャと事前学習は一緒に変える","text":"アーキテクチャと事前学習は一緒に変える","depth":3},{"id":"transformerのmaeと比べる","text":"TransformerのMAEと比べる","depth":3},{"id":"検出とセグメンテーション","text":"検出とセグメンテーション","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"classic-cnns/convnext","relation":"referenced","topic":""},{"id":"vision-transformers/mae","relation":"referenced","topic":""}]},{"id":"feature-fusion/unet","category":"feature-fusion","legacyPath":"feature-fusion/1505-unet","legacySlug":"1505-unet","legacyPaths":[],"title":"U-Net","subtitle":"融合の序章","author":"Z. Yuan","paperDate":"2015-05-18","publishedOn":"2024-08-15","paperTitle":"U-Net: Convolutional Networks for Biomedical Image Segmentation","paperUrl":"https://arxiv.org/abs/1505.04597","bibliography":{"title":"U-Net: Convolutional Networks for Biomedical Image Segmentation","authors":["Olaf Ronneberger","Philipp Fischer","Thomas Brox"],"url":"https://arxiv.org/abs/1505.04597","pdfUrl":"https://arxiv.org/pdf/1505.04597","codeUrl":null,"preprint":{"id":"1505.04597","submittedOn":"2015-05-18","url":"https://arxiv.org/abs/1505.04597"},"publication":{"venue":"MICCAI","year":2015,"kind":"conference","url":"https://doi.org/10.1007/978-3-319-24574-4_28"},"citation":"@misc{featurefusionunet2015,\n  title = {{U-Net: Convolutional Networks for Biomedical Image Segmentation}},\n  author = {Olaf Ronneberger and Philipp Fischer and Thomas Brox},\n  year = {2015},\n  eprint = {1505.04597},\n  archivePrefix = {arXiv},\n  url = {https://arxiv.org/abs/1505.04597}\n}\n","citationPath":"/content/papers/citations/feature-fusion/unet.b015405a1c46.bib"},"thumbnail":{"src":"/content/papers/assets/0b302bf8ed079d85b3a07562463380875eb3d9dfc631684549000c38d16a5f38.jpg","width":1224,"height":824},"locale":"ja","path":"/content/papers/ja/feature-fusion/unet.1edb542cd9d4.md","headings":[{"id":"問題の定義","text":"問題の定義","depth":2},{"id":"問題の解決","text":"問題の解決","depth":2},{"id":"討論","text":"討論","depth":2},{"id":"isbi-cell-tracking-challenge-2015","text":"ISBI Cell Tracking Challenge 2015","depth":3},{"id":"結論","text":"結論","depth":2}],"anchorAliases":{},"guide":null,"relatedReading":[{"id":"segmentation/fcn","relation":"background","topic":"密な予測とエンコーダ・デコーダ間のスキップ接続"},{"id":"feature-fusion/unetpp","relation":"next","topic":"密な予測とエンコーダ・デコーダ間のスキップ接続"},{"id":"feature-fusion/trans-unet","relation":"comparison","topic":"エンコーダ・デコーダのスケール間特徴伝達"}]}],"text":"拡散モデルのバックボーンは、この数年で明確な道を歩んできました。\n\n初期のDDPM、ADM、Stable Diffusionを支える潜在拡散モデル（LDM）は、畳み込みと注意を組み合わせたU-Netを使います。その後DiTは畳み込みをすべて取り除き、Transformerブロックの積層へ替え、見事にスケールしました。SD3やFLUXなどのテキストから画像を生成するモデルもTransformerを使います。\n\n一方、分類ではConvNeXtが、適切に調整した畳み込みネットワークはTransformerに並べると示していました。ならば拡散モデルにも純粋な畳み込みを使えるのではないでしょうか。\n\nKAIST、ETH Zürich、イタリアの研究者は、ConvNeXtをそのまま拡散モデルのバックボーンへ改造します。DiTの学習・評価手順を使い、小規模から大規模まで比べます。\n\n\n> [!TIP]\n> \n> ConvNeXtの設計、ConvNeXt V2のGRN、U-Netの構造については、先にこちらを読めます。\n> \n> - **[[22.01] ConvNeXt：卷積を再び偉大に](/blog/papers/classic-cnns/convnext)**\n> - **[[23.01] ConvNeXt V2：畳み込みも穴埋めができる](/blog/papers/classic-cnns/convnext-v2)**\n> - **[[15.05] U-Net：融合の序章](/blog/papers/feature-fusion/unet)**\n\n\n## 問題の定義\n\n### 拡散モデルのバックボーンの役割\n\nまず背景です。拡散モデルは純粋なノイズから始め、少しずつノイズを除いて画像を作ります。各ステップでバックボーンを呼び、現在のノイズ入り画像、時刻$t$、条件（ここではImageNetクラス$y$）を入力し、ノイズを予測します。\n\n計算を節約するため、現在は潜在空間を使うことが多くなっています。256×256画像をVAEで32×32×4の潜在表現へ圧縮し、この小さなテンソル上で拡散と除去を行い、最後に画像へ復号します。\n\nDiTは潜在表現を小パッチへ分け、tokenとしてTransformerへ渡します。ブロック数、チャネル数、ヘッド数、パッチサイズだけで拡大でき、時刻とクラスもadaLN-Zeroで各ブロックへ簡潔に注入できるため、広く使われます。ただし高価で、DiT-XL/2は1回の順伝播に118.6 GFLOPs、最良の結果は700万ステップの学習です。\n\n### 畳み込みも同じように拡大できるか\n\n畳み込みバックボーンを再検討した先行研究もあります。DiCは3×3畳み込みのU-Net、DiCoは3×3分離可能畳み込みとチャネル注意を使い、どちらもDiTより計算が少なくなります。この論文の問いはより直接的です。分類で検証されたConvNeXtの設計をそのまま持ち込んで、DiTと同じように拡大しながら、計算を減らせるでしょうか。\n\n## 問題の解決\n\n### FCDMブロック\n\n[![本稿で整理した模式図。左のFCDMブロックは上から7×7 depthwise畳み込み、アフィンパラメータなしのLayerNorm、青い「(1 + scale)を掛けてshiftを足す」処理、CをrCへ拡張する1×1畳み込み、GELU、GRN、Cへ戻す1×1畳み込み、青いgateの乗算、入力との加算。右側の青い条件分岐はクラスyと時刻tの埋め込みcをSiLUとゼロ初期化した線形層へ通し、shift、scale、gateを出す。ゼロ初期化ではgate=0でブロックは恒等写像から始まると注記。右のU型構造は、入力潜在表現をLブロック・Cチャネル、2倍ダウンサンプリング後に2L・2C、さらに中央の4L・4Cへ進め、対称にアップサンプリングし、同じ段を破線のスキップ接続で結ぶ。](/content/papers/assets/2a98fdd408b56d724e2b57d3c4a4a2e3c8f3d1ffc8384c400f1ffceff0f84aad.png)](/content/papers/assets/2a98fdd408b56d724e2b57d3c4a4a2e3c8f3d1ffc8384c400f1ffceff0f84aad.png)\n\n*図：本稿で整理。原論文3.1節と公式コードに基づいて作図。*\n\nほぼConvNeXt V2のブロックです。7×7 depthwise畳み込み、LayerNorm、2つの1×1畳み込みによる拡張と圧縮を置き、間にGELUとGRNを挟み、最後に残差を足します。公式コードの拡張率$r$は3です。\n\n分類用のConvNeXtには時刻やクラスの条件を入れる場所がありません。著者はDiTのadaLN-Zeroに倣い、クラスと時刻の埋め込みを小さな線形層へ通してshift、scale、gateの3組を作ります。LayerNorm自体のアフィンパラメータを除き、$h\\cdot(1+\\text{scale})+\\text{shift}$を適用し、ブロック出力へgateを掛けてから残差を足します。線形層をゼロ初期化するので、学習開始時はgate=0で各ブロックが恒等写像となり、深くても安定して始められます。\n\nこの説明に沿ってブロックを書き、初期化と条件の効果を確かめます。\n\n```python\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass GRN(nn.Module):                                  # ConvNeXt V2のGlobal Response Normalization\n    def __init__(self, c):\n        super().__init__()\n        self.gamma = nn.Parameter(torch.zeros(1, c, 1, 1))\n        self.beta = nn.Parameter(torch.zeros(1, c, 1, 1))\n\n    def forward(self, x):\n        g = x.norm(p=2, dim=(2, 3), keepdim=True)\n        return self.gamma * (x * g / (g.mean(1, keepdim=True) + 1e-6)) + self.beta + x\n\nclass FCDMBlock(nn.Module):\n    def __init__(self, c, r=3):\n        super().__init__()\n        self.dw = nn.Conv2d(c, c, 7, padding=3, groups=c)\n        self.pw1, self.pw2 = nn.Conv2d(c, r * c, 1), nn.Conv2d(r * c, c, 1)\n        self.grn = GRN(r * c)\n        self.ada = nn.Sequential(nn.SiLU(), nn.Linear(c, 3 * c))\n        nn.init.zeros_(self.ada[1].weight)              # 条件分岐は0から始める\n        nn.init.zeros_(self.ada[1].bias)\n\n    def forward(self, x, cond):\n        shift, scale, gate = self.ada(cond)[:, :, None, None].chunk(3, dim=1)\n        h = F.layer_norm(self.dw(x).permute(0, 2, 3, 1), (x.shape[1],)).permute(0, 3, 1, 2)\n        h = h * (1 + scale) + shift                     # 条件がチャネルごとのスケールとシフトを決める\n        h = self.pw2(self.grn(F.gelu(self.pw1(h))))\n        return x + gate * h                             # gateも条件から決める\n\ntorch.manual_seed(0)\nc = 32\nblock = FCDMBlock(c)\nx = torch.randn(2, c, 16, 16)\ncond_a, cond_b = torch.randn(1, c).expand(2, c), torch.randn(1, c).expand(2, c)   # 異なる2組のクラス＋時刻埋め込み\n\nwith torch.no_grad():\n    print(\"初期化直後：出力と入力の最大差\", f\"{(block(x, cond_a) - x).abs().max():.1e}\")\n    nn.init.normal_(block.ada[1].weight, std=0.1)    # しばらく学習した状態を模擬\n    ya, yb = block(x, cond_a), block(x, cond_b)\n    print(\"学習後：同じ入力で条件を変えたときの出力差\", f\"{(ya - yb).abs().max():.2f}\")\n```\n\n```text\n初期化直後：出力と入力の最大差 0.0e+00\n学習後：同じ入力で条件を変えたときの出力差 0.85\n```\n\n初期化直後は入力をまったく変えません。条件分岐の重みが育つと、同じ入力でもクラスや時刻によって処理が変わります。この3組のパラメータから条件を注入します。\n\n### U型構造、調整項目は2つだけ\n\nブロックをU型に並べます。下りの3段はチャネルが$C$、$2C$、$4C$、ブロック数が$L$、$2L$、$4L$で、ダウンサンプリングのたび両方を倍にします。上りは対称で、同じ段をスキップ接続で結びます。ハイパーパラメータは$L$と$C$だけです。\n\n公平に比較するため、4サイズともパラメータ数をDiTにそろえます。\n\n| モデル | $L$ | $C$ | パラメータ数 | FLOPs | DiTに対するFLOPs |\n| --- | ---: | ---: | ---: | ---: | ---: |\n| FCDM-S | 2 | 128 | 32.7M | 3.1G | 50.8% |\n| FCDM-B | 2 | 256 | 127.7M | 12.2G | 53.0% |\n| FCDM-L | 2 | 512 | 504.5M | 48.3G | 59.9% |\n| FCDM-XL | 3 | 512 | 698.8M | 64.6G | 54.5% |\n\n*表：原論文Table 2より。FLOPsは解像度256×256で計算。*\n\nパラメータ数は同じで、FLOPsはおよそ半分です。\n\n### DiCoとの違い\n\nDiCoは従来最良の畳み込み拡散モデルで、構造もよく似ているため、著者は1節を使って違いを説明しています。\n\nDiCoの畳み込みモジュールは最初から最後まで同じチャネル数を保ちます。FCDMはConvNeXtの倒立ボトルネックを使い、元のチャネル数でdepthwise畳み込みをしてから拡張するので、そのコストは拡張率に左右されません。DiCoは追加の1×1畳み込みによるチャネル注意で応答の多様性を増やしますが、FCDMはGRNで似た効果をほぼ追加パラメータなしに得ます。DiCoには独立したフィードフォワードモジュールもあり、FCDMでは倒立ボトルネックが兼ねるため省けます。\n\n同じパラメータ数で、FLOPsはDiCoのおよそ4分の3になります。\n\n## 考察\n\n### 実験設定\n\n学習はDiTの手順に従います。AdamW、固定学習率$10^{-4}$、重み減衰なし、バッチ256、データ拡張は水平反転だけで、EMA重みを使います。評価はFIDで、生成画像5万枚と実画像の特徴分布間の距離を求め、低いほど良い指標です。\n\n### どのサイズでもDiTを上回る\n\nまず40万ステップ、classifier-free guidanceなしの結果です。\n\n| モデル | FLOPs | 推論スループット | FID |\n| --- | ---: | ---: | ---: |\n| DiT-S/2 | 6.1G | 1234 | 68.4 |\n| FCDM-S | 3.1G | 2687 | **48.5** |\n| DiT-B/2 | 23.0G | 380 | 43.5 |\n| FCDM-B | 12.2G | 1002 | **26.2** |\n| DiT-L/2 | 80.7G | 115 | 23.3 |\n| FCDM-L | 48.3G | 381 | **13.8** |\n| DiT-XL/2 | 118.6G | 81 | 19.5 |\n| FCDM-XL | 64.6G | 273 | **10.7** |\n| DiT-XL/2（700万ステップ） | 118.6G | 81 | 9.6 |\n| FCDM-XL（100万ステップ） | 64.6G | 273 | **7.9** |\n\n*表：原論文Table 1とTable 3より。スループットの単位は論文報告のit/s。*\n\n同じステップ数なら各サイズのFIDが大幅に低く、推論スループットはDiTの2.2〜3.4倍です。収束の速さは最後の2行がよく示します。FCDM-XLは100万ステップで、700万ステップ学習したDiT-XL/2よりFIDが低くなります。\n\n他の畳み込みバックボーンとの差は小さくなります。40万ステップでDiCo-LのFIDは13.66とFCDM-Lの13.83より少し良好です。XLではFCDMが10.72、DiCoが11.67で、FCDMのFLOPsは4分の1少なくなります。小モデルのスループットはDiCが最高で、ハードウェア最適化が最も進んだ標準3×3畳み込みを使っています。\n\n### guidanceを使うと\n\nFCDM-XLを200万ステップ（400 epoch）まで学習し、classifier-free guidanceを加えて既報の結果と比べます。\n\n| モデル | 学習epoch | FLOPs | FID | IS |\n| --- | ---: | ---: | ---: | ---: |\n| DiT-XL/2 | 1400 | 118.6G | 2.27 | 278.2 |\n| SiT-XL/2 | 1400 | 118.6G | 2.06 | 277.5 |\n| DiCo-XL | 750 | 87.3G | 2.05 | 282.2 |\n| FCDM-XL | 400 | 64.6G | **2.03** | **285.7** |\n\n*表：原論文Table 4の一部の行を抜粋。ImageNet 256×256。*\n\nFID 2.03はDiT-XL/2の2.27より良く、学習epoch数は3分の1未満です。ただしSiTやDiCoとの差は小数第2位です。著者もDiTの実験設定では同クラスを上回る一方、EDM-2やSimpler Diffusionなど最新の最高水準には届いていないと明記しています。\n\n### 解像度を倍にする\n\n512×512ではFCDM-XLの100万ステップでFID 7.46、DiT-XL/2の300万ステップで12.03、DiCo-XLの130万ステップで8.10です。\n\nさらに興味深いのは速度変化です。解像度を256から512へ上げると、DiT-XL/2のスループットは80.5から18.6と4分の1未満へ下がり、FCDM-XLは272.7から129.6と約半分です。注意はtoken数の2乗、畳み込みはピクセル数に線形で計算が増えるので、高解像度ほど差が広がります。\n\n### アブレーション\n\nFCDM-Lを20万ステップ学習し、1か所ずつ変えてFIDを見ます。\n\n| 変更 | FID |\n| --- | ---: |\n| FCDM-L（7×7 depthwise、GRN、倒立ボトルネック） | **19.97** |\n| depthwiseを5×5へ | 20.48 |\n| depthwiseを3×3へ | 21.28 |\n| GRNをDiCoのチャネル注意へ | 23.85 |\n| DiCoのフィードフォワードを追加 | 28.52 |\n| 倒立ボトルネックを除去 | 28.76 |\n| ResNetブロックへ変更 | 31.14 |\n\n*表：原論文Table 6より。最後の4行はチャネル数を調整してFLOPsをそろえる。*\n\nカーネルが小さいほど悪くなり、生成でも大きなカーネルが役立ちます。DiCoの設計を持ち込むと悪化し、倒立ボトルネックを除いたりResNetブロックへ戻したりすると大きく落ちます。ConvNeXtの設計は、生成でもほぼすべて有効です。\n\n### GPU 4枚\n\n論文は学習コストも強調します。RTX 4090 4枚で勾配チェックポイントを有効にし、バッチ256としたFCDM-XLは約0.9ステップ／秒です。バッチ256は40GB A100 1枚にも収まります。\n\nこの速度から本稿で推算すると、40万ステップは約5日、200万ステップは約26日です。これは論文の数値から本稿が計算した見積もりです。一般的な研究室でも手が届く規模です。\n\n公式repoは学習・サンプリングコードをCC BY-NCで提供し、現時点で事前学習済み重みは付属していません。\n\n## 結論\n\nFCDMは新しい部品をほとんど発明していません。ConvNeXt V2のブロック、DiTのadaLN-Zeroによる条件注入、調整項目2つのU型構造はすべて既存です。組み合わせるとFLOPsはDiTの約半分、収束は数倍速くなり、高解像度ほど利点が増します。\n\n2.03という数値より説得力があるのはアブレーションです。DiCoの改良を持ち込んでも、ConvNeXtの設計を除いても悪化します。分類用に設計したブロックが、生成でもほぼそのまま通用しました。\n\nしたがって題名の問いへの答えは、少なくともImageNetのクラス条件付き生成では「必ずしもそうではない」です。\n\nテキストからの画像生成はまだ先です。付録はMS-COCOで10万ステップだけ学習して数枚の生成例を示し、条件もプーリングしたCLIPテキストベクトルだけです。SD3のように完全なテキスト系列を接続することは、著者も今後の課題としています。\n","imageSizes":{"/content/papers/assets/2a98fdd408b56d724e2b57d3c4a4a2e3c8f3d1ffc8384c400f1ffceff0f84aad.png":{"width":1960,"height":1280}}}
