Объясняется это проклятьем размерности (которое обсуждалось в начале третьего модуля)
Как мы помним, объём при увеличении размерности сильно уходит по краям сферы и по углам куба
И даже сфера радиусом 99% от изначальной в случае размерности 1000 где-то в 25000 раз меньше, чем изначальная сфераЭто приводит к тому, что точек для нахождения примерного минимума нужно очень много (экспоненциально, с ростом размерности)
Например, пусть у нас вся функция расставлена на кубе со стороной 1
И мы хотим точность в 0.1 (то есть, попасть от точки минимума на расстояние не более, чем 0.1)
Сколько понадобится измерений?
В одномерном случае для получения такой точности нам понадобиться 10 точек
В многомерном аналогичная логика, только по каждой из оси
Получается, что нужное количество точек растёт экспоненциально: 10d
Если у нас функция хотя бы 20 параметров (а их в машинном обучении бывает и сильно больше), то нам нужно уже 100000000000000000000 точек
Я думаю понятно, что возможности проверять такое количество точек у нас нет
И при том, точность в 0.1 достаточно плохая и если её пытаться увеличить, то будет ещё сильно хуже
Кому-то может прийти идея расставлять точки случайно, ведь часто в стохастические алгоритмы помогают
Но в данном случае это сделает только хуже, я и так работал с оптимальным вариантом
В следующем уроке мы разберём самый известный алгоритм, решающий данную задачу