Постановка задачи

Постановка задачи

Вероятно, самой известной научной работой на тему остроумия является книга Зигмунда Фрейда “Остроумие и его отношение к бессознательному”.

237 страниц скрупулезного рассмотрения самых разных примеров и приемов остроумия являются прекрасным материалом, без сомнения полезным для потомков. То есть, для нас. Фрейд не только выполнил более детальное и всеобъемлющее исследование, чем его предшественники. Он собрал воедино самые интересные из мнений этих предшественников. Благодаря этому, мы можем из одного источника почерпнуть сразу сумму мнений, приготовленную для нашего удобства признанным психологом.

Мы не станем высокомерно высмеивать отца психоанализа за недочеты, недостатки или недоработки. Любую тему можно шлифовать и усовершенствовать до бесконечности. К любому тексту при желании можно придраться. Но критика, не предлагающая ничего лучшего вместо того, что отвергает,- совершенно бесполезное занятие. Поскольку оставляет после себя не плоды, а пепел.

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

Думаю, что такое направление есть, и не одно.

Во-первых, это – компьютеры и вопросы создания Искусственного Интеллекта (AI). Считается, что чувство юмора является одним из важнейших признаков разумности. Считается, что это чувство – одно из самых нелогичных и, потому, не может быть запрограммировано для компьютера или робота. Тем интереснее поколебать это расхожее мнение хотя бы частично.

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

В этих направлениях мы попробуем двигаться, и именно этой теме посвящено данное повествование. Фрейд не был математиком, да и компьютеров те времена не существовало. Математическая логика еще только рождалась, а убожество логики философской (судя по редким, но едким комментариям самого Фрейда) уже тогда было очевидно. Поэтому совершенно неразумно было бы критиковать Фрейда за нестрогость изложения. Оно нестрого только по нынешним меркам. Но было бы вполне разумно нам, современникам, развить его исследования с учетом достижений науки в прошедший период.

Определенную трудность представляет собой тот факт, что и в математике, и в программировании принято вести построение по принципу “от простого к сложному”. В математике, пока не доказаны базовые теоремы, невозможно доказать следствия. В программировании, пока не закончена базовая функция, не будут полноценно работать функции, которые должны ее использовать. Однако, по крайней мере в программировании известен и другой подход. В прошлом он назывался “программированием сверху вниз”, а ныне развитие этой идеи обозначается модным термином “Rational Unified Process”, что в вольном переводе звучит как “разумно единообразный подход”.

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

Но мы можем с некоторой долей уверенности предположить, из каких основных частей, крупных блоков может такая программа состоять. И предположить, что эти части должны делать, и как между собой взаимодействовать. При этом мы неизбежно рискуем ошибиться и не угадать. Но если мы не применим этот подход, то навечно остановимся перед глухой стеной. Ее поставит перед нами наш мозг в виде ограниченной способности к работе со сверхсложными моделями. То есть, мы можем рискнуть и (как показывает практика) угадать во многом. Либо не рисковать – и не угадать ни в чем. Как говорится, не ошибается только тот, кто ничего не делает. Я бы добавил, что тот, кто не ищет, не находит.

Как может выглядеть подобный подход в вопросах формализации чувства юмора? А вот как. У нас есть некоторая задача – задача юмора:

Научить компьютер понимать шутки подобно человеку и научить его придумывать новые шутки.

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

  1. Уже решенные задачи из области кибернетики, математики и логики.
  2. Нерешенные задачи из тех же областей.
  3. Предлагаемое решение задачи юмора на основе решения задач уровня 2.

Это позволит нам двигаться не только “снизу вверх” – от простого к сложному, но и “сверху вниз” от сложного к простому. К тому времени, когда будут решены задачи уровня 2, на уровне 3 будет уже все готово для решения задачи юмора целиком. Что это за задачи уровня 2? Это мы тоже должны определить по ходу дела.

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

Не является ли метод “от простого к сложному” все же более правильным? Нет, и вот почему. Не имея возможности представить полностью механизм работы человеческого разума, мы будем решать самые разные простые задачи уровня 1.

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

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

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

Почему? Потому, что это никак не поможет нам проверить решение. У нас еще нет компьютера, который был бы способен исполнить такую программу. У нас нет и набора теорем, формализующих уровень 2, которые были бы уже доказаны и на основе которых мы бы сформулировали уровень 3. Мы не будем гадать, как будут звучать эти теоремы или какие библиотеки будут на том компьютере – такие детали угадать нереально.

Зато мы можем сформулировать некую модель и примерить ее к самым разным ситуациям, связанным с остроумием. Почти все эти ситуации обычно выражены на естественном языке. Бывает, люди смеются над формулами или программами, но несравнимо чаще они смеются над чужими словами и (реже) движениями. Ситуацию, выраженную на естественном языке, проще примерять к модели, которая тоже выражена на естественном языке. И этой модели будет достаточно, так как по условию понимание такого языка – это одна из задач уровня 2, и ее все равно придется решить раньше.

Наша цель – постараться создать достаточно простую, полную и точную модель. 

Простую – значит, правила должны быть выражены как можно понятнее, конкретнее, не через более сложные задачи и понятия, а через менее сложные задачи и понятия уровня 2. 

Полную – значит, модель должна учитывать все случаи остроумия, какие мы сможем припомнить и не противоречить ни одному из рассмотренных случаев. 

Точную – значит, в эту модель не должны вписываться лишние случаи, которые не относятся к остроумию. Я хочу придумать такую модель, показать, как я испытываю ее описанными методами на полноту и точность, а затем отдать “на растерзание” тебе, читатель, чтобы ты сам ее опробовал и убедился, что она работает. Или убедился, что не работает.

ИНФОБИЗНЕС в сети