Хотя нет. Настоящая вершина далеко, и градиентный спуск не приведет вас туда. Вы попали в точку, известную как локальный оптимум
[298], в которой никакие мелкие изменения не приводят к улучшению, но при этом она далека от фактического наилучшего положения. Мне нравится думать о локальном оптимуме как о математической модели прокрастинации – склонности откладывать дела на потом. Предположим, вам нужно сделать какое-то неприятное дело: например, разобрать огромную шаткую стопку папок, большинство из которых связано с целями, к которым вы стремились годами, и избавление от них означало бы окончательное признание, что вы этими путями уже больше никогда не пойдете. В любой конкретный день метод градиентного спуска рекомендует вам совершить какой-то маленький шаг, который сделает вас в этот день максимально счастливым. Нужно ли для этого разбирать завалы? Нет, как раз наоборот. Начав возиться со злополучной стопкой, вы почувствуете себя ужасно. Таким образом, градиентный спуск требует от вас отложить работу на завтра. Но завтра он вам скажет то же самое. И послезавтра тоже. Поздравляю! Вы попали в точку локального оптимума, на невысокую вершину. Чтобы подняться на более высокую вершину, вам придется спуститься в какую-то низину и, возможно, преодолеть большое расстояние – спуститься, чтобы в итоге покорить вершину. Градиентный спуск – это так называемый жадный алгоритм, потому что в любой момент он требует сделать шаг, ведущий к краткосрочной выгоде. Жадность – одна из главных ветвей на древе грехов, но опять же, согласно капиталистической поговорке, жадность – это хорошо[299]. В машинном обучении правильнее сказать: «Жадность – это довольно хорошо». Метод градиентного спуска может привести к локальному оптимуму, однако на практике это случается не так часто, как можно предположить теоретически.Существуют способы обойти локальный оптимум: нужно просто ненадолго приструнить свою жадность. У каждого хорошего правила есть исключения! Например, вы можете вместо остановки на какой-то вершине выбрать другое случайное положение и заново запустить градиентный спуск. Оказываясь в одном и том же месте, вы обретете больше уверенности, что эта точка – наилучшая. Однако на картинке, нарисованной выше, выход из случайной начальной точки с большей вероятностью закончится на высоком пике, а не на низком.
В реальной жизни весьма сложно поставить себя в случайно выбранное новое местоположение! Более реалистичный поступок – сделать из своего текущего положения случайный большой шаг вместо маленького жадного шажка; часто этого достаточно, чтобы вы оказались в такой точке, откуда можно добраться до наилучшей доступной вершины. Именно это мы делаем, когда просим совета у незнакомца, находящегося вне нашего обычного круга общения, или вытаскиваем карты из колоды вроде «Обходных стратегий»[300]
, изречения на которых («Используй неприемлемый цвет», «Самое главное – то, что легче всего забыть», «Бесконечно малые градации»[301], «Отбрось аксиому»[302]) предназначены для того, чтобы выбить нас из локального оптимума, где мы застряли, и сделать шаги, «срабатывающие» не сразу. Само название указывает на путь, отличающийся от того, что мы обычно выбираем.ПРАВ ЛИ Я? ОШИБАЮСЬ ЛИ Я?
Существует еще одно препятствие, причем значительное. Мы беспечно решили рассмотреть все небольшие изменения, которые можем сделать, и выяснить, какое из них обеспечивает лучший градиент. Когда вы – альпинист на горе, все четко определено: вы находитесь на двумерной поверхности, и выбор шага – это всего лишь выбор какого-то направления по компасу; ваша цель – найти направление с максимальным градиентом.
Но что насчет пространства всех возможных стратегий для оценивания изображений кошек? Это пространство гораздо больше, фактически оно бесконечномерное
. Нет никакого реального способа рассмотреть все ваши возможные варианты. Это очевидно, если расценивать ситуацию с точки зрения человека, а не машины. Предположим, я пишу книгу по саморазвитию с помощью градиентного спуска и говорю: «Улучшить выбор в жизни легко: достаточно взять все возможные способы изменить ее и выбрать тот, который кардинально улучшает ситуацию». Вас бы парализовало! Пространство всех возможных изменений поведения слишком велико для поиска. А если с помощью какого-то сверхчеловеческого подвига самоанализа вы все же смогли бы его вести? Тогда вы столкнулись бы с еще одной проблемой, потому что есть стратегия для вашей жизни, которая абсолютно минимизирует неправильность всего вашего прошлого опыта.
Стратегия:
если решение, которое вам предстоит принять, в точности совпадает с тем, что вы уже принимали раньше, примите то, которое вы сейчас, оглядываясь назад, считаете правильным. В противном случае подбросьте монету.
В сценарии «Кошкотрона» аналог этого правила будет таким.