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

Во-первых, что такое сверточные нейронные сети? Сверточная нейронная сеть - это алгоритм глубокого обучения, который может принимать входное изображение, назначать важность (обучаемые веса и смещения) различным аспектам объектов на изображении и иметь возможность отличать один от другого. Я просто кратко расскажу вам, как я построил сверточную нейронную сеть на некоторых продуктах Yoruba Foods.

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

Фреймворк глубокого обучения, используемый для обучения этой модели, - это Keras с бэкендом tensorflow. Во-первых, csv-файл, содержащий метку и имя файла изображения, импортируется с помощью pandas. Затем изображение поезда импортируется с использованием приведенного ниже кода.

В рамках предварительной обработки данных метки жестко кодируются, чтобы их можно было передать в сверточную нейронную сеть. Размер изображения 170 x 140. Входная форма изображения теперь (170 x 140 x 3), поскольку это изображение RGB.

При построении архитектуры модели нейронной сети мы называем последовательную модель в рамках keras. Сверточное 2D размером 32 и размером ядра (3,3), которое затем передается в функцию активации выпрямленного линейного блока (relu). Затем выполняется MaxPooling для изображения с размером пула 2 x 2. Замечено, что во время операции MaxPooling размеры изображения уменьшаются вдвое. Желательно прочитать больше о свертке и операции Maxpooling, чтобы получить полное представление о сверточной нейронной сети. Ниже показан код, используемый для построения сверточной сети.

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

Для обучения модели было использовано 270 изображений, а для проверки модели - 68 изображений. Модель обучалась по эпохам. График точности по эпохам можно увидеть на графике ниже:

Модель показала точность 85,294%, что вполне приемлемо. Отчет о классификации, созданный с использованием библиотеки scikit learn, можно увидеть ниже:

Матрица неточностей, сгенерированная моделью на проверочном наборе, показана ниже:

Эта модель сверточной нейронной сети может применяться к локально собранным данным и, следовательно, может использоваться для точного прогнозирования классов некоторых пищевых продуктов, поскольку она имеет точность более 80% на проверочном наборе.

Наконец, я бы посоветовал, чтобы больше узнать, я бы порекомендовал Deep Learning with Python Франсуа Шоле, мозги, стоящие за keras. Ссылку на полный код и набор данных вы можете найти здесь.

📝 Прочтите этот рассказ позже в Журнале.

🗞 Просыпайтесь каждое воскресное утро и слышите самые интересные истории, мнения и новости недели, ожидающие в вашем почтовом ящике: Получите примечательный информационный бюллетень›