Генетическая оптимизация гиперпараметров нейросетей

Проект посвящён созданию системы автоматического подбора гиперпараметров нейросетей с использованием генетического алгоритма. Оптимизация проводится на примере датасета Wine, а также тестируется на нескольких архитектурах: MLP, CNN и RNN.
🧬 Как это работает:
🔹 Каждая «особь» кодирует набор параметров:
• Количество слоёв сети
• Размер скрытых слоёв
• Dropout
• Learning rate
🔹 Генетический алгоритм выполняет:
• Турнирный отбор сильнейших моделей
• Кроссовер гиперпараметров для поиска новых комбинаций
• Случайную мутацию для разнообразия решений
🔹 Отслеживается точность каждой модели, сохраняется лучший результат и история поколений
📊 Результаты экспериментов:
✨ RNN достигла точности 100%
✨ MLP стабильно показывала ~1.0 на тренировке
⚠️ CNN показала худший результат из-за слабой наследуемости параметров
📈 Визуализирован прогресс эволюции по поколениям
📂 История эксперимента сохранена в .csv, лучшая модель — в .keras
💡 Особенности проекта:
✅ Полная воспроизводимость через фиксированные seed
✅ Поддержка визуализации процесса эволюции
✅ Возможность переноса весов и тестирования в средах OpenAI Gym
✅ Подходит для экспериментов с различными архитектурами и стратегиями отбора
Дополнительные изображения:
