Синергетика: самоорганизующиеся системы в программировании |
Автор megabax | |
06.01.2020 г. | |
Синергетика: самоорганизующиеся системы в программированииВ этой статье мы поговорим о самоорганизующихся системах в программировании. Наглядный тому пример - это генетический алгоритм. Суть этого алгоритма в том, что для решения задач оптимизации и моделирования используется эвристический поиск, который работает путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, аналогичных естественному отбору в природе. Другой пример самоорганизующихся систем в программирование - нейронные сети. Суть самоорганизации нейронных сетей состоит в их способности самообучаться - изменять коэффициенты преобразования таким образом, что бы лучше решать поставленные задачи. Подробнее про теорию нейронных сетей можно почитать на моем сайте в бесплатном и платном разделе, так же в платном разделе можно почитать о практических экспериментах с нейронными сетями и скачать исходники. В этой статье я немного расскажу о работе человеческого мозга как сложнейшей самоорганизующейся системы, понимание работы которого необходимо для понимания принципа работы нейронных сетей. Нервные клетки (нейроны), вместе со своими волокнами, передающими сигналы, образуют нервную систему. У позвоночных основная часть нейронов сосредоточена в полости черепа и позвоночном канале. Это называется центральной нервной системой (ЦНС). ЦНС состоит, главным образом, из спинного и головного мозга. Спинной мозг собирает сигналы от большинства рецепторов тела и передает их в головной мозг. Через структуры таламуса они распределяются и проецируются на кору больших полушарий головного мозга. Кроме того, в мозгу есть так же и мозжечок, который отвечает, главным образом, за координацию движений. На рисунке ниже показано, как устроен человеческий мозг и какие информационные потоки в нем протекают:
Таким образом все сигналы проецируются на кору. Проекция осуществляется пучками нервных волокон, которые распределяются по ограниченным областям коры. Участок, на который проецируется либо внешняя информация, либо информация с других участков мозга образует зону коры. Зоны бывают разные. В зависимости от поступающих сигналов зона имеет свою специализацию. Различают моторную зону коры, сенсорную зону, зоны Брока, Вернике, зрительные зоны, затылочную долю, всего около сотни различных зон. На рисунке ниже показана структура зон коры больших полушарий: кора головного мозга состоит из шести слоев. Они не имеют четких границ. В разных зонах коры эти слои могут иметь разные конфигурации, но в целом кора достаточно универсальна. Вот как выглядит ее структура:
Сначала сигналы, как правило, попадают в III, IV уровень коры, где распространяются по ближайшему месту, куда попало афферентное волокно. Большая часть нейронов имеет аксонные связи в пределах своего участка коры. Но некоторые нейроны имеют аксоны, выходящие за ее пределы. По этим эфферентным волокнам сигналы идут либо за пределы мозга, например, к исполнительным органам, или проецируются на другие участки коры своего или другого полушария. Эфферентные волокна могут быть:
Можно вообразить, что кора больших
полушарий - это нечто вроде большого полотна, раскроенного на отельные зоны.
Картина активности нейронов каждой из зон кодирует определенную инфу.
Некоторые аксоны образуют пучки нервных волокон, выходящих за пределы своей
коры. Они формируют систему проекционных связей. На каждую из зон
проецируется определенная инфа, которая может приходить несколькими
информационными потоками, при чем как со своего, так и с противоположного
полушария. Функционирование отдельной зоны коры – это получение множества
проекций, запоминание информации, ее переработка, формирование собственной
картины активности и дальнейшая проекция информации, получившейся в результате
работы этой зоны. Мозг состоит из отдельных нейронов. Естественно, что моделирование мозга с помощью нейронных сетей начинается с ответа на вопрос, каков принцип его работы. В основе работы реального нейрона лежат химические процессы. В состоянии покоя между внутренней и внешней средой нейрона существует разность потенциалов – мембранный потенциал, составляющий около 75 милливольт. Он образуется за счет работы особых белковых молекул, работающих как натрий-калиевые насосы. Эти насосы за счет энергии нуклеотида АТФ гонят ионы калия внутрь, а ионы натрия — наружу клетки. Поскольку белок при этом действует как АТФ-аза, то есть фермент, гидролизующий АТФ, то он так и называется — «натрий-калиевая АТФ-аза». В результате нейрон превращается в заряженный конденсатор с отрицательным зарядом внутри и положительным снаружи. Вот примерно так схематично выглядит сам нейрон и все его окружение: Поверхность нейрона покрыта ветвящимися отростками – дендритами. К дендритам примыкают аксонные окончания других нейронов. Места их соединений называются синапсами. Посредством синаптического взаимодействия нейрон способен реагировать на поступающие сигналы и при определенных обстоятельствах генерировать собственный импульс, называемый спайком. Передача сигнала в синапсах происходит за счет веществ, называемых нейромедиаторами. Когда нервный импульс по аксону поступает в синапс, он высвобождает из специальных пузырьков молекулы нейромедиатора, характерные для этого синапса. На мембране нейрона, получающего сигнал, есть белковые молекулы – рецепторы. Рецепторы взаимодействуют с нейромедиаторами. Правда, цифровое моделирование происходит путем моделирования спайков, а просто путем вычисления входных и выходных сигналов в статике (не в динамике). Подробнее см. Теория нейронных сетей. Урок 1. Модель нейрона а также весь цикл уроков "Теория нейронных сетей" в бесплатном и платном разделах.
К самоорганизующимся алгоритмам можно
отнести также разливные алгоритмы оптимизации и эвристического поиска, например,
алгоритм имитации отжига. Он основывается на имитации физического процесса,
который происходит при кристаллизации вещества, в том числе при отжиге металлов.
Предполагается, что атомы уже выстроились в кристаллическую решётку, но ещё
допустимы переходы отдельных атомов из одной ячейки в другую. Предполагается,
что процесс протекает при постепенно понижающейся температуре. Переход атома из
одной ячейки в другую происходит с некоторой вероятностью, причём вероятность
уменьшается с понижением температуры. Устойчивая кристаллическая решётка
соответствует минимуму энергии атомов, поэтому атом либо переходит в состояние с
меньшим уровнем энергии, либо остаётся на месте. (Этот алгоритм также называется
алгоритмом Н. Метрополиса, по имени его автора). Суть генетического алгоритма в том, что, в отличии от имитации отжига, мы сохраняем несколько наборов параметров. Реплицируем их, меняем случайным образом, вычисляем целевую функцию, проводим селекцию. В разных модификациях алгоритма существуют разные способы репликации и селекции. Можно просто выкидывать из популяции наборы с наихудшими целевыми функциями, можно выкидывать с некой вероятностью, которая опять же, зависит от функции. Точно так же и модификация и с репликацией. Можно использовать скрещивание, можно только мутации, все зависит только от богатства фантазии разработчика. Также при помощи генетического алгоритма можно обучать нейронные сети. |