Нейрокомпьютер и основы нейроинф-ки.
Нейрокомпьютинг - это научное направление, занимающееся разработкой вычислительных систем шестого поколения - нейрокомпьютеров, которые состоят из большого числа параллельно работающих простых вычислительных элементов (нейронов). Элементы связаны между собой, образуя нейронную сеть. Они выполняют единообразные вычислительные действия и не требуют внешнего управления. Большое число параллельно работающих вычислительных элементов обеспечивают высокое быстродействие.
В настоящее время разработка нейрокомпьютеров ведется в большинстве промышленно развитых стран.
Нейрокомпьютеры позволяют с высокой эффективностью решать целый ряд интеллектуальных задач. Это задачи распознавания образов, адаптивного управления, прогнозирования, диагностики и т.д.
Нейрокомпьютеры отличаются от ЭВМ предыдущихи поколений не просто большими возможностями. Принципиально меняется способ использования машины. Место программирования занимает обучение, нейрокомпьютер учится решать задачи. Основные отличия нейрокомпьютера от обычной ЭВМ:
параллельная работа большого числа простых вычислительных устройств обеспечивает огромное быстродействие;
нейронная сеть способна к обучению, которое осуществляется путем настройки параметров сети;
высокая отказоустойчивость и помехоустойчивость сети за счет того, что зна ния как бы «размыты» в ней и обрыв какой-то связи в общем случае не являет ся достаточным условием отказа, а устранение помех осуществляется за счет «скатывания» поступившего искаженного образа к ближайшему имеющемуся образцу с наименьшим энергетическим уровнем;
простое строение отдельных нейронов позволяет использовать новые физические принципы обработки информации для аппаратных реализаций нейросетей .
Термины Нейрокибернетика, Нейроинформатика, Нейрокомпьютеры вошли в научный обиход недавно — в середине 1980х годов 20 века. Однако электронный и биологический мозг постоянно сравнивались на протяжении всей истории существования вычислительной техники. Знаменитая книга Н. Винера «Кибернетика» (1948)[2] имеет подзаголовок «Управление и связь в животном и машине».
Первыми нейрокомпьютерами были перцептроны Розенблатта Марк-1 (1958) и Тобермори (1964), а также Адалин, разработанный Уидроу (Widrow) и Хоффом (1960) на основе дельта-правила (формулы Уидроу)[3]. В настоящее время Адалин (адаптивный сумматор, обучающийся по формуле Уидроу) является стандартным элементом многих систем обработки сигналов и связи.[4]Большую роль в развитии нейрокомпьютинга сыграла монография Розенблатта (1958)[5]
Идея нейро-бионики (создания технических средств на нейро-принципах) стала интенсивно реализовываться в начале 1980х гг. Импульсом было следующее противоречие: размеры элементарных деталей компьютеров сравнялись с размерами элементарных «преобразователей информации» в нервной системе, было достигнуто быстродействие отдельных электронных элементов в миллионы раз большее, чем у биологических систем, а эффективность решения задач, особенно связанных задач ориентировки и принятия решений в естественной среде, у живых систем пока недостижимо выше.
Другой импульс равитию нейрокомпьютеров дали теоретические разработки 1980х годов по теории нейронных сетей (сети Хопфилда, сети Кохонена, метод обратного распространения ошибки).
Основная идея — коннекционизм
В отличие от цифровых систем, представляющих собой комбинации процессорных и запоминающих блоков, нейропроцессоры содержат память, распределенную в связях между очень простыми процессорами, которые часто могут быть описаны как формальные нейроны или блоки из однотипных формальных нейронов. Тем самым основная нагрузка на выполнение конкретных функций процессорами ложится на архитектуру системы, детали которой в свою очередь определяются межнейронными связями. Подход, основанный на представлении как памяти данных, так и алгоритмов системой связей (и их весами), называется коннекционизмом.
Три основных преимущества нейрокомпьютеров:
Все алгоритмы нейроинформатики высокопараллельны, а это уже залог высокого быстродействия.
Нейросистемы можно легко сделать очень устойчивыми к помехам и разрушениям.
Устойчивые и надежные нейросистемы могут создаваться и из ненадежных элементов, имеющих значительный разброс параметров.
Разработчики нейрокомпьютеров стремятся объединить устойчивость, быстродействие и параллелизм АВМ — аналоговых вычислительных машин — с универсальностью современных компьютеров.[6]
Проблема эффективного параллелизма
На роль центральной проблемы, решаемой всей нейроинформатикой и нейрокомпьютингом, А. Горбань[7] предложил проблему эффективного параллелизма. Давно известно, что производительность компьютера возрастает намного медленнее, чем число процессоров. М. Минский сформулировал гипотезу: производительность параллельной системы растет (примерно) пропорционально логарифму числа процессоров - это намного медленнее, чем линейная функция.
Для преодоления этого ограничения применяется следующий подход: для различных классов задач строятся максимально параллельные алгоритмы решения, использующие какую-либо абстрактную архитектуру (парадигму) мелкозернистого параллелизма, а для конкретных параллельных компьютеров создаются средства реализации параллельных процессов заданной абстрактной архитектуры. В результате появляется эффективный аппарат производства параллельных программ.
Нейроинформатика поставляет универсальные мелкозернистые параллельные архитектуры для решения различных классов задач. Для конкретных задач строится абстрактная нейросетевая реализация алгоритма решения, которая затем имплементируется на конкретных параллельных вычислительных устройствах. Таким образом нейросети позволяют эффективно использовать параллелизм.
Современные нейрокомпьютеры
Многолетние усилия многих исследовательских групп привели к тому, что к настоящему моменту накоплено большое число различных «правил обучения» и архитектур нейронных сетей, их аппаратных реализаций и приемов использования нейронных сетей для решения прикладных задач.
Эти интеллектуальные изобретения существуют в виде «зоопарка» нейронных сетей. Каждая сеть из зоопарка имеет свою архитектуру, правило обучения и решает конкретный набор задач. В последнее десятилетие прилагаются серьёзные усилия для стандартизации структурных элементов и превращений этого «зоопарка» в «технопарк»[8]: каждая нейронная сеть из зоопарка реализованная на идеальном универсальном нейрокомпьютере, имеющем заданную структуру.
Основные правила выделения функциональных компонентов идеального нейрокомпьютера:
Относительная функциональная обособленность: каждый компонент имеет четкий набор функций. Его взаимодействие с другими компонентами может быть описано в виде небольшого числа запросов.
Возможность взаимозамены различных реализаций любого компонента без изменения других компонентов.
Постепенно складывается рынок нейрокомпьютеров. В настоящее время широко распространены различные высокопараллельные нейро-ускорители (сопроцессоры) для различных задач. Моделей универсальных нейрокомпьютеров на рынке мало отчасти потому, что большинство из них реализованы для спецприменений. Примерами нейрокомпьютеров являются нейрокомпьютер Synapse (Siemens, Германия), нейрокомпьютер «Силиконовый мозг» (созданный в США по программе «Электронный мозг», предназначен для обработки аэрокосмических изображений, производительность 80 Пфлоп ( операций в секунду, объём равен объёму мозга человека, потребляемая мощность — 20 Вт).[9] Издаётся специализированный научно-технический журнал «Нейрокомпьютеры: разработка, применение»[10] С технической точки зрения сегодняшние нейрокомпьютеры — это вычислительные системы с параллельными потоками одинаковых команд и множественным потоком данных (MSIMD-архитектура). Это одно из основных направлений развития вычислительных систем с массовым параллелизмом.
Новый поворот — «влажный продукт»
В нейрокомпьютинге постепенно созревает новое направление, основанное на соединении биологических нейронов с электронными элементами. По аналогии с Software (программное обеспечение — «мягкий продукт») и Hardware (электронное аппаратное обеспечение — «твердый продукт»), эти разработки получили наименование Wetware «влажный продукт».
В настоящее время уже существует технология соединения биологических нейронов со сверхминиатюрными полевыми транзисторами с помощью нановолокон (Nanowire).[11] В разработках используется современная нанотехнология. В том числе, для создания соединений между нейронами и электронными устройствами используются углеродные нанотрубки. [12]
(Распространено также и другое определение термина «Wetware» — человеческий компонент в системах «человек-компьютер».)
Применения
1. Управление в реальном времени[13], в том числе:
самолетами и ракетами,[14]
технологическими процессами непрерывного производства (в энергетике, металлургии и др.).[15]
2. Распознавание образов:
изображений, человеческих лиц, букв и иероглифов, отпечатков пальцев в криминалистике, речи, сигналов радара и сонара,
элементарных частиц и происходящих с ними физических процессов (эксперименты на ускорителях или наблюдение за космическими лучами),
заболеваний по симптомам (в медицине)[16],
местностей, где следует искать полезные ископаемые (в геологии, по косвенным признакам),
признаков опасности в системах безопасности
3. Прогнозирование в реальном времени:
погоды,
курса акций (и других финансовых показателей)[17],
исхода лечения,
политических событий (результатов выборов, международных отношений и др.)[18],
поведения противника (реального или потенциального) в военном конфликте и в экономической конкуренции,
устойчивости супружеских отношений.
4. Оптимизация — поиск наилучших вариантов:
при конструировании технических устройств,[19]
при выборе экономической стратегии,
при подборе команды (от сотрудников предприятия до спортсменов и участников полярных экспедиций),
при лечении больного.
5. Обработка сигналов при наличии больших шумов.
6. Протезирование («умные протезы») и усиление естественных функций, в том числе — за счёт прямого подключения нервной системы человека к компьютерам (Нейро-компьютерный интерфейс
нейроинформатика - это направление науки и информационной технологии, занимающееся разработкой и исследованием методов решения задач с помощью нейронных сетей.
Нейроинформатика — область научных исследований, лежащая на пересечении нейронаук и информатики. Нейроинформатика является разделом искусственного интеллекта, объединяющим нейросетевые и нейрокомпьютерные технологии.
37.Нейрон,нейронные сети,основные понятия
Нейрон (рис. 1) - это составная часть нейронной сети. Он состоит из элементов трех типов. Элементы нейрона - умножители (синапсы), сумматор и нелинейный преобразователь. Синапсы осуществляют связь между нейронами, умножают входной сигнал на число, характеризующее силу связи, - вес синапса. Сумматор выполняет сложение сигналов, поступающих по синаптическим связям от других нейронов, и внешних входных сигналов. Нелинейный преобразователь реализует нелинейную функцию одного аргумента - выхода сумматора. Эта функция называется "функция активации" или "передаточная функция" нейрона. Нейрон в целом реализует скалярную функцию векторного аргумента.
Нейронной сетью будем называть структуру, состоящую из связанных между собой нейронов.
Нейронные сети могут иметь различные архитектуры. Можно выделить три основных типа нейронных сетей:
- полносвязные сети (рис. 3-а),
- многослойные сети (рис. 3-б),
- слабосвязные сети (нейронные сети с локальными связями) (рис. 3-в).
В слабосвязных сетях нейроны располагаются в узлах прямоу гольной решетки. Каждый нейрон связан с четырьмя или восемью своими ближайшими соседями.
В полносвязной сети каждый нейрон связан со всеми остальными (на входы каждого нейрона подаются выходные сигналы остальных нейронов).
В многослойных сетях нейроны объединяются в слои. Слой - это совокупность нейронов c единым входным сигналом. Внешние входные сигналы подаются на входы нейронов первого слоя, а выходами сети являются выходные сигналы последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети есть один или несколько промежуточных (скрытых) слоев. Вход нейронной сети можно рассматривать как выход "нулевого слоя" вырожденных нейронов. Связи от выходов нейронов некоторого слоя m к входам нейронов следующего слоя (m+1) называются последовательными.
Если нейроны каждого слоя сети имеют единую функцию актива ции, то такую нейронную сеть будем называть однородной.
Аппаратная реализация нейронной сети может быть выполнена на нейрочипах (микросхемах, содержащих фрагменты нейронных сетей), на СБИС-пластинах или оптоэлектронным способом.
Нейрокомпьютером называют вычислительную систему, архитектура которой ориентирована на выполнение операций, заданных структурой нейронной сети.
В финансовом мире нейронные сети широко применяются для двух основных задач — прогнозирования котировок основных инструментов (курсов валют, ценных бумаг, ГКО и др.) и распознавания определенных ситуаций (например, подо зрительных операций с кредитной картой). В России наиболее известными приложениями нейросетевых информационных технологий можно признать следующие :
прогнозирование котировок фьючерсов;
краткосрочная динамика курсов валют;
прогноз оптовых цен на продукты питания;
оценка кредитных рисков;
оценка объектов недвижимости;
ряд задач медицинской и промышленной диагностики;
построение высокодоходного футбольного тотализатора;
прогноз развития чрезвычайных ситуаций;
авторизация доступа по индивидуальному «почерку» работы за клавиатуре
компьютера.
Модели нейронных сетей
Модель МакКаллока-Питтса Первой формальной моделью нейронных сетей (НС) была модель МакКаллока-Питтса, уточненная и развитая Клини. Впервые было установлено, что НС могут выполнять любые логические операции и вообще любые преобразования, реализуемые дискретными устройствами с конечной памятью. Эта модель легла в основу теории логических сетей и конечных автоматов и активно использовалась психологами и нейрофизиологами при моделировании некоторых локальных процессов нервной деятельности. В силу своей дискретности она вполне согласуется с компьютерной парадигмой и, более того, служит её «нейронным фундаментом».
Устройство модели
Рис.1 модель нейрона МакКалока-Питтса
Пусть имеется входных величин x1,…,xn бинарных признаков, описывающих объект . Значения этих признаков будем трактовать как величины импульсов, поступающих на вход нейрона через входных синапсов. Будем считать, что, попадая в нейрон, импульсы складываются с весами 1,…,n.
Если вес положительный, то соответствующий синапс возбуждающий, если отрицательный, то тормозящий. Если суммарный импульс превышает заданный порог активации 0, то нейрон возбуждается и выдаёт на выходе 1, иначе выдаётся 0.
Таким образом, нейрон вычисляет n-арную булеву функцию
где - ступенчатая функция Хевисайда.
В теории нейронных сетей функцию , преобразующую значение суммарного импульса в выходное значение нейрона, принято называть функцией активации. Таким образом, модель МакКаллока-Питтса эквивалентна пороговому линейному классификатору.
Математическая модель нейрона:
(1)
(2)
где
wi - вес синапса (weight), (i=1,2...N);
b - значение смещения (bias);
s - результат суммирования (sum);
xi - компонента входного вектора (входной сигнал), (i=1,2,...N);
y - выходной сигнал нейрона;
N - число входов нейрона;
f - нелинейное преобразование (функция активации).
В общем случае входной сигнал, весовые коэффициенты и значения смещения могут принимать действительные значения. Выход (y) определяется видом функции активации и может быть как действительным, так и целым. Во многих практических задачах входы, веса и смещения могут принимать лишь некоторые фиксированные значения.
Синаптические связи с положительными весами называют возбуждающими, с отрицательными весами - тормозящими.
Описанный вычислительный элемент можно считать упрощенной математической моделью биологических нейронов - клеток, из которых состоит нервная система человека и животных.
Чтобы подчеркнуть различие нейронов биологических и математичес ких, вторые иногда называют нейроноподобными элементами или формальными нейронами.
На входной сигнал (s) нелинейный преобразователь отвечает выходным сигналом f(s,p), который представляет из себя выход нейрона (y). Здесь p - параметр или набор параметров, от которых зависит функционирование преобразователя. Пример передаточной функции представлен на рис. 2.