Эволюция разума - Курцвейл Рэймонд. Страница 33
Итак, мы описали появление одного поколения модельных организмов. Далее мы повторяли все те же процессы для каждого следующего поколения: определяли, насколько улучшился дизайн (то есть рассчитывали среднее улучшение оценки для всех выживших организмов). Когда результаты оценки организмов из двух последовательных поколений практически переставали улучшаться, мы останавливали цикл и использовали лучшие образцы из последнего поколения [99].
Суть генетического алгоритма (ГА) заключается в том, что создатели программы не программируют решение, а позволяют ему сформироваться в результате многократных имитаций конкуренции и улучшений. Биологическая эволюция — процесс умный, но медленный, и мы попытались этот медленный процесс ускорить. Компьютер действует достаточно быстро, чтобы имитировать смену множества поколений за несколько часов или дней, а наши эксперименты длились несколько недель, так что мы могли наблюдать смену сотен тысяч поколений. Но этот многократно повторяющийся процесс мы должны были воспроизвести лишь однажды. Как только мы запустили процесс искусственной эволюции, достаточно быстро смогли применить полученные усовершенствованные правила к решению реальных проблем. В нашей системе распознавания речи мы использовали их для обнаружения исходной топологии сети и других критических параметров. Итак, мы использовали две самоорганизующиеся системы: ГА для симуляции биологической эволюции, что позволило определить специфический дизайн коры, и ИСММ для симуляции организации коры, определяющей процесс обучения у человека.
Еще одно важное требование для успешного применения ГА заключается в обеспечении надежного метода оценки всех возможных решений. Эта оценка должна быть быстрой, поскольку в каждом поколении приходится анализировать тысячи возможных вариантов. Метод ГА прекрасно подходит для нахождения точного аналитического значения в задачах с очень большим числом переменных. Например, при проектировании моторов приходится учитывать более сотни переменных и удовлетворять десяткам различных условий. Использование инженерами General Electric метода ГА при создании реактивного двигателя позволило добиться более точного соответствия необходимым требованиям, чем применение традиционных методов.
При использовании ГА, однако, следует с особым вниманием относиться к тому, о чем вы собираетесь спросить. Этот алгоритм был разработан для решения статистической задачи о стопке брусков, для которой он позволяет найти идеальное решение, но за тысячи ходов. Программисты забыли включить в программу функцию минимизации операций.
Проект «Электрическая овца» Скотта Дрейва — основанная на генетическом алгоритме программа, которая умеет рисовать. Функция оценки использует в качестве оценщиков многие тысячи людей. Рисунки изменяются во времени — вы можете увидеть их на сайте electricsheep.org.
В системах распознавания речи сочетание генетических алгоритмов и скрытых моделей Маркова дало возможность получить отличные результаты. Симуляция эволюции с помощью ГА в значительной степени улучшила производительность сетей ИСММ. Эволюция позволила достичь результата, который намного превзошел исходный вариант, основанный на нашей интуиции.
Далее мы экспериментировали, вводя в систему небольшие изменения. Например, мы создавали некоторые пертурбации (случайные небольшие изменения) входного сигнала. Другое изменение состояло в том, что мы заставляли соседние марковские цепи «протекать» друг в друга: результаты одной модели влияли на «соседние» модели. В то время мы не отдавали себе в этом отчета, однако производимые нами изменения действительно напоминали процессы, происходящие в структурах биологической коры.
В первую очередь такие изменения снижали эффективность системы (точность распознавания). Однако если мы повторяли эволюционный процесс (то есть перезапускали генетический алгоритм) при наличии подобных изменений, это позволяло адаптировать систему и оптимизировать ее к данным условиям. Обычно это приводило к восстановлению эффективности. Если затем мы удаляли внесенные изменения, эффективность вновь падала, поскольку система эволюционировала для их компенсации. Адаптированная система становилась зависимой от внесенных изменений.
В частности, небольшие случайные изменения на входе позволяли повысить эффективность системы (после повторного проведения ГА). Причина заключается в проблеме так называемой сверхподгонки, характерной для самоорганизующихся систем. Существует опасность, что такая система в основном будет настроена на специфические примеры, которые использовались для ее обучения. Внесение случайных изменений на входе позволяет добиться большей инвариантности данных для обучения системы. Но этот метод работает только в том случае, если в новых условиях мы вновь запускаем генетический алгоритм.
Тут возникает дилемма в нашем понимании функционирования биологических кортикальных цепей. Например, было подмечено, что иногда происходит «протечка» кортикальных контактов, что объясняется самой природой биологических связей: электрохимические свойства аксонов и дендритов зависят от электромагнитного воздействия соседних контактов. Представьте, что нам удастся провести эксперимент с реальным мозгом, в котором подобная возможность устранена. Сделать это трудно, но не невозможно. Представьте, что в результате подобного эксперимента мы обнаружили, что кортикальные цепи работают менее эффективно. Нам пришлось бы заключить, что это явление — очень умное эволюционное приспособление, необходимое для достижения максимальной эффективности функции новой коры. А еще пришлось бы признать, что иерархические модели, описывающие восходящие потоки образов и нисходящие предсказательные сигналы, на самом деле гораздо сложнее, поскольку должны учитывать еще и взаимное влияние контактов.
Однако этот вывод не обязательно верен. Вернемся к нашему эксперименту с имитацией новой коры на основе иерархических скрытых моделей Маркова, в котором предусмотрим модификацию, напоминающую взаимное влияние нейронов. Если мы в этой системе повторим эволюционный процесс, эффективность системы восстановится (поскольку эволюция адаптируется к изменениям). Если же мы устраним взаимное влияние нейронов, эффективность вновь понизится. В биологической системе эволюция («настоящая» биологическая эволюция) действительно «прогонялась» при наличии подобного фактора. Таким образом, биологическая эволюция выбрала такие параметры системы, которые зависят от данных факторов, и их изменение негативно скажется на эффективности системы, если только мы не «перезапустим» эволюционный процесс. В компьютерном мире сделать это несложно — здесь эволюционный процесс занимает дни или недели, но в природе для этого потребовались бы десятки тысячелетий.
Так каким же образом мы можем установить, является ли какой-то характерный признак строения биологической новой коры жизненно важной инновацией, внесенной биологической эволюцией (то есть этот признак важен для нашего уровня интеллекта), или это лишь артефакт строения, от которого система теперь зависит, но без которого вполне могла бы развиваться дальше? Чтобы ответить на этот вопрос, достаточно просто запустить имитацию эволюционного процесса при наличии и при отсутствии этих деталей строения (например, при наличии и при отсутствии протечки контактов). Более того, мы можем проследить и за биологической эволюцией, наблюдая за колонией микроорганизмов, у которых процесс воспроизводства измеряется часами, но со сложными организмами, такими как человек, проделать такой эксперимент не представляется возможным. Это еще один из многих недостатков биологии.
Вернемся к нашим экспериментам по распознаванию речи. Мы обнаружили, что результаты получаются лучше, если мы запускаем эволюцию (то есть ГА) независимо в исходной системе для 1) иерархических скрытых моделей Маркова для внутренней структуры фонем и для 2) ИСММ для структуры слов и фраз. На обоих уровнях использовались ИСММ, но метод ГА создавал вариации на стыке этих двух уровней. Метод позволил моделировать такие явления, как размывание фонем, что часто случается при сочленении некоторых слов.