Кошка vs собака — складываем слои и меняем координаты

У кошки и собаки есть и шерсть, и глаза, и уши. Что нужно, чтобы различить два объекта с похожими низкоуровневыми признаками? Покрутив картинку в 3D, увидим, почему перцептрон и SVM упираются в одну плоскость, и посмотрим, как скрытый слой меняет координаты. Затем проследим весь путь, которым CNN превращает фото в вероятности, и её обучение, а потом своими руками попробуем аугментацию данных, которая вклеивает ключевой кусочек и смешивает ответы (Attentive CutMix).

57.7% → 99.2%те же точки: линейный SVM против MLP с 3 скрытыми нейронами (код 1)
29,858обучаемых чисел в маленькой CNN
7 × 7сетка последней карты признаков (как у ResNet-50)
6/49доля ответа «кошка» в Attentive CutMix
93.3 → 95.2%эффект CutMix при 200 фотографиях (код 2)
2кода, запускаемых прямо в Colab
1Задача

Кошка vs собака — и шерсть, и глаза, и уши

У обеих есть шерсть, два глаза и стоячие уши. Одних низкоуровневых признаков мало, чтобы их различить. Что должна надстроить модель, чтобы развести эти два класса?

Схема процесса: фото серой кошки подаётся в нейросеть для извлечения признаков, получается карта признаков, кусочки с сильным откликом вклеиваются в фото золотистого ретривера, а ответ смешивается как кошка 6/49, собака 43/49
Изображение создано автором. Оно показывает процедуру Attentive CutMix [R6].

В 4-2 кошка и человек различались уже на уровне низкоуровневых признаков — шерсть и кожа. С кошкой и собакой всё иначе. Шерсть есть у обеих, поэтому карты границ похожи, а разница — в форме частей: длине морды, размере носа, контуре головы.

В этом выпуске три темы: почему после добавления слоёв разделяется то, что не делилось одной плоскостью (раздел 2), как CNN превращает фото в вероятности (разделы 3–4) и аугментация данных, которая учит модель сосредотачиваться на ключевых частях, — Attentive CutMix с рисунка (разделы 5–6).

Объяснение для начинающих

На рисунке из фото кошки выбирается кусочек, на который модель отреагировала сильнее всего (возле глаз и ушей), вклеивается в фото собаки, а ответ смешивается пропорционально вклеенной площади. Из 49 клеток 6 — кошачьи, поэтому ответ — «кошка 6/49, собака 43/49». В разделе 6 попробуем сами.

2Зачем слои

Граница классов и смена координат — зачем складывать слои

Перцептрон и SVM из 4-1 проводят одну плоскость. В исходных пиксельных координатах классы одной плоскостью не разделить. Решение — сменить координаты, и именно то, кто выбирает способ смены, отличает ядерный SVM от многослойной нейросети.

1Модель

Линейный классификатор проводит в пространстве признаков одну плоскость (в 2D — прямую, в 3D — плоскость, в больших размерностях — гиперплоскость) и отвечает по тому, с какой стороны лежит точка. Однослойный перцептрон и линейный SVM устроены именно так, и оба находят веса w и смещение b. Различается лишь критерий выбора плоскости: перцептрон останавливается, когда не остаётся ошибочных точек, а SVM выбирает плоскость с самым широким промежутком до обеих групп (зазором). Поэтому то, что они находят веса, их не различает.

Линейный SVM ≈ однослойный перцептронодна плоскость в исходных координатах
Ядерный SVMплоскость после смены координат по формуле, выбранной человеком
Многослойный перцептрон·CNNплоскость после того, как выучен и сам способ смены координат

Проще говоря, это как разделить одной линейкой перемешанные на столе чёрные и белые бусины. Если чёрные собраны в центре, а белые окружают их кольцом, то как ни клади линейку, какую-то часть она разрежет. А если прогнуть стол так, чтобы середина ушла вниз, чёрные бусины опустятся, белые останутся наверху — и их можно разделить одной горизонтальной пластиной. Ядерный SVM — это когда человек говорит, как прогнуть стол, а многослойная нейросеть сама учится, как его прогнуть.

2Формула
Линейный классификатор:   ŷ = 1  if  w · x + b > 0,  иначе 0
Линейный SVM:   такие (w, b), которые верно классифицируют все образцы и дают максимальный зазор 2 / ‖w‖Форма границы та же, что у перцептрона, различается лишь критерий «какую плоскость выбрать». На практике используют мягкий зазор (soft margin), допускающий небольшие ошибки.
Ядерный SVM:   w · φ(x) + b,   φ выбирает человек (например, φ(x₁, x₂) = (x₁, x₂, x₁² + x₂²))
Многослойный перцептрон:   h = σ(W₁x + b₁),   ŷ = [ w₂ · h + b₂ > 0 ]Скрытый слой h — это новые координаты, а W₁·b₁ определяются обучением. Последняя строка — однослойный перцептрон, проводящий плоскость в новых координатах h.
w, b
Направление и положение плоскости. Находят все методы
φ(x)
Функция смены координат. В ядерном SVM её задаёт выбранное человеком ядро
σ
Функция с изломом вроде tanh или ReLU (функция активации). Без неё сколько слоёв ни складывай — получится одна плоскость
h
Выход скрытого слоя. Новые признаки, созданные обучением
Читаем формулу по частям
  1. w · x + bВзвешенная сумма перцептрона. Каждый признак умножается на свой вес, всё складывается, и если результат больше 0, ответ — один из классов. Точки, где сумма равна 0, образуют граничную плоскость.
  2. φ(x)Смена координат. Цель — чтобы граница, изогнутая в исходном пространстве, в новом пространстве стала ровной плоскостью.
  3. σ(W₁x + b₁)Это φ, превращённая в обучаемую формулу. Если менять W₁, меняется способ смены координат, и обучение подправляет W₁ так, чтобы последняя плоскость разделяла хорошо. Свёрточные слои CNN тоже выполняют эту роль.
