JustCaptain kod-buduschego
c70a58f596a8dfc2ab4b734e1775d88fdefe87b3
Перейти к файлу
Код
MATERIAL.md

4.8. Создание модели классификации объектов с помощью нейросети

Цель работы

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

⸻

Теоретические сведения

Что такое искусственный интеллект

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

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

⸻

Что такое машинное обучение

Машинное обучение — это метод создания программ, которые способны самостоятельно находить закономерности в данных без написания большого количества правил вручную.

Рассмотрим простой пример.

Предположим, необходимо научить компьютер отличать кошек от собак.

Можно написать тысячи правил:

  • если уши острые;
  • если хвост длинный;
  • если морда вытянутая;
  • если шерсть определённого цвета.

Однако предусмотреть все возможные варианты невозможно.

Поэтому используется машинное обучение. Вместо создания правил компьютер получает большое количество уже подписанных изображений. Анализируя их, программа самостоятельно определяет признаки, по которым можно отличить один объект от другого.

Таким образом, компьютер не получает готовые правила, а учится находить их самостоятельно.

⸻

Что такое нейронная сеть

Нейронная сеть (нейросеть) — это разновидность алгоритмов машинного обучения, построенная по принципу работы нервной системы человека.

Несмотря на название, искусственная нейросеть значительно проще человеческого мозга. Она состоит из большого количества взаимосвязанных вычислительных элементов — искусственных нейронов.

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

Совместная работа тысяч или миллионов таких элементов позволяет нейросети решать сложные задачи.

Наиболее распространённые задачи нейронных сетей:

  • распознавание изображений;
  • распознавание речи;
  • машинный перевод;
  • анализ текста;
  • прогнозирование;
  • классификация объектов;
  • поиск аномалий.

⸻

Что такое классификация

Классификация — это процесс определения принадлежности объекта к заранее известной категории (классу).

Проще говоря, программа должна ответить на вопрос:

«К какому классу относится данный объект?»

Например:

Объект Возможные классы
Фотография Кошка, собака, птица
Электронное письмо Спам, обычное письмо
Медицинский снимок Болезнь обнаружена, болезнь отсутствует
Плод растения Яблоко, груша, апельсин

Во всех случаях количество возможных ответов известно заранее.

⸻

Примеры классификации в повседневной жизни

Практически ежедневно человек сталкивается с результатами работы нейронных сетей.

Например:

  • смартфон распознаёт лицо владельца;
  • электронная почта автоматически сортирует письма;
  • интернет-магазин определяет категорию товара;
  • камеры наблюдения распознают автомобили;
  • медицинские системы помогают врачу обнаруживать заболевания;
  • мобильные приложения определяют растения по фотографии;
  • системы видеонаблюдения находят нарушителей правил дорожного движения.

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

⸻

Основные понятия

Объект

Объект — это элемент, который необходимо определить.

Это может быть:

  • фотография;
  • рисунок;
  • звук;
  • текст;
  • видеокадр;
  • документ.

Например, если программа анализирует фотографии животных, то объектом является каждое отдельное изображение.

⸻

Класс

Класс — это категория, к которой относится объект.

Например:

  • кошка;
  • собака;
  • лошадь;
  • автомобиль;
  • самолёт.

Если модель умеет распознавать три вида фруктов, то она может выбрать только один из следующих классов:

  • яблоко;
  • банан;
  • апельсин.

⸻

Признаки объекта

Для того чтобы различать объекты, нейросеть анализирует различные признаки.

Например, при распознавании животных она может учитывать:

  • форму головы;
  • расположение глаз;
  • размер ушей;
  • цвет шерсти;
  • текстуру поверхности;
  • контуры объекта.

Следует отметить, что разработчик обычно не указывает эти признаки вручную. Современные нейросети самостоятельно определяют наиболее важные характеристики в процессе обучения.

⸻

Датасет

Датасет (Dataset) — это структурированный набор данных, используемый для обучения модели.

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

Например:

Изображение Подпись
Фото №1 Кошка
Фото №2 Кошка
Фото №3 Собака
Фото №4 Собака

Чем разнообразнее и качественнее датасет, тем выше вероятность успешного обучения модели.

⸻

Требования к датасету

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

Достаточный объём

Чем больше примеров получает нейросеть, тем лучше она изучает особенности объектов.

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

Разнообразие изображений

Изображения желательно собирать:

  • при разном освещении;
  • с различных расстояний;
  • под разными углами;
  • с разным фоном;
  • в различном качестве.

Это помогает модели научиться работать в реальных условиях.

Правильная разметка

Каждое изображение должно иметь правильную подпись.

Ошибки при разметке существенно снижают качество обучения.

⸻

Подготовка данных

Перед началом обучения выполняется предварительная подготовка данных.

Она включает:

  • удаление повреждённых изображений;
  • проверку правильности подписей;
  • изменение размера изображений;
  • нормализацию данных;
  • разделение изображений по классам.

