🔴 Сложный ⏱️ 25 минут

Введение в оптимизацию: находим лучшие решения

Введение в оптимизацию: находим лучшие решения

🎯 Зачем это нужно?

Каждый день ты решаешь задачи оптимизации, даже не подозревая об этом! 📱

🚗 Яндекс.Карты находят самый быстрый маршрут из миллиардов вариантов 🎵 Spotify оптимизирует плейлисты под твой вкус среди 100 млн треков
💰 Банки минимизируют риски, выдавая кредиты 🎮 Игры настраивают сложность, чтобы ты не скучал и не бесился

А в Machine Learning оптимизация - это вообще основа основ! Нейросеть ChatGPT обучалась, минимизируя ошибки на триллионах параметров. Каждый раз, когда алгоритм “учится”, он решает задачу оптимизации.

📚 История вопроса

В 1665 году Пьер Ферма придумал метод поиска экстремумов функций - положил начало оптимизации. Но настоящий прорыв случился в 1940-х: Джон фон Нейман создал теорию игр, а математики разработали линейное программирование для военных нужд.

Сегодня оптимизация везде: Google использует PageRank (задача на собственные векторы), Tesla оптимизирует траектории автопилота в реальном времени, а TikTok максимизирует время, проведенное в приложении 🤖

💡 Интуиция

Представь, что ты заблудился в горах и хочешь спуститься вниз в темноте 🏔️. Как найти путь к подножию?

Жадная стратегия: на каждом шаге иди в сторону самого крутого спуска. Это и есть градиентный спуск - главный алгоритм машинного обучения!

[МЕДИА: image_01] Описание: 3D визуализация горного ландшафта с шариком, скатывающимся к минимуму Промпт: “3D mountain landscape visualization showing gradient descent, ball rolling down to minimum point, arrows showing steepest descent direction, machine learning optimization concept, modern educational style”

Но есть подвох: можешь попасть в овраг (локальный минимум), а не к подножию (глобальный минимум). В ML это главная проблема!

📐 Формальное определение

Задача оптимизации: найти значение x*, которое минимизирует (или максимизирует) функцию f(x).

Математически: x* = argmin f(x), где x ∈ D

Где:

  • f(x) - целевая функция (что оптимизируем)
  • D - допустимое множество (ограничения)
  • x* - оптимальное решение

В машинном обучении:

  • x - параметры модели (веса нейросети)
  • f(x) - функция потерь (loss function)
  • Цель: минимизировать ошибку модели

🔍 Примеры с разбором

Пример 1: Оптимизация в рекламе

Ты запускаешь канал в YouTube и хочешь максимизировать просмотры. У тебя есть бюджет 10 тысяч рублей на рекламу.

Переменные: x₁ - реклама в Instagram, x₂ - реклама в TikTok Целевая функция: f(x₁, x₂) = 50x₁ + 80x₂ (ожидаемые просмотры) Ограничения:

  • x₁ + 2x₂ ≤ 10 (бюджет)
  • x₁, x₂ ≥ 0 (неотрицательность)

Решение: это задача линейного программирования. Оптимум в вершине допустимой области: x₁ = 0, x₂ = 5. Весь бюджет в TikTok!

[МЕДИА: image_02] Описание: График допустимой области с линиями уровня целевой функции Промпт: “linear programming visualization, feasible region polygon, level curves of objective function, optimal point marked, business optimization context, clean mathematical illustration”

Пример 2: Обучение простейшей нейросети

Есть данные: (x₁=1, y₁=3), (x₂=2, y₂=5), (x₃=3, y₃=7). Нужно найти линейную зависимость y = ax + b.

Целевая функция (MSE): L(a,b) = ½∑(yᵢ - (axᵢ + b))²

Подставляем данные: L(a,b) = ½[(3-a-b)² + (5-2a-b)² + (7-3a-b)²]