Пробуем на числахТочки (0.1, 0.2) и (0.7, 0.1): в исходных координатах одна в центре, другая снаружи, и одной прямой центр не окружить
Если перейти к φ = (x₁, x₂, x₁² + x₂²), третья координата станет 0.05 и 0.50 → их делит одна плоскость «третья координата = 0.3»
3Крутим в 3D · делим одни и те же точки тремя методами

Точки двух групп: группа в центре и группа, окружающая её кольцом (вымышленные данные для объяснения). Переключайте метод кнопками и вращайте рисунок, перетаскивая его. Скрытый слой в ③ (3 нейрона) действительно обучается в браузере при открытии этой страницы.

Метод
100%
Доля верных ответов одной плоскостью: -
Оси координат: -

● группа в центре   ● группа по кругу   фиолетовая поверхность = граничная плоскость. Щёлкнув по рисунку, его можно вращать и клавишами со стрелками.

4Сравнение по одним критериям
МетодФорма границыКто задаёт координаты (признаки)На сырых пикселях фотоПоявление
Однослойный перцептронОдна плоскостьНе меняютсяПлохо1958
Линейный SVMОдна плоскость (максимальный зазор)Не меняютсяПлохо (обычно лучше перцептрона)1990-е
Ядерный SVMИзогнутая граница в исходном пространствеЧеловек, через выбор ядраХорошо на простых изображениях (рукописные цифры), на естественных фото — предел1992~
Многослойный перцептрон · CNNИзогнутая граница в исходном пространствеВыучиваются на данныхХорошо (нужно достаточно данных)С 1986, рывок CNN в 2012

На рукописных цифрах (MNIST) ядерный SVM даже на одних пикселях давал ошибку около 1% (сравнение LeCun и др., 1998). Но чем сложнее фото, тем труднее человеку подобрать подходящее ядро. И наоборот, если к векторам признаков, извлечённым обученной CNN, приставить линейный SVM, классификация тоже идёт хорошо (Razavian и др., 2014). Значит, качество определил не тип классификатора, а признаки.

5Пояснение · исправляем частые заблуждения

«Перцептрон появился, потому что SVM не справлялся» — порядок как раз обратный. Перцептрон (1958) появился раньше, а SVM стал основным методом в 1990–2000-х, когда многослойные нейросети было трудно обучать. В 2012 году глубокая CNN с большим отрывом обошла методы на основе SVM в крупномасштабной классификации фото, и ситуация снова изменилась.

«Перцептрон точен, потому что находит веса» — верно лишь наполовину. Веса находит и SVM. Однослойный перцептрон — такой же классификатор с одной плоскостью, как линейный SVM, и на сырых пикселях фото упирается в тот же предел. Хорошо работают многослойный перцептрон со скрытым слоем и CNN.

Итак, разница не в том, SVM это или перцептрон, а в том, задаёт ли координаты (признаки) человек или они выучиваются на данных. Пиксельное правило выбирает бессмысленные клетки фона (4-4), потому что пиксели — плохие координаты, а фильтры из 4-2 и CNN из этого выпуска — устройства, которые меняют эти координаты обучением. Победе CNN помогло не только добавление слоёв, но и общие веса свёртки, большие объёмы размеченных данных и вычисления на GPU.

✓Проверь себя

Q1. Как верно описать связь однослойного перцептрона и линейного SVM?

Q2. В чём главное различие ядерного SVM и многослойного перцептрона?

Q3. Что будет, если убрать из скрытого слоя σ (функцию активации)?

Объяснение для начинающих

Один нейрон скрытого слоя создаёт одну новую координату по схеме «взвешенная сумма → функция с изломом (tanh, ReLU)». Обучение подправляет сам способ создания этих координат, чтобы последняя плоскость хорошо разделяла классы. В коде 1 на одних и тех же точках линейный SVM дал 57.7% верных ответов, SVM с добавленной человеком x₁² + x₂² — 98.8%, а многослойный перцептрон с 3 скрытыми нейронами — 99.2%. Свёрточные слои CNN выполняют ту же «смену координат», приспособленную к фото.

3Устройство CNN

CNN на одной картинке — карты признаков становятся меньше и толще

Если повторять свёртку → ReLU → пулинг, фото уменьшается, а число карт признаков растёт. В конце их выпрямляют и подают в слой перцептронов — получаются оценки для каждого класса.

1Модель

