-
Ученые из Стэнфордского университета разработали и изготовили опытный образец компьютера, работа которого подражает работе головного мозга. За счет этого компьютер, который пока еще представляет собой печатную плату с установленными на нем чипами, размером с планшетный компьютер, демонстрирует на определенном виде задач производительность в 9 тысяч раз превышающую производительность обычного настольного персонального компьютера.
Давайте узнаем подробнее про это исследование …-
При создании электронного нейрокомпьютера учеными была использована их фирменная архитектура под названием Neurogrid. На плате нейрокомпьютера установлены 16 специализированных процессоров Neurocore, которые в сумме могут моделировать работу 1 миллиона нейронов и несколько миллиардов связей между нейронами, синапсов. За счет такого высокого уровня интеграции новый нейрокомпьютер демонстрирует в 40 тысяч большую эффективность с точки зрения соотношения вычислительной мощности к потребляемой энергии, чем процессоры обычных компьютеров.
 -
 -
Эффективность работы процессоров Neurocore достигается за счет того, что одни и те же элементы электронных схем могут использоваться для обеспечения работы сразу нескольких моделей нейронов и синапсов. Это позволяет процессорам Neurocore строить более обширные и сложные нейронные сети, нежели это могут сделать нейропроцессоры, созданные другими группами ученых.
Следующим шагом, который намерены предпринять Стэнфордские ученые, станет разработка программного обеспечения, при помощи которого инженеры и программисты смогут создавать программы для нейрокомпьютера Neurogrid, не имея обширных знаний в области нейробиологии и об архитектуре нейрокомпьютера.
«-Сейчас программирование нашего нейрокомпьютера является весьма сложной задачей, требующей достаточно большого количества высокоинтеллектуального труда»- —- рассказывает Квабена Боуэн (Kwabena Boahen), один из исследователей, принимавших участие в создании нейрокомпьютера, —- «-Мы же хотим создать такой пакет для разработки программного обеспечения, при помощи которого каждый человек, ничего не знающий о нейронах и синапсах, сможет разрабатывать программы, которые будут максимально эффективно использовать все возможности нейрокомпьютера Neurogrid»-.
Еще одной задачей, которая очень остро стоит перед исследователями, является задача снижения стоимости нейропроцессоров Neurocore. Сейчас изготовление нейрокомпьютера обходится приблизительно в 40 тысяч долларов, но ученые планирую снизить эту сумму до 400 долларов путем замены нейропроцессоров, изготовленных при помощи технологий 15-летней давности, на нейропроцессоры, изготовленные на современных технологических линиях с новыми возможностями. Параллельно с этим ученые планируют привести энергетическую эффективность будущего нейрокомпьютера к уровню, сопоставимому с эффективностью работы мозга человека. Ведь человеческий мозг, насчитывающий в 80 тысяч раз больше нейронов, потребляет всего в три раза большее количество энергии, нежели нейрокомпьютер Neurogrid.
 -
 -
Немного теории. Человеческий мозг содержит порядка нескольких миллиардов вычислительных элементов, называемых нейронами. Нейроны связаны между собой в сложную сеть. Эта сеть отвечает за все явления, которые мы называем мыслями, эмоциями, познанием и так далее, то есть на физиологическом уровне образует то, что называется на самом деле нервной системой, в свою очередь совокупность явлений в нервной системе можно назвать психикой, люди же обычные, особо не обремененные научной пунктуальностью, часто именуют последнюю словом «-интеллект»-. Каждый нейрон состоит из трех основных частей: самой клетки (сомы) и двух типов древовидных отростков - дендритов (их обычно очень много) и аксонов (обычно он один). Вообще-то, для нервной системы позвоночных характерны мультиполярные нейроны. В таком нейроне от клеточного тела отходят несколько дендритов и аксон. По правде говоря, структура, размеры и форма нейронов сильно варьируются. Например, периферические чувствительные нейроны вовсе не идентичны нейронам, составляющим мозг. Дендриты выполняют роль своеобразных «-входов»- для нервных импульсов, а аксон - «-выхода»-.
Скорость передачи нервных импульсов сравнительно мала, но несмотря на это скорость обработки информации в мозге огромна. Достигается это за счет того, что внешняя информация распределяется по множеству нейронов и обрабатывается ими одновременно, то есть реализуется максимально распараллеленная обработка информации. Но это все относится к вопросам биологического устройства, нас же больше интересует искусственная модель нейрона, та модель, которая была предложена учеными.
 -
 -
Общие принципы работы модели нейрона можно описать следующим образом: на входы нейрона поступают нервные сигналы от других нейронов. Каждый вход характеризуется собственным некоторым весовым коэффициентом, определяющим важность получаемой информации. Вдаваясь в грубую аналогию, весовой коэффициент объясняют как своего рода сопротивление (резистор, если нервный сигнал рассматривается как аналоговый электрический сигнал), оказываемое поступающему на конкретный вход нейрона нервному сигналу. Предварительно устанавливая величину такого «-сопротивления»- или же динамически изменяя его величину по определенным правилам в процессе работы нейронной сети, осуществляется как бы задание степени значимости информации, поступающей по данному входу нейрона, то есть в буквальном смысле задание меры подавления нервного сигнала.
Далее: полученные уже после весовых коэффициентов сигналы суммируются, затем итоговый сигнал операции суммирования преобразуется следом так называемой активационной функцией и подается на выход нейрона. Активационную функцию прокомментировать можно как механизм, обеспечивающий порог срабатывания, отзывчивости нейрона на сумму входных сигналов, перевод его в состояние возбуждения, а также возвращение в состояние покоя, то есть торможения. Затем выходной сигнал нейрона поступает на вход следующего нейрона, и все повторяется, пока не будет достигнут желаемый, то есть «-запрограммированный»- устройством нейронной сети результат.
Такая модель нейрона лишь в общих чертах отражает работу истинного нейрона головного мозга: активационная функция моделирует возбуждение нейрона, а весовые коэффициенты по входам имитируют прохождение сигналов через синапсы нейрона. Синапсы - специализированные функциональные контакты между возбудимыми клетками, служащие для передачи и преобразования сигналов. Кроме того, нейроны группируются в нейронные слои и образуют нейронную сеть.
Тип соединения нейронов и их количество в нейронной сети полностью определяет возможности последней: ее мощность и спектр задач, которые она призвана решать. В настоящее время существует более 200 разновидностей нейронных сетей. Но основной, самой распространенной и простой является сеть, получившая название многослойный персептрон. Персептрон, перцептрон (от латинского perceptio - понимание, познавание, восприятие) - математическая модель процесса восприятия. Модель восприятия (персептивная модель) может быть представлена в виде трех слоев нейронов: рецепторного слоя, слоя преобразующих нейронов и слоя реагирующих нейронов. Персептрон же состоит из слоя входных нейронов, слоя выходных и нескольких промежуточных слоев.
Многослойные нейронные сети обладают различной мощностью. Мощность нейронной сети, очевидно, будет зависеть от числа слоев и числа нейронов в каждом слое. Интуитивно можно предположить, что с увеличением количества слоев и нейронов качество нейронной сети улучшится, и это действительно так, но до некоторого предела, когда наращивание объема становится неэффективным. Уровень порога связан с размерностями входных и выходных данных, а также с внутренней структурой обрабатываемых данных.
Для того чтобы созданная сеть начала работать, ее необходимо обучить. Необученная сеть не имеет даже «-рефлексов»- - на любые внешние воздействия ее реакция будет хаотичной. Обучение состоит в многократном предъявлении множества чуть-чуть отличающихся характерных примеров распознаваемого элемента до тех пор, пока сеть не станет давать на выходе ожидаемый отклик.
Существуют алгоритмы обучения с учителем и без него. В первом случае в выработке весовых коэффициентов (обучении) участвует человек. Объясним доходчиво суть такого обучения: человек подает на вход спроектированной нейронной сети пример распознаваемого элемента, затем вручную, или посредством поддерживаемых сетью специальных возможностей, или вспомогательными утилитами сервисного обслуживания сетей настраивает весовые коэффициенты (буквально «-подкручивает сопротивления»-) у разных нейронов обучаемой сети, чтобы на ее выходе получился сигнал такой-то величины. Затем подает на вход сети следующий пример, едва-едва отличающийся от предыдущего, и теперь «-подкручивает сопротивления»- таким образом, чтобы и на прошлый, и на новый пример обучаемая нейронная сеть давала на выходе сигнал заданной или очень близкой к ней величины. То есть человек-учитель пытается достичь в настройках весовых коэффициентов как бы золотой середины. Следующий пример на вход - и следующая подстройка коэффициентов. В конце концов обученная таким образом сеть готова рефлекторно откликаться в форме заданного уровня сигнала на выходе при появлении на входе распознаваемого элемента, причем тот, в зависимости от длительности обучения, опознается в весьма широком диапазоне вариаций его появления.
Кстати, эти особенности обусловили значительную направленность нейронных сетей на задачи распознавания, в числе которых оказывается не только распознавание изображений, но и уверенная идентификация неких явлений, фаз изменения, преподнесенных на вход нейронной сети в виде состояний соответствующих «-участников»- явления, фазы или прочего- скажем, прогнозирование изменения курса валют требует идентификации, распознавания экономических состояний. В то же время указанные особенности нейронных сетей все-таки не способствуют воспроизведению актов подлинного мышления. Видимо, не нашлась пока уникальная свежая идея на этот счет.
Во втором случае - в случае обучения без учителя - сеть справляется сама, выполняя в принципе те же действия по подстройке весовых коэффициентов, только самообучение инициируется здесь фактом обнаруженного противоречия с имеющимися в нейронной сети знаниями, когда поступивший на вход элемент очень слабо или вовсе не распознается, но его непременно требуется как-то классифицировать.
Кратко объясним суть и этого обучения. В первую очередь для таких сетей предполагается, что они имеют в своем составе достаточный запас нейронных узлов, в которых будут храниться знания в виде настроенных весовых коэффициентов, или же что сеть в состоянии «-выращивать»- такие узлы, создавать и подключать их к себе самостоятельно. Во вторую очередь считается, что изначально заданы предельные границы расхождения результатов распознавания с наколенными знаниями, после которых элемент признается неизвестным. Грубо скажем, если более 50 процентов деталей элемента не распознаются, он считается неизвестным, вызывающим противоречие.
Итак, пусть сеть в начальный момент времени не обучена. На входе появляется подлежащий распознаванию элемент. Рождается противоречие с накопленным знанием, так как элемент вообще неизвестен, так как расхождение со знаниями в этом случае измеряется сотней процентов. Одному из свободных узлов сети передаются на вход зафиксированные сигналы от элемента, выход узла подразумевается быть всегда равным величине сигнала «-опознал»- (условно назовем так этот сигнал) или «-тишина»-, и уже внутри узла выполняется автоматическая подстройка весовых коэффициентов, заменяя ручную подгонку как в случае обучения с учителем.
Пусть теперь на вход сети поступил прошлый элемент, чуть измененный в вариации. Обученный нейронный узел, который тоже подключен ко входной магистрали, опознает элемент с погрешностью, допустим, в 30 процентов. Понятно, что выходной сигнал узла мы назвали в исключительной форме «-опознал»- для удобства, на самом же деле он изменяется в пределах от «-тишина»- (это же «-опознал на 0 процентов»-) до «-опознал на 100 процентов»-. Сеть, не обнаружив выхода за пределы границы расхождения, передает тому же узлу новый пример элемента, чтобы узел подстроил весовые коэффициенты на удачное опознание и первого примера, и второго примера одного и того же элемента.
Как только на входе появился неизвестный элемент, то есть когда ни один из обученных узлов не опознал элемент с точностью свыше 50 процентов, сеть передает сигналы от элемента следующему незадействованному в системе знаний узлу, который тоже по описанному выше сценарию попадает в систему накопленных нейронной сетью знаний. Этим и обеспечивается обучение сети без учителя, и как правило, подобный процесс происходит качественно, если удачно организовано взаимодействие сети с нейронными узлами.
 -
