Решение задачи бинарной классификации при помощи свёрточных нейронных сетей с использованием фреймворка Tensorflow
Автор: Денисенко Алексей Александрович
Рубрика: 1. Информатика и кибернетика
Опубликовано в
Дата публикации: 06.02.2019
Статья просмотрена: 2164 раза
Библиографическое описание:
Денисенко, А. А. Решение задачи бинарной классификации при помощи свёрточных нейронных сетей с использованием фреймворка Tensorflow / А. А. Денисенко. — Текст : непосредственный // Актуальные вопросы технических наук : материалы V Междунар. науч. конф. (г. Санкт-Петербург, февраль 2019 г.). — Санкт-Петербург : Свое издательство, 2019. — С. 1-4. — URL: https://moluch.ru/conf/tech/archive/324/14834/ (дата обращения: 15.11.2024).
В данной статье рассматривается задача классификации кошек и собак при помощи построения свёрточной нейронной сети, с использование фреймворка 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. Точность полученной модели сети
Литература:
- Fisher, R.A. (1936). “The Use of Multiple Measurements in Taxonomic Problems”. Annals of Eugenics. 7: 179–188.
- 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.
- 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.
Похожие статьи
Классификация заявок пользователей с помощью нейросети
В статье рассмотрен вариант решения классификации задач, поступающих от пользователей системы, на основе текстовой информации. Инструментом классификации выступает нейронная сеть. В статье рассмотрены этапы построения нейросети, а также процесс подго...
Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации
В статье автор сравнивает эффективность технологий распараллеливания компьютерных вычислений на примере задачи реализации и обучения нейронной сети репликации.
Разработка систем рекомендаций на основе Big Data
В данной статье рассмотрены основные подходы к разработке систем рекомендаций на основе Big Data, включая коллаборативную фильтрацию, контентную фильтрацию и гибридные методы, а также представлены примеры реализации алгоритмов на языке программирован...
Методы детектирования искусственных новостей
В статье решается задача детектирования искусственных новостей. Используются классические методы машинного обучения, такие как метод опорных векторов и случайный лес, а также методы глубокого обучения — нейронная сеть LSTM, языковые модели BERT и XLN...
Применение деревьев решений для оценки важности признаков на основе датасета больных раком
В статье автор рассматривает деревья решений как один из методов машинного обучения для решения задачи классификации. Метод применяется на наборе данных пациентов, больных раком шейки матки. С помощью деревьев решений производится оценка важности при...
Сравнение архитектур нейронных сетей в задаче сегментации фигуры человека
Статья посвящена сравнению архитектур нейронных сетей на примере задачи сегментации фигуры человека. Семантическая сегментация — важная область в сфере Computer Vision. Задачи сегментации решаются в таких проектах как: автономный транспорт, умный маг...
Анализ средств для реализации нейронных сетей на языке программирования Java
В данной статье рассматриваются основные требования к реализации нейронных сетей, описываются возможности языка Java по созданию компонентов нейронных сетей. Так же приводится анализ и сравнение уже существующих решений для данного языка и производит...
Использование машинного обучения при разработке информационной системы генеалогического древа математиков теории чисел
В статье автор рассказывает о том, как можно использовать машинное обучение при создании информационной системы.
Автоматизированная разметка набора открытых данных с применением больших языковых моделей
В статье автор описывает процесс автоматизированной разметки набора текстовых данных посвящённых тематике вакцинации с применением больших языковых моделей.
Похожие статьи
Классификация заявок пользователей с помощью нейросети
В статье рассмотрен вариант решения классификации задач, поступающих от пользователей системы, на основе текстовой информации. Инструментом классификации выступает нейронная сеть. В статье рассмотрены этапы построения нейросети, а также процесс подго...
Сравнение эффективности использования технологий CUDA и OpenCL при реализации нейронной сети репликации
В статье автор сравнивает эффективность технологий распараллеливания компьютерных вычислений на примере задачи реализации и обучения нейронной сети репликации.
Разработка систем рекомендаций на основе Big Data
В данной статье рассмотрены основные подходы к разработке систем рекомендаций на основе Big Data, включая коллаборативную фильтрацию, контентную фильтрацию и гибридные методы, а также представлены примеры реализации алгоритмов на языке программирован...
Методы детектирования искусственных новостей
В статье решается задача детектирования искусственных новостей. Используются классические методы машинного обучения, такие как метод опорных векторов и случайный лес, а также методы глубокого обучения — нейронная сеть LSTM, языковые модели BERT и XLN...
Применение деревьев решений для оценки важности признаков на основе датасета больных раком
В статье автор рассматривает деревья решений как один из методов машинного обучения для решения задачи классификации. Метод применяется на наборе данных пациентов, больных раком шейки матки. С помощью деревьев решений производится оценка важности при...
Сравнение архитектур нейронных сетей в задаче сегментации фигуры человека
Статья посвящена сравнению архитектур нейронных сетей на примере задачи сегментации фигуры человека. Семантическая сегментация — важная область в сфере Computer Vision. Задачи сегментации решаются в таких проектах как: автономный транспорт, умный маг...
Анализ средств для реализации нейронных сетей на языке программирования Java
В данной статье рассматриваются основные требования к реализации нейронных сетей, описываются возможности языка Java по созданию компонентов нейронных сетей. Так же приводится анализ и сравнение уже существующих решений для данного языка и производит...
Использование машинного обучения при разработке информационной системы генеалогического древа математиков теории чисел
В статье автор рассказывает о том, как можно использовать машинное обучение при создании информационной системы.
Автоматизированная разметка набора открытых данных с применением больших языковых моделей
В статье автор описывает процесс автоматизированной разметки набора текстовых данных посвящённых тематике вакцинации с применением больших языковых моделей.