Свёрточная нейросеть (CNN) — модель, собранная из деталей 4-2 (свёртка·пулинг), и версия многослойной нейросети из раздела 2 («сменить координаты обучением, а затем провести плоскость»), специально для фото. Если многократно повторять [свёртка → ReLU → пулинг], фото становится всё меньше, зато число карт признаков (каналов) растёт. Последнюю карту признаков вытягивают в одну строку и подают в полносвязный слой (несколько перцептронов) — для каждого класса получается одна оценка, а софтмакс превращает эти оценки в вероятности с суммой 1.

Входматрица пикселей 56 × 56 × 3
Серединакарты признаков, которые становятся меньше и толще
ВыходP(кошка), P(собака)

Проще говоря, это система отчётности в компании. Рядовые сотрудники (1-й слой) докладывают мелкие факты вроде «здесь есть линия», руководители групп (2–3-й слои) объединяют эти доклады и передают наверх «здесь есть глаза и уши», а директора (полносвязный слой) смотрят только на сводку и решают: «с вероятностью 93% это кошка». Чем выше уровень, тем короче отчёт и абстрактнее его содержание.

2Формула
F(ℓ) = Pool( ReLU( F(ℓ−1) ∗ K(ℓ) + b(ℓ) ) ),   F(0) = X
h = flatten(F(L)),   z = W·h + bПоследнюю карту признаков вытягивают в одну строку h, подают в слой перцептронов и получают оценки z для каждого класса.
pk = ezk / Σj ezj,   L = −log pверный
ℓ
Номер слоя. F⁽ˡ⁾ — карта признаков ℓ-го слоя
K⁽ˡ⁾
Набор фильтров слоя ℓ. Если каналов несколько, фильтр соответственно толще (3 × 3 × число каналов)
h
Выпрямленные признаки. Для 7 × 7 × 64 — это 3,136 чисел
z, p, L
Оценки, вероятности, функция потерь кросс-энтропия
Читаем формулу по частям
  1. F⁽ˡ⁻¹⁾ ∗ K⁽ˡ⁾Карта признаков предыдущего слоя — вход следующего. Фильтры 2-го слоя смотрят не на пиксели, а на «карты границ», найденные 1-м слоем, и ищут углы и кривые.
  2. flattenТрёхмерную коробку чисел вытягивают в одну строку. Числа те же, меняется лишь порядок.
  3. ez / ΣezЭто софтмакс. Чем больше оценка, тем больше вероятность, а сумма всех вероятностей равна 1.
  4. −log pверныйЭто кросс-энтропия. Если правильному ответу дана вероятность 1, штраф равен 0, а чем она меньше, тем больше штраф. Обучение подправляет и фильтры K, и W так, чтобы это значение уменьшалось.
Пробуем на числахОценки z = (кошка 3.0, собака 0.5) → e³ = 20.09, e⁰·⁵ = 1.65, сумма 21.74
p(кошка) = 20.09 / 21.74 = 0.924,  p(собака) = 1.65 / 21.74 = 0.076
Если верный ответ — кошка, L = −log 0.924 = 0.079 (маленький штраф). Если бы верным ответом была собака, L = −log 0.076 = 2.58 (большой штраф)
3Схема · маленькая CNN на одной картинке
Устройство маленькой CNNВход 56×56×3 трижды проходит свёртку и пулинг и становится 7×7×64, выпрямленные 3136 чисел проходят полносвязный слой, и софтмакс превращает их в две вероятности Вход56 × 56 × 3 Свёртка1 + пулинг28 × 28 × 16Линии·границы Свёртка2 + пулинг14 × 14 × 32Углы·фактура Свёртка3 + пулинг7 × 7 × 64Глаза·уши·нос ⋮ Выпрямление3,136 чисел z₁z₂ Полносвязный2 оценки Кошка 0.92 Собака 0.08 СофтмаксВероятности (сумма = 1) ← ширина и высота уменьшаются, число карт признаков растёт →
ЭтапЧто делаетРазмер выходаКоличество чиселОбучаемые числа (параметры)
ВходМатрица пикселей56 × 56 × 39,4080
Свёртка116 фильтров 3 × 3, паддинг по краям56 × 56 × 1650,1763·3·3·16 + 16 = 448
Пулинг1Max-пулинг 2 × 228 × 28 × 1612,5440
Свёртка2 + пулинг232 фильтра → вдвое меньше14 × 14 × 326,2723·3·16·32 + 32 = 4,640
Свёртка3 + пулинг364 фильтра → вдвое меньше7 × 7 × 643,1363·3·32·64 + 64 = 18,496
ВыпрямлениеВ одну строку3,1363,1360
Полносвязный2 оценки223,136·2 + 2 = 6,274
СофтмаксВ вероятности220  (всего 29,858)

Запомните, что последняя карта признаков имеет размер 7 × 7. У широко используемой на практике ResNet-50 при входе 224 × 224 последняя карта признаков — тоже сетка 7 × 7 (2,048 каналов), и Attentive CutMix в разделе 6 использует именно эти 49 клеток.

Объяснение для начинающих

