Просто это просто причудливый способ сказать:
- Параллельное обучение моделей
2. Выберите лучшие
3. Объединить вершины друг с другом каким-либо образом (мутация)
4. Перейти к первому шагу и продолжать до тех пор, пока проблемы не будут решены
Давайте попробуем это на простом примере!
Предполагается, что вы знаете о глубоком обучении, если читаете эту статью. Целью этой статьи является автоматизация процесса обучения с помощью ГА (Генетического алгоритма).
Итак, мы собираемся реализовать прогнозирование эффективности использования топлива указанным способом.
Подготовьте данные, следуя этому руководству от Google.
Базовая регрессия: Прогноз топливной экономичности
он уже реализован в этом проекте и может легко запускаться и подготавливать данные
Инициализация гиперпараметров здесь:
Ранняя остановка, чтобы не тратить время на модель, если она больше не улучшается.
каждая сеть имеет свою специфику, например:
1. Нейронная сеть
2.Оптимизатор
3. Слои
4. Скорость обучения и т. д.
Запустите сети и метод подгонки модели:
сети init: вернуть сети в количестве населения
fit_model: обратное распространение по модели (просто это метод Keras для оптимизации, как вы знаете)
Фитнес:
мы получаем модель и обучаем ее методом «fit_model».
затем оцените, чтобы получить отчет о точности, а затем снова установите его для сетевого объекта.
наконец, распечатать резюме.
И «Выбор»:
Все сети поколения в сочетании с сетью нового поколения затем попадают в десятку лучших из них. Интересно да? :]
а затем пометить их всех как «СТАРОЕ» поколение
Этот процесс будет продолжаться до тех пор, пока мы не поймаем наилучшую возможную модель.
в кроссовере мы берем лучшие вершины в качестве сетевого массива, рандомизируем их и делаем новые сети с родительской спецификацией.
тест получен от TensorFlow, упомянутого выше, лучше прочитать с их веб-сайта, чтобы полностью понять тест
но если вам лень переходить к этому, просто если x = y означает, что значение тестовой метки равно прогнозируемому значению, как мы хотим
Итак, начнем! :
# 1. Сети начинают инициализироваться
# 2. В диапазоне поколений мы будем сравнивать модели друг с другом
# 3. Сети начинают обучаться и сообщают о точности каждой
# 4. Затем на отбор идут все сети генерации
# 5. Создавайте новые модели с рандомизированными родителями
# 6. Расширьте с новым поколением, а затем запустите следующее поколение
# 7. Выбираем лучший и показываем его по результатам «GA»
# 8. Тестируйте и визуализируйте результат
# 9. Перейти к первому шагу
результат:
Поколение 1:
Поколение 2:
Как видите, он улучшается с 3,61 до 1,78 и так далее в следующих поколениях.
Вывод :
Наличие такой системы для автоматизации процесса поезда может решить проблему «присмотра за детьми», когда мы пытаемся оптимизировать и найти наилучшую возможную модель.
Таким образом, наличие такой или более продвинутой системы для автоматизации всего процесса поможет любому, кто не хочет терять время в этом процессе.
Следующий шаг:
Я постараюсь найти оптимизированные гиперпараметры с помощью обучения с подкреплением, а не устанавливать гиперпараметры случайным образом, и попытаюсь найти лучшие из них.
план состоит в том, чтобы внедрить «PPO», и входное состояние будет гиперпараметрами, такими как слои, оптимизаторы и т. д.
и заставить нашего агента узнать, как можно оптимизировать гиперпараметры для конкретной проблемы.
Блокнот Colab:
https://drive.google.com/file/d/1Tlfxn0wzs9Mv12WREKN9pL7QVB0cwgUe/view?usp=sharing