cfg_post
@fminxyz — Пост: CFG — как усилить «кошачесть» без классификатора
Серия 2 | Пост 5 из 5 | Финал серии
Текст поста (~1800 символов)
Как усилить «кошачесть» — не обучая отдельный классификатор 🐈
Вы когда-нибудь крутили ползунок “Guidance Scale” в Stable Diffusion? Это и есть CFG.
Проблема:
Диффузионная модель умеет генерировать что угодно. Но нам нужна именно кошка, причём очень кошачья. Как усилить нужное направление в пространстве шума?
Формула CFG:
ε_cfg = ε_uncond + w · (ε_cond − ε_uncond)
Одно уравнение. Три вектора. Никакого классификатора.
Мы берём безусловный score (общее направление к данным) и условный (направление к кошкам) — и экстраполируем за пределы условного. Это не интерполяция, а выход за границу.
Интуиция — как импульс в оптимизации:
ε_cond − ε_uncond — это “разница кошки и среднего по больнице”. Умножаем на w и добавляем. Похоже на momentum: усиливаешь компоненту градиента, которая отличает класс от фона.
Параметр w:
• w=1 → ε_cfg = ε_cond (обычная условная генерация, без усиления)
• w=7 → Stable Diffusion по умолчанию, баланс качество/разнообразие ✓
• w=30+ → «пережаренный» результат: артефакты, гиперсатурация, deep fried
Байесовская интерпретация:
Если ε_uncond ≈ score под p(x), а ε_cond ≈ score под p(x|y), то CFG моделирует score под:
p(x|y)^(1+w) · p(x)^(−w)
Это заострение posterior — как если бы температура выборки упала в (1+w) раз.
Практика:
Каждый пользователь Midjourney, SD, DALL·E неосознанно делает байесовский вывод с температурным сжатием. Никакого классификатора не обучалось — только два forward pass через одну нейросеть.
В анимации: три концепции в 2D пространстве score. Серые стрелки — ε_uncond, синие — ε_cond (кошка), красные — ε_cfg. Точка идёт всё точнее к «cat» при росте w — и улетает в артефакты при w=30.
CFG — это буст в оптимизации. Какой алгоритм это напоминает? 🤔
Метаданные
- Файлы: cfg_vector_field.py → cfg_vector_field_animation.mp4 (25с, ~508 KB)
- Хэштеги: #нейросети #диффузия #CFG #StableDiffusion #deeplearning #генерация
- CTA: “CFG — это буст в оптимизации. Какой алгоритм это напоминает?”
- Связь с каналом: CFG extrapolation = momentum/Adam-style directional boost = паттерн оптимизации
- Серия: завершает серию 2 (DDPM → Score Matching → DDIM → Flow Matching → CFG)