Проследите за числами в таблице. Фото 56 × 56 × 3 трижды проходит свёртку и пулинг и становится 7 × 7 × 64, а выпрямленные 3,136 чисел проходят полносвязный слой и превращаются в 2 оценки. Всего обучаемых чисел — 29,858. У широко используемой ResNet-50 их около 25 миллионов, но последняя карта признаков у неё — та же сетка 7 × 7 [R4].

4Вероятности

Как фото становится вероятностью — софтмакс и обучение

Последние оценки софтмакс превращает в вероятности, а фильтры и веса подправляются на величину расхождения с правильным ответом (кросс-энтропию).

1Анимированная схема · как фото становится вероятностью

Выберите фото сверху. Карты признаков 1-го слоя и результат пулинга вычислены на этой странице, применением фильтров к настоящему фото. Отклики дальних слоёв и итоговые вероятности — примерные значения, заданные, чтобы показать ход процесса.

Фото

  1. Входная матрица
  2. 1-й слой: ищем границы
  3. Пулинг: уменьшаем
  4. Дальние слои: ищем части
  5. Оценки → вероятности
2Калькулятор софтмакса

Подвигайте две оценки, выданные полносвязным слоем. Считаем, что верный ответ — кошка.

3Пояснение · как определяются числа фильтров

В начале числа фильтров K и веса W полносвязного слоя CNN — случайные. Даже если подать фото кошки, вероятности выйдут примерно пополам.

Когда сообщают правильный ответ, вычисляют функцию потерь L = −log pверный и градиентным спуском из предыдущего выпуска понемногу подправляют все числа в направлении уменьшения потерь. Этот градиент передаётся от выхода ко входу, слой за слоем в обратную сторону (обратное распространение).

Если повторить это на десятках тысяч фото, то без всяких указаний фильтры 1-го слоя принимают форму фильтров границ, а фильтры дальних слоёв начинают реагировать на глаза и уши. То, что даже «на какие признаки смотреть» выучивается из данных, — главное отличие от подхода, где признаки задавал человек.

4Основные свойства
Сильные стороны
  • Обучается сразу от пикселей до вероятностей (не нужно проектировать признаки)
  • Общие фильтры — поэтому параметров гораздо меньше, чем у полносвязной сети того же размера
  • Чем глубже слой, тем абстрактнее признаки
Ограничения
  • Для обучения нужно много размеченных фото
  • На невиданных сочетаниях (чихуахуа, похожая на маффин) может уверенно ошибаться
  • Высокая вероятность не значит, что причина верна (можно угадать по одному фону)
Место в истории: неокогнитрон (1980) → LeNet (1989·1998) → AlexNet (2012) → VGG·GoogLeNet (2014) → ResNet (2016). Современные визуальные трансформеры (ViT) на первом шаге тоже режут фото на маленькие кусочки и превращают их в числа.
✓Проверь себя

Q1. Как обычно меняется форма карт признаков по мере прохождения CNN?

Q2. Каковы вероятности софтмакса при оценках z = (2.0, 2.0)?

Q3. Что подправляется во время обучения?

Объяснение для начинающих

Софтмакс превращает оценки в вероятности с суммой 1. Кросс-энтропия даёт тем больший штраф, чем меньшую вероятность получил правильный ответ. Обучение — это понемногу подправлять все числа фильтров и веса так, чтобы этот штраф уменьшался, а градиент передаётся от выхода ко входу, слой за слоем в обратную сторону (обратное распространение) [R3].

5Кошка vs собака

Кошка vs собака — различает форма частей

Низкоуровневые признаки (границы шерсти) похожи. Различают признаки частей, которые видят слои с 3-го и дальше: длина морды, размер носа, контур головы.

②Кошка vs собака средне

На этот раз низкоуровневые признаки похожи. У обеих есть шерсть, поэтому карта силы границ густая по всему фото, и два глаза со стоячими ушами тоже одинаковы. Одних признаков 1–2-го слоёв мало, чтобы их различить.

Разница — в форме частей. У собаки морда далеко выдаётся вперёд, нос крупный, а из открытой пасти иногда виден язык. У кошки голова круглая, нос и рот маленькие. Различают их признаки слоёв с 3-го и дальше, которые смотрят на «расположение глаз, носа и морды».

Поэтому появились методы, которые учат модель сосредотачиваться не на общем впечатлении от фото (цвет шерсти, фон), а на таких ключевых частях. Раздел 6 — это Attentive CutMix с изображения из раздела 1.

Объяснение для начинающих

Если в парном сравнении переключиться на вид «Сила границы», у обоих фото карта границ густая из-за шерсти. Посмотрите и на то, что исчезает первым, если снизить разрешение до 7. Чтобы модель смотрела на части морды, а не на лёгкие подсказки вроде цвета шерсти или фона (газон), важно, какие обучающие данные ей давать. Об этом — аугментация данных в разделе 6.

6Аугментация данных

Аугментация данных и Attentive CutMix — вклеиваем кусочки и смешиваем ответы

Когда фото мало или модель опирается на посторонние подсказки, обучающие фото меняют или смешивают, чтобы научить её, «на что смотреть».