День сегодняшний
Сейчас нейросетевые технологии применяют во многих областях. Например, когда необходимо решить задачи такого рода: неизвестен алгоритм решения, но имеется множество примеров- исходные данные искажены или противоречивы- имеются большие объемы входной информации. Нейронные сети применяются для решения задач классификации, распознавания образов, оптимизации, прогнозирования и для многих других. Нейротехнологии используются также для распознавания текста со сканеров, проверок достоверности подписей, прогнозирования экономических показателей (например, прогнозирования курса валют), управления технологическими процессами и робототехникой, и прочее, прочее, прочее…-
Стоит особо отметить, что нейронные сети не нуждаются для решения задач в заранее составленном математическом алгоритме, они сами вырабатывают методику решения задачи в процессе обучения. В этом коренное отличие нейросетевых компьютеров от компьютеров классических, и их главное преимущество. Математический аппарат работы нейронных сетей несложен. Программирование не требует профессиональных изощрений: на каждом шагу - умножение вектора на матрицу с накоплением суммы. Сложность представляет адаптация алгоритма обучения нейронной сети под конкретную задачу - подбор и моделирование сети, предварительная обработка информации, оценка результатов.
Также нейронные сети имеют возможность роста. При этом сохраняется их структура и значительно увеличивается эффективность обработки информации. Достаточно сложно организованная сеть способна сама себя развивать. Это свойство может очень широко использоваться программистами будущего, которые смогут создавать небольшие нейронные сети и «-доращивать»- их до необходимой информационной мощности и емкости.
 -
источники
http://www.dailytechinfo.org/infotech/5856-stenfordskie-uchenye-sozdali-neyrokompyuter-rabota-kotorogo-podrazhaet-rabote-golovnogo-mozga.html
http://prof9.narod.ru/ainfo/ailenta_230.html
 -
Вот еще вам научные на мой взгляд любопытные статейки: вот например