Эволюция разума - Рэймонд Курцвейл
Шрифт:
Интервал:
Закладка:
92
Jonah Lehrer, Can a Thinking, Remembering, Decision-Making Biologically Accurate Brain Be Built From a Supercomputer? Seed Magazine, 2012.
93
Jonathan Fildes (22 July 2009). Artificial brain «10 years away». BBC News. http://news.bbc.co.uk/2/hi/8164060.stm.
94
См. сайт http://www.humanconnectomeproject.org/.
95
Anders Sandberg and Nick Bostrom (2008): Whole Brain Emulation: A Roadmap. Technical Report 2008 (3), Future of Humanity Institute, Oxford University. URL: www.fhi.ox.ac.uk/reports/2008–3.pdf.
96
Эутелия — постоянство клеточного состава организма; такие организмы обладают определенным числом клеток, характерным для данного вида.
97
Ниже представлена базовая схема алгоритма функционирования сети нейронов. Возможно множество вариаций алгоритма, и создателю программы необходимо знать некоторые важнейшие параметры и методы, которые перечислены ниже. Создание сети нейронов для решения проблемы происходит в несколько этапов.
Определить входные данные.
Определить топологию сети (например, слои нейронов и связи между нейронами).
Отработать систему на нескольких примерах. Опубликовать/запатентовать систему.
Эти этапы (кроме последнего) подробнее описаны ниже.
Входные данные.
Входные данные на сеть нейронов представляют собой несколько наборов чисел. Вот некоторые примеры:
— для системы распознавания визуальных образов — это двумерный ряд чисел, соответствующих пикселям изображения;
— для системы распознавания звуковой информации (например, речи) — это двумерный набор чисел, соответствующих звуку: первое измерение — параметры звука (например, частота), а второе измерение — различные моменты времени;
— в системе распознавания произвольных образов — это n-мерный набор чисел, соответствующих входному сигналу.
Определение топологии сети.
Архитектура каждого нейрона определяется следующими параметрами.
Множество входных сигналов, каждый из которых «соединен» либо с выходным сигналом другого нейрона, либо с одним из чисел, определяющих входной сигнал.
Обычно один выходной сигнал, связанный либо с входным сигналом другого нейрона (обычно более высокого уровня), либо с результирующим сигналом.
Установка нейронов первого уровня.
Создать N0 нейронов первого уровня. Для каждого из них осуществить «связь» каждого из многочисленных входных сигналов с «точками» (например, численными значениями) на входе в систему. Эти связи могут быть установлены случайным образом или с помощью эволюционного алгоритма (см. ниже).
Присвоить начальное значение «синаптического потенциала» каждой созданной связи. Эти параметры сначала могут быть одинаковыми, могут быть выбраны случайным образом или определены каким-то другим путем (см. ниже).
Создать следующие уровни нейронов.
Создать все M уровней нейронов. На каждом уровне определить все нейроны.
Для уровня i.
Создать N. нейронов уровня i. Для каждого нейрона осуществить «связь» каждого из множества входных сигналов с выходными сигналами нейронов уровня i-1 (ниже см. возможные варианты).
Присвоить начальное значение «синаптического потенциала» каждой созданной связи.
Эти параметры сначала могут быть одинаковыми, могут быть выбраны случайным образом или определены каким-то другим путем (см. ниже).
Выходные сигналы нейронов уровня M представляют собой результирующие сигналы на выходе из сети нейронов (ниже см. возможные варианты).
Тест.
Как работает каждый нейрон.
Когда нейрон определен, в каждом тесте он выполняет следующую функцию.
Каждый поступающий на нейрон взвешенный сигнал обсчитывается путем умножения выходного сигнала от другого нейрона (или исходного входного сигнала), с которым соединен данный нейрон, на величину синаптического потенциала данной связи.
Все взвешенные сигналы, поступающие на данный нейрон, суммируются.
Если эта сумма выше порогового значения возбуждения нейрона, данный нейрон считается возбужденным, и его выходному сигналу присваивается значение 1. В противном случае выходной сигнал получает значение 0 (см. варианты ниже).
В каждом тесте проводится следующая процедура.
Для каждого уровня — от 0 до M:
Для каждого нейрона данного уровня:
Суммируются взвешенные входные сигналы (каждый взвешенный входной сигнал = выходной сигнал другого нейрона (или исходный входной сигнал), с которым связан данный нейрон, х синаптический потенциал связи).
Если эта сумма взвешенных сигналов выше порогового значения возбуждения нейрона, данный нейрон считается возбужденным, и его выходному сигналу присваивается значение 1. В противном случае выходной сигнал получает значение 0.
Тестирование сети нейронов.
Проводят серию повторных тестов для простой задачи.
После каждого теста показатели синаптических потенциалов всех связей настраивают таким образом, чтобы улучшить производительность сети нейронов в данной задаче (ниже обсуждается, как это сделать).
Продолжают тестирование до тех пор, пока точность распознавания не перестанет повышаться (то есть выйдет на асимптоту).
Ключевые решения.
В рамках описанной выше простой схемы создатель алгоритма должен прежде всего определить следующие параметры:
— чему соответствуют значения входных параметров;
— количество уровней нейронов;
— количество нейронов на каждом уровне (на разных уровнях не обязательно должно содержаться одинаковое количество нейронов);
— количество входных сигналов, приходящих на каждый нейрон каждого уровня. Количество входных сигналов (то есть связей между нейронами) может быть различным для разных нейронов и разных уровней;
— список «возбужденных» связей. Для каждого нейрона каждого уровня создается список других нейронов, выходные сигналы которых являются входными сигналами на данный нейрон. Это ключевой момент в создании программы. Сделать это можно несколькими способами:
1) возбужденные связи выбираются случайным образом; или
2) для оптимального возбуждения применяется эволюционный алгоритм (см. ниже); или
3) для определения возбужденных связей используется лучшее конструктивное решение.
Определение исходного синаптического потенциала (то есть веса) каждой связи. Сделать это можно несколькими способами:
1) всем синаптическим потенциалам присваивается одинаковое значение; или
2) синаптическим потенциалам присваиваются разные случайные значения; или
3) для определения оптимального набора синаптических потенциалов применяется эволюционный алгоритм; или
4) для определения исходных значений синаптических потенциалов используется лучшее конструктивное решение.
Порог возбуждения каждого нейрона.
Определение выходного сигнала. Выходной сигнал может быть:
1) выходными сигналами после уровня M; или
2) выходным сигналом единственного нейрона, входным сигналом на который являются выходные сигналы после уровня M; или
3) функцией (например, суммой) выходных сигналов после уровня M; или
4) другой функцией выходных сигналов нейронов разных уровней.
Определение степени подгонки синаптических потенциалов всех связей в процессе тестирования сети нейронов. Это очень важный элемент подготовки программы, который активно исследуется и широко обсуждается. Для осуществления этой процедуры существует несколько возможностей:
1) в каждом тесте повышают или понижают величину синаптического потенциала на небольшую фиксированную величину, чтобы выходной сигнал нервной сети как можно ближе подходил к правильному результату. Один из способов — пытаться и увеличивать, и уменьшать значение, чтобы выяснить, какое действие приближает систему к желаемому результату. Однако для этого может потребоваться много времени, так что существуют другие методы, позволяющие определить, в каком направлении (уменьшения или увеличения потенциала) следует двигаться;
2) существуют другие статистические методы изменения синаптического потенциала после каждого теста, чтобы добиться лучшего совпадения получаемых результатов с истинным значением.
Заметим, что тренировка системы будет происходить даже в тех случаях, когда не все результаты испытаний близки к истинным значениям. Это позволяет использовать результаты тестов, даже содержащих ошибку. Ключ к успеху при создании системы распознавания на основе сетей нейронов заключается в использовании большого количества тренировочных данных. Обычно для получения удовлетворительных результатов требуется весьма большой объем данных. Для системы на основе сетей нейронов, как и для студентов, процесс обучения — важнейший фактор в достижении высокой эффективности.