1Виды аугментации данных · показываем одно и то же фото по-разному
МетодЧто делаетОтвет?Чему учит
Отражение·обрезка·поворотОтражаем по горизонтали или вырезаем и увеличиваем частьБез измененийОбъект тот же, даже если положение и направление меняются
Изменение яркости·цветаДелаем похожим на фото при другом освещенииБез измененийСмотреть на форму, а не на освещение
CutoutСтираем один прямоугольникБез измененийУгадывать, даже если часть закрыта
MixupНакладываем два фото полупрозрачноСмешиваем в той же пропорцииМеньше излишней уверенности [R7]
CutMixВклеиваем прямоугольный кусочек другого фотоСмешиваем по вклеенной площадиУзнавать даже по части [R5]
Attentive CutMixВклеиваем только кусочки с сильным откликомСмешиваем по вклеенной площадиСосредотачиваться на ключевых частях [R6]

В коде 2 для Colab, если обучить одну и ту же CNN всего на 20 рукописных цифрах на класс (200 фото), тестовая точность без изменений — 93.3%, а с CutMix — 95.2% (среднее по 3 сидам). Это пример того, как смешивание и вклеивание помогает при малом числе фото. При других данных и моделях величина эффекта будет другой.

②+Повторяем Attentive CutMix · вклеиваем ключевые кусочки кошки в фото собаки

Метод состоит из четырёх шагов. (1) Подаём фото кошки в уже обученную CNN и получаем последнюю карту признаков 7 × 7. (2) Из 49 клеток выбираем k клеток с самым сильным откликом. (3) Соответствующие этим клеткам кусочки фото кошки вклеиваем на те же места случайного фото собаки. (4) Ответы тоже смешиваем по доле площади. При k = 6 получается кошка 6/49, собака 43/49.

Кошка · клетки со слабым откликом затемнены
Случайное фото собаки
Смешанное фото
Ответ для смешанного фото

Внимание: в статье кусочки выбираются по реальным откликам ResNet-50, обученной на ImageNet. Здесь вместо обученной модели как замена отклика используется «средняя сила границ в клетке». Поэтому могут выбираться клетки, где просто много границ, например полоски на лбу или границы фона, а не только глаза и нос. Настоящая обученная модель может выбрать другие клетки.

Почему это помогает
  1. Кошка видна и по кусочкамВ смешанном фото от кошки есть только шесть кусочков с глазами и ушами. Чтобы угадать по ним «кошка 12%», модели нужно смотреть на признаки частей, а не на цвет шерсти или фон.
  2. Ответы тоже смешиваютсяМодель отвечает не категоричное «100% собака», а 88%. Это даёт эффект регуляризации, ослабляя привычку модели к излишней уверенности (переобучение).
  3. Отличие от случайных кусочковОбычный CutMix вырезает и вклеивает один прямоугольник в случайном месте. Может вклеиться один фон, и получится неверный ответ «кошка 30%». Attentive CutMix уменьшает эту проблему, выбирая места с сильным откликом.

Объяснение для начинающих

Аугментация данных — способ повысить качество, меняя только обучающие фото, без изменения устройства модели. Она даёт эффект регуляризации, уменьшая переобучение, то есть чрезмерную подгонку под одни лишь обучающие фото. Помните, что в практике выше вместо обученной ResNet-50 как замена отклика использовалась «сила границ в клетке».

Код для Colab — запустите эту страницу сами

Оба кода используют только библиотеки, предустановленные в Colab, и встроенные данные. Нажмите «Скачать ноутбук (.ipynb)» и откройте его в Colab через Файл → Загрузить блокнот или скопируйте код и вставьте в ячейку нового ноутбука.

Код 1 · зачем складывать слои — как скрытый слой меняет координатысвязан с разделами 2·4 · numpy, scikit-learn, matplotlib · CPU меньше 1 секунды

Сравниваем на двух группах (центр и кольцо) перцептрон, линейный SVM, преобразование, выбранное человеком, SVM с RBF-ядром и многослойный перцептрон с 3 скрытыми нейронами (обратное распространение вручную на numpy), а также вычисляем софтмакс и кросс-энтропию.

Результат выполнения (запуск 2026-10-04, numpy 2.4 · scikit-learn 1.8 · CPU). Сид случайных чисел зафиксирован, поэтому результат всегда одинаков.
Код 2 · маленькая CNN и CutMix — помогает ли смешивание и вклеивание при малом числе фотосвязан с разделами 3·6 · numpy, tensorflow(Keras), scikit-learn · CPU около 1 минуты

На рукописных цифрах 8 × 8 для обучения берём всего 20 изображений на класс, обучаем одну и ту же CNN как есть / с CutMix и сравниваем тестовую точность по 3 сидам. Чтобы перейти на фото кошек и собак, выберите в keras.datasets.cifar10 классы 3 (кошка) и 5 (собака) и замените форму Input на (32, 32, 3).

Результат выполнения (запуск 2026-10-04, TensorFlow 2.21 · Keras 3 · CPU). В зависимости от сида, версий и оборудования числа могут немного отличаться.

Промпты для ИИ — этот код как отправная точка

Промпты для вставки в ИИ-ассистента вроде ChatGPT, Qwen или Claude. При нажатии «Копировать» выбранный код добавляется после промпта. Замените текст в 〔 〕 на описание своей ситуации.

