В современном мире, нейросети применяют повсеместно для нахождения логики и предсказывания, в результате анализа данных, поступивших в сеть. Система нейронов представляет собой самообучающуюся систему, действующей в аналогии с деятельностью человеческого мозга. Единицей нейросети является нейрон, прототипом которого послужила одноименная единица головного мозга. На рисунке 1 показана схема нейрона.
Рисунок 1 – Схема единицы нейросети
Можно заметить, что составляющими единицы нейросети, являются синапсы, обеспечивающие связь входные данные и ядро; в то время как ядра нейрона, которое служит для непосредственного анализа входных сигналов; а также аксона, обеспечивающего связь между ядром и следующим слоем нейросети или выходом.
В данной работе был рассмотрен пример использования Google Сolab для машинного обучения. Для его реализации будем использовать GitHub файл с нейросетью. По аналогии с FastAI создадим нейронную сеть, которая будет классифицировать изображения из нашего собcтвенного датасета.
Сначала необходимо подготовить изображения для классификации, будем классифицировать черных медведей и гризли. Из всех взятых изображений с Google Картинки, необходимо удалить все поврежденные или с плохим качеством изображения. Сделать это можно с помощью цикла:
for c in classes:
print(c)
verify_images(path/c, delete=True, max_size=500)
Составим датасет, а именно набор данных с которым мы будем работать.
Датасет представляет собой набор изображений для классификации черных медведей (black) и гризли(grizzly), которые будут входными сигналами (рисунок 2).
Рисунок 2 – Датасет классификации
После удачного создания датасета, необходимо начать тренировку нейронной сети. Для этого будем использовать следующую функцию:
learn = create_cnn(data, models.resnet34, metrics=error_rate)
Получим таблицу с данными по тренировке нейросети (рисунок 3):
Рисунок 3 – Тренировка
После удачной тренировки посмотрим интерпретацию полученных результатов (рисунок 4).
Рисунок 4 – Интерпретация классификации
Как видно на рисунке,было правильно распознано 41 изображение черных медведей и 31 картинка с гризли, а так же выявлено несколько ошибок, которые мы рассмотрим внимательнее (рисунок 5).
Рисунок 5 – Ошибочные изображения
Из графика видно, что фотографии не могут быть интерпретированы точно, что влияет на получение результата.
Проведем тестирование обученной нейросети. Возьмем изображение гризли и проверим точность классификации (рисунок 6):
Рисунок 6 – Изображение для теста
Получаем вывод от нейросети:
Category grizzly, а значит классификация произошла верно.
В результате выполненной работы были описаны возможности Google Colab для изучения технологий машинного обучения и нейронных сетей и приведен пример классификации изображений, взятых из Google Картинки.
Библиографический список
- Барский, А.Б. Логические нейронные сети: Учебное пособие / А.Б. Барский. – М.: Бином, 2013. – 352 c.
- Галушкин, А.И. Нейронные сети: основы теории / А.И. Галушкин. – М.: ГЛТ, 2012. – 496 c.
- Каллан, Р. Нейронные сети: Краткий справочник / Р. Каллан. – М.: Вильямс И.Д., 2017. – 288 c.
- Редько, В.Г. Эволюция, нейронные сети, интеллект: Модели и концепции эволюционной кибернетики / В.Г. Редько. – М.: Ленанд, 2019. – 224 c.
- Хайкин, С. Нейронные сети: полный курс / С. Хайкин. – М.: Диалектика, 2019. – 1104 c.