Решение задачи бинарной классификации при помощи свёрточных нейронных сетей с использованием фреймворка Tensorflow | Статья в сборнике международной научной конференции

Отправьте статью сегодня! Журнал выйдет 17 августа, печатный экземпляр отправим 21 августа.

Опубликовать статью в журнале

Библиографическое описание:

Денисенко А. А. Решение задачи бинарной классификации при помощи свёрточных нейронных сетей с использованием фреймворка Tensorflow [Текст] // Актуальные вопросы технических наук: материалы V Междунар. науч. конф. (г. Санкт-Петербург, февраль 2019 г.). — СПб.: Свое издательство, 2019. — С. 1-4. — URL https://moluch.ru/conf/tech/archive/324/14834/ (дата обращения: 23.10.2019).



В данной статье рассматривается задача классификации кошек и собак при помощи построения свёрточной нейронной сети, с использование фреймворка Tensorflow.

Ключевые слова: свёрточная нейронная сеть, Tensorflow, классификация, машинное обучение.

Классификация является, неотъемлемой, частью жизни каждого из нас. Изо дня в день человеческий мозг классифицирует множество вещей с невероятной точностью и простотой. Но если говорить о компьютере, то эта задача уже не такая и тривиальная. К примеру, как, с помощью компьютера можно отличить апельсин от лимона?

Рис. 1. Лимон и апельсин

Если использовать обычные условные операторы, возможно, понадобится тысяча условий, чтобы в точности отличить лимон от апельсина. Нужно принять во внимание и цвет и размер, форму, узор на кожуре и так далее. Но, с такой задачей, без проблем может справиться натренированная нейронная сеть. Одна из популярных задач классификации — классификация ирисов [1].

Рис. 2. Ирис Versicolor и Ирис Virginica

Всего по четырем уникальным параметрам (длина и ширина чашелистика, длина и ширина лепестка), можно классифицировать ирисы. Конкретно задачу классификации изображений решают при помощи свёрточных нейронных сетей.

Свёрточная нейронная сеть (англ. convolutional neural network, CNN) — специальная архитектура искусственных нейронных сетей, предложенная Яном Лекуном в 1988 году и нацеленная на эффективное распознавание изображений, входит в состав технологий глубокого обучения (англ. deep learning) [2]. Название архитектура сети получила из-за наличия операции свёртки, суть которой в том, что каждый фрагмент изображения умножается на матрицу (ядро) свёртки поэлементно, а результат суммируется и записывается в аналогичную позицию выходного изображения.

Рассмотрим, как с помощью свёртойной нейронной сети можно решить задачу классификации кошек и собак. Для построения сети будет использоваться фреймворк tensorflow.

Исходный набор данных нужно подготовить перед обработкой, так, все изображения нужно сделать серыми и уменьшить до размера 70х70 пикселей. Таким образом обучение нейронной сети буде происходить быстрее, и мы не будем без надобности использовать ресурсы операционной системы.

Рис. 3. Этапы предварительной обработки изображения (слева на право: исходное, с оттенками серого, уменьшенное до 70х70 пикселей)

Топология сети. Так как данная задача относиться к категории двоичной классификации — задача классификации элементов множества в две группы, то у нас всего два входных нейрона.

Опытным путем был подобран скрытый слой. В целом, в процессе проведения опыта, были перепробованы следующие комбинации: 1, 2 или 3 свёрточных слоя, в каждом из которых 32, 64 или 128 нейронов для каждого из которых использовались 0, 1 или 2 слоя субдискретизации. Результаты опытов показали, что наилучшие результаты показываю сети с тремя свёрточными слоями, без использования слоя субдискетизации (рис. 4).

Рис. 4. Точность предсказания (слева) и процент ошибки сетей (справа)

Несмотря на то, что наилучшую точность предсказания показала сеть с тремя свёрточными слоями и 128 нейронами (красная линия). Наименьший процент ошибки имеет сеть c тремя свёрточными слоями и 64 нейронами (синяя линия).

