МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
____________________________
Кафедра ____________________________
РЕФЕРАТ
на тему: «Сверточные нейросети в задаче классификации изображений»
Выполнил(а): ____________________________
Группа: ____________________________
Проверил(а): ____________________________
2026
Содержание
- 3
- 5
- 8
- 10
1. Эволюция методов классификации изображений
Долгое время классификация изображений строилась на ручном проектировании признаков. Исследователь, вооружившись знанием предметной области, придумывал, как описать объект на картинке: его края, текстуру, форму. Затем эти описания подавались в классический алгоритм машинного обучения. Такой подход доминировал в компьютерном зрении вплоть до начала 2010-х годов.
Наиболее известные дескрипторы того периода, SIFT и HOG. SIFT, предложенный Дэвидом Лоу в 1999 году, был устойчив к масштабированию и поворотам изображения. HOG, популяризированный для задачи детекции людей, считал градиенты в локальных ячейках. Эти методы действительно хорошо работали на ограниченных наборах данных с четкими объектами. Но у них был принципиальный недостаток: признаки проектировал человек, а значит, его субъективное видение ограничивало модель. В сложных сценариях, например при сильном изменении освещения или частичном перекрытии объектов, такие признаки теряли свою силу. Классификатор вроде SVM (метода опорных векторов) мог лишь разделить пространство уже готовых векторов, но не мог улучшить их качество. Иерархия признаков отсутствовала: низкоуровневые края и высокоуровневые части объекта никак не связывались между собой в единую модель.
Перелом наступил с ростом вычислительных мощностей и появлением больших размеченных датасетов. Решающую роль сыграл ImageNet: база данных, содержащая более 14 миллионов изображений, разбитых на 20 тысяч категорий. Проект, запущенный Фей-Фей Ли в 2009 году, дал исследователям тот самый объем данных, которого не хватало для обучения моделей с миллионами параметров. Стало ясно, что можно отказаться от ручного конструирования признаков в пользу их автоматического извлечения. Так в центре внимания оказалось глубокое обучение.
Идея не нова: еще в 1980-х годах Ян Лекун применял сверточные сети для распознавания рукописных цифр. Но именно сочетание больших данных и GPU-ускорения сделало глубокие архитектуры жизнеспособными. В 2012 году сеть AlexNet, представленная Алексом Крижевским и Джеффри Хинтоном на конкурсе ImageNet, совершила прорыв. Ошибка классификации упала с 26% до 15% за один год, что вдвое превзошло результаты традиционных методов с SIFT и HOG. Сеть обучалась на сырых пикселях, без какой-либо ручной инженерии признаков. Она сама выстраивала иерархию: на первых слоях выделяла простые линии и градиенты, на последующих, фрагменты объектов, а на глубоких уровнях формировала целостные семантические понятия.
Этот успех доказал главное: автоматическое извлечение признаков масштабируется лучше, чем ручное. Сверточные нейросети стали стандартом де-факто в классификации изображений. Их обобщающая способность оказалась выше: обученная на ImageNet сеть переносила знания на другие задачи с минимальной дообучкой. Традиционные методы не исчезли полностью, но их роль сместилась на узкие прикладные случаи с малым объемом данных. Глубокое обучение же предложило универсальный рецепт: чем больше данных и глубже сеть, тем выше точность, и без необходимости вручную описывать визуальные закономерности.
2. Архитектура сверточных нейросетей
Сверточный слой лежит в основе любой CNN. Его работа повторяет принцип локального восприятия зрительной коры: нейроны реагируют не на все изображение, а только на ограниченные участки, которые называют рецептивными полями. Механизм здесь довольно простой. Небольшое ядро (например, 3×3 или 5×5) скользит по исходной матрице пикселей с заданным шагом (страйдом). На каждой позиции считается скалярное произведение весов ядра и значений пикселей, и так формируется карта активаций. Одно ядро отвечает за один тип признака: вертикальные грани, углы, текстуры.
Именно скользящее окно позволяет сети сохранять пространственную структуру изображения. Если развернуть картинку в одномерный вектор, как это делалось в полносвязных сетях, информация о расположении объекта пропадает безвозвратно.
Глубина сети появляется за счет стекирования множества сверточных слоев. Ранние слои выделяют простые элементы (линии, цветовые переходы), а последующие комбинируют их в более сложные паттерны вроде глаза, колеса или окна. Архитектура VGG16, предложенная в 2014 году группой Симоняна и Циссермана из Оксфорда, состоит из последовательности однотипных блоков: свертка 3×3, затем пулинг. Такая однородность упрощает реализацию, но не решает проблему вычислительной сложности. Размер карт активаций после каждой свертки уменьшается лишь незначительно, в основном за счет краевых эффектов, поэтому нужны дополнительные механизмы сжатия.
Пулинг решает две задачи: снижает размерность и добавляет инвариантность. Операция применяется к каждой карте активаций независимо. Максимальный пулинг (max pooling) берет наибольшее значение в окне 2×2 и отбрасывает остальные. Этот метод использовался еще в LeNet-5 Яна Лекуна в 1998 году; он эффективно подавляет шум и сохраняет самые яркие реакции. Средний пулинг (average pooling)
усредняет значения, результат получается более гладким, но контрастные признаки выделяются хуже. Ключевой эффект пулинга в том, что небольшой сдвиг объекта на пару пикселей не меняет выход слоя: максимальное значение в окне остается прежним. Сеть становится устойчивой к мелким деформациям входа, что важно для реальных фотографий.
Свертки и пулинг, операции линейные. Если их просто применять друг за другом, вся сеть любой глубины сведется к одной линейной трансформации. Чтобы модель могла разделять нелинейно разделимые классы, между слоями ставят функции активации. Стандарт де-факто, ReLU (Rectified Linear Unit): для отрицательных аргументов она возвращает ноль, для положительных, само значение. Считать её очень просто, поэтому работает она крайне быстро. Производная ReLU равна 1 в положительной области, что спасает от проблемы затухания градиента, характерной для сигмоиды или гиперболического тангенса. Эти классические функции быстро насыщаются, и на краях градиент почти обнуляется, из-за чего обучение замедляется.
У ReLU есть и минус. Если нейрон попадает в отрицательную область, он «умирает»: его градиент становится нулевым навсегда. Частично это решает Leaky ReLU, где для отрицательных значений используется небольшой наклон (обычно 0.01). Сеть продолжает обучаться даже на таких нейронах, хотя и медленнее. В современных архитектурах (ResNet, DenseNet) функции активации ставят после каждого сверточного слоя и перед пулингом. Так нелинейность вносится на каждом этапе преобразования признаков, а не только в конце.
Финальную обработку берут на себя полносвязные слои. К этому моменту карты активаций содержат компактное, но абстрактное описание изображения: набор высокоуровневых признаков, по которым можно различать классы. Полносвязный слой устроен как классический перцептрон: каждый вход соединяется с каждым нейроном. В
типовой архитектуре AlexNet, победившей ImageNet в 2012 году, после последнего пулинга идут три полносвязных слоя, по 4096 нейронов в каждом. Первый «расплющивает» трехмерные карты в вектор, второй выполняет нелинейное взвешивание комбинаций признаков, третий проецирует результат на вектор размером с число классов. После них обычно ставится softmax, который превращает выходные значения в вероятности.
Именно полносвязные слои содержат большинство параметров сети. В VGG16 на них приходится около 123 миллионов из 138 миллионов весов. Это делает их склонными к переобучению, но одновременно дает мощный инструмент для итоговой комбинации признаков. Здесь сеть принимает решение: если в верхних слоях найдены признаки «перьев» и «клюва», полносвязный слой сопоставит эту комбинацию с классом «птица». В более новых архитектурах, таких как ResNet, полносвязные слои часто заменяют глобальным средним пулингом и одним линейным слоем, что резко сокращает число параметров без потери точности.
3. Обучение и оптимизация сверточных сетей
Переход от устройства сети к её обучению неизбежен. Архитектура задаёт пространство возможностей, но качество работы определяет процесс настройки. Обучение свёрточных сетей начинается с подготовки данных. Размеченные наборы, такие как ImageNet с его 14 миллионами аннотированных изображений, делят на три непересекающиеся части. Обучающая выборка напрямую влияет на веса; валидационная помогает отслеживать обобщение в процессе и подбирать гиперпараметры. Тестовая остаётся нетронутой до финальной оценки. Без такого разделения невозможно честно судить о способности модели работать с новыми данными.
Сердце обучения, функция потерь. Для задач классификации стандартом выступает кросс-энтропия. Она сравнивает распределение вероятностей, которое выдаёт сеть, с истинной меткой, закодированной в one-hot формате. Математически это отрицательный логарифм вероятности, присвоенной правильному классу. Если сеть уверенно предсказывает верный класс, потери малы. Если ошибается с высокой уверенностью, штраф растёт нелинейно, что заставляет модель корректировать своё поведение.
Функция потерь, однако, лишь указывает направление. Движение по этому направлению обеспечивают алгоритмы оптимизации. Стохастический градиентный спуск (SGD) обновляет веса на основе оценки градиента по небольшому подмножеству данных, называемому батчем. Классический SGD с импульсом накапливает скорость движения и помогает преодолевать локальные минимумы. Его более современный конкурент, Adam, адаптирует скорость обучения для каждого параметра отдельно, учитывая историю градиентов. На практике Adam часто сходится быстрее и менее чувствителен к выбору начальной скорости обучения. SGD с импульсом при правильной настройке способен достигать более высокой финальной точности.
На этом пути подстерегает переобучение. Сеть с миллионами параметров легко запоминает обучающую выборку наизусть, но теряет способность к обобщению. Простейший маркер: потери на обучении падают, а на валидации растут. Для борьбы используют регуляризацию. Dropout, предложенный Хинтоном в 2012 году, во время обучения случайным образом отключает часть нейронов в каждом слое. Сеть вынуждена учиться избыточным представлениям, не полагаясь на отдельные узлы. На этапе предсказания все нейроны работают, а их выходы масштабируются.
Аугментация данных решает ту же задачу иначе. Вместо изменения сети она расширяет обучающий набор. Случайные сдвиги, повороты, масштабирование и изменения яркости создают новые вариации изображений. Свёрточная сеть учится инвариантности к этим преобразованиям, что особенно ценно, когда исходных данных мало. Например, при обучении на CIFAR-10 с 50 тысячами изображений аугментация способна снизить ошибку классификации на несколько процентных пунктов без изменения архитектуры.
4. Оценка точности и анализ результатов
После обучения модель нужно проверить на данных, которых она не видела. Тестовая выборка дает объективную основу для сравнения разных решений, и здесь важны метрики качества. Самая простая из них, accuracy, показывает долю верных ответов. Но она обманчива, если классы несбалансированы. Например, когда 95% изображений в наборе, кошки, модель, которая всегда предсказывает «кошку», получит accuracy 95%, хотя по сути бесполезна.
Поэтому вместе с accuracy используют precision и recall. Precision показывает, какая доля объектов, отнесенных моделью к классу, действительно к нему принадлежит. Recall, какую долю объектов этого класса модель смогла найти. F1-score соединяет оба показателя в одно гармоническое среднее. Когда цена ошибки для разных классов различается, выбор между precision и recall становится принципиальным. В медицинской диагностике пропустить болезнь (низкий recall) хуже, чем дать ложную тревогу.
Сравнение архитектур на стандартных наборах данных наглядно показывает, как устройство сети влияет на результат. LeNet-5, созданный Яном Лекуном в 1998 году, с пятью слоями достигал около 99% точности на рукописных цифрах MNIST. Но на более сложных изображениях он пасовал. AlexNet, победитель ImageNet 2012 года, имел 8 слоев и снизил ошибку топ-5 с 26% до 15,3%. Это стало прорывом. ResNet, представленный в 2015 году группой Каймина Хэ, использует остаточные связи. Они позволяют обучать сети глубиной в 152 слоя и добиться ошибки 3,57% на том же ImageNet (у человека около 5%).
Глубина решает многое, но не все. Сравнение показывает, что после определенного порога простое добавление слоев ведет к деградации обучения из-за затухания градиентов. Остаточные блоки ResNet решили эту проблему, пропуская градиенты напрямую через сеть. На практике это дало скачок в качестве, которого не могли добиться ни
LeNet, ни AlexNet при сопоставимых вычислительных затратах.
Однако метрики не объясняют, почему модель ошибается. Анализ ошибок вскрывает системные проблемы. Часто оказывается, что сеть путает классы с визуально похожими признаками: породы собак, виды птиц, марки автомобилей. Иногда причина в данных: редкие ракурсы, плохое освещение, частичное перекрытие объектов. Понимание структуры ошибок подсказывает, что делать дальше: добавить аугментацию для конкретных искажений, собрать больше примеров проблемных классов или усложнить отдельные ветви сети.
Наконец, важна интерпретируемость. Сверточные сети долго считали «черным ящиком». Метод Grad-CAM (Gradient-weighted Class Activation Mapping) частично снимает эту проблему. Он вычисляет градиенты целевого класса по картам признаков последнего сверточного слоя и строит тепловую карту: видно, какие участки изображения повлияли на решение. Если модель классифицирует собаку, а тепловая карта указывает на фон, это сигнал о подмене признаков. Сеть нашла несущественную закономерность в данных. Визуализация активаций позволяет проверить, действительно ли модель выучила содержательные признаки, а не артефакты датасета. Это инструмент диагностики, а еще способ объяснить поведение сети человеку, который принимает решения на основе ее прогнозов.
Нужна такая же работа по своей теме? Соберём структуру, текст и источники в этом же оформлении.