РАЗРАБОТКА АРХИТЕКТУРЫ НЕЙРОННОЙ СЕТИ С ДИНАМИЧЕСКОЙ ГЛУБИНОЙ
|
ВВЕДЕНИЕ 4
1 Методы классификации изображений 6
1.1 Архитектура нейронной сети ResNet 6
1.1.1 Анализ сети ResNet 8
1.2 Обзор модификаций архитектуры ResNet 9
1.2.1 Deep Networks with Stochastic Depth 9
1.2.2 Densely Connected Convolutional Network 11
1.2.3 Wide Residual Networks 12
1.2.4 ResNeXt 14
1.2.5 ResNet in ResNet 16
1.2.6 Squeeze-and-Excitation Networks 18
1.2.7 BoostResNet 19
1.2.8 Точность архитектуры ResNet и рассмотренных
модификаций 20
1.3 Архитектуры нейронных сетей с динамической глубиной ... 22
1.3.1 Архитектура нейронной сети с динамической глубиной
BlockDrop 23
1.3.2 Архитектура нейронной сети с динамической глубиной
SGAD 25
1.3.3 Архитектура нейронной сети с динамической глубиной
SkipNet 26
1.3.4 Архитектура нейронной сети с ранней классификацией . 28
1.3.5 Архитектура нейронной сети с каскадной классификацией 29
2 Методы последовательного принятия решений на основе бустинга 33
2.1 WaldBoost 33
2.2 Многоклассовый алгоритм WaldBoost 35
2.2.1 Многоклассовый алгоритм AdaBoost 38
3 Разработка архитектуры нейронной сети с динамической глубиной 39
3.1 Алгоритм обучения сильных классификаторов 40
3.2 Обучение при наличии ошибок аннотирования 43
3.3 Алгоритм обучения разработанной архитектуры 43
4 Результаты экспериментов 46
4.1 Описание данных 46
4.1.1 Данные с фотографиями кошек и собак 46
4.1.2 Adience 47
4.1.3 ImDB-WiKi 48
4.2 Обучение разработанной нейронной сети для бинарной задачи 48
4.3 Методы оценки полученных результатов 50
4.4 Результаты экспериментов для бинарной задачи классификации 51
4.4.1 Результаты экспериментов на наборе данных кошки/собаки 51
4.4.2 Результаты экспериментов для базовой модели
ResNet-101 на наборе данных ImDB-WiKi и Adience ... 54
4.4.3 Результаты экспериментов для базовой модели
DenseNet-201 на наборе данных ImDB-WiKi 57
4.4.4 Результаты экспериментов для базовой модели
SENet-101 на наборе данных ImDB-WiKi 60
4.5 Обучение разработанной нейронной сети для
многоклассовой задачи 63
ЗАКЛЮЧЕНИЕ 68
СПИСОК ЛИТЕРАТУРЫ 69
ПРИЛОЖЕНИЯ
1 Методы классификации изображений 6
1.1 Архитектура нейронной сети ResNet 6
1.1.1 Анализ сети ResNet 8
1.2 Обзор модификаций архитектуры ResNet 9
1.2.1 Deep Networks with Stochastic Depth 9
1.2.2 Densely Connected Convolutional Network 11
1.2.3 Wide Residual Networks 12
1.2.4 ResNeXt 14
1.2.5 ResNet in ResNet 16
1.2.6 Squeeze-and-Excitation Networks 18
1.2.7 BoostResNet 19
1.2.8 Точность архитектуры ResNet и рассмотренных
модификаций 20
1.3 Архитектуры нейронных сетей с динамической глубиной ... 22
1.3.1 Архитектура нейронной сети с динамической глубиной
BlockDrop 23
1.3.2 Архитектура нейронной сети с динамической глубиной
SGAD 25
1.3.3 Архитектура нейронной сети с динамической глубиной
SkipNet 26
1.3.4 Архитектура нейронной сети с ранней классификацией . 28
1.3.5 Архитектура нейронной сети с каскадной классификацией 29
2 Методы последовательного принятия решений на основе бустинга 33
2.1 WaldBoost 33
2.2 Многоклассовый алгоритм WaldBoost 35
2.2.1 Многоклассовый алгоритм AdaBoost 38
3 Разработка архитектуры нейронной сети с динамической глубиной 39
3.1 Алгоритм обучения сильных классификаторов 40
3.2 Обучение при наличии ошибок аннотирования 43
3.3 Алгоритм обучения разработанной архитектуры 43
4 Результаты экспериментов 46
4.1 Описание данных 46
4.1.1 Данные с фотографиями кошек и собак 46
4.1.2 Adience 47
4.1.3 ImDB-WiKi 48
4.2 Обучение разработанной нейронной сети для бинарной задачи 48
4.3 Методы оценки полученных результатов 50
4.4 Результаты экспериментов для бинарной задачи классификации 51
4.4.1 Результаты экспериментов на наборе данных кошки/собаки 51
4.4.2 Результаты экспериментов для базовой модели
ResNet-101 на наборе данных ImDB-WiKi и Adience ... 54
4.4.3 Результаты экспериментов для базовой модели
DenseNet-201 на наборе данных ImDB-WiKi 57
4.4.4 Результаты экспериментов для базовой модели
SENet-101 на наборе данных ImDB-WiKi 60
4.5 Обучение разработанной нейронной сети для
многоклассовой задачи 63
ЗАКЛЮЧЕНИЕ 68
СПИСОК ЛИТЕРАТУРЫ 69
ПРИЛОЖЕНИЯ
В 2012 году сверточная нейронная сеть AlexNet [1] впервые победила на международном соревновании ImageNet [2] (ошибка top-5 - 16, 4%). С этого момента сверточные нейронные сети стали использоваться для решения задач компьютерного зрения. Дальнейшие улучшения точности были связаны с относительно небольшим увеличением глубины архитектуры (19, 22 обучаемых слоя), переходом к сверткам размера 3 х 3 (VGGNet [3]), объединением сверток разных размеров в один модуль - Inception (GoogLeNet).
Однако дальнейшее увеличение глубины не уменьшило ошибку на тестовой выборке. Это объясняется проблемой исчезновения/взрыва градиента, которая была в основном решена при помощи нормализации инициализации и нормализации активаций нейронов (англ. batch normalization). Это позволило обучать сети с десятками слоев. Однако при обучении глубоких сетей наблюдается деградация обучения: ошибка на обучающей и тестовой выборках начинает увеличиваться при увеличении глубины после достижении некоторой точки насыщения. Эту деградацию связывают со сложностью оптимизации глубоких нейронных сетей.
В 2015 году появилась архитектура нейронной сети Residual Network или ResNet [5], глубина которой была 152 слоя и ошибка top-5 на ImageNet - 3, 57%. ResNet добилась рекордной производительности во многих сложных задачах компьютерного зрения. Поэтому повышение точности или скорости сети ResNet окажет влияние на многие сферы, где используется эта архитектура. За 2016-2017 годы появилось множество различных модификаций архитектуры ResNet, которые увеличивают точность путем увеличения глубины сети, ширины блока, изменения архитектуры самого блока, изменения алгоритма обучения сети.
Цель данной работы - разработать архитектуру нейронной сети для принятия решения на раннем этапе. Это уменьшит вычислительную сложность сети, так как некоторые элементы могут быть классифицированы без прохождения всех слоев. Потенциально данная модификация может увеличить точность, так как простые элементы будут классифицироваться на
раннем этапе, и последние слои будут концентрироваться на классификации сложных примеров.
Для достижения поставленной цели необходимо решить следующие задачи:
— изучение литературы по глубоким сверточным нейронным сетям;
— изучение существующих методов уменьшения вычислительной сложности сети;
— изучение алгоритмов последовательного принятия решений (SPRT [6], MSPRT [7]);
— изучение алгоритмов машинного обучения WaldBoost [8] и AdaBoost;
— разработка архитектуры нейронной сети, позволяющей принимать решения на раннем этапе;
— реализация разработанной нейронной сети;
— проведение экспериментов, валидация гиперпараметров;
— анализ полученных результатов и сравнение с существующими алгоритмами уменьшения вычислительной сложности сети.
Однако дальнейшее увеличение глубины не уменьшило ошибку на тестовой выборке. Это объясняется проблемой исчезновения/взрыва градиента, которая была в основном решена при помощи нормализации инициализации и нормализации активаций нейронов (англ. batch normalization). Это позволило обучать сети с десятками слоев. Однако при обучении глубоких сетей наблюдается деградация обучения: ошибка на обучающей и тестовой выборках начинает увеличиваться при увеличении глубины после достижении некоторой точки насыщения. Эту деградацию связывают со сложностью оптимизации глубоких нейронных сетей.
В 2015 году появилась архитектура нейронной сети Residual Network или ResNet [5], глубина которой была 152 слоя и ошибка top-5 на ImageNet - 3, 57%. ResNet добилась рекордной производительности во многих сложных задачах компьютерного зрения. Поэтому повышение точности или скорости сети ResNet окажет влияние на многие сферы, где используется эта архитектура. За 2016-2017 годы появилось множество различных модификаций архитектуры ResNet, которые увеличивают точность путем увеличения глубины сети, ширины блока, изменения архитектуры самого блока, изменения алгоритма обучения сети.
Цель данной работы - разработать архитектуру нейронной сети для принятия решения на раннем этапе. Это уменьшит вычислительную сложность сети, так как некоторые элементы могут быть классифицированы без прохождения всех слоев. Потенциально данная модификация может увеличить точность, так как простые элементы будут классифицироваться на
раннем этапе, и последние слои будут концентрироваться на классификации сложных примеров.
Для достижения поставленной цели необходимо решить следующие задачи:
— изучение литературы по глубоким сверточным нейронным сетям;
— изучение существующих методов уменьшения вычислительной сложности сети;
— изучение алгоритмов последовательного принятия решений (SPRT [6], MSPRT [7]);
— изучение алгоритмов машинного обучения WaldBoost [8] и AdaBoost;
— разработка архитектуры нейронной сети, позволяющей принимать решения на раннем этапе;
— реализация разработанной нейронной сети;
— проведение экспериментов, валидация гиперпараметров;
— анализ полученных результатов и сравнение с существующими алгоритмами уменьшения вычислительной сложности сети.
В данной работе была разработана архитектура нейронной сети с динамической глубиной. Преимуществом данной архитектуры является гибкость в использовании:
— нет привязки к архитектуре сверточной нейронной сети;
— обучение слабых классификаторов не требует наличия GPU.
Была реализована и обучена нейронная сеть ResNet-50 для задачи классификации кошек и собак. Были поставлены эксперименты для разработанной архитектуры с различными значениями ошибок первого и второго рода и с различными вариантами регуляризации векторов характеристик. Результаты экспериментов демонстрируют не только повышение скорости работы разработанной архитектуры в сравнении с исходной, но и увеличение точности классификации для задачи классификации кошек и собак.
Были реализованы и обучены нейронные сети ResNet-34, ResNet-101, DenseNet-201, SENet-101 для задачи классификации пола по фотографии человека для наборов данных ImDB-WiKi и Adience. Результаты экспериментов демонстрируют уменьшение вычислительной сложности разработанной архитектуры в сравнении с базовой моделью без потери в точности для бинарной задачи классификации изображений. Было проанализировано влияние различных техник регуляризации на результаты: добавление шума и увеличение разнообразия изображений способствуют уменьшению вычислительной сложности сети.
Были поставлены эксперименты для многоклассовой задачи на наборе данных CIFAR-10. Была реализована и обучена базовая модель ResNet- 110, точность на тестовой выборке составила 94,06%. Были поставлены эксперименты для разработанной модификации архитектуры сети для различных заданных значений допустимых ошибок. Результаты экспериментов демонстрируют уменьшение вычислительной сложности работы сети, при этом потери в точности составляют не более 2%.
— нет привязки к архитектуре сверточной нейронной сети;
— обучение слабых классификаторов не требует наличия GPU.
Была реализована и обучена нейронная сеть ResNet-50 для задачи классификации кошек и собак. Были поставлены эксперименты для разработанной архитектуры с различными значениями ошибок первого и второго рода и с различными вариантами регуляризации векторов характеристик. Результаты экспериментов демонстрируют не только повышение скорости работы разработанной архитектуры в сравнении с исходной, но и увеличение точности классификации для задачи классификации кошек и собак.
Были реализованы и обучены нейронные сети ResNet-34, ResNet-101, DenseNet-201, SENet-101 для задачи классификации пола по фотографии человека для наборов данных ImDB-WiKi и Adience. Результаты экспериментов демонстрируют уменьшение вычислительной сложности разработанной архитектуры в сравнении с базовой моделью без потери в точности для бинарной задачи классификации изображений. Было проанализировано влияние различных техник регуляризации на результаты: добавление шума и увеличение разнообразия изображений способствуют уменьшению вычислительной сложности сети.
Были поставлены эксперименты для многоклассовой задачи на наборе данных CIFAR-10. Была реализована и обучена базовая модель ResNet- 110, точность на тестовой выборке составила 94,06%. Были поставлены эксперименты для разработанной модификации архитектуры сети для различных заданных значений допустимых ошибок. Результаты экспериментов демонстрируют уменьшение вычислительной сложности работы сети, при этом потери в точности составляют не более 2%.



