Форма реальности. Скрытая геометрия стратегии, информации, общества, биологии и всего остального

Джордан Элленберг
100
10
(1 голос)
1 0

Аннотация: Эта книга изменит ваше представление о мире. Джордан Элленберг, профессор математики и автор бестселлера МИФа «Как не ошибаться», показывает всю силу геометрии – науки, которая только кажется теоретической.

Книга добавлена:
6-10-2023, 08:36
0
252
115
Форма реальности. Скрытая геометрия стратегии, информации, общества, биологии и всего остального
Содержание

Читать книгу "Форма реальности. Скрытая геометрия стратегии, информации, общества, биологии и всего остального"



ЖАДНОСТЬ – ЭТО ДОВОЛЬНО ХОРОШО

Звучит неплохо, но только до тех пор, пока вы не осознаете, что понятия не имеете, что это значит. Например, что такое стратегия? Это должно быть нечто, понятное компьютеру, а потому должно выражаться в математических терминах. Изображение для компьютера – это длинный список чисел. (Для компьютера все – длинный список чисел, за исключением вещей, которые для него являются коротким списком чисел.) Если картинка представляет собой сетку размером 600×600 пикселей, и каждый пиксель имеет яркость, задаваемую числом от 0 (чистый черный) до 1 (чистый белый цвет), и если мы знаем эти 360 000 чисел (600 × 600), то, соответственно, знаем, что изображено на картинке (по крайней мере в черно-белом варианте).

Стратегия в нашем случае – это просто способ взять 360 000 чисел и превратить их либо в кошку, либо в некошку, то есть на языке компьютеров – в 1 или 0. В математических терминах это функция. На деле для большей психологической реалистичности результатом стратегии может быть какое-то число между 0 и 1: оно выражает неуверенность машины, если ей подсунут двусмысленное изображение, например рысь или подушку в виде кота Гарфилда. Результат 0,8 можно интерпретировать так: «Я почти уверен, что это кошка, но сомнения остаются».

Например, ваша стратегия может быть такой: «Вывести среднее значение всех 360 000 чисел входных данных». Это даст 1, если изображение было полностью белым, и 0, если оно было полностью черным, а в целом отражает его среднюю яркость на экране. Что тут общего с кошкой? Ничего. Я и не говорил, что это хорошая стратегия.

Как же измерить успешность стратегии? Простейший способ – посмотреть, как она работает на тех двух тысячах картинок, которые наш «Кошкотрон» уже видел. Для каждой картинки мы можем присвоить нашей стратегии «меру неправильности»[295]. Если нарисована кошка и стратегия дает 1, то это «нулевая неправильность», то есть получается верный ответ. Если нарисована кошка, а стратегия выдает 0, то неправильность равна 1 – наихудший из возможных результатов. Если на изображении кошка, а стратегия дает 0,8, то ответ верный, но с долей сомнения, равной 0,2[296].

Вы складываете такие числа для всех двух тысяч используемых изображений и получаете общую суммарную неправильность, которая и будет мерой вашей стратегии. Ваша цель – найти стратегию с минимальной суммарной неправильностью. Как сделать так, чтобы стратегия не ошибалась? Вот здесь и появляется градиентный спуск. Потому что теперь вы уже знаете, что означает улучшение или ухудшение стратегии при ее незначительном изменении. Градиент измеряет, как сильно меняется неправильность при небольшом изменении стратегии. И из всех возможных способов немного изменить стратегию вы выбираете тот, который максимально уменьшает неправильность. (Кстати, именно поэтому метод называют градиентным спуском, а не подъемом! Часто наша цель в машинном обучении – минимизировать что-то плохое, например неправильность, а не максимизировать что-то хорошее, скажем высоту над уровнем моря.)

Метод градиентного спуска применим не только к кошкам; вы можете использовать его каждый раз, когда захотите, чтобы машина изучала какую-то стратегию на собственном опыте. Возможно, вам нужна стратегия, которая берет чьи-то рейтинги для сотен фильмов и предсказывает их рейтинги для еще не просмотренных картин; или стратегия, которая берет позицию в шашках или го и выдает ход, ставящий вашего противника в проигрышное положение; или стратегия, которая на основе видеосигнала с камеры автомобиля выдает движение рулевой колонки, упреждающее столкновение с мусорным баком. Все что угодно! Во всех случаях вы можете начать с какой-то предложенной стратегии, оценить, какие незначительные изменения максимально уменьшат неправильность в большинстве примеров, которые вы уже видели, внести эти изменения и повторить.