Градиентный спуск: ∂L/∂a = -(3-a-b) - 2(5-2a-b) - 3(7-3a-b) = 14a + 6b - 46 ∂L/∂b = -(3-a-b) - (5-2a-b) - (7-3a-b) = 6a + 3b - 15

Приравниваем к нулю: a = 2, b = 1. Получили y = 2x + 1!

🎮 Практика

Базовый уровень 🟢

Задание 1: У тебя 100 рублей. Пицца стоит 20₽/кусок (сытость +3), кола 15₽/банка (счастье +2). Как потратить деньги, чтобы максимизировать общее удовольствие?

Задание 2: Найди минимум функции f(x) = x² - 4x + 5 аналитически.

Задание 3: Реши графически: максимизировать 2x + y при ограничениях x + y ≤ 4, x ≥ 0, y ≥ 0.

Задание 4: В игре можно качать силу (S) или ловкость (L). Урон = 2S + 3L, но S + L ≤ 10. Как распределить очки?

Продвинутый уровень 🟡

Задание 5: Используя градиентный спуск с шагом α = 0.1, сделай 3 итерации для минимизации f(x) = x² + 2x, начиная с x₀ = 2.

Задание 6: Интернет-магазин оптимизирует цену. При цене p рублей продается (100-p) товаров. Какая цена максимизирует выручку?

Задание 7: Обучи линейную регрессию y = ax на данных (1,2), (2,3), (3,5) методом наименьших квадратов.

Задание 8: Netflix хочет рекомендовать фильмы. Есть 3 жанра с весами w₁, w₂, w₃. Рейтинг пользователя = w₁x₁ + w₂x₂ + w₃x₃, где xᵢ - оценки жанров. При каких весах модель лучше всего предскажет оценку 4.5 для пользователя с предпочтениями (3, 5, 4)?

Челлендж 🔴

Задание 9: Докажи, что градиентный спуск для выпуклой функции всегда найдет глобальный минимум.

Задание 10: Tesla оптимизирует маршрут. Есть 4 точки зарядки на расстояниях d₁, d₂, d₃, d₄ от цели. Батарея тратит энергию пропорционально квадрату расстояния. Как выбрать оптимальную точку зарядки?

Задание 11: Создай алгоритм оптимизации для обучения нейросети с двумя слоями на датасете XOR: (0,0)→0, (0,1)→1, (1,0)→1, (1,1)→0.

⚠️ Частые ошибки

Ошибка: Путают локальный и глобальный минимум ✅ Правильно: Локальный минимум - лучший в окрестности, глобальный - лучший вообще 💡 Почему: В ML часто застреваем в локальных минимумах

Ошибка: Забывают про ограничения в задаче ✅ Правильно: Всегда проверяй, что решение удовлетворяет всем условиям 💡 Почему: Решение может быть математически верным, но практически невыполнимым

Ошибка: Выбирают слишком большой шаг в градиентном спуске ✅ Правильно: Начинай с малого шага и корректируй 💡 Почему: Большой шаг → перескакиваем минимум, малый → медленная сходимость

Ошибка: Думают, что оптимизация всегда находит идеальное решение
Правильно: Часто находим приближенное, но достаточно хорошее решение 💡 Почему: В реальности функции сложные, а время и ресурсы ограничены

🎓 Главное запомнить

✅ Оптимизация - это поиск лучшего решения среди всех возможных ✅ Градиентный спуск: x_{n+1} = x_n - α∇f(x_n)
✅ В ML оптимизируем функцию потерь для обучения моделей

🔗 Связь с другими темами

Откуда пришли: производные, экстремумы функций, системы уравнений Куда идем: нейросети, метод обратного распространения ошибки, продвинутые оптимизаторы (Adam, RMSprop) Связано с: линейная алгебра (градиенты), теория вероятностей (стохастическая оптимизация), численные методы

Понял тему? Закрепи в боте! 🚀

Попрактикуйся на задачах и получи персональные рекомендации от AI

💪 Начать тренировку
💬 Есть вопрос? Спроси бота!