ВВЕДЕНИЕ 3
1. Описание предметной области 4
1.1. Архитектура SENet 6
2. Реализация и описание алгоритмов 9
3. Результаты экспериментов 16
3.1. Набор данных Omniglot 16
3.2. Валидация параметров нейронной сети 18
3.3. Эксперименты с новой архитектурой 26
ЗАКЛЮЧЕНИЕ 30
СПИСОК ЛИТЕРАТУРЫ 32
ПРИЛОЖЕНИЯ
На сегодняшний день самым популярным инструментом в машинном обучении являются нейронные сети. Главным требованием при обучении нейронных сетей является большой объем качественно аннотированных данных. Метод однократного обучения позволяет обойти данное требование, не утратив в точности и скорости в сравнении со стандартными методами.
Несмотря на стремительный рост интереса к нейронным сетям, исследований в области однократного обучения немного. Более того, большинство из них проводится в домене компьютерного зрения, однако успешное применение подобных алгоритмов зачастую возможно и в других областях машинного обучения.
Актуальность темы усиливается наличием приложений, в которых может потребоваться распознавание объектов новых классов уже после обучения нейронной сети: при реализации метода однократного обучения будет достаточно включения одного или нескольких примеров объекта нового класса в обучающую выборку
Цель работы заключается в реализации метода однократного обучения для распознавания изображений с оценкой точности в режиме one-shot [1]. Для достижения цели ставятся следующие задачи:
- изучение литературы по теме;
- программная реализация сиамской нейронной сети на языке Python с использованием фреймворка TensorFlow;
- обучение нейронной сети на наборе данных Omniglot;
- валидация гиперпараметров нейронной сети;
- исследование возможности улучшения имеющихся результатов за счёт изменения архитектуры нейронной сети;
- анализ результатов.
В ходе исследования удалось полностью реализовать метод однократного обучения для классификации изображений с помощью сиамской сверточной нейронной сети. Проверка точности проводится на наборе данных Omniglot в ходе 400 раундов однократного распознавания среди 20 классов.
Детальный разбор исследований по теме работы дал возможность достигнуть высоких показателей точности однократного распознавания на тестовой выборке. В ходе валидации гиперпараметров удалось повысить точность до 91.5% и экспериментально проверить влияние гиперпараметров на ход обучения. Тем не менее, разница финальных показателей точности на валидационной и тестовой выборке для каждой конкретной модели могла достигать 17%. Более того, рост точности в одном случае часто сопровождался понижением точности в другом. Такие наблюдения свидетельствуют о недостаточном размере выборки для проверки точности и возможной еще более значительной сложности задачи в целом.
Множество экспериментов показало, что из-за строгих ограничений в вариативности данных и небольшого размера обучающей выборки применяемый подход приводит к переобучению сети. Борьба с переобучением потребовала применения сразу нескольких методов регуляризации, среди которых самым эффективным оказалось дополнение данных. Несмотря на разнообразие афинных преобразований изображений и их случайной генерации в ходе обучения, точность верификации спустя несколько эпох во многих случаях всё равно достигала 100%, после чего деградация сети усиливалась.
Увеличение размера обучающей выборки до 210000 пар не показало положительных изменений. Можно предполагать, что так как выборка формируется из символов в пределах одного алфавита, частое повторение одних и тех же пар символов даже с разными изображениями этих символов не повышает вариативность данных и сложность задачи верификации.
Дополнительные эксперименты подтвердили тот факт, что естественная вариативность данных повышает обобщающую способность модели.
Предложено несколько модификаций архитектуры базовой модели с включением блоков SE-ResNet. Однако в большинстве случаев эффект переобучения лишь усиливается, а разница с лучшими показателями базовой модели составляет примерно 2%. При этом, намеренное уменьшение сети приводит к низкой точности верификации. Возможно, с помощью подобных изменений можно найти лучшую модель для решения поставленной задачи, но это требует проведения множества дополнительных экспериментов.
В качестве следующих шагов для повышения достигнутых показателей, кроме модификаций архитектуры нейронной сети, интересно изменение метрики схожести (например, на метрику у2 [14]), целевой функции (например, triplet loss [15]), а также принципа обучения (например, imitation learning). Обучение на других наборах данных (Penn Treebank, miniImageNet [16]) также может дать понимание того, какие именно тенденции соблюдаются при постановке задачи однократного распознавания в общем случае.