Во многих современных системах изменение размеров выполняется автоматически.

⸻

Разделение датасета

После подготовки данные разделяют на несколько частей.

Обучающая выборка

Используется непосредственно для обучения модели.

Обычно составляет 70–80 % всех данных.

⸻

Проверочная (валидационная) выборка

Используется во время обучения.

Позволяет контролировать качество модели после каждой эпохи.

При ухудшении результатов можно остановить обучение.

Обычно составляет около 10–15 %.

⸻

Тестовая выборка

Используется только после завершения обучения.

Позволяет объективно оценить качество модели.

Как правило, составляет оставшиеся 10–20 % данных.

⸻

Этапы создания модели классификации

Создание модели включает несколько последовательных этапов.

Этап 1. Сбор данных

Подбираются изображения всех необходимых классов.

Например:

  • 1000 изображений кошек;
  • 1000 изображений собак.

⸻

Этап 2. Подготовка данных

Все изображения приводятся к одинаковому формату.

При необходимости исправляются ошибки в разметке.

⸻

Этап 3. Создание архитектуры модели

Выбирается тип нейронной сети.

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

⸻

Этап 4. Обучение модели

Во время обучения нейросеть многократно анализирует все изображения обучающей выборки.

После каждого прохода внутренние параметры корректируются.

Каждый полный проход называется эпохой обучения.

Например:

20 эпох означают, что вся обучающая выборка была обработана двадцать раз.

⸻

Этап 5. Проверка качества

После окончания обучения модель получает изображения, которых ранее не видела.

Если ответы совпадают с правильными классами, считается, что модель успешно обучилась.

⸻

Что происходит во время обучения

Рассмотрим процесс обучения более подробно.

Допустим, программе показано изображение кошки.

Модель делает предположение:

Собака.

Правильный ответ:

Кошка.

Компьютер вычисляет ошибку.

После этого изменяются внутренние параметры нейронной сети.

Затем показывается следующее изображение.

Такая процедура повторяется тысячи или миллионы раз.

Постепенно количество ошибок уменьшается.

⸻

Оценка качества модели

После завершения обучения необходимо определить качество модели.

Для этого используются различные показатели.

Accuracy (точность)

Показывает процент правильно распознанных объектов.

Например:

Из 500 изображений правильно определено 485.

Accuracy:

485 / 500 × 100 = 97 %.

⸻

Ошибка классификации

Показывает количество неправильных ответов модели.

В предыдущем примере ошибка составляет:

15 изображений.

⸻

Возможные ошибки модели

Даже хорошо обученная модель может ошибаться.

Основные причины:

  • недостаточное количество данных;
  • плохое качество изображений;
  • ошибки разметки;
  • слишком похожие классы;
  • переобучение модели.

⸻

Переобучение

Иногда нейросеть слишком хорошо запоминает обучающие изображения.

В результате новые изображения она распознаёт значительно хуже.

Такое явление называется переобучением.

Для борьбы с ним используют:

  • увеличение объёма данных;
  • разнообразие изображений;
  • специальные методы регуляризации;
  • раннюю остановку обучения.

⸻

Области применения

Технологии классификации используются практически во всех сферах деятельности.

Наиболее распространённые области применения:

  • медицина;
  • промышленность;
  • сельское хозяйство;
  • транспорт;
  • системы безопасности;
  • робототехника;
  • торговля;
  • банковская сфера;
  • образование;
  • экология.

⸻

Пример практической задачи

Необходимо создать систему распознавания фруктов.

Классы:

  • яблоко;
  • банан;
  • апельсин.

Подготавливается датасет из нескольких тысяч изображений каждого класса.

После обучения пользователь загружает фотографию.

Нейросеть анализирует изображение и выводит результат:

Банан (вероятность 98,4 %).

Таким образом система автоматически определяет принадлежность объекта к одному из известных классов.

⸻

Вывод

Создание модели классификации состоит из нескольких последовательных этапов: подготовки данных, формирования датасета, обучения нейронной сети, проверки качества модели и её практического использования. Основным фактором успешной работы модели является качество исходных данных. Чем больше правильно размеченных и разнообразных примеров используется при обучении, тем точнее нейросеть сможет классифицировать новые объекты.

⸻

Контрольные вопросы

  1. Что понимается под искусственным интеллектом?
  2. Что такое машинное обучение?
  3. Что представляет собой нейронная сеть?
  4. Что называется классификацией объектов?
  5. Что такое класс объекта?
  6. Что называют датасетом?
  7. Для чего выполняется подготовка данных?
  8. Чем отличается обучающая выборка от тестовой?
  9. Что такое эпоха обучения?
  10. Что показывает показатель Accuracy?
  11. Что такое переобучение модели?
  12. От чего зависит качество классификации объектов?
  13. Назовите основные этапы создания модели классификации.
  14. В каких областях применяются технологии классификации объектов?