Статья опубликована в рамках: CXXXVII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 13 мая 2024 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
АРХИТЕКТУРА CRNN МОДЕЛИ
ARCHITECTURE OF CRNN MODEL
Darya Chernyakova
student, Department of Mathematical and Computer Modeling, Saratov National Research State University named after N.G. Chernyshevsky,
Russia, Saratov
АННОТАЦИЯ
В статье рассмотрены основные типы слоев для архитектуры CRNN модели, приведены формулы, по которым производятся расчёты в слоях. Также в статье рассмотрен основной алгоритм использования модели, упрощающий процесс разработки моделей. Реализовано решение задачи распознавания корейских слогов.
ABSTRACT
In this article general types of layers for CRNN model were reviewed, the formulas for performing calculations in layers were provided. Also, this paper contains an example of major algorithm for model usage, which purpose is to simplify the process for models’ development. The task of Korean syllables recognition was accomplished.
Ключевые слова: CRNN, машинное обучение, искусственный интеллект, изображение, модель, архитектура, корейские слоги.
Keywords: CRNN, machine learning, artificial intelligence, image, model, architecture, Korean syllables.
В сфере искусственного интеллекта существует проблема распознавания изображений. В данной работе будет описываться модель CRNN.
Процесс распознавания изображений с помощью подобных нейронных сетей, не учитывая процесс создания самой модели, выглядит следующим образом [1]:
- Получить датасет.
- Создать словарь. В нем будут содержаться ссылки на изображения и описания изображений в соответствии с классами, по которым модель сможет определить правильный ли был дан ответ.
- Передать данные в модель.
- Оценить результаты, а затем усовершенствовать модель, если не были достигнуты целевые характеристики или результаты.
- После пересмотра ответ новой модели, использовать по назначению.
Как уже упоминалось ранее, в данной работе будет рассматриваться CRNN. Архитектура модели – это расположение слоев, которые определяют, каким образом входные данные проходят через модель [5]. Слои – это функции, которые особым способом обрабатывают входные данные. Есть несколько видов слоев:
1. Свёрточный слой.
Всё изображение разбивается на меньшие части, к которым применяются фильтры. Они применяются к каждой части входного изображения, предварительно превращенного в массив из чисел, и возвращают уменьшенный массив из чисел, которые были изменены в соответствии со значением внутри фильтров. Поскольку свёрточных слоев несколько, то без паддинга – процесса искусственного увеличения изображения, с помощью добавления слоев из нулей вокруг – входные данные могут уменьшится слишком сильно. Фильтрами считаются более простые функции, которые модель подбирает во время обучения. Пользователь задает только количество фильтров [3]. Процесс применения фильтра можно описать следующей формулой:
Здесь отвечает за значение пикселя изображения, подвергнутого обработке фильтром, отвечает за исходное изображение, это кернел или же фильтр.
1. Слой пулинга или субдискретизирующий слой.
Субдискретизирующие слои используются для уменьшения размеров массивов, возвращенных после прохождения предыдущего слоя [6]. Таким образом, уменьшается количество изучаемых параметров и объем вычислений, выполняемых в сети. Есть разные виды пулинга, обычно используется только MaxPooling, в соответствии со следующей формулой:
Здесь X это вход. Индексы i, j, k указывают на размер изображения и на каналы, и являются шагами для пулинга.
2. Полносвязный слой или линейный слой.
Здесь сведенный к виду одномерного массива результат конечного слоя пулинга предоставляется в качестве входных данных для линейного слоя. Каждый нейрон более раннего слоя связан с линейным слоем. Этот слой дает вероятностное распределение для возможных ответов сети. Функция активации. С помощью функции активации модель решает, следует ли активировать нейрон или нет, путем вычисления суммы входных данных с весами и дальнейшего добавления смещения к ней.
3. Исключающий слой.
Использование исключающего слоя – это способ сократить слишком большую связь между признаками. Слой обнуляет некоторые входные нейроны, чтобы модель перестала полагаться на них на какое-то время. Функция потерь – это математическая формула, используемая для рас чета ошибки, то есть разницы между прогнозируемым значением и фактическим значением. Для подобных задач популярна log-loss функция [2]. Ее формула выглядит следующим образом:
где P – это целевое распределение вероятностей, а Q – это распределение вероятностей, которые предсказала модель.
4. Сглаживающий слой.
Используется, когда на вход подаются данные в виде многомерного массива. Слой приводит любой такой массив к виду одномерного. Нужен для передачи данных в линейный слой.
Для понимания процессов в сети, необходимо ввести понятие метода об ратного распространения ошибки и градиентного спуска. Градиентный спуск – это процесс минимизации функции потерь, за счет прибавления к весам соответствующих значений из вектора, который получается после вычисления отрицательного градиента.
Что такое градиент? Градиент – это вектор, в котором координаты являются частными производными от функции, в данном случае от функции потерь [7]. Градиент показывает в каком направлении функция растет быстрее всего.
Backpropagation или метод обратного распространения ошибки является методом нахождения самого градиента и корректировки весов и смещений.
5. Слои LSTM.
Долгая краткосрочная память или Long short-term memory. Слои нужны для решения задачи предсказания на основе прошлой информации, но получение ответа зависит от того, насколько эта информация давняя [4]. Это нужно, чтобы можно было установить зависимость как будущей информации от прошлой, так и прошлой от будущей. Ключевым компонентом LSTM является состояние ячейки – информация в памяти слоя, текущая через весь модуль. Информация проходит через части модуля и параллельно с этим функции в модуле позволяют установить зависимости и решить, что стоит подать на выход из слоя, а что удалить или обновить.
Для примера создания модели была выбрана задача распознавания корейских слогов. Задача успешно выполнена, все цели достигнуты. Модель смогла распознать вручную написанные слоги, а также достигла высокой точности. Далее можно увидеть архитектуру модели.
Рисунок 1. Первая часть архитектуры модели
Рисунок 2. Вторая часть архитектуры модели
Эпохи для модели являются частями ее цикла обучения. В норме показатели должны меняться каждую эпоху. Если модель построена правильно, проведены все предобработки для датасета, то показатели будут изменяться в лучшую сторону.
Рисунок 3. Показатели точности и функции потерь на последних эпохах
Для проведения теста была выбрана сгенерированная выборка, но поскольку она не сильно отличалась от тренировочной и стресс-тест провести не удалось, был выбран массив из четырех символов, написанных от руки.
Рисунок 4. Результаты работы модели для выборки из четырех слогов
Список литературы:
- An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition [Электронный pecypc]. – Режим доступа: https://arxiv.org/pdf/1507.05717.pdf, (дата обращения:17.03.2024)
- Cross-Entropy Loss in ML [Электронный pecypc]. – Режим доступа: https://medium.com/unpackai/cross-entropy-loss-in-ml-d9f22fc11fe0, (дата обращения: 20.01.2024)
- Kernel (image processing) [Электронный pecypc]. – Режим доступа: https://en.wikipedia.org/wiki/Kernel\_(image\_processing), (дата обращения: 01.12.2023)
- LSTM – Long short-term memory [Электронный pecypc]. – Режим доступа: https://blog.xpgreat.com/file/lstm.pdf, (дата обращения: 05.03.2024)
- Model Architecture [Электронный ресурс]. – Режим доступа: https://www.hopsworks.ai/dictionary/model-architecture, (дата обращения: 01.01.2024)
- Neural Networks: Pooling Layers [Электронный pecypc]. – Режим доступа: https://www.baeldung.com/cs/neural-networks-pooling-layers, (дата обращения: 11.03.2024)
- The math behind Gradient Descent and Backpropagation [Электронный pecypc]. – Режим доступа: https://towardsdatascience.com/the-math-behind-gradient-descent-and-backpropagation-code-example-in-java-using-deeplearning4j-f7340f137ca5, (дата обращения: 26.02.2024)
дипломов
Оставить комментарий