Публикация была переведена автоматически. Исходный язык: Русский
Ближе к данным!
Практически любая модель машинного обучения под капотом использует алгоритмы оптимизации. Самих методов оптимизации существует большое множество. Чтобы оценить насколько большое — посмотрите хотя бы на кирпич по выпуклой оптимизации Бойда и Ванденберга или их одноименный курс в Stanford.
Помимо выпуклой оптимизации в мире Machine Learning очень часто используется еще и численная оптимизация. И не так много специалистов по анализу данных хорошо знакомы с математикой задач оптимизации. Если вы любите математику и хотите выделиться в сфере анализа данных (получить конкурентное преимущество на рынке труда) — то это ваш конек!
Плох тот аналитик, который не хочет стать data scientist'ом. А чтобы им стать, вам необходимо хотя бы на базовом уровне понимать идеологию оптимизации, уметь взять производную и спуститься по антиградиенту (без пафоса: в направлении минус-производной). Самостоятельная реализация алгоритмов оптимизации в мире ML — это большая редкость. А вот их использование — сама необходимость. Чтобы освежить воспоминания и научиться оптимизировать функции в Python мы рекомендуем познакомиться с модулем для научных вычислений scipy и функцией minimize:
from scipy.optimize import minimize
Задача #1
Найдите хотя бы один локальный минимум функции от одной переменной аналитически:
f(x) = 3 * x^6 - 5 * x^4 + 2 * x - 1
Затем попробуйте найти минимум с помощью scipy. Попробуйте разные алгоритмы (например, Nelder-Mead), оцените их сходимость и сравните результаты.
Задача #2
Частая ошибка: забыть проверить граничные случаи и сходимость работы алгоритма. Например, попробуйте решить одну из задач домашнего задания Практического курса по Machine Learning.
Найдите минимум функции от двух переменных:
f(x, y) = 3 * x * y + 3 * x^2 - 4 * y + 7 - 5 * x^5
Полезная информация
Читать сначала: ч.1 введение в ML и библиотеки ML для Python
Предыдущий выпуск: ч.4 разведочный анализ данных и статистические интеграции
BigData Team: the way you learn best
Ближе к данным!
Практически любая модель машинного обучения под капотом использует алгоритмы оптимизации. Самих методов оптимизации существует большое множество. Чтобы оценить насколько большое — посмотрите хотя бы на кирпич по выпуклой оптимизации Бойда и Ванденберга или их одноименный курс в Stanford.
Помимо выпуклой оптимизации в мире Machine Learning очень часто используется еще и численная оптимизация. И не так много специалистов по анализу данных хорошо знакомы с математикой задач оптимизации. Если вы любите математику и хотите выделиться в сфере анализа данных (получить конкурентное преимущество на рынке труда) — то это ваш конек!
Плох тот аналитик, который не хочет стать data scientist'ом. А чтобы им стать, вам необходимо хотя бы на базовом уровне понимать идеологию оптимизации, уметь взять производную и спуститься по антиградиенту (без пафоса: в направлении минус-производной). Самостоятельная реализация алгоритмов оптимизации в мире ML — это большая редкость. А вот их использование — сама необходимость. Чтобы освежить воспоминания и научиться оптимизировать функции в Python мы рекомендуем познакомиться с модулем для научных вычислений scipy и функцией minimize:
from scipy.optimize import minimize
Задача #1
Найдите хотя бы один локальный минимум функции от одной переменной аналитически:
f(x) = 3 * x^6 - 5 * x^4 + 2 * x - 1
Затем попробуйте найти минимум с помощью scipy. Попробуйте разные алгоритмы (например, Nelder-Mead), оцените их сходимость и сравните результаты.
Задача #2
Частая ошибка: забыть проверить граничные случаи и сходимость работы алгоритма. Например, попробуйте решить одну из задач домашнего задания Практического курса по Machine Learning.
Найдите минимум функции от двух переменных:
f(x, y) = 3 * x * y + 3 * x^2 - 4 * y + 7 - 5 * x^5
Полезная информация
Читать сначала: ч.1 введение в ML и библиотеки ML для Python
Предыдущий выпуск: ч.4 разведочный анализ данных и статистические интеграции
BigData Team: the way you learn best