Просто это просто причудливый способ сказать:

  1. Параллельное обучение моделей

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

Более: