РЕШЕНИЯ ДЛЯ ГЛУБОКОГО ОБУЧЕНИЯ

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

1.меньшая доступность набора данных
2.меньшая доступность вычислительной мощности и пространства
3.выбор правильного значения гиперпараметров
4.переоснащение данных
5.недообучение данных< br /> 6. зашумленные данные
Могут быть и другие проблемы, но я чувствую, что это несколько проблем, с которыми сталкивается большинство энтузиастов глубокого обучения.

Давайте посмотрим, как мы можем решить эти проблемы.

1. Низкая доступность набора данных: основным источником набора данных является Kaggle. Это очень хороший сайт, если вы хотите иметь чистые данные для своего проекта мл. Вы также можете использовать поиск набора данных Google для решения вашей проблемы с меньшим количеством данных. Если вам нужен набор данных изображений, вы также можете использовать изображения Google для создания своего набора данных. Пожалуйста, посмотрите на этот проект для получения дополнительной информации.

https://github.com/ralouekapoor06/potato_carrot_classifier

Если вы работаете в компании, вы можете даже покупать данные у других компаний для собственного использования. Обратите внимание, что эти данные не всегда так чисты, и потребуется выполнить некоторую ручную очистку. Расширение данных — это еще один метод, который можно использовать для создания большего количества изображений из существующих изображений в качестве данных.
Поскольку доступность данных меньше, необходимо выполнить большую ручную обработку данных. Ручная инженерия означает извлечение важной информации из данных вручную перед передачей ее в нейронную сеть.
Передача обучения. Передача обучения – это популярный метод, который широко используется, если у вас меньше данных. Давайте разберемся с этим на примере.
Предположим, вы использовали свой классификатор для обучения модели «кошка-собака». Затем вы можете использовать ту же модель для обучения классификатору тигра и льва! Вам просто нужно изменить последние несколько слоев классификатора. Затем вы можете обучить только последние измененные слои этой нейронной сети.
Почему это работает: — Этот метод хорошо работает для большинства задач по следующим причинам: —
1. Если вы видите, у кошки и льва много общих черт низкого уровня. Если вы не знаете, нейронная сеть обнаруживает функции низкого уровня в более ранних слоях и функции высокого уровня в более поздних слоях. Таким образом, нет необходимости переобучать более ранние слои. Это свойство совместного использования функций является основной причиной, по которой трансферное обучение работает.
Многозадачное обучение. Это еще один метод, который можно использовать, если у вас меньше данных. В этом случае у вас есть одна нейронная сеть для всех ваших нужд!
Можно использовать одну нейронную сеть, которая может выполнять задачу для 3 других моделей машинного обучения. Например, вы делаете самоуправляемый автомобиль, и вам нужно обнаруживать уличные фонари, другие автомобили и т. д. Предположим, у вас есть всего 100 изображений для каждой из задач, тогда вы можете взять все эти изображения в качестве входных данных. в эту нейронную сеть и вывести прогноз для каждой, т. е. количество единиц в последнем слое = количество вещей, которые мы хотим обнаружить. Итак, если мы хотим обнаружить автомобиль и светофор, то у нас будет 2 узла в выходном слое, и каждый может давать значение от 1 до 0
Этот метод работает хорошо, только если у нас есть большая модель нейронной сети.
Хотя большую часть времени используется трансферное обучение, его также можно использовать для конкретных задач, например. в случае обнаружения объекта

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

Алгоритмы глубокого обучения принимают на вход множество функций и обучаются на множестве изображений. Вычислительная мощность запуска этих алгоритмов становится огромной. Если вы хотите использовать глубокое обучение, вам понадобится как минимум 8 ГБ оперативной памяти и Intel i5. Но даже если у вас есть это требование, большинство алгоритмов не будут работать хорошо, и вы не получите высокой точности обучения или точности тестирования. У меня были времена, когда я мог обучить максимум 50 изображений. Для этого есть решения, но они дорогостоящие.
ВАРИАНТ 1. Выберите высокопроизводительный графический процессор и наслаждайтесь возможностями глубокого обучения.
ВАРИАНТ 2. Выберите облачный сервис, который может предоставить вам графический процессор. Я рекомендую вам использовать облачную платформу Google.
Оба эти варианта затратны и потребуют денежных вложений.
Хотя 1-й вариант лучше для длительного использования. После расчетов мы выяснили, что облачный графический процессор через 8 месяцев стоит столько же, сколько стоил бы вам после покупки настоящего графического процессора.
Проблема с пространством: - В зависимости от количества изображений размер будет большим. Но вы можете решить эту проблему, купив себе жесткий диск. Основная проблема возникает во время выполнения кода, когда он назначает так много ячеек памяти одновременно. У меня есть 2 ТБ места на моем ноутбуке, но все же столкнитесь с этой проблемой. И снова облако приходит на помощь!

Выбор правильного значения гиперпараметров: — это еще одна важная концепция. Есть много гиперпараметров, которые нужно тренировать при кодировании глубокой нейронной сети. Ниже приведено изображение, на которое можно ссылаться при определении приоритетов их параметров для настройки. Хотя это не обязательно будет работать для всех моделей, но должно работать для большинства моделей. Это может быть отправной точкой для вас, если вы запутались!

Примечание: - Все идеи были изучены мной через deeplearning.ai

Спасибо за чтение. Похлопайте, если вам это нравится. Действительно был бы признателен. Напишите мне по любым вопросам.

Часть 2 скоро!