Я не хочу преуменьшать вычислительные проблемы. «Кошкотрон», скорее всего, придется обучать на миллионах изображений, а не на тысячах. Поэтому вычисление полной неправильности может потребовать сложения миллионов отдельных неправильностей. Даже если у вас очень мощный процессор, это затратно по времени! Вот почему на практике мы часто используем разновидность процесса под названием стохастический градиентный спуск. У этого метода невообразимое количество модификаций, хитростей и усложнений, но базовая идея такова: вместо того чтобы складывать все неправильности, вы берете наугад одну картинку из своего обучающего множества – одного ангорского котенка или аквариум, – а затем делаете шаг, который сильнее всего уменьшит для нее неправильность. На следующем шаге вы снова выбираете случайное изображение и продолжаете. Со временем (поскольку для этого процесса требуется много шагов) вы, вероятно, в итоге учтете все различные изображения.

Что мне нравится в стохастическом градиентном спуске, так это его странность. Представьте, например, что президент Соединенных Штатов принимает решения без какой-либо глобальной стратегии: глава государства окружен толпой кричащих подчиненных, где каждый требует скорректировать политику в соответствии с его собственными интересами. И президент ежедневно случайным образом выбирает одного из этих людей, выслушивает его и соответствующим образом меняет курс страны[297]. Довольно нелепый (и опасный!) способ руководить правительством огромной страны, однако неплохо работающий в машинном обучении!

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

Если вы – тот самый счастливый альпинист на рисунке, то при любом шаге влево или вправо заметите, что уклона вверх нигде нет. Вот почему вы счастливы! Вы на вершине!

Хотя нет. Настоящая вершина далеко, и градиентный спуск не приведет вас туда. Вы попали в точку, известную как локальный оптимум[298], в которой никакие мелкие изменения не приводят к улучшению, но при этом она далека от фактического наилучшего положения. Мне нравится думать о локальном оптимуме как о математической модели прокрастинации – склонности откладывать дела на потом. Предположим, вам нужно сделать какое-то неприятное дело: например, разобрать огромную шаткую стопку папок, большинство из которых связано с целями, к которым вы стремились годами, и избавление от них означало бы окончательное признание, что вы этими путями уже больше никогда не пойдете. В любой конкретный день метод градиентного спуска рекомендует вам совершить какой-то маленький шаг, который сделает вас в этот день максимально счастливым. Нужно ли для этого разбирать завалы? Нет, как раз наоборот. Начав возиться со злополучной стопкой, вы почувствуете себя ужасно. Таким образом, градиентный спуск требует от вас отложить работу на завтра. Но завтра он вам скажет то же самое. И послезавтра тоже. Поздравляю! Вы попали в точку локального оптимума, на невысокую вершину. Чтобы подняться на более высокую вершину, вам придется спуститься в какую-то низину и, возможно, преодолеть большое расстояние – спуститься, чтобы в итоге покорить вершину. Градиентный спуск – это так называемый жадный алгоритм, потому что в любой момент он требует сделать шаг, ведущий к краткосрочной выгоде. Жадность – одна из главных ветвей на древе грехов, но опять же, согласно капиталистической поговорке, жадность – это хорошо[299]. В машинном обучении правильнее сказать: «Жадность – это довольно хорошо». Метод градиентного спуска может привести к локальному оптимуму, однако на практике это случается не так часто, как можно предположить теоретически.

Существуют способы обойти локальный оптимум: нужно просто ненадолго приструнить свою жадность. У каждого хорошего правила есть исключения! Например, вы можете вместо остановки на какой-то вершине выбрать другое случайное положение и заново запустить градиентный спуск. Оказываясь в одном и том же месте, вы обретете больше уверенности, что эта точка – наилучшая. Однако на картинке, нарисованной выше, выход из случайной начальной точки с большей вероятностью закончится на высоком пике, а не на низком.

В реальной жизни весьма сложно поставить себя в случайно выбранное новое местоположение! Более реалистичный поступок – сделать из своего текущего положения случайный большой шаг вместо маленького жадного шажка; часто этого достаточно, чтобы вы оказались в такой точке, откуда можно добраться до наилучшей доступной вершины. Именно это мы делаем, когда просим совета у незнакомца, находящегося вне нашего обычного круга общения, или вытаскиваем карты из колоды вроде «Обходных стратегий»[300], изречения на которых («Используй неприемлемый цвет», «Самое главное – то, что легче всего забыть», «Бесконечно малые градации»[301], «Отбрось аксиому»[302]) предназначены для того, чтобы выбить нас из локального оптимума, где мы застряли, и сделать шаги, «срабатывающие» не сразу. Само название указывает на путь, отличающийся от того, что мы обычно выбираем.


Скачать книгу "Форма реальности. Скрытая геометрия стратегии, информации, общества, биологии и всего остального" - Джордан Элленберг бесплатно


100
10
Оцени книгу:
1 0
Комментарии
Минимальная длина комментария - 7 знаков.
Книжка.орг » Математика » Форма реальности. Скрытая геометрия стратегии, информации, общества, биологии и всего остального
Внимание