Скалярный результат каждой свертки попадает на функцию активации, которая является некой не линейной функцией. Данная функция может быть любой. Но традиционно для данной задачи использовались функции типа гиперболического тангенса , или сигмоиды . Но в 2000х годах была предложена и исследована новая функция активации — ReLU (rectified linear unit) [3], которая позволила существенно ускорить процесс обучения и одновременно упростить вычисления (за счет простоты самой функции), что означает блок линейной ректификации, вычисляющий функцию . То есть, по сути, это операция отсечения отрицательной части скалярной величины. По состоянию на 2017 год эта функция и её модификации (Noisy ReLU, Leaky ReLU и другие) являются наиболее часто используемыми функциями активации в глубоких нейросетях, в частности, в свёрточных. Мы же будем использовать обычную ReLU функцию в решении данной задачи.

Рис. 5. График rectified linear unit функции

Для выходного слоя, нужно предварительно провести субдискретизацию. Слой пулинга или субдискретизации представляет собой не линейное уплотнение карты признаков, при этом группа пикселей (обычно размера 2х2) уплотняется до оного пикселя, проходя не линейное преобразование. Основная идея пулинга заключается в том, что если на предыдущей операции свертки уже были выявлены некоторые признаки, то для дальнейшей обработки настолько подробное изображение уже не нужно, и оно уплотняется до менее подробного.

Активационной функцией для слоя пулинга была выбрана сигмоида. Сигмоида — это гладкая монотонная возрастающая нелинейная функция, имеющая форму буквы «S», которая часто применяется для «сглаживания» значений некоторой величины. Часто под сигмоидой подразумевают логистическую функцию .

Для обучения сети использовался набор данных, состоящий из 22451 изображения, валидация, в свою очередь, происходила на 2495 изображения.

Результаты данного эксперимента показали, что наилучшим образом с задачей классификации кошек и собак, по изображениям, справляется нейронная сеть с тремя свёрточными слоями, в каждом из которых 64 нейрона, активационная функция — ReLU. В ходе эксперимента была получена модель нейронной сети, способная определить кошка на изображении или собака с точностью 87 % (рис. 6).

Рис. 6. Точность полученной модели сети

Литература:

  1. Fisher, R.A. (1936). “The Use of Multiple Measurements in Taxonomic Problems”. Annals of Eugenics. 7: 179–188.
  2. Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard and L. D. Jackel: Backpropagation Applied to Handwritten Zip Code Recognition, Neural Computation, 1(4):541–551, Winter 1989.
  3. Hahnloser RH, Sarpeshkar R, Mahowald MA, Douglas RJ, Seung HS. 2000. Digital selection and analogue amplification coexist in a cortex-inspired silicon circuit. Nature. 405(6789):947–51.
Основные термины (генерируются автоматически): нейронная сеть, слой, задача классификации кошек, CNN, сеть, нейрон, изображение, задача, активационная функция, функция активации.

Ключевые слова

классификация, машинное обучение, свёрточная нейронная сеть, Tensorflow

Похожие статьи

Модель математической нейронной сети | Статья в журнале...

Ключевые слова: нейрон, синапс, нейронная сеть, функция активации, линейная функция

Нейронная сеть— это последовательность нейронов, соединенных между собой синапсами

Нейронные сети используются для решения сложных задач, которые требуют аналитических...

Виды архитектур нейронных сетей | Статья в журнале...

Такой моделью является искусственная нейронная сеть, некоторые из архитектур которой будут освещены в данной

Все искусственные нейронные сети состоят из так называемых нейронов — модели

После, функция активации преобразует полученные данные в своего рода ответ.

Анализ средств для реализации нейронных сетей на языке...

Универсальность и востребованность нейронных сетей порождает задачу их реализации на

‒ непосредственное описание объектов нейронной сети, таких как нейрон, связь, слой

В реальных нейронных сетях чаще всего используются следующие функции активации

Введение в нейронные сети | Статья в журнале «Молодой ученый»

Функция нейронов — передача сигналов от одного к другому через аксоны к концевым

В искусственных нейронных сетях в качестве функции активации можно использовать

Тогда для первого нейрона во втором слое. Далее применяем сигмоидную функцию к...

