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

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

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

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

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



DX21

Самая главная вещь в современном машинном обучении – это метод, называемый глубоким обучением. Именно его использует AlphaGo – программа, победившая Ли Седоля; именно он поддерживает парк беспилотных автомобилей Tesla и обеспечивает работу Google Translate. Иногда его изображают как своего рода оракула, автоматически обеспечивающего сверхчеловеческое понимание. Другое название метода – нейронные сети – звучит так, словно он каким-то образом улавливает работу самого человеческого мозга.

Но нет. Как говорила Бруссард, это просто математика, причем даже не новая: основная идея существует с конца 1950-х годов. Что-то вроде архитектуры нейронной сети можно было увидеть еще в 1984 году в моем подарке на бар-мицву. Наряду с чеками, стаканчиками для кидуша[305] и двумя дюжинами ручек я получил от родителей подарок, который страстно желал, – синтезатор Yamaha DX21. Он до сих пор стоит у меня в комнате. А тогда я был крайне горд, что у меня синтезатор, а не просто клавиатура. Это означало, что DX21 не просто имитировал звучание фортепиано, трубы или скрипки согласно заводским настройкам, а позволял вам программировать собственные звуки – при условии, что вы освоите довольно-таки мудреное семидесятистраничное руководство с массой картинок наподобие этой:

Каждый из этих блоков ОП представляет собой волну и имеет несколько ручек, которые вы можете повернуть, чтобы звук был громче, тише, затухал или нарастал. Все это стандартно. Настоящая гениальность DX21 – в связях между операторами, отображенных на вышеприведенной диаграмме. Это своеобразная машина Руба Голдберга[306], где волна, исходящая из ОП 1, зависит не только от ручек на этом блоке, но и от выхода ОП 2, который дает входной сигнал для ОП 1. Волны могли даже изменять сами себя: у ОП 4 есть стрелка «обратной связи».

Таким образом, поворачивая несколько ручек на каждом блоке, я мог получить на удивление большой диапазон выходных сигналов, которые предоставляли мне бесконечные возможности для создания новых самодельных звуков, например «электрическая смерть» или «космический пук»[307].

Нейронная сеть похожа на мой синтезатор. Это сеть из небольших блоков наподобие этой:

Каждый такой блок делает одно и то же: берет на входе какое-то число и выдает на выходе либо 1 (если число на входе было больше или равно 0,5), либо 0 (если число на входе было меньше 0,5). Идею использовать подобные блоки в качестве базового элемента обучающейся машины придумал в 1957 или 1958 году психолог Фрэнк Розенблатт[308] как простую модель работы нейрона: он бездействует, пока получаемый им стимул не превысит определенное пороговое значение, и в этот момент возбуждается и передает сигнал. Розенблатт назвал свои машины перцептронами. Из-за этой истории мы по-прежнему называем такие сети фальшивых нейронов «нейронными», хотя большинство людей уже не считают их имитаторами работы нашего мозгового аппарата.

Как только блок выдает выходной сигнал, это число двигается вдоль стрелки, отходящей от блока вправо. Каждой стрелке приписано определенное число, называемое весом, и выходной сигнал умножается на этот вес. Входной сигнал каждого блока – это сумма всех чисел, поступающих в него слева.

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

• Оба входных сигнала не меньше 0,5. Тогда оба блока в левом столбце дают 1. При движении по стрелке вправо они превращаются в 1/3 после умножения на вес, поэтому блок в правом столбце получает на входе 2/3 и выдает на выходе 1.

• Один входной сигнал не меньше 0,5, а второй меньше. Тогда блоки слева выдают 1 и 0, блок справа получает 1/3 на входе и выдает 0 на выходе.

• Оба входных сигнала меньше 0,5. Тогда оба блока слева выдают 0, блок справа получает 0 и выдает его же.

Иными словами, эта нейронная сеть – машина, которая берет два числа и сообщает вам, меньше ли они 0,5 или нет.

Следующая нейронная сеть немного сложнее.

Теперь в левом столбце 51 блок, и все они соединены с единственным блоком в правом столбце с разными весами на стрелках. Некоторые веса маленькие – всего 3/538, самый большой – 55/538. Что делает такая машина? Она получает на входе 51 разное число и активирует каждый блок слева, если входной сигнал больше 0,5. Затем она складывает все веса, подходящие к блоку справа, и проверяет, превышает ли сумма 0,5. Если да, то на выходе будет 1, если нет, то 0.

Мы могли бы назвать эту конструкцию двухслойным перцептроном Розенблатта, но обычно ее называют Коллегией выборщиков в США: 51 блок – это 50 штатов и Вашингтон, округ Колумбия[309]. Блок штата активируется, если в нем побеждает кандидат от республиканцев. Тогда вы суммируете голоса выборщиков со всех штатов, делите на 538, и если ответ будет больше 0,5, то побеждает кандидат от республиканцев[310].

Вот более современный пример. Его не так просто описать словами, как Коллегию выборщиков, но он немного ближе к нейронным сетям, которые обеспечивают нынешний прогресс в машинном обучении.

Блоки здесь несколько сложнее, чем у Розенблатта: блок получает на входе некоторое число и выдает либо его, либо 0 в зависимости от того, какое из них больше. Иными словами, если блок на входе получает положительное число, он его пропускает дальше, а если отрицательное, то выдает 0.

Давайте посмотрим на работу такого устройства. Предположим, я начинаю слева с 1 и 1. Оба числа положительные, поэтому оба блока в левом столбце выдадут 1. Далее верхний блок второго столбца получает на входе 1 × 1 = 1, а второй блок сверху: 1 × (–1) = –1. Аналогично третий и четвертый блоки получают на входе 1 и –1. Поскольку 1 – положительное число, верхний блок выдает 1. Однако второй блок с отрицательным входом не станет активироваться и выдаст 0. Аналогично третий блок выдаст 1 и четвертый 0.

Теперь рассмотрим третий столбец. На входе верхнего блока

1 × 1 + 3 × 0 + 2 × 1 + 1 × 0 = 3,

а на входе нижнего

3 × 1–1 × 0–5 × 1–1 × 0 = –2.

Следовательно, первый блок выдает 3, а у второго на выходе 0. Наконец, единственный блок четвертого столбца получает сумму этих двух чисел и в итоге выводит 3.

Если вы не проследили описанное во всех деталях, ничего страшного. Важно то, что нейронная сеть – это стратегия: она принимает два числа на входе и выдает одно на выходе. И если вы измените веса на линиях, соединяющих блоки, то есть повернете четырнадцать ручек, то измените и стратегию. Эта схема дает нам 14-мерный ландшафт, который вы можете исследовать в поисках наиболее подходящей для имеющихся у вас данных стратегии. Если у вас сложности с четырнадцатью измерениями, рекомендую последовать совету Джеффри Хинтона, одного из основателей современной теории нейронных сетей: «Представьте себе трехмерное пространство[311] и скажите себе очень громко: “Четырнадцать”. Все так делают». Хинтон – выходец из семьи энтузиастов пространств большой размерности: его прапрадед Чарльз[312] написал в 1904 году целую книгу о том, как визуализировать четырехмерные кубы, и изобрел слово тессеракт для их описания[313]. Если вы когда-нибудь видели картину Дали «Распятие, или Гиперкубическое тело», то это одна из визуализаций Хинтона.

Описанная сеть с указанными весами присваивает значение 3 или меньше любой точке (x, y) плоскости, которая лежит внутри следующей фигуры:

(Обратите внимание, что точка (1, 1), для которой наша стратегия выдает ровно 3, находится на границе фигуры.) Различные значения весов дадут различные фигуры, но не любую фигуру. Природа перцептрона такова, что нарисованный объект всегда будет многоугольником – фигурой, ограниченной отрезками прямых[314].

Предположим, у меня есть такая картинка:

Я отметил некоторые точки на плоскости буквой X, а некоторые – буквой O. Моя цель – научить машину присваивать буквы X и O другим, еще не помеченным точкам этой плоскости, основываясь на моей маркировке. Может быть (я надеюсь), существует какая-то стратегия, получаемая путем настройки четырнадцати ручек, которая будет присваивать большие значения всем точкам с X и маленькие – всем точкам с O, и это позволит мне сделать какие-то разумные предположения о тех точках плоскости, которые я еще не пометил. А если такая стратегия есть, надеюсь, я смогу изучить ее с помощью градиентного спуска, чуть-чуть поворачивая каждую ручку и наблюдая, как это уменьшает неправильность моей стратегии в отношении уже имеющихся примеров. Найдите наилучшее маленькое изменение, которое можете внести. Сделайте это. Повторите.

Слово глубокий в термине глубокое обучение просто означает, что сеть имеет много столбцов-слоев. Число блоков в каждом столбце называется шириной, и это число на практике может быть довольно большим, однако название «широкое обучение» кажется не таким привлекательным терминологически.

Конечно, современные глубокие сети намного сложнее изображенных на наших рисунках. Блоки могут быть устроены сложнее, чем простые функции, о которых мы говорили. В так называемой рекуррентной нейронной сети у вас могут быть блоки с обратной связью, использующие свой выходной сигнал в качестве своего же входного сигнала, как блок ОП 4 на моем синтезаторе DX21. И они просто быстрее. Как мы узнали, идея нейронных сетей не нова; я еще помню не столь отдаленные времена, когда ее считали тупиковой. Однако оказалось, что она очень удачна и просто нуждалась в соответствующих компьютерных мощностях[315]. Чипы, называемые графическими процессорами и предназначенные для быстрой отрисовки графики в компьютерных играх, оказались идеальными инструментами для обучения действительно больших нейронных сетей. Это позволило экспериментаторам увеличить глубину и ширину своих сетей. С современными процессорами вам незачем ограничиваться четырнадцатью ручками – их можно иметь тысячи, миллионы и даже больше. Нейронная сеть GPT-3 использует для генерации правдоподобного английского текста 175 миллиардов ручек.

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

Это удивительно, но есть и еще одна загадка. Вспомните, что идея градиентного спуска сводится к поворачиванию ручек до тех пор, пока вы не сделаете все возможное для данных, на которых обучались. Современные сети имеют так много ручек, что часто могут добиться идеальной работы на обучающем множестве, называя каждое из тысяч изображений кошек кошкой и каждое из тысяч изображений других объектов – некошкой. Фактически при таком количестве ручек имеется колоссальное пространство стратегий, и все они на 100 % верны на обучающем множестве. Оказывается, большинство этих стратегий работают ужасно, когда им дают изображения, которые сеть еще не видела. Но тупой жадный процесс градиентного спуска приводит к одним стратегиям гораздо чаще, чем к другим, и те стратегии, которые предпочитает градиентный спуск, на практике кажутся гораздо более приспособленными к обобщению на новые примеры.


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


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