Код для вставки

Ответ ИИ — лишь отправная точка. Предложенные статьи, числа и функции библиотек обязательно проверяйте по первоисточникам и официальной документации. Если вы пользовались помощью ИИ в конкурсной работе или статье, укажите факт и объём использования по правилам организаторов или журнала.

Словарь терминов

Тот же словарь, что и у жёлтых пунктирных подчёркиваний в тексте. Во всей серии используются одни и те же термины. Нажмите на название раздела, чтобы перейти к месту первого упоминания.

Сборник аналогий — и где аналогия не работает

Аналогия — первый шаг к пониманию, но и семя заблуждения. Для аналогий с глазом и мозгом человека указана степень соответствия. Прямое есть данные, что там действительно происходит то же самое · Частичное похожи лишь некоторые свойства · Нет соответствие неизвестно

ПонятиеБытовая аналогияАналогия с глазом·мозгомГде аналогия не работает
Скрытый слойРасправить мятый лист бумаги и разделить его линейкойНетБумагу расправляет человек, а скрытый слой сам учится, «как расправлять». К тому же на деле это происходит в сотнях измерений, и глазами этого не увидеть
Слои CNNЦепочка отчётности: рядовой сотрудник → руководитель группы → топ-менеджерОтчасти зрительный путь тоже устроен так: сетчатка → первичная зрительная кора → высшие области; чем дальше, тем шире участок и сложнее формы, на которые реагируют нейроныВ мозге много обратных связей и внимания. CNN считает только в одном направлении
СофтмаксПеревести число голосов в доли голосовНетДоля голосов — реальный итог голосования, а вероятность софтмакса — лишь «степень уверенности» модели, и она может не совпадать с вероятностью оказаться правой
Обратное распространениеКогда результат ошибочен, разбирать ответственность в обратном порядке, начиная с последнего этапа производстваНетНасколько «распределить» ответственность, точно вычисляется через производные. Виноватого определяет не человек
CutMixКоллаж из двух вырезанных фото, где и правильный ответ делится пропорционально площади вставленного кускаНетЕсли вставленный кусок — один фон, получается ложный ответ «кошка 30%». Attentive CutMix уменьшает такие случаи

Об авторе и источники

E-1 Об авторе · E-2 Научные источники · E-3 Источники иллюстраций·данных

E-1 Об авторе

Сансун Ан (генеральный директор M-Robo Inc.)

Работал в Korea Electrical Safety Corporation и газете Maeil Business Newspaper, а затем основал M-Robo Inc. — внешнее венчурное предприятие Maeil Business Newspaper, — где сейчас занимает пост генерального директора. M-Robo Inc. — медиавенчур, начинавшийся как внутренний стартап СМИ: компания предоставляла газете Kukmin Ilbo робота-журналиста (StockBot) и выполнила множество проектов для Korea Internet & Security Agency, Korea Press Foundation, Korea Communications Agency и других организаций. Сейчас компания развивает собственную новостную ИИ-газету Money-Robo. За время работы директором он победил на Asia Open Data Hackathon и дважды получил награду министра внутренних дел и безопасности Кореи за вклад в развитие стартапов в сфере данных; он автор и правообладатель 5 патентов в области искусственного интеллекта и блокчейна. Автор книги «Преступления с ИИ и самозащита» (AI범죄와 자기방어), разрабатывал электронные курсы по финтеху, статистике и искусственному интеллекту для Онлайн-института непрерывного образования KOREATECH (Korea University of Technology and Education). Доктор экономических наук (Университет Тонгук, микроэкономика и математическая экономика). Преподаёт дисциплины по данным и искусственному интеллекту в ряде университетов, в том числе Kookmin University и Hoseo University. Подробный профиль

Курсы

  • Сансун Ан (2025). Конспект лекций «Наука о данных для бизнеса» (비즈니스를 위한 데이터 과학). Open Cyber University of Korea, кафедра конвергенции искусственного интеллекта.
  • Сансун Ан (2025). [K-Digital] Обработка естественного языка с помощью ИИ. STEP (Smart Training Education Platform), Онлайн-институт непрерывного образования KOREATECH.
  • Сансун Ан (2024). [K-Digital] Основы анализа финтех-данных. STEP (Smart Training Education Platform), Онлайн-институт непрерывного образования KOREATECH.

Курсы на STEP: link.step.or.kr/1qyVoJ · link.step.or.kr/M9na9N · link.step.or.kr/brqEyc
Если из-за обновления сайта ссылки не открываются, перейдите на www.step.or.kr.

