Что такое нейронный компьютер
Прежде мне не довелось узнать, как сильно действуют на авторов читательские письма. В ответ на научные публикации обычно получаешь лишь открытки с просьбой прислать оттиски, и не известно, чем же привлекла читателя твоя статья: то ли очень нужна для работы, то ли пригодится для коллекции курьезов. Иное дело — публикация в журнале «Мир ПК». Первые же письма, полученные в ответ на нашу статью («Новая игрушка человечества», авторы А. Н. Горбань, В. И. Фридман, «Мир ПК», № 9/93, с. 111.), сильно порадовали, а когда их число перевалило за сотню, стало ясно: тема вызвала интерес, информации явно не хватает и необходимо ответить хотя бы на часть вопросов.
Эпоха
При инициализации нейронной сети эта величина устанавливается в 0 и имеет потолок, задаваемый вручную. Чем больше эпоха, тем лучше натренирована сеть и соответственно, ее результат. Эпоха увеличивается каждый раз, когда мы проходим весь набор тренировочных сетов, в нашем случае, 4 сетов или 4 итераций.
Важно не путать итерацию с эпохой и понимать последовательность их инкремента. Сначала n
раз увеличивается итерация, а потом уже эпоха и никак не наоборот. Другими словами, нельзя сначала тренировать нейросеть только на одном сете, потом на другом и тд. Нужно тренировать каждый сет один раз за эпоху. Так, вы сможете избежать ошибок в вычислениях.
Как работает нейронная сеть?
Почему инженеры вдохновляются человеческим мозгом
Инженеры, занимающиеся разработкой нейроморфных чипов (подробнее о них мы поговорим далее), в первую очередь отмечают высокие вычислительные способности человеческого мозга.
По данным ряда исследований, наш мозг обладает потенциальной производительностью в один эксафлопс. Традиционные суперкомпьютеры такой вычислительной мощности пока только разрабатываются — первые машины ожидают не раньше 2021 года.
При этом мозг обладает крайне высокой энергоэффективностью, что является вторым важным фактором для тех, кто занимается разработкой нейроморфных систем.
/ фото jesse orrico Unsplash
Конечно, искусственные системы обладают существенными ограничениями. Нейронные сети отличаются от биологических аналогов неспособностью «запомнить» прошлые навыки при обучении новой задаче. Алгоритм, натренированный на распознавание собак, не сможет различать людей. Но эксперты из этой сферы надеются, что нейроморфные чипы откроют новые возможности для обучения «многозадачных» нейронных сетей и решат подобные проблемы.
1.1.Что такое нейрокомпьютер
Нейрокомпьютеры — это системы, в которых алгоритм решения задачи представлен логической сетью элементов частного вида — нейронов с полным отказом от булевских элементов типа И, ИЛИ, НЕ. Как следствие этого введены специфические связи между элементами, которые являются предметом отдельного рассмотрения. В отличие от классических методов решения задач нейрокомпьютеры реализуют алгоритмы решения задач, представленные в виде нейронных сетей. Это ограничение позволяет разрабатывать алгоритмы, потенциально более параллельные, чем любая другая их физическая реализация.
В дальнейшем под нейрокомпьютером будем понимать вычислительную систему с архитектурой MSIMD, в которой реализованы два принципиальных технических решения: упрощен до уровня нейрона процессорный элемент однородной структуры и резко усложнены связи между элементами; программирование вычислительной структуры перенесено на изменение весовых связей между процессорными элементами.
Общее определение нейрокомпьютера может быть представлено в следующем виде:
Нейрокомпьютер — это вычислительная система с архитектурой аппаратного и программного обеспечения, адекватной выполнению алгоритмов, представленных в нейросетевом логическом базисе
Что такое нейрон?
Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый). Также есть нейрон смещения и контекстный нейрон о которых мы поговорим в следующей статье. В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Соответственно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.
Важно помнить, что нейроны оперируют числами в диапазоне [0,1] или [-1,1]. А как же, вы спросите, тогда обрабатывать числа, которые выходят из данного диапазона? На данном этапе, самый простой ответ — это разделить 1 на это число. Этот процесс называется нормализацией, и он очень часто используется в нейронных сетях. Подробнее об этом чуть позже.
Итерация
Это своеобразный счетчик, который увеличивается каждый раз, когда нейронная сеть проходит один тренировочный сет. Другими словами, это общее количество тренировочных сетов пройденных нейронной сетью.
Какие задачи под силу только нейрокомпьютеру?
Попытаюсь ответить и на этот вопрос — приведу пример задачи, с которой нейрокомпьютер справится, а обычная ЭВМ — нет. Пример пока еще фантастический, но очень заманчивый.
Успехи человечества в удержании термоядерной плазмы пока невелики. Элементарные возбуждения (неустойчивости) развиваются за несколько наносекунд, а за микросекунды — приводят к убеганию плазменного шнура от системы регулирования (да простят мне специалисты столь поверхностное изложение сложной проблемы.) Число степеней свободы возможных неустойчивостей очень велико, и пока не удается сконструировать физический авторегулятор, который смог бы их подавить. Возникает вопрос: а нельзя ли сделать это кибернетическим путем? Представьте себе: характерное время вашей реакции — наносекунда, а руки не боятся плазменных температур. Смогли бы вы удержать плазму?
Если научить нейронную сеть распознавать плазменные неустойчивости в момент их возникновения и генерировать правильное управляющее воздействие, если реализовать эту сеть с помощью аналоговых элементов с наносекундным быстродействием и воспользоваться «колдовским» принципом «мышление есть действие» (говоря попросту, сделать так, чтобы выходные сигналы нейронной сети — электромагнитные и/или оптические — сразу стабилизировались бы оптимальным управляющим воздействием), то можно удержать термоядерную плазму.
Что разрабатывают сегодня
Сегодня над созданием нейрочипов работают в IBM. Еще в 2008 году инженеры компании при поддержке DARPA приняли участие в программе SyNAPSE, в рамках которой разрабатывались компьютерные архитектуры, отличные от фон Неймановских. За три года IBM удалось разработать ядро с 256 искусственными нейронами (у каждого из них были 256 синапсов). Еще через три года компания представила процессор TrueNorth, состоящий из 4096 таких ядер — это более миллиона нейронов. И его уже применяют в задачах распознавания жестов и речи. Разработчики компании заявляют, что вычислительные системы на основе TrueNorth смогут успешно смоделировать работу мозга кошки. Однако ряд экспертов считает такие заявления явным преувеличением.
Еще одна крупная ИТ-компания, занимающаяся разработкой нейроморфных вычислительный систем, — это Intel. В прошлом году они представили чип Loihi. В его составе имеются 128 нейроморфных ядер, каждое из которых симулирует 1024 нейрона. Программировать процессор можно с помощью API, написанного на Python. Первые экземпляры этих устройств уже отправили в дата-центры нескольких ведущих университетов для проведения тестов на реальных задачах.
К слову об университетах, над нейроморфными чипами работают и инженеры из Манчестерского вуза. В прошлом году они представили архитектуру SpiNNaker, состоящую из миллиона ядер, способных эмулировать работу ста миллионов нейронов. Потребляет такая установка 100 кВт. Программировать компьютер можно с помощью языка PyNN. На сегодняшний день машина используется для симуляции процессов, происходящих в мышином мозге.
Несмотря на прогресс последних лет, можно сказать, что нейроморфное железо находится на ранних этапах своего развития. Задачи, которые ставят перед системами ИИ на его основе в основном ограничиваются распознаванием объектов. Тем не менее представители ИТ-индустрии убеждены, что в будущем нейроморфное аппаратное обеспечение позволит проводить полноценные симуляции и откроет совершенно новые вычислительные возможности.
Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.
Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями. В этой статье, я не буду делать сильный акцент на Java и буду объяснять все на примерах, чтобы вы сами смогли перенести это на любой, нужный вам язык программирования. В последующих статьях, я расскажу о своем приложении, написанном под андроид, которое предсказывает движение акций или валюты. Иными словами, всех желающих окунуться в мир нейронных сетей и жаждущих простого и доступного изложения информации или просто тех, кто что-то не понял и хочет подтянуть, добро пожаловать под кат.
Первым и самым важным моим открытием был плейлист американского программиста Джеффа Хитона, в котором он подробно и наглядно разбирает принципы работы нейронных сетей и их классификации. После просмотра этого плейлиста, я решил создать свою нейронную сеть, начав с самого простого примера. Вам наверняка известно, что когда ты только начинаешь учить новый язык, первой твоей программой будет Hello World. Это своего рода традиция. В мире машинного обучения тоже есть свой Hello world и это нейросеть решающая проблему исключающего или(XOR). Таблица исключающего или выглядит следующим образом:
a | b | c |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Что такое нейроморфный чип
Это — процессор, работа которого основана на принципах действия человеческого мозга. Такие устройства моделируют работу нейронов и их отростков — аксонов и дендритов — отвечающих за передачу и восприятие данных. Связи между нейронами образуются за счет синапсов — специальных контактов, по которым транслируются электрические сигналы.
Одна из задач нейроморфных устройств — ускорить обучение сверточных нейронных сетей для распознавания изображений. Системам искусственного интеллекта на базе этой технологии не нужно обращаться к массивному хранилищу с тренировочными данными по сети — вся информация постоянно содержится в искусственных нейронах. Такой подход дает возможность реализовывать алгоритмы машинного обучения локально. Поэтому ожидается, что нейроморфные чипы найдут применение в мобильных устройствах, IoT-гаджетах, а также дата-центрах.
Ошибка
Ошибка — это процентная величина, отражающая расхождение между ожидаемым и полученным ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы вольны выбрать любой метод, который будет приносить вам наилучший результат. Стоит лишь учитывать, что каждый метод считает ошибки по разному. У Arctan, ошибка, почти всегда, будет больше, так как он работает по принципу: чем больше разница, тем больше ошибка. У Root MSE будет наименьшая ошибка, поэтому, чаще всего, используют MSE, которая сохраняет баланс в вычислении ошибки.
Принцип подсчета ошибки во всех случаях одинаков. За каждый сет, мы считаем ошибку, отняв от идеального ответа, полученный. Далее, либо возводим в квадрат, либо вычисляем квадратный тангенс из этой разности, после чего полученное число делим на количество сетов.
Функция активации
Функция активации — это способ нормализации входных данных (мы уже говорили об этом ранее). То есть, если на входе у вас будет большое число, пропустив его через функцию активации, вы получите выход в нужном вам диапазоне. Функций активации достаточно много поэтому мы рассмотрим самые основные: Линейная, Сигмоид (Логистическая) и Гиперболический тангенс. Главные их отличия — это диапазон значений.
Линейная функция
Эта функция почти никогда не используется, за исключением случаев, когда нужно протестировать нейронную сеть или передать значение без преобразований.
Это самая распространенная функция активации, ее диапазон значений [0,1]. Именно на ней показано большинство примеров в сети, также ее иногда называют логистической функцией. Соответственно, если в вашем случае присутствуют отрицательные значения (например, акции могут идти не только вверх, но и вниз), то вам понадобиться функция которая захватывает и отрицательные значения.
Гиперболический тангенс
Имеет смысл использовать гиперболический тангенс, только тогда, когда ваши значения могут быть и отрицательными, и положительными, так как диапазон функции [-1,1]. Использовать эту функцию только с положительными значениями нецелесообразно так как это значительно ухудшит результаты вашей нейросети.
Что такое нейронная сеть?
Нейронная сеть — это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Заинтересовавшимся обязательно к просмотру 2 видео из TED Talks: Видео 1, Видео 2). Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов передающих информацию в виде электрических импульсов.
Для чего нужны нейронные сети?
Нейронные сети используются для решения сложных задач, которые требуют аналитических вычислений подобных тем, что делает человеческий мозг. Самыми распространенными применениями нейронных сетей является:
Классификация — распределение данных по параметрам. Например, на вход дается набор людей и нужно решить, кому из них давать кредит, а кому нет. Эту работу может сделать нейронная сеть, анализируя такую информацию как: возраст, платежеспособность, кредитная история и тд.
Предсказание — возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.
Распознавание — в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.
Теперь, чтобы понять, как же работают нейронные сети, давайте взглянем на ее составляющие и их параметры.
Тренировочный сет
Тренировочный сет — это последовательность данных, которыми оперирует нейронная сеть. В нашем случае исключающего или (xor) у нас всего 4 разных исхода то есть у нас будет 4 тренировочных сета: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.
Что читать? (очень важный вопрос!)
Литературы немного, поэтому привожу почти полный список книг из 24 наименований. Воздержусь от критики — предоставлю это читателям. Лишь посоветую для первого знакомства выбрать книгу, значащуюся в списке последней.
- Вавилов Е. И. и др. Синтез схем на пороговых элементах. — М.: Советское радио, 1970.
- Веденов А. А. Моделирование элементов мышления. — М.: Наука, 1988.
- Галушкин А. И. Синтез многослойных схем распознавания образов. — М.: Энергия, 1974.
- Горбань А. Н. Обучение нейронных сетей. — М.: СП «ПараГраф», 1990.
- Гутчин И. Б., Кузичев А. С. Бионика и надежность. — М.: Наука, 1967.
- Дискуссия о нейрокомпьютерах / Под ред. В. И. Крюкова. — Пущино, 1988.
- Дунин-Барковский В. Л. Информационные процессы в нейронных структурах. — М.: Наука, 1978.
- Ивахненко А. Г. Персептроны. — Клев: Наукова думка, 1974.
- Итоги науки и техники: Сер. «Физ. и матем. модели нейронных сетей» / Под ред. А. А. Веденова. Т. 1-5. 1990-1992.
- Крайзмер Л. П. и др. Память кибернетических систем. — М.: Советское радио, 1971.
- Мкртчян С. О. Проектирование логических устройств ЭВМ на нейронных элементах. — М.: Энергия, 1977.
- Позин И. В. Моделирование нейронных структур. — М.: Наука, 1970.
- Степанян А. А., Архангельский С. В. Построение логических схем на пороговых элементах. — Куйбышевское книжное изд-во, 1967.
- Транспьютерные и нейронные ЭВМ / Под ред. В. К. Левина и А. И. Галушкина. — Российский дом знаний, 1992.
- Фролов А. А., Муравьев И. П. Информационные характеристики нейронных сетей. — М.: Наука, 1988.
- Фролов А. А., Муравьев И. П. Нейронные модели ассоциативной памяти. — М.: Наука, 1987.
- Цыганков В. Д. Нейрокомпьютер и его применение. — М.: «Сол Систем», 1993.
- Дертоузос М. Пороговая логика. — М.: Мир, 1967.
- Кохонен Т. Ассоциативная память. — М.: Мир, 1980.
- Кохонен Т. Ассоциативные запоминающие устройства. — М.: Мир, 1982.
- Минский М., Пайперт С. Персептроны. — М.: Мир, 1971.
- Нильсен Н. Обучающиеся машины. — М.: Мир, 1967.
- Розенблатт Ф. Принципы нейродинамики. — М.: Мир, 1964.
- Уоссермен Ф. Нейрокомпьютерная техника. — М.: Мир, 1992.
Начал выходить журнал «Нейрокомпьютер». Адрес для переписки с редакцией: 107078, Москва, а/я 133; тел.: (095) 154-01-51.
Вот, собственно, и все, о чем я хотел сказать в этой статье. Спасибо за письма. Пишите, приезжайте на семинар. Наш адрес: 660036, Красноярск-36, ВЦ СО РАН, НейроКомп.
1. Марвин Минский — американский исследователь, создатель теории перцептрона, знаменитый, кроме всего прочего, своим пессимизмом. В частности, одна из его работ спровоцировала задержку нейрокомпьютерных исследований на целое десятилетие.
Об авторе: Александр Николаевич Горбань — докт. физ. -мат. наук, профессор, заведующий кафедрой НейроЭВМ Красноярского государственного технического университета, заведующий лабораторией ВЦ СО РАН.
Статья опубликована в журнале «Мир ПК» № 10, 1994 г., стр. 126.
Перепечатывается с разрешения автора.
Нейрокомпьютинг, как новое направление науки, ведет свою историю с середины 40-х, когда Маккаллок и Питтс опубликовали свою работу «Логическое исчисление идей, относящихся к нервной активности» [1], в которой изложили принципы функционирования искусственного нейрона. Дальнейшие исследования в 50-х — 60-х годах в мире и в нашей стране подогрели интерес к этой новой области науки. Выход в свет фундаментальных работ Минского, в которых он теоретически доказал, что отдельные нейронные парадигмы не способны решать некоторые задачи, в частности, с помощью однослойного персептрона нельзя решить задачу «исключающего или», фактически затормозил развитие нейрокомпьютинга, практический интерес к нейронным сетям быстро угас и переместился в теоретическую плоскость.
Такое положение сохранялось почти три десятка лет, до середины 80-х. Конец 80-х — начало 90-х характеризуются сначала робким, а потом бурным возрождением интереса к нейронным сетям во всем мире. В России его массовый всплеск проявится позднее — лет через пять, в середине 90-х. А в мире события развиваются достаточно бурно. Резко увеличивается число конференций по нейронной тематике, регулярно проводятся конференции IEEE, посвященные исключительно нейронным сетям, секции по нейронной тематике начинают появляться в различных симпозиумах, посвященных обработке сигналов, робототехнике, авионике и т.д. Лавинообразно нарастает объем литературы, выпускаются сначала десятки, а потом сотни книг по нейронным сетям. А в России — тишина, лишь отдельные коллективы либо продолжают заниматься исследованиями в области нейрокомпьютинга, как делали это уже много лет, либо, отследив всплеск интереса, начинают заниматься этой тематикой. Но уже к 1992 году таких коллективов было не так уж и мало:
- в Научном центре нейрокомпьютеров (Москва) под руководством профессора Галушкина;
- в Институте проблем управления РАН (Москва), лаборатория под руководством признанного корифея в области адаптивного управления академика Цыпкина;
- в Институте высшей нервной деятельности РАН (Москва) под руководством академика Фролова;
- в Институте нейрокибернетики (Ростов-на Дону) под руководством профессора Дунина-Барковского;
- в лаборатории Сибирского отделения ВЦ РАН (Красноярск) под руководством профессора Горбаня [3];
- в ряде НИИ минобороны и спецслужб;
- в МИФИ, МФТИ, МАИ, МИРЭА, МИЭМ, КрГТУ (Красноярск), РГТУ (Ростов-на-Дону), ЛПИ и др.
Разумеется, перечислить всех, кто в то время занимался нейрокомпьютингом невозможно, поскольку, помимо представленных известных имен, существовало множество небольших научных коллективов и групп, работающих в этой области. Дело в том, что нейрокомпьютерные исследования в России проводились разрозненно, отдельные коллективы не знали про разработки коллег из других городов, что, несомненно, шло во вред развитию нейрокомпьютинга в России. Скажем, профессор Горбань из Красноярска был в свое время весьма удивлен тем, что в Москве серьезно занимаются нейрокомпьютерными исследованиями. Ответное удивление последовало и со стороны столичных разработчиков. И такие случаи не были редкостью.
К 1992 году было создано Российское общество по нейронным сетям (RNNS) — по аналогии со Всемирным обществом по нейронным сетям (WNNS). Под его эгидой в октябре 1992 года в Ростове-на-Дону прошла первая Международная конференция по нейроинформатике и нейрокомпьютингу. Участниками той конференции стали такие гранды нейрокомпьютинга, как Роберт Хехт-Нильсен [2], глава компании HNC, занимающейся выпуском нейрокомпьютеров, Роберт Маркс, координатор IEEE по нейронным сетям, Дональд Вюнш, представлявший корпорацию Boeing и др. Общение с ними оказалось весьма полезным для российских участников конференции.
Годом раньше на базе Омского университета была проведена Всероссийская студенческая олимпиада по нейрокомпьютингу. К сожалению, первая олимпиада оказалась и последней. А жаль, ведь сейчас во многих отечественных вузах читаются курсы по нейрокомпьютингу, причем преподавание ведется разными научными школами, и было бы весьма интересно провести очередную всероссийскую олимпиаду, которая была бы полезна всем. К сожалению, пока это остается мечтой. Начиная с 1993 года, в Красноярске ежегодно проводится конференция по нейрокомпьютингу, доклады на которую присылаются со всей страны. Она фактически стала первой регулярной российской конференцией по нейронным сетям. В МИФИ стали ежегодно проводить школу-семинар «Нейроинформатика», переросшую впоследствии во всероссийскую конференцию. Прошли также несколько специализированных семинаров по нейронной тематике (как, например, совместный российско-британский семинар «Нейроинформатика-90»). Нельзя сказать, что в России совсем уж не уделяли внимания нейронным сетям, но исследований проводилось мало.
С задержкой почти на пять лет нейрокомпьютерный бум докатился, наконец, и до России. Начал издаваться достаточно большой объем литературы по нейрокомпьютингу, в том числе и переводной, выпускаются периодические журналы, проводятся конференции. В стране назрел «нейрокомпьютерный взрыв».
В 1996 году московская компания «Тора-Центр» начинает беспрецедентную акцию — продажу в России лицензионного пакета моделирования нейронных сетей BrainMaker производства California Scientific Software. Пакет предназначался для моделирования многослойных нейронных сетей с полными последовательными связями, обучаемыми по методу обратного распространения ошибки (error backpropagation), оказался прост в использовании и предоставлял много возможностей по изменению топологии многослойной сети и алгоритма обучения [4], хотя и был несколько сложен для первого восприятия. В пакете не было предусмотрено защиты от копирования, он размещался на стандартной 3,5-дюймовой дискете. При этом разработчиком было особо оговорено, что BrainMaker ориентирован в первую очередь на решение финансовых задач, и основными его потребителями должны стать банки и крупные финансовые компании — сектор рынка, где в то время были сосредоточены основные отечественные финансовые ресурсы. Расчет оказался верным — благодаря мощной рекламной поддержке нейропакет BrainMaker приобрел в России небывалую популярность; спустя некоторое время он даже появился на пиратских компакт-дисках.
В тот период появились и другие нейропакеты, например, AI Trilogy от Ward Systems Group и в продажу поступил нейрокомпьютерный ускоритель CNAPS компании Adaptive Solutions, представляющий собой аппаратный ускоритель, построенный на базе одного или нескольких нейрочипов того же производителя. По оценкам, для некоторых задач он может дать выигрыш в производительности до 1000 раз по сравнению с самым передовым на тот момент компьютером с процессором Pentium. Выпускался CNAPS до 1997-1998 годов, после чего был снят с производства, скорее всего, по причине нерентабельности.
Слово «нейро» становится в России модным — почти каждый уважающий себя банк считает долгом купить лицензионный нейропакет и поставить красивую белую коробку на полку. К сожалению, политика компании «Тора» не предусматривала дальнейшего информационного и методического сопровождения своего детища, а консультации по разработке нейросетевых алгоритмов с использованием этого нейропакета пропагандировались, в основном, на бумаге. Поэтому большое количество купленных нейропакетов так и осталось пылиться на полках. Несмотря на это и, невзирая на то, что отдельные пользователи восприняли нейропакет как «средство от всех бед», который сам по себе может решить любую задачу, а бездумное использование нейропакета привело к определенной дискретизации нейрокомпьютинга, проведенная акция стала громадным шагом на пути нейрокомпьютеризации страны, ибо массовый разработчик узнал, что существует новый класс алгоритмов под названием «нейронные сети» и что с их помощью можно эффективно решать различные задачи.
Судьба же аппаратного нейрокомпьютерного ускорителя CNAPS более печальна. Мощный нейроускоритель был нужен для решения только суперзадач, которых не так уж и много, а для решения подавляющего большинства задач достаточно ПК и пакета моделирования нейронных сетей, того же BrainMaker, например. Поэтому нейроускоритель оказался просто невостребован рынком, к тому же его цена в несколько тыс. долл. и необходимость освоения специфичного программного обеспечения отпугивала потенциальных потребителей. Фактически вопрос был поставлен ребром — «а нужен ли нейроускоритель для решения обычных задач», и на него был получен отрицательный ответ. Количество проданных экземпляров нейроускорителя можно было пересчитать по пальцам. Правда, компания «ОГО», занимавшаяся зерновыми поставками, активно доказывала, как она эффективно использует нейроускоритель для решения своих задач, но, по всей видимости, это была в основном рекламная акция. Постепенно интерес к CNAPS затих. Когда позднее в Siemens попытались повторить этот путь и внедрить на российский рынок свой нейрокомпьютер Synaps-1 стоимостью 400 тыс. долл., то натолкнулась на ту же самую проблему — нейрокомпьютер оказался невостребованным.
Это, конечно, не означает, что аппаратные нейроускорители и нейрокомпьютеры не нужны — просто они используются узким кругом коллективов, занимающихся решением именно суперзадач, а массовому пользователю они действительно ни к чему. Для справки, в России ряд научных коллективов имеют в своем распоряжении и нейрокомпьютеры и супермашины для моделирования нейронных сетей, но их мало.
После первого, самого сложного и драматичного этапа становления нейрокомпьютинга наступил следующий, современный этап. Нейронным сетям, наконец, отдали должное. Они широко применяются практически повсюду: в маркетинговых исследованиях; в радио- и гидролокации; в системах управления; в системах принятия решений; в экспертных системах и многих других областях.
Перспективы развития нейрокомпьютинга можно охарактеризовать широко известной фразой: «Кто не был — побудет, а кто был — не забудет». Действительно, человек, один раз успешно применивший нейросетевую технологию и получивший положительный результат, будет стремиться применять в своей работе нейронные сети и далее, осознавая их преимущества перед другими алгоритмами. Те же, кто еще не сталкивался с нейронными сетями, неизбежно с ними столкнутся, поскольку нейрокомпьютинг становится поистине массовой наукой.
Что же касается прогнозов, которые, как известно, дело неблагодарное, то попробую их сделать. На мой взгляд, есть два объективных критерия, по которым можно оценивать будущее тех или иных разработок: использование в военной сфере, а также применение в ширпотребовской бытовой технике. Так было и с обычными компьютерами, появившись на свет в середине века, которые поначалу использовались для военных целей, а затем стали массовым явлением, найдя свое место среди предметов широкого потребления. То же самое происходит и с нейрокомпьютингом — вначале использование в военных целях, а затем в быту. Уже сейчас в открытой печати иногда попадаются заметки, что та или иная фирма создала и внедрила нейросетевой блок системы управления истребителем, использовала нейрочипы в системах наведения ракет или применила нейросетевые методы обработки для распознавания целей в радиолокаторах и так далее. Скорее всего, это означает, что область применения нейросетевых технологии гораздо шире, поскольку большинство разработок все же засекречены. С другой стороны, уже сейчас наблюдается внедрение нейрокомпьютеров в обычные бытовые приборы — примерами могут служить кондиционеры LG со встроенным нейросетевым блоком интеллектуального управления, стиральные машины Samsung с чипом нечеткой логики внутри (это хоть и не «нейро», но близко), бытовые видеокамеры Panasonic с нейронечеткой системой наводки на резкость (список при желании можно продолжить) и, наконец, исследования Microsoft по созданию нейросетевой системы распознавания речи для будущих операционных систем.
Все это свидетельствует о том, что нейрокомпьютинг занимает все более прочные позиции в нашей повседневной жизни. Конечно, было бы глупо утверждать, что в ближайшем будущем нейрокомпьютеры заменят собой обычные компьютеры. Этого не произойдет ни сейчас, ни потом, поскольку «нейроподход» эффективен не для всех задач. Но там, где нейротехнологии имеют неоспоримые преимущества перед другими алгоритмическими методами неизбежно постепенно произойдет замена существующих аппаратных средств и программ на нейрокомпьютеры и нейросетевое программное обеспечение.
Литература
[1] Мак-Каллок У.С., Питтс В. Логическое исчисление идей, относящихся к нервной активности. «Нейрокомпьютер», 1992, №3,4
[2] Роберт Хехт-Нильсен. Нейрокомпьютинг: история, состояние, перспективы. «Открытые системы», №4-5,1998
[3] Александр Горбань. Нейроинформатика и ее приложения. «Открытые системы», 1998, №4-5
[4] Сергей Блинов. BrainMaker — прогнозирование на финансовых рынках. «Открытые системы», 1998, №4-5
В каких областях преимущества нейронных систем наиболее очевидны?
Поясню этот вопрос. Самообучающиеся системы известны давно. Теория адаптивных регуляторов хорошо разработана, они широко применяются в технике. Зачем, казалось бы, огород городить: называть старые вещи новыми именами, добавляя «всего-навсего» лишние ограничения — специальную «нейроподобную» структуру?
С разной степенью резкости такие замечания отпускают в адрес нейроинформатики многие специалисты в теории управления. Правы ли они? Как водится — и да и нет: все зависит от контекста, в котором обсуждается проблема. Если нас в первую очередь интересуют алгоритмы адаптации и оптимального управления, то здесь нейроинформатика не принесла революционных новшеств. Она осваивает уже разработанные методы и пытается их приспособить для конструирования все более эффективных нейронных систем.
Если же нас интересует производительность вычислительных машин, то в этом контексте нейронная структура становится чрезвычайно важной. Хорошо известна гипотеза Минского[1]: реальная производительность параллельной системы из n процессоров растет как lg n (т. е. производительность системы из 100 процессоров выше производительности 10-процессорной системы всего вдвое: процессоры дольше ждут своей очереди, чем собственно вычисляют). Однако если вы сконструировали для решения задачи нейронную сеть, то параллелизм может быть использован практически полностью — и производительность растет почти пропорционально n (числу нейронов в сети).
Традиционная схема формального нейрона изображена на рисунке.
Сумматор Е получает скалярное произведение вектора входных сигналов на вектор весовых коэффициентов ai> и передает полученный сигнал А нелинейному преобразователю, который вычисляет f(А) и передает этот сигнал дальше — на выход или, через точку ветвления, другим нейронам. Конкретный вид функции f не очень важен (можно использовать и sin, и многочлены). В наших программах обычно f(А) = A/(const+|A|).
Сеть из формальных нейронов может быть эффективно, с максимальной производительностью реализована на многих параллельных системах. При этом возникают ограничения (правда, не очень существенные) на структуру связей.
Задача реализации нейронной сети на параллельной вычислительной системе намного проще, чем задача «распараллеливания» произвольного алгоритма. Главное преимущество нейронных сетей в том, что они хорошо приспособлены для параллельных вычислений, успешно опровергая гипотезу Минского (это их маленькая месть пессимисту).
Заключение
В заключении могу сказать нейросетям еще очень и очень далеко до уровня мозга человека. Однако они уже сейчас являются очень эффективным инструментом во многих сферах: системы управления, распознавание изображений, робототехника и т.д.
Постоянное развитие нейросетей, и, в частности, искусственного интеллекта, привлекает огромные средства в этот рынок. Более того, перспективность искусственного интеллекта создает огромное количество рабочих мест для квалифицированных специалистов. Именно нейросетями занимаются как гиганты-корпорации Google, Microsoft, Amazon, так и многочисленные стартапы со всего мира.
/ фото Paweł Czerwiński Unsplash
Избыточность — это хорошо или плохо?
Результат обучения нейронной сети зафиксирован в значениях весовых коэффициентов ai (значения весов связей, см. рисунок). Одну и ту же задачу могут решать сети с различным количеством связей. Возникают вопросы: стремиться ли минимизировать число связей и для чего нужна их избыточность (т. е. увеличение числа связей по сравнению с минимально необходимым)? Ведь она повышает стоимость реализации системы: либо требуется больше элементов, либо увеличивается время работы. Однако при этом есть и очевидные преимущества.
Во-первых, обучать систему с минимальным числом связей труднее и дольше, чем систему с избыточностью.
Во-вторых, увеличение избыточности нейронной системы повышает ее надежность. Приведу пример. Обучаю нейроимитатор EYE (10 нейронов, 100 связей) распознавать четыре японских иероглифа (солнце, собака, мужчина, женщина). Весовые коэффициенты связей распределились в установленных пределах: от -1 до 1. Добавляю к весовым коэффициентам связей случайные числа, равномерно распределенные между -0,1 и 0,1. Распознавание нарушилось. Доучиваю сеть и снова добавляю случайные возмущения — пока не появятся ошибки, потом снова доучиваю и т. д. Через несколько циклов устойчивость сети к возмущениям становится фантастической, даже подозрительно фантастической — если человек впервые наблюдает этот эффект, ему хочется проверить: а нет ли здесь какого-нибудь надувательства? Но нет, все чисто, а сеть выдерживает случайные возмущения весовых коэффициентов связей до 50-80%, и это — благодаря избыточности.
В-третьих, после такой процедуры обучения для реализации нейронной сети можно использовать элементы с большим случайным разбросом параметров, а также с характеристиками, нестабильными во времени. Другой вопрос — кому это нужно? Где нам встречались такие системы?
Вспомним АВМ — аналоговые вычислительные машины. Точность у них была небольшая, зато быстродействие отменное, и параллелизм достигался высокий. Да и возраст у них почтенный — еще в 1876 году (да-да, одна тысяча восемьсот. — это не опечатка) в трудах Королевского Научного общества Томпсоном были описаны параллельные аналоговые системы с обратной связью.
Старые АВМ были неуниверсальны — они умели решать только дифференциальные уравнения, да и то не любые, а лишь те, для которых удавалось собрать систему интеграторов. А что если на аналоговых элементах реализовать нейронные сети? Универсальность и устойчивость к ошибкам обеспечит нейросетевая технология, а быстродействием эти элементы уже обладают. Кроме того, они очень дешевы. Почему бы не попробовать? Люди и попробовали. В Японии и России, в США и Бразилии и много еще где. Результаты вдохновляют. Быстродействие аналоговых нейронных сетей лимитируется лишь скоростью света. Нейронные сети обычно решают задачи за несколько тактов, поэтому в целом решение даже сложных задач обученной сетью занимает малое время — наносекунды. А это уже — новые горизонты технологии.
Игрушка ли нейрокомпьютер?
Это часто скорее не вопрос, а крик души: «Нейрокомпьютеры — не игрушка! Они находят серьезное применение — неужели вы не знаете?!»
Знаю и готов перечислить наиболее важные и типичные области их использования.
Управление в реальном времени:
- самолетами и ракетами,
- технологическими процессами непрерывного производства (металлургического, химического и др.).
- человеческих лиц,
- букв и иероглифов,
- сигналов радара и сонара,
- отпечатков пальцев в криминалистике,
- элементарных частиц и происходящих с ними физических процессов (эксперименты на ускорителях или наблюдение за космическими лучами),
- заболеваний по симптомам (в медицине),
- местностей, где следует искать полезные ископаемые (в геологии, по косвенным признакам).
- погоды,
- курса акций (и других финансовых показателей),
- исхода лечения,
- политических событий (результатов выборов, международных отношений и др.),
- поведения противника (реального или потенциального) в военном конфликте и в экономической конкуренции,
- устойчивости супружеских отношений.
Оптимизация — поиск наилучших вариантов:
- при конструировании технических устройств,
- при выборе экономической стратегии,
- при подборе команды (от сотрудников предприятия до спортсменов и участников полярных экспедиций),
- при лечении больного.
Обработка сигналов при наличии больших шумов.
Список можно продолжить, но сказанного уже достаточно, чтобы утверждать: нейрокомпьютер — не только для игры. И все же я стою на своем: главным мотивом развития нейроинформатики является любопытство, желание поиграть с новой игрушкой, обладающей почти человеческим интеллектом. Любую задачу из перечисленных можно, в принципе, решить и без нейронных сетей — чуть лучше или хуже, чуть медленнее или быстрее. Обилие областей применения нейрокомпьютера вовсе не обязательно означает его практическую ценность — оно может просто свидетельствовать о расширении круга поклонников новой игры.
Очевидное преимущество нейронных сетей — универсальность: они превращают разные задачи в однотипные. Но и универсальность, если разобраться, может достигаться другими средствами. Поэтому вполне резонно возникает второй вопрос.
Что такое синапс?
Синапс это связь между двумя нейронами. У синапсов есть 1 параметр — вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. У того нейрона, у которого вес будет больше, та информация и будет доминирующей в следующем нейроне (пример — смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов — это своеобразный мозг всей системы. Именно благодаря этим весам, входная информация обрабатывается и превращается в результат.
Важно помнить, что во время инициализации нейронной сети, веса расставляются в случайном порядке.
В чем истинные преимущества нейрокомпьютеров?
Верный своему подходу (нейрокомпьютер — игрушка), я могу ответить так: давайте поиграем, а там видно будет; ведь не сразу же мы узнали, к чему приведет распространение персональных компьютеров. Однако. Так-то оно так, но все же кое-что можно определить тут же (миллиард нейронов в нашей голове тоже иногда способен предсказывать!).
Преимущество первое: все алгоритмы нейроинформатики высокопараллельны, а это уже залог высокого быстродействия.
Преимущество второе: нейросистемы можно легко сделать очень устойчивыми к помехам и разрушениям.
Преимущество третье: устойчивые и надежные нейросистемы могут создаваться и из ненадежных элементов, имеющих значительный разброс параметров.
Итак, параллельность и быстродействие, устойчивость и надежность, низкие требования к стабильности и точности параметров элементной базы. Что это — грядущие технические чудеса или недобросовестная реклама модного продукта?
Попробуем разобраться по порядку.
1.2. Нейронная сеть
Нейрон (нервная клетка) является особой биологической клеткой, которая обрабатывает информацию (рис. 1). Она состоит из тела клетки (cell body), или сомы (soma), и двух типов внешних древоподобных ветвей: аксона (axon) и дендритов (dendrites). Тело клетки включает ядро (nucleus), которое содержит информацию о наследственных свойствах, и плазму, обладающую молекулярными средствами для производства необходимых нейрону материалов. Нейрон получает сигналы (импульсы) от других нейронов через дендриты (приемники) и передает сигналы, сгенерированные телом клетки, вдоль аксона (передатчик), который в конце разветвляется на волокна (strands). На окончаниях этих волокон находятся синапсы (synapses).
Синапс является элементарной структурой и функциональным узлом между двумя нейронами (волокно аксона одного нейрона и дендрит другого). Когда импульс достигает синаптического окончания, высвобождаются определенные химические вещества, называемые нейротрансмиттерами. Нейротрансмиттеры диффундируют через синаптическую щель, возбуждая или затормаживая, в зависимости от типа синапса, способность нейрона-приемника генерировать электрические импульсы. Результативность синапса может настраиваться проходящими через него сигналами, так что синапсы могут обучаться в зависимости от активности процессов, в которых они участвуют. Эта зависимость от предыстории действует как память, которая, возможно, ответственна за память человека.
Искусственный нейрон является структурной единицей искусственной нейронной сети и представляет собой аналог биологического нейрона.
С математической точки зрения искусственный нейрон — это сумматор всех входящих сигналов, применяющий к полученной взвешенной сумме некоторую простую, в общем случае, нелинейную функцию, непрерывную на всей области определения. Обычно, данная функция монотонно возрастает. Полученный результат посылается на единственный выход.
Искусственные нейроны (в дальнейшем нейроны) объединяются между собой определенным образом, образуя искусственную нейронную сеть. Каждый нейрон характеризуется своим текущим состоянием по аналогии с нервными клетками головного мозга, которые могут быть возбуждены или заторможены. Он обладает группой синапсов – однонаправленных входных связей, соединенных с выходами других нейронов, а также имеет аксон – выходную связь данного нейрона, с которой сигнал поступает на синапсы следующих нейронов.
Нейро́нная сеть (также искусственная нейронная сеть, ИНС) — математическая модель, а также её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма.
Говоря простым языком, нейронные сети – это сложные математические модели, принцип работы которых максимально приближен к принципу работы нервных клеток у животных.
Нейрон – это элемент нейросети, который можно визуализировать как коробочку с несколькими входными и одним выходным отверстием. Синапсы(сигналы) имеют свой вес, преобладание которого формирует исходящий из нейрона сигнал. Именно сеть таких синапсов и формирует нейросетевой комплекс.
Нейросети используются, например, в машинном обучении, выполняя различные прикладные задачи. В данном случае нейросеть используется как способ распознавания образов.
Применение нейросетей в математике позволяет решать сложные задачи с многими входными параметрами. Они также используются и в робототехнике, реализуя некоторые системы адаптивного управления устройством.
Одна из главных областей использования – искусственный интеллект. Здесь нейросеть является главным элементом в моделировании ИИ при помощи различных вычислительных формул.
Теперь самое чумовое в нейронной сети-это способность обучаться.
Одним из главных преимуществ нейросети над другими алгоритмами, является способность последовательного обучения нейросети. Если говорить простым языком, процесс обучения подразумевает собой нахождение новых связей между нейронами, а также нахождение зависимостей между элементами цепи.
Нейронный процессор (англ. Neural Processing Unit, NPU или ИИ-ускоритель англ. AI accelerator) — это специализированный класс микропроцессоров и сопроцессоров (часто являющихся специализированной интегральной схемой), используемый для аппаратного ускорения работы алгоритмов искусственных нейронных сетей, компьютерного зрения, распознавания по голосу, машинного обучения и других методов искусственного интеллекта.
Нейронные процессоры относятся к вычислительной технике и используются для аппаратного ускорения эмуляции работы нейронных сетей и цифровой обработки сигналов в режиме реального времени. Как правило, нейропроцессор содержит регистры, блоки памяти магазинного типа, коммутатор и вычислительное устройство, содержащее матрицу умножения, дешифраторы, триггеры и мультиплексоры.
Конференция «Нейрокомпьютеры и их применение»
В феврале в Москве состоялась VII Всероссийская конференция «Нейрокомпьютеры и их применение». Несмотря на то, что в ее работе не приняли участие ряд успешно работающих в этой области фирм, например, «Тора-Центр», «НейрОК», «Модуль», анализ выступлений и состава развернутой в рамках конференции выставки, позволяет сделать определенный срез по текущему состоянию отечественных работ в области нейротехнологий.
- нейрокомпьютеры общего назначения;
- нейрокомпьютеры для обработки изображений;
- нейрокомпьютеры для управления динамическими системами;
- нейрокомпьютеры для обработки сигналов;
- нейрокомпьютеры в биометрических средствах безопасности;
- нейрокомпьютеры в информационных и экспертных системах;
- нейрокомпьютеры в обработке речевой информации;
- нейрокомпьютеры в медицине;
- нейрокомпьютеры в АСУ технологическими процессами;
- нейрокомпьютеры в финансовой деятельности;
- элементная база нейрокомпьютеров;
- теория нейронных сетей;
- нейроматематика;
- нейрокомпьютеры и мягкие вычисления;
- философские и методологические проблемы нейрокомпьютеров.
В рамках конференции прошла выставка действующих образцов нейрокомпьютерного оборудования и программного обеспечения. Свои работы продемонстрировали ИПУ РАН, НИИ Радио, НПИЦ «Микросистемы», Центр нанотехнологий, «Инструментальные системы», «Интрасофт», Scan Engineering Telecom (Воронеж), «Нейропроект», МГУ, МГТУ, МГИРЭА, МИФИ, МФТИ, ПГУ (Пенза) и другие организации.
Компания «Интрасофт» представила мультимедийный программный комплекс «Профессор Хигинс. Английский без акцента», включающий два независимых курса фонетики и грамматики. Обучаемый имеет возможность сравнивать свое произношение с эталонным, причем не только на слух, но и визуально, по специально разработанной графической системе визуализации и идентификации звука. Курс грамматики представлен в виде интерактивных упражнений и состоит из 100 уроков. Кстати, большая часть экспозиции выставки была посвящена средствам биометрической идентификации и обработке изображений; например, компания «Тринити» представила систему распознавания отпечатков пальцев различного качества и их последующей классификации.
Пензенский госуниверситет и Пензенский научно-исследовательский электротехнический институт представили системы биометрической аутентификации личности по голосу и по подписи — комплекс «Рубеж». Защита построена на разграничении и контроле доступа пользователей к ресурсам ПК, а также аутентификации личностей пользователей перед проведением ими сеанса работы по их биометрическим характеристикам. В качестве таких характеристик используются динамика ввода личной подписи и/или ввод контрольной речевой фразы.
Особый раздел выставки был посвящен системам цифровой обработки сигналов. Свои разработки представили компании Autex (ИПУ РАН), Scan Engineering Telecom, «Инструментальные системы». Наибольшее число решений было реализовано на базе цифровых сигнальных процессоров Texas Instruments и на ПЛИС. Одельный стенд был посвящен реализации оптических нейровычислителей. На стенде Scan Engineering Telecom можно было познакомиться с широкой линейкой высокопараллельных вычислителей, реализованных на базе DSP TI и ПЛИС от Xilinx. Здесь можно отметить ряд эффективных решений по созданию отдельных сегментов нейронных сетей и конструктивно законченных систем обработки на основе нейронных алгоритмов. Также на стенде были представлены инструментальные модули серии XDSP и специализированные библиотеки ЦОС — М-модули. Компания «Инструментальные системы» занимает одно из ведущих позиций в России по производству бортовой, промышленной и специализированной электроники — чувствуется многолетний опыт НИИ ВК. На выставке были представлены новейшие разработки: системы ЦОС на ASDP2106x, TMS320C54x, 6xxx, многоканальные системы сбора сигналов с разрядностью до 24 бит.
Компания «НейроПроект» представила аналитические системы многофункционального анализа и прогноза. Экспозиция знакомила с результатами научных исследований в области адаптивных вычислительных алгоритмов, программном обеспечении в области высокоинтеллектуальных технологий, методами решения практических задач с использованием методов искусственного интеллекта. Компания принимала участие в разработке ключевых компонентов большинства программных продуктов компании Ward Systems Group. Нейронные сети, генетические алгоритмы — это аналитические технологии, созданные и выверенные самой природой за миллионы лет ее существования. Они позволяют решать задачи прогнозирования, классификации, поиска оптимальных вариантов, и совершенно незаменимы в тех случаях, когда в обычных условиях решение задачи основано на интуиции или опыте, а не на ее строгом математическом описании, т.е. когда речь идет об обработке эвристических знаний. Основные области применений разработок «НейроПроекта»: аналитика в финансовой сфере, оптимальное управление в социально-экономических задачах, для прогнозирования результатов выборов и т.п.
Прошло уже много лет с того момента, когда появилась первая ЭВМ. За это время сменилось уже несколько поколений вычислительных машин. Менялись элементная база, конструктивные решения, языки программирования, программное обеспечение, но основы архитектуры, заложенные при создании машин первого поколения, практически без изменения перешли на машины последующих и успешно работают до настоящего времени. Нет сомнений, что идеи машин первого поколения ещё послужат человеку. Однако всё настоятельнее требуются системы, наделённые элементами интеллекта при обработке колоссального объёма информации и в то же время работающие в темпе управляемых процессов.
В таких прикладных областях деятельности человека, как космология, молекулярная биология, гидрология, охрана окружающей среды, медицина, экономика и многих других, сформулированы проблемы, решение которых потребует вычислительных машин, обладающих колоссальными ресурсами.
На сегодняшний день высокие технические характеристики реализуется только с помощью дорогостоящих уникальных архитектур от CRAY, SGI, Fujitsu, Hitachi с несколькими тысячами процессоров.
В настоящее время концептуально разработаны методы достижения высокого быстродействия, которые охватывают все уровни проектирования вычислительных систем. На самом нижнем уровне – это передовая технология конструирования и изготовления быстродействующей элементной базы и плат с высокой плотностью монтажа.
Теоретически совершенствование элементной базы – самый простой метод повышения производительности вычислительных систем. Однако на практике он приводит к существенному удорожанию новых разработок. Следовательно, требуется разработка новых принципов вычислений, позволяющих ставить и решать задачи подобного типа, а также способных значительно повысить скорость обработки традиционных вычислительных алгоритмов. К числу новых направлений можно отнести и нейрокомпьютеры.
Исходя из этого, мне стало интересно, из чего состоит нейрокомпьютер, что такое нейронная сеть и сможет ли нейронный компьютер затмить человеческий разум?
Чем занимается НейроКомп?
Это — традиционный вопрос. НейроКомп — группа красноярских исследователей, программистов, инженеров и пользователей, занимающаяся теоретическими исследованиями в области нейроинформатики и разрабатывающая программное обеспечение для решения конкретных прикладных задач. Кроме того, НейроКомп ведет работы по конструированию новых нейрокомпьютеров.
Как состав группы, так и ее «юридическое лицо» — состав и форма соучаствующих в работе организаций — со временем меняются. Хотя все началось в академических институтах, постепенно возрастает роль различных фирм и вузов.
Исследования по нейроинформатике начались в Красноярске с открытия В. А. Охониным (Институт биофизики СО РАН) принципа двойственности для обучения нейронных сетей (опубликовано в 1986 г.)[2]. Описание этого принципа заслуживает отдельной статьи. Если же говорить коротко, то его суть состоит в следующем. При обучении нейронной сети необходимо вычислять поправки к ее параметрам — весовым коэффициентам связей. Фактически решается задача оптимизации в пространстве очень большой размерности. Эта размерность долго была проклятием для разработчиков: нетрудно реализовать нейронную сеть так, чтобы все нейроны работали параллельно, однако для ее обучения приходится использовать другие системы и решать задачу оптимизации обычным — очень длительным — путем. Принцип двойственности позволяет вычислять поправки к параметрам с помощью той же системы связей, но имеющей обратную ориентацию (сигналы меняют направление движения). Если к возможностям нейронной сети добавить двойственное функционирование (с обращением движения сигнала и некоторыми другими дополнениями), то нейронная сеть начинает сама себя учить!
После этого группа НейроКомп несколько лет с переменным успехом соревновалась со всем миром в скорости обучения нейронных сетей. Удалось ускорить обучение на четыре порядка (по сравнению с исходными алгоритмами, основанными на принципе двойственности и методе обратного распространения ошибки). Создано несколько новых архитектур искусственных нейронных сетей, разработано прикладное программное обеспечение, заканчивается подготовка электронного учебника для студентов и школьников, готовится к выпуску новая серия универсальных прикладных программ.
Много времени ушло на пробную эксплуатацию нейроимитаторов и отработку технологии для решения различных прикладных задач: от обработки аэрокосмической информации до экономических и медицинских приложений.
Нейронные сети применялись нами для изучения и диагностики иммунодефицитных состояний, для прогнозирования возникновения или усугубления застойной сердечной недостаточности у больных с нарушениями ритма сердца, для прогнозирования последствий имплантации электрокардиостимулятора, для выявления накопленной дозы радиоактивного облучения по иммунологическим, гормональным и биохимическим параметрам крови.
Интересной оказалась работа с политическими предсказаниями. Мы набрались смелости и опубликовали прогноз последних президентских выборов в США до их проведения. Логика этого поступка проста: если мы предлагаем нейросетевых советчиков врачам, то должны доверить и свою репутацию нейропредсказателю. Наш прогноз оправдался: выбрали Клинтона.
Сотрудники группы НейроКомп много преподают — и у себя в Красноярске, и в других городах. Мы продолжаем распространять простейшие нейроимитаторы и книгу «Обучение нейронных сетей» за символическую плату (увы, принципы педагогики вступают в противоречие с коммерческим интересом). Мечтаем сделать регулярной Всероссийскую олимпиаду молодежи, студентов и школьников по нейроинформатике. Начали проводить ежегодные семинары «Нейроинформатика и ее приложения». Время проведения семинаров — конец первой недели октября, место — красноярский Академгородок.
Какие бывают нейронные сети?
Пока что мы будем рассматривать примеры на самом базовом типе нейронных сетей — это сеть прямого распространения (далее СПР). Также в последующих статьях я введу больше понятий и расскажу вам о рекуррентных нейронных сетях. СПР как вытекает из названия это сеть с последовательным соединением нейронных слоев, в ней информация всегда идет только в одном направлении.
Задача
Теперь, чтобы проверить себя, подсчитайте результат, данной нейронной сети, используя сигмоид, и ее ошибку, используя MSE.
Данные: I1=1, I2=0, w1=0.45, w2=0.78 ,w3=-0.12 ,w4=0.13 ,w5=1.5 ,w6=-2.3.
H1input = 1*0.45+0*-0.12=0.45
H1output = sigmoid(0.45)=0.61
H2input = 1*0.78+0*0.13=0.78
H2output = sigmoid(0.78)=0.69
O1input = 0.61*1.5+0.69*-2.3=-0.672
O1output = sigmoid(-0.672)=0.33
O1ideal = 1 (0xor1=1)
Результат — 0.33, ошибка — 45%.
Большое спасибо за внимание! Надеюсь, что данная статья смогла помочь вам в изучении нейронных сетей. В следующей статье, я расскажу о нейронах смещения и о том, как тренировать нейронную сеть, используя метод обратного распространения и градиентного спуска.
Первые нейроморфные чипы
Первые попытки создать искусственные нейроны предпринимались еще в 60-х годах прошлого века. Тогда один из будущих изобретателей микропроцессора Тэд Хофф (Ted Hoff) вместе с профессором из Стэнфорда Бернардом Уидроу (Bernard Widrow) создали одноуровневую нейросеть на основе мемисторов — электрохимических резисторов с функцией памяти. Считается, что эта разработка положила начало нейроморфной инженерии.
В 80-х годах инженер Карвер Мид (Carver Mead) предложил использовать транзисторы в качестве аналоговых компонентов, а не цифровых переключателей. В 90-х команда во главе с Мидом представила искусственный синапс, способный хранить информацию продолжительное время, и нейроморфный процессор на основе транзисторов с плавающим затвором.
В то же время американский президент Джордж Буш-старший объявил о начале «Десятилетия мозга» и призвал спонсировать программы, направленные на изучение этого органа. Все это дало толчок к развитию нейроинформатики и вычислительной нейробиологии и привело к созданию инфраструктуры для дальнейшего изучения темы.
За последние десять лет знания человечества о работе мозга достигли новых высот. С 2013 года Швейцария занимается развитием проекта Human Brain Project (HBP). В том же году Америка запустила программу BRAIN Initiative. Эти инициативы оказали серьезное влияние на сферу систем искусственного интеллекта и привели к появлению новых нейроморфных технологий.
1. Основная часть
Читайте также: