€ 100.29
$ 93.98
Стивен Вольфрам: Вычислительная теория всего

Лекции

Стивен Вольфрам: Вычислительная теория всего

Создатель пакета Mathematica Стивен Вольфрам рассказывает о своих находках по пути к большой цели – сделать все знания вычислимыми, чтобы иметь возможность их поиска, обработки и преобразования. Его новая система Wolfram Alpha ставит целью ни много ни мало смоделировать и объяснить законы, лежащие в основе мироздания

Стивен Вольфрам
Будущее

Итак, сегодня я хочу поговорить об одной идее. Большой идее. Я даже думаю, что в конечном итоге эта идея будет считаться крупнейшей идеей из всех, появившихся в прошлом веке. Это – представление о вычислимости. Эта идея, конечно, дала нам всю сегодняшнюю компьютерную технику. Но в идее вычислимости заложено намного больше. Это действительно глубокая, очень мощная и фундаментальная идея, и мы только начинаем осознавать ее влияние.

В течение последних 30 лет я работал над тремя крупными проектами, каждый из которых опирался на идею вычислимости и развивал ее. В свои молодые годы, я как физик пользовался компьютером как инструментом. Затем я начал вникать в проблему и думать о том, какие вычисления мне могли бы понадобиться, из каких элементов их можно было бы построить, и как их максимально автоматизировать. В конечном итоге я разработал целую систему, основанную на символическом программировании, что позволило мне создать пакет Mathematica. В течение последних 23 лет мы обогащали пакет Mathematica новыми идеями и возможностями во все возрастающем темпе, и я рад сообщить, что это помогло создать много полезного в научных исследованиях, образовании и многих других областях. Должен признаться, что при создании Mathematica мною двигал и один эгоистичный мотив. Я хотел пользоваться пакетом сам, подобно Галилею, использовавшему свой собственный телескоп 400 лет назад. Но я хотел познать не астрономический, а вычислительный мир.

Обычно принято считать, что программа – это сложная вещь, создаваемая ради каких-то конкретных целей. Но как насчет пространства всех возможных программ? Перед вами схема простейшей программы. [надпись: Цвета трех верхних клеток задают цвет нижней.] Если запустить эту программу, то получится вот что. Очень просто. Теперь слегка изменим правила нашей программы, и получим другой результат, все еще очень простой. Изменим еще. Получается несколько сложнее, но если выполнять программу дальше, то обнаружится, что узор, хоть и замысловат, имеет четкую структуру. Отсюда вопрос: а что еще может получиться? Что ж, можем устроить эксперимент. Маленький математический эксперимент, чтобы посмотреть.

Давайте выполним все возможные программы этого вида. Они называются клеточными автоматами. Видно, что их поведение крайне разнообразно. Большинство из них делают банальные вещи. Но просматривая все эти картинки, и дойдя до правила номер 30, мы увидим нечто интересное. Давайте внимательнее взглянем на правило номер 30. Вот его картинка. Исполнение простейшего правила, указанного внизу, дает настолько поразительную вещь. Это совсем не то, что мы могли бы ожидать, и должен сказать, что когда я впервые столкнулся с этим, я был в шоке, – это полностью противоречило моей интуиции. Чтобы разобраться, мне пришлось в конечном итоге создать совершенно новый вид науки.

Эта другая наука – более общая, чем основанные на математике науки, развивавшиеся за последние 300 лет. Для меня всегда казалось тайной то, как природа создает, без видимых усилий, такую массу вещей, кажущихся нам столь сложными. Что ж, думаю, что секрет найден. Она просто перебирает имеющееся в вычислительном мире, и часто попадает на такие вещи, как правило 30 или как вот это. Знание этого раскрывает многие давние тайны науки. Хотя при этом возникают новые вопросы, как, например, вычислительная неприводимость [к более простому]. Мы привыкли, что наука может предсказывать, но вот такие вещи принципиально неприводимы [к более простому уровню]. Единственный способ узнать результат процесса – это, по сути, наблюдать за его развитием. Это связано с тем, что я называю принципом вычислительной равнозначности, который говорит, что даже крайне простые системы могут производить вычисления абсолютно любой сложности. Ни развитая техника, ни биологическая эволюция не нужны для выполнения вычислений любой сложности, достаточно того, что и так происходит повсеместно. Достаточно таких вот простых правил.

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

Разрабатывая столько лет эту науку, я всегда про себя думал: «Что же станет ее первым ошеломляющим приложением?» Что ж, еще когда я был ребенком, я думал о том, как можно было бы систематизировать знания и сделать их вычислимыми. Такие ученые, как Лейбниц, задавались этим вопросом еще 300 лет назад. Я всегда предполагал, что для достижения реального прогресса мне придется, по существу, полностью продублировать мозг. Но тут у меня возникла мысль: ведь моя научная парадигма подразумевает кое-что другое. К тому же, теперь у меня в руках мощные вычислительные возможности пакета Mathematica, и как президент фирмы я обладаю материальными возможностями для реализации крупных, почти сумасбродных, проектов. И я решил просто попробовать понять, какую часть систематизированных знаний, накопленных во всем мире, мы можем сделать вычислимыми.

Это был большой и очень сложный проект; я был не уверен, даст ли он вообще результат. Но я рад сообщить, что проект продвигается весьма успешно, и в прошлом году нам удалось запустить сайт с первой интернет-версией системы Wolfram Alpha. Ее цель – предоставить серьезный инструмент обработки знаний, который вычисляет ответы на вопросы. Давайте разок попробуем. Начнем с простейшего. Надеюсь, не подведет. [пишет: «2+2»; на экране – 4] Отлично. Получилось. Пока все по плану. Теперь возьмем орешек покрепче. Ну, скажем, нечто … нечто математическое и, если повезет, система даст ответ [пишет: «Интеграл x^2 sin^3 x dx»; на экране – формула] и даже расскажет кое-что интересное про сопутствующую математику. [на экране: графики и метод вычисления] Можно задать вопрос о реальном мире. Ну, скажем,… не знаю… Каков ВВП Испании? И система должна ответить. Можно посчитать и что-нибудь связанное с этим, скажем, ВВП Испании, поделенный на… ну, не знаю… гм … пусть будет доход Microsoft’a

Идея в том, что можно как бы напечатать вопрос как есть, в том виде, как он пришел к нам в голову. Давайте спросим что-нибудь из области медицины. Скажем, лабораторный анализ показал уровень холестерина в 140 единиц у мужчины возраста 50 лет… Печатаем, и Wolfram Alpha сейчас найдет все открытые медицинские данные и постарается узнать, какая часть населения имеет такой и уровень и пр. Или спросим, ну, скажем, о Международной космической станции.

И что важно, в ответ на этот запрос Wolfram Alpha не просто что-то просматривает, она вычисляет в реальном времени, [на экране – карта с траекторией и точкой месторасположения] где находится в данный момент станция, как быстро она движется и пр. Так что Wolfram Alpha знает об очень и очень многом. На настоящий момент она неплохо осведомлена обо всем, что имеется в обычной справочной библиотеке. Но цель – намного выше. Говоря в общем – демократизировать все знания, быть авторитетным источником во всех областях, быть в состоянии вычислить ответы на конкретные вопросы, не через поиск того, что было написано другими, а используя встроенные знания для вычисления новых ответов на конкретные вопросы.

Конечно, Wolfram Alpha – проект колоссальный, долгосрочный, с огромным числом интересных проблем. Для начала необходимо просеять несметное множество различных источников, фактов и цифр. С этой целью мы построили целый конвейер из программ в Mathematica и групп специалистов разных областей. Но это только начало. Даже имея сырые факты и цифры, для получения ответов кто-то должен их вычислить, а кто-то – реализовать все необходимые методы, модели, алгоритмы и прочее, что создано наукой в течение веков. [пишет: «кофеин», на экране: состав и молекула] Но, даже имея все это, остается масса работы. [пишет: «затмение в Лонг-Бич»; на экране: 20.05.2012] На сегодняшний день в системе Wolfram Alpha – 8 млн строк кода из Mathematica, написанных с помощью экспертов из множества разных областей.

Но ключевая идея Wolfram Alpha – возможность задавать вопрос при помощи обычного человеческого языка. Значит, надо научиться интерпретировать все те странные выражения, которые люди вбивают в строку поиска. Должен признаться, этот шаг казался мне просто невыполнимым. Решающим оказались два фактора. Во-первых, масса новых лингвистических идей, пришедших из исследований мира вычислений. Во-вторых, осознание того, что наличие вычислимых знаний полностью меняет возможности нашего подхода к пониманию языка. И, конечно, теперь, когда Wolfram Alpha доступна всем, есть чему научиться исходя из ее реального пользования. В действительности происходит своего рода взаимное обогащение системы Wolfram Alpha и ее пользователей. И это вдохновляет. Статистика запросов к системе показывает, что с первого раза успешно обрабатываются более 80% из них. Если взглянуть, например, на приложения iPhone, то здесь процент значительно выше. Мне все это, конечно же, приятно.

Однако по многим аспектам Wolfram Alpha все еще находится в начале пути. [пишет: «трафик www.apple.com»] Система успешно масштабируется. И мы чувствуем себя увереннее. Скоро технология Wolfram Alpha начнет применяться в самых разных местах, как для работы с такими общедоступными данными, как сейчас на сайте, так и с частными и внутрифирменными данными. Я обнаружил, что на самом деле Wolfram Alpha предоставляет новый тип вычислений, которые можно назвать «вычислениями, основанными на знаниях». Их начальная точка – не просто вычисление, а колоссальный объем встроенных знаний. И когда это происходит, то изменяется сама экономика доставки вычислений, будь то в интернете или где-либо еще.

Сейчас сложилась достаточно интересная ситуация: с одной стороны, есть пакет Mathematica с его точным формальным языком и огромным количеством тщательно подобранных возможностей, способный многое сделать всего за пару строк. Давайте покажу пару примеров. Вот – простейший пример программирования в Mathematica. Здесь целый набор возможностей, интегрированных воедино. Вот этой вот строкой мы создадим небольшой пользовательский интерфейс, позволяющий нам делать увлекательные вещи. Если продолжать, то вот чуть более сложная программа, которая делает всевозможные алгоритмические штуки, создает пользовательский интерфейс и т.п. Но это все очень точные вещи. Это – точное описание на точном формальном языке, и оно позволяет пакету Mathematica узнать, что надо делать.

С другой стороны, есть Wolfram Alpha, в которую встроен весь беспорядок реального мира, человеческого языка и т.д. Что же произойдет, если мы их совместим? Я думаю, это прекрасно. С системой Wolfram Alpha внутри Mathematica можно, например, создавать точные программы, работающие с данными из реального мира. Вот – очень простой пример. Можно также попробовать ввести не очень четкие данные и дать возможность Wolfram Alpha самой догадаться, о чем идет речь. Давайте попробуем. [пишет неформальное название «Много-Игольник»] Но самое захватывающее, я думаю, [на экране: полиэдр – логотип фирмы Wolfram Research] в том, что это – реальная возможность демократизации программирования. Это означает, что каждый сможет сказать простым языком, что он хочет, а затем – в этом весь смысл – Wolfram Alpha сможет догадаться, какой программный код даст то, что просит пользователь, и показать ему примеры, чтобы тот выбрал, что ему нужно, чтобы построить все более и более крупные и точные программы. А иногда Wolfram Alpha будет в состоянии сделать все сразу и тут же предоставить большую программу, способную проделать все необходимое. Итак, вот – большой сайт, где собрана масса образовательного и прочего демонстрационного материала по разным предметам. Ну, не знаю, может, прямо здесь покажу вам пример. Это – пример одного из вычислительных документов. Довольно небольшой код из пакета Mathematica, который может работать тут.

Отлично. Давайте еще раз взглянем на проблему в целом. Так вот, с учетом создания нашего нового типа науки, есть ли общий метод создания ее технических приложений? Так, в случае с физическими материалами, мы привыкли просто искать повсюду и находить, что какие-то конкретные материалы полезны для каких-то конкретных технических целей. Оказывается, ровно то же самое можно делать и в вычислительном мире. Там существуют бездонные запасы программ. Задача в том, чтобы приспособить их к человеческим целям. Например, что-то вроде правила 30 может работать как очень хороший генератор случайности. Другие простые программы служат хорошими моделями природных и социальных процессов. К примеру, Wolfram Alpha и Mathematica сейчас наполнены алгоритмами, обнаруженными в результате нашего поиска в вычислительном мире. Вот, например, – вернемся немного назад – это оказалось неожиданно популярным среди композиторов, ищущих музыкальные формы через поиск в вычислительном мире. В каком-то смысле мы можем использовать вычислительный мир для создания массового индивидуализированного творчества. Например, я лелею надежду, что станет возможно, при помощи Wolfram Alpha, делать изобретения и открытия повседневно, прямо на ходу, и обнаруживать такие замечательные вещи, которые никакой инженер и никакой процесс постепенной эволюции никогда не получит.