Статьи и доклады

  • Сансун Ан (2025). Модель прогнозирования расходов домохозяйств на данных Korean Retirement and Income Study: подход на основе моделей ИИ. «Будущее общество» (미래사회), 16(2). Полный текст
  • Сансун Ан (2025). Модель прогнозирования расходов домохозяйств на данных Korean Retirement and Income Study: подход ИИ. Материалы доклада на научной конференции KReIS (13.05.2025), National Pension Research Institute, National Pension Service. Материалы доклада
  • Сансун Ан (2025). Алгоритм обнаружения подозрительных сделок с наркотиками по текстам соцсетей: анализ паттернов и контекста. «Будущее общество» (미래사회), 16(1). Полный текст
  • Сансун Ан (2024). Статистические методы противодействия состязательным данным для защиты моделей обнаружения аномалий в финансовой сфере: эмпирический анализ и результаты моделирования. «Будущее общество» (미래사회), 15(3). Полный текст
  • Сансун Ан (2024). Решение на основе ИИ для обнаружения постов в соцсетях по характеристикам виртуальных персонажей. Стендовый доклад, 2024 Summer Newmedia Party (19.06.2024), Seoul Media Institute of Technology.
  • Сансун Ан (2024). Модели машинного обучения на панельных данных о производственном травматизме. Стендовый доклад, 10-я научная конференция Panel Study of Workers' Compensation Insurance (17.05.2024), Labor Welfare Research Institute, Korea Workers' Compensation & Welfare Service.
  • Сансун Ан (2024). Анализ и прогнозирование временных рядов цифровых активов: сравнение моделей временных рядов и моделей ИИ, предложения по улучшению. «Будущее общество» (미래사회), 15(1). Полный текст

E-2 Научные источники

  1. [R1] Rosenblatt, F. (1958). The perceptron. Psychological Review, 65(6), 386–408. — раздел 2
  2. [R2] Boser, B. E., Guyon, I. M., & Vapnik, V. N. (1992). A training algorithm for optimal margin classifiers. COLT 1992. — раздел 2 (ядерный SVM)
  3. [R3] Rumelhart, D. E., Hinton, G. E., & Williams, R. J. (1986). Learning representations by back-propagating errors. Nature, 323, 533–536. — разделы 2·4
  4. [R4] He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. CVPR 2016. — разделы 3·6
  5. [R5] Yun, S., Han, D., Oh, S. J., Chun, S., Choe, J., & Yoo, Y. (2019). CutMix: Regularization strategy to train strong classifiers with localizable features. ICCV 2019. — раздел 6, код 2
  6. [R6] Walawalkar, D., Shen, Z., Liu, Z., & Savvides, M. (2020). Attentive CutMix: An enhanced data augmentation approach for deep learning based image classification. ICASSP 2020. — разделы 1·6
  7. [R7] Zhang, H., Cisse, M., Dauphin, Y. N., & Lopez-Paz, D. (2018). mixup: Beyond empirical risk minimization. ICLR 2018. — раздел 6
  8. [R8] Razavian, A. S., Azizpour, H., Sullivan, J., & Carlsson, S. (2014). CNN features off-the-shelf: An astounding baseline for recognition. CVPR Workshops 2014. — раздел 2
  9. [R9] Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. NeurIPS 2012. — раздел 2

E-3 Источники иллюстраций·данных

  • Изображение в разделе 1 создано автором и иллюстрирует процедуру из [R6]
  • Точки в разделе 2 — учебные вымышленные данные, а скрытый слой в ③ действительно обучается в браузере при открытии страницы
  • В анимации раздела 4 карты признаков первого слоя и пулинг вычисляются по-настоящему, а реакции дальних слоёв и вероятности — примерные значения
  • Карта реакций 7 × 7 в разделе 6 построена не обученной моделью, а по силе границ в каждой клетке

Совет для преподавателя

Рекомендации для преподавателей, наставников OJT и репетиторов. Время указано ориентировочно — подстройте его под реальное занятие.

АудиторияСтуденты и специалисты, прошедшие 4-1·4-2. Практики, которым нужно объяснить, «почему глубокое обучение должно быть глубоким»
Необходимые знанияПерцептрон·SVM из 4-1, свёртка из 4-2. Смысл экспоненты e^z
Цели обучения① Привести пример данных, на которых линейный классификатор бессилен, и объяснить, как скрытый слой меняет координаты ② Рассчитать размер выхода и число параметров каждого слоя CNN ③ Вычислить софтмакс·кросс-энтропию и объяснить смешивание ответов в CutMix
Ориентировочное времяЧтение 45–55 мин · демонстрация практики 25 мин · практика в Colab 30 мин (код 1 — 10 мин, код 2 — 1 мин запуска + 19 мин разбора)

Три формата занятия

Лекция, 50 мин

Упор на понятия

Вступление 5 мин (раздел 1) → трёхмерный рисунок раздела 2 — 15 мин → таблица размеров раздела 3 — 10 мин → калькулятор софтмакса раздела 4 — 10 мин → CutMix раздела 6 — 5 мин → вопросы «Проверь себя» — 5 мин.

OJT, 90 мин

Упор на применение в работе

Заменить раздел 2 на «случай, не разделимый плоскостью» из наших данных и обсудить — 20 мин → по таблице раздела 3 рассчитать число параметров для нашего размера входа — 15 мин → выбрать в таблице аугментаций раздела 6 подходящие для наших фото методы — 20 мин → переделать код 2 под ситуацию, когда у нас мало фото, и запустить — 35 мин.

Индивидуальные занятия

Темп по уровню

Начинающим — только разделы 1·2·4. Продвинутых попросите заново вручную пересчитать число параметров в таблице раздела 3 и построчно сопоставить три строки обратного распространения в коде 1 с формулами.

Ключевые моменты по разделам

РазделВопрос, на котором стоит остановитьсяСовет по работе с интерактивом
1 Задача«Что общего у кошки и собаки?»Сначала спросите, откуда на изображении взялось 6/49
2 Зачем складывать слои«Почему, где бы мы ни поставили плоскость, одна группа всё равно разрезается?»Нажимайте ① → ② → ③ по порядку и вращайте рисунок
3 Устройство CNN«Сколько обучаемых чисел в слое пулинга?»Пройдитесь сверху вниз по столбцам размеров и параметров таблицы
4 Вероятности«Если баллы равны, какими будут вероятности?»В калькуляторе софтмакса сделайте два балла одинаковыми
5 Кошка vs собака«Что плохого в том, чтобы различать только по цвету шерсти?»Посмотрите на силу границы в парном сравнении и разрешение 7
6 Аугментация данных«Если кусок кошки занимает 10 клеток, какой правильный ответ?»Двигайте ползунок k от 1 → 15 и следите за столбиками ответа

Топ-5 типичных заблуждений

ЗаблуждениеВерное объяснениеЧто показать
Достаточно сложить слои, и граница станет изогнутойБез функции с изломом (активации) сколько слоёв ни складывай, получится одна плоскостьРаздел 2, «Проверь себя», Q3
SVM не умеет нелинейную классификациюЯдерный SVM строит изогнутую границу. Правда, ядро выбирает человек② в разделе 2 и результат RBF в коде 1
Вероятность софтмакса = вероятность правильного ответаЭто лишь уверенность модели, она может расходиться с реальной долей правильных ответов (проблема калибровки)В калькуляторе раздела 4 сильно разведите баллы
CNN хорошо работает, потому что у неё много обучаемых чиселОдин и тот же фильтр используется повторно, поэтому их гораздо меньше, чем в полносвязной сети29 858 в таблице раздела 3
Аугментация данных лишь увеличивает число фотоЭто регуляризация, которая учит, на что смотреть. Есть и методы со смешиванием ответовТаблица аугментаций раздела 6 и код 2

Проверь себя (нажмите, чтобы раскрыть пояснение)

Q1. Почему линейный SVM бессилен, когда точки перемешаны по схеме «центр·кольцо»?

Граница — это одна плоскость (в двумерном случае прямая), поэтому, как её ни ставь, она разрежет кольцевую группу надвое. В коде 1 получилось 57.7%.

Q2. Сколько параметров у свёрточного слоя, который обрабатывает 16 карт признаков 32 фильтрами 3 × 3?

3 × 3 × 16 × 32 + 32 (смещения) = 4 640.

Q3. Каковы вероятности софтмакса для баллов z = (2.0, 2.0) и кросс-энтропия, если правильный ответ — первый?

Вероятности (0.5, 0.5). Потери −log 0.5 ≈ 0.693.

Q4. На сетку 7 × 7 вставили кусок кошки размером 10 клеток. Какова доля в правильном ответе?

Кошка 10/49 ≈ 0.204, собака 39/49 ≈ 0.796.

Q5. В коде 2 CutMix повысил точность на тестовой выборке. Почему точность на обучающей выборке была 100% у обеих моделей?

Обучающих фото мало — 200, поэтому обе модели могут угадать их все. Разница проявляется на тестовых фото, которые модель видит впервые (это степень переобучения).

Задания в Colab

Базовое

В коде 1 поменяйте число скрытых нейронов на 1, 2, 3, 8, сведите точность в таблицу и напишите, начиная с какого числа удаётся разделить «центр·кольцо» и почему.

Повышенной сложности

Поменяйте PER_CLASS в коде 2 на 10, 20, 50, 100 и на 3 сидах доложите, как эффект CutMix (разница в точности на тестовой выборке) зависит от числа фото.

Настройка сложности и что изучать дальше

НачинающимТаблицу раздела 3 и формулы раздела 4 можно пропустить. Обязательно разберите трёхмерный рисунок раздела 2 и практику CutMix в разделе 6
УглублённоПусть добавят в код 2 и Mixup, и CutMix, сравнят их и расскажут, как аугментация со смешиванием ответов меняет уверенность модели (максимум софтмакса)
Что изучать дальше3-3 Изображения и CNN · 4-4 Чихуахуа vs маффин (высокоуровневые признаки и ограничения модели)
Материалы для преподавателяКритерии оценки вопросов «Проверь себя» и примеры ответов к заданиям — на странице ответов для преподавателей (4-3)

Отличная работа!

Вы дочитали выпуск «4-3 Кошка vs собака» до конца. Обитатели лаборатории подведут итоги — каждый в одной фразе.

Пиксельная картинка: четверо обитателей лаборатории машут руками у окна с видом на ночной город
Доктор
ДокторМы выяснили, зачем складывать слои.
  • Если одной плоскостью не разделить — меняем координаты
  • CNN становится меньше и толще, накапливая признаки
  • CutMix вклеивает куски и смешивает ответы
Ассистент
АссистентВсего три скрытых нейрона — и уже 99%!
Исследователь Дрозофила
Исследователь ДрозофилаНапоследок — чихуахуа и маффин. Эту пару путают даже люди.