Преимущества комплекснозначного нейрона на примере решения...

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

Аппаратная реализация искусственных нейронных сетей.

Рассмотрены типы искусственных нейронных сетей. Представлены методы аппаратной реализации искусственных нейронных сетей с использованием аналоговых, либо цифровых схем нейрон-синапсов. Представлены выводы о работе данных алгоритмов на основе их...

Обзор методов распознавания изображений | Статья в сборнике...

Свёрточная нейронная сеть (Convolutional neural network или CNN) — специальная архитектура нейронных сетей, предложенная в 1988 году и предназначенная для распознавания изображений. Архитектура вдохновлена некоторыми особенностями коры головного мозга, в...

Исследование возможностей использования нейронных сетей

Нейронная сеть — вычислительная или логическая схема, построенная из однородных

Биологическая нейронная сеть представляет из себя сеть из нейронов, которые принимают сигнал

Данная функция имеет ряд полезных свойств для использования в нейронных сетях.

Программная реализация сети Хопфилда для распознавания...

В настоящее время нейронные сети широко используются для решения трудно формализуемых задач, то есть таких, которые не имеют явного алгоритма. Одной из них является задача распознавания и классификации образов.

Применение технологий нейронных сетей для обработки данных...

Используя преимущества нейронных сетей, становится возможным создать эффективный

Задача классификации представляет собой процесс, состоящий из нормализации входных данных

Основные термины (генерируются автоматически): нейронная сеть, сеть, функция...

Похожие статьи

Модель математической нейронной сети | Статья в журнале...

Ключевые слова: нейрон, синапс, нейронная сеть, функция активации, линейная функция

Нейронная сеть— это последовательность нейронов, соединенных между собой синапсами

Нейронные сети используются для решения сложных задач, которые требуют аналитических...

Виды архитектур нейронных сетей | Статья в журнале...

Такой моделью является искусственная нейронная сеть, некоторые из архитектур которой будут освещены в данной

Все искусственные нейронные сети состоят из так называемых нейронов — модели

После, функция активации преобразует полученные данные в своего рода ответ.

Анализ средств для реализации нейронных сетей на языке...

Универсальность и востребованность нейронных сетей порождает задачу их реализации на

‒ непосредственное описание объектов нейронной сети, таких как нейрон, связь, слой

В реальных нейронных сетях чаще всего используются следующие функции активации

Введение в нейронные сети | Статья в журнале «Молодой ученый»

Функция нейронов — передача сигналов от одного к другому через аксоны к концевым

В искусственных нейронных сетях в качестве функции активации можно использовать

Тогда для первого нейрона во втором слое. Далее применяем сигмоидную функцию к...

Преимущества комплекснозначного нейрона на примере решения...

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

Аппаратная реализация искусственных нейронных сетей.

Рассмотрены типы искусственных нейронных сетей. Представлены методы аппаратной реализации искусственных нейронных сетей с использованием аналоговых, либо цифровых схем нейрон-синапсов. Представлены выводы о работе данных алгоритмов на основе их...

Обзор методов распознавания изображений | Статья в сборнике...

Свёрточная нейронная сеть (Convolutional neural network или CNN) — специальная архитектура нейронных сетей, предложенная в 1988 году и предназначенная для распознавания изображений. Архитектура вдохновлена некоторыми особенностями коры головного мозга, в...

Исследование возможностей использования нейронных сетей

Нейронная сеть — вычислительная или логическая схема, построенная из однородных

Биологическая нейронная сеть представляет из себя сеть из нейронов, которые принимают сигнал

Данная функция имеет ряд полезных свойств для использования в нейронных сетях.

Программная реализация сети Хопфилда для распознавания...

В настоящее время нейронные сети широко используются для решения трудно формализуемых задач, то есть таких, которые не имеют явного алгоритма. Одной из них является задача распознавания и классификации образов.

Применение технологий нейронных сетей для обработки данных...

Используя преимущества нейронных сетей, становится возможным создать эффективный

Задача классификации представляет собой процесс, состоящий из нормализации входных данных

Основные термины (генерируются автоматически): нейронная сеть, сеть, функция...