А это приводит нас к самому фундаментальному вопросу: Можно ли где-то там, внутри этого вычислительного мира найти наш физический мир? Возможно, есть какое-то совсем простое правило, простая программа для нашей Вселенной. Вся история физики вроде бы учит нас, что правила в основе Вселенной должны быть очень сложны. Но в вычислительном мире, как мы только что убедились, крайне простые правила могут порождать крайне сложное и разнообразное поведение. А может ли оказаться, что именно это и происходит с нашей Вселенной? Если правила для Вселенной просты, то они неминуемо будут очень абстрактны и на очень низком уровне [программного языка]. Они будут работать, например, намного ниже уровня пространства и времени, из-за чего представление становится трудным. Но в как минимум большом количестве случаев можно представить себе Вселенную в виде некоторой сети, которая, при достаточно больших размерах, ведет себя, как непрерывное пространство – очень похоже на то, как масса молекул может вести себя, как непрерывная жидкость. Ну а тогда вселенная может развиваться путем применения маленьких правил, которые постепенно видоизменяют эту сеть. И каждое принципиально возможное правило, в каком-то смысле, – кандидатура на нашу Вселенную.

Вообще-то, я сейчас покажу кое-что впервые: вот перед вами несколько возможных Вселенных, которые я изучил. Некоторые из Вселенных – безнадежные, абсолютно стерильные миры с такими патологиями, как отсутствие понятий пространства, времени, вещества, и прочими похожими проблемами. Но самое интересное, что я обнаружил несколько лет назад — оказывается, не нужно глубоко погружаться в вычислительный мир, чтобы начать сталкиваться с такими Вселенными, про которые сразу не скажешь, что это не наша Вселенная. И вот проблема: любая серьезная кандидатура на нашу вселенную неминуемо полна вычислительной неприводимости, то есть должно быть непреодолимо трудно в принципе выяснить ее реальное поведение и проверить, что она соответствует нашей вселенной. Пару лет назад я был потрясен открытием существования возможных Вселенных с крайне простыми правилами, которые воспроизводят специальную относительность и даже общую относительность, гравитацию и имеют зачатки квантовой механики. Итак, обнаружим ли мы все законы физики? Точно не знаю, но думаю, что мы дошли до точки, когда хотя бы не пытаться будет почти неприлично.

Проект не из легких. Придется создавать много новых технологий. Придется построить структуру, вероятно не менее глубокую, чем современная физическая теория. И я не знаю, каким образом это все лучше организовать: собрать ли команду, пригласить ли всех желающих, учредить ли приз или что-то еще. Но я заявляю вам здесь сегодня: я намерен предпринять все, чтобы этот проект свершился, чтобы проверить в течение этого десятилетия, сможем ли мы, наконец, получить в распоряжение правило для нашей Вселенной и узнать, где она находится среди пространства всех возможных миров. И иметь возможность вбить слова «Теория Вселенной» в Wolfram Alpha и получить ответ.

И вот, я работаю над идеей вычислений теперь уже более 30 лет, создаю инструменты и методы, превращаю плоды умственного труда в миллионы строк кода, в топливо для серверных ферм. И с каждым годом я убеждаюсь в еще большей мощности идеи вычислений. Мы прошли уже много, но так много еще нужно пройти. От оснований науки до технологического предела, вплоть до самого определения человеческой природы, я считаю, что идея вычисления предопределена быть определяющей идеей нашего будущего.

Благодарю вас.

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

Стивен Вольфрам: Про определенные области физики мы можем сказать, что они верны, например, про стандартную модель физики. Если то, чем я занят, не сможет воссоздать стандартную модель, так это просто неверно. То, что специалисты пытаются достичь последние 25 лет или около того, разрабатывая теорию струн и другие теории, – это интересное исследование, которое пытается вернуться назад к стандартной модели, но так и не может добиться этого. Могу лишь предположить, что какие-то сильные упрощения того, что я делаю, могут существенно повлиять на исследования по теории струн, но это сложная математическая штука, и я еще не знаю, сработает ли она.

К.А.: В аудитории присутствует Бенуа Мандельброт. Он тоже доказал, что сложные структуры могут возникнуть из простого начала. Ваша работа имеет отношение к его?

С.В.: Я думаю, да. Я рассматриваю работу Бенуа Мандельброта как один из основополагающих трудов в этой области. Бенуа был особо заинтересован во вложенных структурах, фракталах и подобных вещах, где структура в чем-то подобна древообразной, где большая ветвь создает малые ветви и еще более малые и т.д. Это – один из путей прийти к сложным структурам. Полагаю, что вещи вроде правила 30 для клеточных автоматов выводят нас на другой уровень. На другой уровень в очень точном смысле, потому что эти вещи, по всей видимости, способны создавать структуры такой степени сложности, какая только достижима …

Об этом я могу говорить долго, но не буду.

К.А.: Стивен Вольфрам. Спасибо!

Перевод: Намик Касумов
Редактор: Александр Черемис

Источник

Свежие материалы