И всё-таки я азарту поддаюсь. Например, если я два хода назад стоял хорошо, на выигрыш, но что-то случилось, плохо кубики упали, и я начал стоять плохо. Я просто по инерции продолжаю у себя в мозгу применять пессимистическую функцию риска, оценивая позицию, чего, конечно, делать не надо. Программа же быстрее переключается и быстрее понимает, что всё не так хорошо происходит, как есть на самом деле, и программа переключается, например, от пессимистической к оптимистической функции риска, переключается гораздо быстрее чем я.
А.Р. Тут, наверное, стоит ещё заметить, что программа, в которой реализованы эти алгоритмы, но в которой не подобраны числовые коэффициенты (когда переключаться на какую стратегию, как, собственно, статично оценивать позицию, хорошая она или плохая), эта программа не является рабочей. Чтобы она заработала, необходимо её обучить. Обучение программы происходит, когда она играет сама с собой, тогда происходит, собственно, подгонка параметров таким образом, чтобы максимально улучшить качество игры, максимально повысить вероятность выигрыша.
Но здесь возникает уже другой вопрос – каким образом её учить? Если в играх сама с собой, то, наверное, это будет немного необъективно, так как в данном случае отношения не транзитивны: если программа выиграла у другой программы, а другая у третьей, то не обязательно, что первая выиграет у третьей. И выбор системы обучения – тоже очень интересная проблема. И, собственно, если её грамотно решить, то можно действительно надеяться на то, что получится продукт, который в 2004 году станет играть на должном уровне.
А.Г. То есть эту проблему вы ещё не решили?
Б.М. Решаем… всё-таки можно даже сказать, что решили. Здесь мы касаемся темы, о которой ещё сегодня не говорили. Это не нейросети, их мы очень мало применяем здесь. А это так называемые генетические алгоритмы. В научной литературе им посвящено гораздо меньше публикаций, чем нейросетям. Мне кажется – незаслуженно. Потому что и то, и другое – это альтернативный подход к эвристическому программированию. Чистые математики объясняют это так, что нейросети – это математически объяснимо, может быть математически доказано, а генетические алгоритмы – якобы нет. И приводят ссылки на работу Колмогорова-Арнольда, работу 50-х годов – но мне кажется, что для практического программирования эта работа представляет весьма малый интерес. И то, и другое, это разные альтернативы, разные подходы к эвристическому программированию. Наша «функция риска» – это тоже подход. Просто надо всё применять в разумных примерах, в разумных количествах.
Вот здесь возникает именно задача самообучения набора коэффициентов, среди которых, кроме всего прочего, коэффициенты самообучения функций риска, не только коэффициенты для оценки позиций, но и коэффициенты функций риска. Мне, по крайней мере, неизвестно хороших публикаций (чуть ли вообще никаких) про самообучение этих наборов коэффициентов. Есть, либо есть стандартный подход генетических алгоритмов, в котором тоже много не совсем правильного, либо просто, как в упомянутых книжках Вельского с компанией, сказано: «Было произведено самообучение». Было, хорошо было произведено, раз программа хорошая, раз, отставая в 70-х годах от американцев по технике, на той же самой технике «Каисса», победила. Значит, было хорошо самообучение произведено, но как оно было произведено, никакой теории по этому поводу не было.
А.Г. Получается, что в вашем случае, при ваших алгоритмах решения, самообучение важнее, чем в случае программ, которые строятся на нейросетях. Или я ошибаюсь?
А.Р. В нейросетях как раз всё построено на самообучении…
Б.М. Но там своё самообучение…
А.Р. Нейросеть нужно настроить, чтобы она играла. Это производится за счёт самообучения, иначе это просто будет…
А.Г. Я неправильно задал вопрос. Что вам важнее – выбрать метод обучения программы или… Грубо говоря, у вас ребёнок непослушный, непредсказуемый…
А.Р. Скажем так, это вопрос важный – вопрос выбора метода самообучения. Важный в чём? Нужно не просто чтобы программа сама с собой играла, а чтобы было много экземпляров такой программы, каждый немного по-своему настроенный. И вот эта вся толпа, играя друг с другом, устраивает турниры, выбирает победителя. Необходимо найти критерий, по которому решается, кто из них победитель. Собственно, кажется, это и есть швейцарская система?
Б.М. Да, в общем-то, это что-то похожее на швейцарскую систему. Потом это было немножко изменено, но это не настолько всё-таки важно, чтобы так подробно об этом говорить.
Здесь лучше, наверное, вспомнить ещё одну вещь, которая только начала встраиваться в программу. В классической теории Адельсона-Вельского программа, когда думает, за противника думает так же, как за себя. То есть на место противника ставит саму себя. Ещё один приём, который мы применяли – ставить на место противника не себя, а нечто другое, нечто более сложное, нечто более сильное. Потому что у нас-то есть действительно толпа (это такой жаргонный термин – толпа игроков), толпа объектов для самообучения. Это применяется, ещё раз скажу, и в других задачах дискретной оптимизации. И можно всегда взять того, который лидирует, в качестве условного противника, то есть программа, играя, в качестве условного противника берёт лидера.
Что ещё можно? Ещё только начаты работы в том направлении, чтобы программа пыталась, пока противник думает, начать думать за противника и старалась подобрать к противнику свои критерии работы. То есть пыталась представить саму себя на месте противника, и если у неё это получается, она на месте этого виртуального противника подставляет саму себя со своими коэффициентами. Вот это была бы очень интересная тема. Но она, как я уже сказал, только начата, и сказать, насколько она реально применяется в программах, я вам пока не могу.
А.Г. Ну что ж, мне осталось вам пожелать удачи в 2004 году. И если победите, то приходите рассказать о том, как это было.
Б.М. Спасибо!
Гравитационные волны
Участники:
Владимир Борисович Брагинский – доктор физико-математических наук, член-корреспондент РАН
Михаил Васильевич Сажин – доктор физико-математических наук
Александр Гордон: …Теории относительности Эйнштейна. Но до сих пор они не зарегистрированными остаются, таким теоретическим предположением.
Владимир Брагинский: Нет.
А.Г. Не зарегистрированным?
Михаил Сажин: Совершенно верно.
В.Б. Даже уже Нобелевскую премию дали.
А.Г. За что?
В.Б. За косвенное обнаружение, проверку формулы Эйнштейна для гравитационного излучения. 93-й год, Нобелевский комитет сработал верно.
А.Г. Секунду, секунду, секунду. Вы говорите – нет, вы говорите – да.
В.Б. Да. И он прав, и я прав.
А.Г. Это к слову о логике, которая используется в описании квантовой механики. И даже в общей теории относительности. А что произойдёт при двух сценариях: первый из которых мы сегодня будем обсуждать так или иначе в этой программе. Гравитационные волны – да, будут обнаружены в эксперименте, с помощью столь сложных устройств…
В.Б. Непосредственно будут обнаружены.
А.Г. Да, непосредственно.
В.Б. Нобелевскую премию дали за опосредованное обнаружение.
А.Г. А теперь будут непосредственно обнаружены гравитационные волны. И это один сценарий. И второй: при всех попытках гравитационные волны не будут обнаружены, а общая теория относительности зарекомендовала себя как очень точная в предсказаниях наука.
В.Б. Да. Она – инженерная дисциплина для слабых гравитационных полей, для высокоточной космической навигации.