Где не используются нейронные сети
Перейти к содержимому

Где не используются нейронные сети

  • автор:

Области практического применения искусственных нейронных сетей

Следующий текст (с небольшими изменениями и осовременивающими дополнениями) воспроизведен из книги: Ежов А.А, Шумский С.А. Нейрокомпьютинг и его применение в экономике и бизнесе. М.: МИФИ, 1998. — 224с.

  • Экономика и бизнес: прогнозирование временных рядов (курсов валют, цен на сырьё, спроса, объемов продаж. ), автоматический трейдинг (торговля на валютной, фондовой или товарной бирже), оценка рисков невозврата кредитов, предсказание банкротств, оценка стоимости недвижимости, выявление переоцененных и недооцененных компаний, рейтингование, оптимизация товарных и денежных потоков, считывание и распознавание чеков и документов, безопасность транзакций по пластиковым картам.
  • Медицина и здравоохранение: постановка диагноза больному (диагностика заболеваний), обработка и распознавание медицинских изображений (рентгеновских снимков, томограмм и т.д.), очистка показаний приборов от шумов, мониторинг состояния пациента, прогнозирование результатов применения разных методов лечения, анализ эффективности проведённого лечения.
  • Авионика: обучаемые автопилоты, распознавание сигналов радаров, адаптивное пилотирование сильно поврежденного самолета, беспилотные летательные аппараты (дроны), распознавание/детекция объектов на фото/видеосъёмке с дрона.
  • Связь: сжатие видеоинформации, быстрое кодирование-декодирование, оптимизация сотовых сетей и схем маршрутизации пакетов.
  • Интернет: ассоциативный поиск информации, электронные секретари и автономные агенты в интернете, фильтрация и блокировка спама, автоматическая рубрикация сообщений из новостевых лент, адресные (персонализированные) реклама и маркетинг для электронной торговли, чат-боты, автоматизация распознавания captcha.
  • Автоматизация производства: оптимизация режимов производственного процесса, контроль качества продукции, мониторинг и визуализация многомерной диспетчерской информации, предупреждение аварийных ситуаций.
  • Робототехника: распознавание сцены, объектов и препятствий перед роботом, прокладка маршрута движения, управление манипуляторами (например, решение обратной задачи кинематики), поддержание равновесия.
  • Политологические и социологические исследования: предсказание результатов выборов, анализ опросов, предсказание динамики рейтингов, выявление значимых факторов, кластеризация электората, изучение и визуализация социальной динамики населения.
  • Безопасность, охранные системы: распознавание лиц; идентификация личности по отпечаткам пальцев, голосу или подписи; распознавание автомобильных номеров; мониторинг пакетов информации и информационных потоков в компьютерной сети для обнаружения вторжений; обнаружение подделок; анализ данных с видеокамер и разнообразных сенсоров; анализ аэрокосмических снимков (обнаружение лесных пожаров, незаконных вырубок леса и т.д.).
  • Ввод и обработка информации: распознавание рукописных текстов, отсканированных почтовых, платежных, финансовых и бухгалтерских документов; распознавание речевых команд, речевой ввод текста в компьютер.
  • Геологоразведка: анализ сейсмических данных, ассоциативные методики поиска полезных ископаемых, оценка ресурсов месторождений.
  • Компьютерные и настольные игры: создание нейроигроков в шашки и шахматы (подтверждённые игрой с людьми рейтинги — на уровне мастеров и международных мастеров); выигрыш в Го у чемпионов Европы и мира; в среднем лучшее, чем у человека, прохождение почти полусотни старых классических игр с Атари (всякие там Понги, Пакманы. ).

Обилие приведенных выше областей применения нейронных сетей — не рекламный трюк. Просто нейросети — это гибкий и мощный набор инструментов решения разнообразных задач обработки и анализа данных.

У Вас есть подобные задачи? Давайте обсудим по электронной почте tsar@neuropro.ru возможности их решения.

нейронные сети,
методы анализа данных:
от исследований до разработок и внедрений

© 2003-23 Царегородцев В.Г.

Область применения искусственных нейронных сетей и перспективы их развития Текст научной статьи по специальности «Компьютерные и информационные науки»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Богославский Станислав Николаевич

В статье рассмотрены различные области применения и использования искусственных нейронных сетей, а также их способность к обучению (к процессу настройки архитектуры сети и весов синаптических связей) для эффективного решения поставленной задачи

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Богославский Станислав Николаевич

Эффективные алгоритмы построения нейронной сети на основании оценки входных параметров (глубокое машинное обучение)

Классификация нейронных сетей
История нейрокомпьютинга и его применение в бизнесе
Верификация и тестирование сложных программных продуктов на основе нейросетевых моделей
Алгоритм обучения формального нейрона с полиномиальной активационной функцией
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SCOPE OF ARTIFICIAL NEURAL NETWORKS AND PROSPECT OF THEIR DEVELOPMENT

In the article various scopes and uses of artificial neural networks , and also their ability to training (to process of adjustment of architecture of a network and scales of synaptic communications) for the effective decisions of a task are considered

Текст научной работы на тему «Область применения искусственных нейронных сетей и перспективы их развития»

ОБЛАСТЬ ПРИМЕНЕНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ И ПЕРСПЕКТИВЫ ИХ РАЗВИТИЯ

Богославский Станислав Николаевич аспирант

Кубанский государственный аграрный университет, Краснодар, Россия

В статье рассмотрены различные области применения и использования искусственных нейронных сетей, а также их способность к

SCOPE OF ARTIFICIAL NEURAL NETWORKS AND PROSPECT OF THEIR DEVELOPMENT

Bogoslavsky Stanislav Nikolaevich post-graduate student

Kuban State Agrarian University, Krasnodar, Russia

In the article various scopes and uses of artificial neural networks, and also their ability to training (to process of adjustment of architecture of a network and

обучению (к процессу настройки архитектуры сети scales of synaptic communications) for the effective

и весов синаптических связей) для эффективного решения поставленной задачи

Ключевые слова: ИСКУССТВЕННЫЕ НЕЙРОННЫЕ СЕТИ, СПОСОБНОСТЬ К ОБУЧЕНИЮ, СИНАПТИЧЕСКИЕ СВЯЗИ

decisions of a task are considered

Keywords: ARTIFICIAL NEURAL NETWORKS, ABILITY TO TRAINING, SYNAPTIC COMMUNICATIONS

Искусственные нейронные сети прочно вошли в нашу жизнь и в настоящее время широко используются при решении самых разных задач и активно применяются там, где обычные алгоритмические решения оказываются неэффективными или вовсе невозможными. В числе задач, решение которых доверяют искусственным нейронным сетям, можно назвать следующие: распознавание текстов, игра на бирже, контекстная реклама в Интернете, фильтрация спама, проверка проведения подозрительных операций по банковским картам, системы безопасности и видеонаблюдения — и это далеко не все.

Нейронные сети. Искусственные нейронные сети, подобно биологическим, являются вычислительной системой с огромным числом параллельно функционирующих простых процессоров с множеством связей. Несмотря на то, что при построении таких сетей обычно делается ряд допущений и значительных упрощений, отличающих их от биологических аналогов, искусственные нейронные сети демонстрируют удивительное число свойств, присущих мозгу, — это обучение на основе

опыта, обобщение, извлечение существенных данных из избыточной информации.

Нейронные сети могут менять свое поведение в зависимости от состояния окружающей их среды. После анализа входных сигналов они самонастраиваются и обучаются, чтобы обеспечить правильную реакцию. Обученная сеть может быть устойчивой к некоторым отклонениям входных данных, что позволяет ей правильно «видеть» образ, содержащий различные помехи и искажения.

Сегодня существует большое число различных конфигураций нейронных сетей с различными принципами функционирования, которые ориентированы на решение самых разных задач. В качестве примера рассмотрим многослойную полносвязанную нейронную сеть прямого распространения, которая широко используется для поиска закономерностей и классификации образов. Полносвязанной нейронной сетью называется многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми нейронами предыдущего слоя, а в случае первого слоя — со всеми входами нейронной сети. Прямое распространение сигнала означает, что такая нейронная сеть не содержит петель.

Обучение. Способность к обучению является основным свойством мозга. Для искусственных нейронных сетей под обучением понимается процесс настройки архитектуры сети (структуры связей между нейронами) и весов синаптических связей (влияющих на сигналы коэффициентов) для эффективного решения поставленной задачи. Обычно обучение нейронной сети осуществляется на некоторой выборке [3]. По мере процесса обучения, который происходит по некоторому алгоритму, сеть должна все лучше и правильнее реагировать на входные сигналы.

Выделяют три парадигмы обучения: с учителем, самообучение и смешанная. В первом способе известны правильные ответы к каждому входному примеру, а веса подстраиваются так, чтобы минимизировать ошибку [5]. Обучение без учителя позволяет распределить образцы по категориям за счет раскрытия внутренней структуры и природы данных. При смешанном обучении комбинируются два вышеизложенных подхода.

Существует большое число алгоритмов обучения, ориентированных на решение разных задач [4]. Среди них выделяет алгоритм обратного распространения ошибки, который является одним из наиболее успешных современных алгоритмов. Его основная идея заключается в том, что изменение весов синапсов происходит с учетом локального градиента функции ошибки. Разница между реальными и правильными ответами нейронной сети, определяемыми на выходном слое, распространяется в обратном направлении — навстречу потоку сигналов. В итоге каждый нейрон способен определить вклад каждого своего веса в суммарную ошибку сети. Простейшее правило обучения соответствует методу наискорейшего спуска, то есть изменения синаптических весов пропорционально их вкладу в общую ошибку.

Конечно, при таком обучении нейронной сети нет уверенности, что она обучилась наилучшим образом, поскольку всегда существует возможность попадания алгоритма в локальный минимум. Для этого используются специальные приемы, позволяющие «выбить» найденное решение из локального экстремума. Если после нескольких таких действий нейронная сеть сходится к тому же решению, то можно сделать вывод о том, что найденное решение, скорее всего, оптимально.

Использование. Уже сегодня искусственные нейронные сети используются во многих областях, но прежде чем их можно будет

применять там, где на карту поставлены человеческие жизни или значительные материальные ресурсы, должны быть решены важные вопросы, касающиеся надежности их работы. Поэтому уровень допустимых ошибок следует определять исходя из природы самой задачи. Некоторые проблемы с анализом вопросов надежности возникают из-за допущения полной безошибочности компьютеров, тогда как искусственные нейронные сети могут быть неточны даже при их правильном функционировании. На самом же деле компьютеры, как и люди, тоже могут ошибаться. Первые — в силу различных технических проблем или ошибок в программах, вторые — из-за невнимательности, усталости или непрофессионализма. Следовательно, для особо критических задач необходимо, чтобы эти системы дублировали и страховали друг друга. А это значит, при решении таких задач нейронные сети должны выступать не в качестве единственных средств, а в качестве дополнительных, предупреждающих особые ситуации или берущих на себя управление, когда проблема не решается стандартным образом и какие-либо задержки могут привести к катастрофе.

Другая трудность использования нейронных сетей состоит в том, что традиционные нейронные сети неспособны объяснить, каким образом они решают задачу. Внутреннее представление результатов обучения зачастую настолько сложно, что его невозможно проанализировать, за исключением некоторых простейших случаев, обычно не представляющих интереса.

В последнее время предпринимаются активные попытки объединения искусственных нейронных сетей и экспертных систем. В такой системе искусственная нейронная сеть может реагировать на большинство относительно простых случаев, а все остальные передаются для рассмотрения экспертной системе. В результате сложные случаи

принимаются на более высоком уровне, при этом, возможно, со сбором дополнительных данных или даже с привлечением экспертов.

Нейросетевые прикладные пакеты, разрабатываемые рядом компаний, позволяют пользователям работать с разными видами нейронных сетей и с различными способами их обучения. Они могут быть как специализированными (например, для предсказания курса акций), так и достаточно универсальными.

Области применения нейронных сетей весьма разнообразны — это распознавание текста и речи, семантический поиск, экспертные системы и системы поддержки принятия решений, предсказание курсов акций, системы безопасности, анализ текстов. Рассмотрим несколько особенно ярких и интересных примеров использования нейронных сетей в разных областях. Необходимо отметить, что мы старались по возможности выбирать наиболее ранние случаи применения нейронных сетей при решении соответствующей задачи.

Техника и телекоммуникации. В 1996 году фирмой «Accurate Automation Corp» [6], Chattanooga, TN по заказу NASA и «Air Force» был разработан экспериментальный автопилотируемый гиперзвуковой самолет-разведчик LoFLYTE (Low-Observable Flight Test Experiment). Самолет имел длину всего 2,5 м. и вес 32 кг., и был предназначен для исследования новых принципов пилотирования. LoFLYTE использовал нейронные сети, позволяющие автопилоту обучаться, копируя приемы пилотирования летчика. Поскольку самолет был предназначен для полетов со скоростью 4-5 махов, то быстрота реакции пилота-человека могла быть недостаточной для адекватного отклика на изменение режима полета. В этом случае на помощь приходили нейронные сети, которые перенимали опыт управления у летчика и за счет высокой скорости обработки

информации позволяли быстро находить выход в аварийных и экстремальных ситуациях [6,7].

Одна из важнейших задач в области телекоммуникаций, которая заключается в нахождении оптимального пути пересылки трафика между узлами, может быть успешно решена с помощью нейронных сетей. В данном случае необходимо принимать во внимание то, что, во-первых, предложенное решение должно учитывать текущее состояние сети, качество связи и наличие сбойных участков, а во-вторых, поиск оптимального решения должен осуществляться в реальном времени. Нейронные сети хорошо подходят для решения задач такого рода. Кроме управления маршрутизацией потоков, нейронные сети могут использоваться и при проектировании новых телекоммуникационных сетей, позволяя получать весьма эффективные решения.

Информационные технологии. Определение тематики текстовых сообщений — еще один пример успешного использования искусственных нейронных сетей. Так, сервер новостей Convectis (продукт компании «Aptex Software, Inc.») был выбран в 1997 году компанией «PointCast, Inc.», являвшейся лидером персонализированной доставки новостей в Интернете, для автоматической рубрикации сообщений по категориям. Определяя значения ключевых слов по контексту, сервер Convectis был способен в реальном времени распознавать тематику и автоматически рубрицировать огромные потоки текстовых сообщений, передаваемых по таким информационным сетям, как Reuters, NBC и CBS [2].

Нейросетевой продукт «SelectCast» от «Aptex Software, Inc.» позволял определять область интересов пользователей Интернета и предлагал им рекламу соответствующей тематики. Летом 1997 года компания «Excite, Inc.» лицензировала эту разработку для использования на своих поисковых

серверах. После установки на серверах Excite и Infoseek нейросетевой рекламой было охвачено около трети всех пользователей сети на тот момент. Проведенные исследования установили, что отклик на такую тематическую рекламу была в среднем в два раза выше, чем на обычную, а для отдельных ее видов эффективность увеличивалась до пяти раз.

Экономика и финансы. Нейронные сети активно применяются на финансовых рынках. Например, американский Citybank использует нейросетевые предсказания с 199G года, и уже через два года после их внедрения, по свидетельству журнала «The Economist», автоматический дилинг показывал доходность 25% годовых. Chemical Bank применяет нейросетевую систему фирмы «Neural Data» для предварительной обработки транзакций на валютных биржах ряда стран, отслеживая подозрительные сделки. Автоматизированные системы ведения портфелей с использованием нейросетей имеются на вооружении и у «Deere & Co LBS Capital», причем экспертная система объединяется примерно с 9GG нейронными сетями.

Несколько лет назад крупный канадский банк CIBC для управления рисками и идентификации злоумышленников установил программу «KnowledgeSeeker» фирмы «Angoss» [1]. С ее помощью специалисты банка решили выяснить, кто из их клиентов в будущем будет с высокой долей вероятности задерживать выплаты по закладным. Сначала предполагалось, что в первую очередь ими окажутся те, кто и прежде задерживал свои выплаты на несколько дней. Однако исследования показали, что в будущем проблемы с платежами возникнут у тех клиентов банка, которые на фоне регулярных выплат иногда якобы забывали заплатить. Как выяснилось, подобная «забывчивость» была связана с серьезными финансовыми трудностями.

Реклама и маркетинг. Компания «Neural Innovation Ltd» использовала при работе с маркетинговыми компаниями стратегию прямой рассылки. Вначале она осуществляла рассылку всего 25% от общего числа предложений и собирала информацию об откликах и реакциях потребителей. Затем эти данные поступали на вход нейронной сети, с помощью которой осуществлялся поиск оптимального сегмента потребительского рынка для каждого товара. После этого остальные 75% предложений рассылались уже с учетом найденных закономерностей в указанный сегмент, и эффективность второй рассылки значительно возрастала по сравнению с первоначальной.

При ведении бизнеса в условиях конкуренции компаниям необходимо поддерживать постоянный контакт с потребителями, обеспечивая обратную связь. Для этого некоторые компании проводят опросы потребителей, позволяющие выяснить, какие факторы являются решающими при покупке данного товара или услуги. Анализ результатов подобного опроса — непростая задача, поскольку необходимо исследовать большое количество связанных между собой параметров и выявить факторы, оказывающие наибольшее влияние на спрос. Существующие нейросетевые методы позволяют выяснить это и прогнозировать поведение потребителей при изменении маркетинговой политики, а значит, находить оптимальные стратегии работы компании.

Здравоохранение. В медицинской диагностике нейронные сети нередко используются вместе с экспертными системами. Компанией «НейроПроект» была создана система объективной диагностики слуха у грудных детей. Общепринятая методика диагностики состоит в том, что в процессе обследования регистрируются отклики мозга в ответ на звуковой раздражитель, проявляющиеся в виде всплесков на

электроэнцефалограмме. Для диагностики слуха ребенка опытному

эксперту-аудиологу необходимо провести около 2 тыс. тестов, нейронная сеть способна с той же достоверностью определить уровень слуха уже по 200 наблюдениям в течение всего нескольких минут, причем без участия специалиста.

Приведенные примеры показывают, что технологии нейронных сетей применимы практически в любой области, а в таких задачах, как распознавание образов и прогнозирование котировок акций, они стали уже привычным и широко используемым инструментом. Повсеместное проникновение нейронных технологий в другие области — только вопрос времени. Конечно, внедрение новых наукоемких технологий — процесс сложный, однако практика показывает, что инвестиции не только окупаются и приносят выгоду, но и дают тем, кто их использует, ощутимые преимущества.

Перспективы. В настоящее время искусственные нейронные сети являются важным расширением понятия вычисления. Они уже позволили справиться с рядом непростых проблем и обещают создание новых программ и устройств, способных решать задачи, которые пока под силу только человеку. Современные нейрокомпьютеры используются в основном в программных продуктах и поэтому редко задействуют свой потенциал «параллелизма». Эпоха настоящих параллельных нейровычислений начнется с появлением на рынке большого числа аппаратных реализаций — специализированных нейрочипов и плат расширений, предназначенных для обработки речи, видео, статических изображений и других типов образной информации.

Множество надежд в отношении нейронных сетей сегодня связывают именно с аппаратными реализациями, но пока время их массового выхода на рынок, видимо, еще не пришло. Они или выпускаются в составе

специализированных устройств, или достаточно дороги, а зачастую и то и другое. На их разработку тратится значительное время, за которое программные реализации на самых последних компьютерах оказываются лишь на порядок менее производительными, что делает использование нейропроцессоров нерентабельным. Но все это только вопрос времени -нейронным сетям предстоит пройти тот же путь, по которому еще совсем недавно развивались компьютеры, увеличивая свои возможности и производительность, захватывая новые сферы применения по мере возникновения новых задач и развития технической основы для их разработки.

Должен измениться и интерфейс взаимодействия пользователя с сетью, который будет основываться на интеллектуальных агентах (см. статью «Интеллектуальные агенты семантического Web,а» в № 10 за прошлый год) — новом виде программного обеспечения, получившем название «Agentware». Агенты будут взаимодействовать не только со своим пользователем, но и с другими такими же агентами и со специальными сервисами. Вследствие этого в сети появится своего рода новый социум с самообучающимися агентами, которые будут принимать решения от имени пользователя, и пока еще трудно сказать, к чему это приведет.

Заключение. В качестве подведения итогов хотелось бы сказать, что сегодня нейронные сети уже не являются уделом небольшой группы теоретиков. К нейросетевым приложениям подключаются инженеры и исследователи разных специальностей. Особенно радует прогресс в построении удачных нейросетевых моделей исследуемых явлений, полностью базирующихся на экспериментальных данных. Здесь наиболее полно проявляются замечательные свойства искусственных нейронных систем: массивная параллельность обработки информации,

ассоциативность памяти и способность к обучению на опыте. Это открывает новые перспективы для систематизации многочисленной экспериментальной информации в таких областях знаний, где традиционно трудно приживается математический формализм, например, в медицине, психологии и истории.

1. Крисилов В. А., Олешко Д.Н., Трутнев А.В.. Применение нейронных сетей в задачах интеллектуального анализа информации.// Труды Одесского политехнического университета, Вып.2 (8). 1999, с. 134.

2. Нейронные сети. STATISTICA Neural Networks.// М.: Горячая линия-Телеком, 2000 г. с.182.

3. Джеффри Е. Хинтон. Как обучаются нейронные сети.// В мире науки — 1992 — N 11 — N 12 — c. 103-107.

4. Садовой А. В., Сотник С. Л. Алгоритмы обучения нейронных сетей будущего. // http ://www.alicetele. com/~sergei/articles/al go/al go. htm

5. Rumelhart B.E., Minton G.E., Williams R.J. Learning representations by back propagating error.// Wature, 1986. V. 323. p. 1016-1028.

Обучи себя сам. Что такое нейронные сети и как они, развлекая, меняют нашу жизнь?

К середине 2019 года нейросети обрели невероятную мощь. До восстания машин еще далеко, но прогресс налицо: они умеют не только развлекать, но и лечить, учить и работать. Попробуем на простых примерах, рассказать, что это такое, и как нейросети, обучаясь сами, обучают и нас

К середине 2019 года нейросети обрели невероятную мощь. До восстания машин еще далеко, но прогресс налицо: сначала все ринулись заменять лица одних актеров на другие (вставляя Юрия Никулина в «Криминальное чтиво», например), потом бросились узнавать, как они будут выглядеть в другом гендерном обличии в приложении Snapchat .

Ну а последние несколько месяцев и вовсе принесли нейронным сетям и их создателям небывалую славу: выстрелило приложение FaceApp, показывающее, как вы будете выглядеть через энное количество лет. Наверное, пока мы пишем эту статью, кто-то изобрел нейросеть, которая напишет эту статью за меня… Но на самом деле, развлечения – это не предел использования нейронных сетей. Куда важнее то, чему они могут научиться и чему научить нас.

В нескольких абзацах расскажем, что это такое, как работает и чего ждать. Сразу скажем – на научную точность не претендуем, потому что тему в трех словах не опишешь, зато оставим в конце несколько ссылок на интересные примеры использования нейронных сетей, которые могут пригодиться и вам.

Что такое нейронные сети? У людей ведь они тоже есть?

Нейронные сети – это одно из направлений в разработке систем искусственного интеллекта. Не единственное, но очень популярное из-за своих возможностей в сфере развлечения. Сейчас о них говорят на каждом углу, а впервые о таких сетях услышали еще в 1943 году. Кстати, тогда еще не существовало даже понятия «искусственный интеллект», а сети уже были.

Нейронные сети стали называть так из-за принципов работы математической модели, которая чем-то напоминает функционирование нашей нервной системы. Уверены, что вы и сами в курсе: у нас есть нейроны, образующие нервную систему. Их главная задача — распространять информацию по всему телу, используя электрические и химические сигналы. Они черпают ее из окружающей среды или организма, оценивают ее, думают, как отреагировать, а еще запоминают. Вообще, это крайне занятные штуки, и на эту тему есть множество прекрасных книг (читайте — нейроны скажут вам спасибо). Мы же вернемся к их искусственным (?) коллегам.

По сути, принцип работы нейронных сетей, о которых мы сейчас рассказываем, близок к человеческой нервной системе. Каждый нейрон здесь – это этакая ячейка, у которой имеется множество входных отверстий для получения информации и одно выходное. Каким образом многочисленные входящие сигналы формируются в выходящий, как раз и определяет алгоритм вычисления.

Сама нейросеть представляет собой систему из множества таких нейронов (процессоров). По отдельности эти процессоры достаточно просты (намного проще, чем процессор персонального компьютера), но будучи соединенными в большую систему, нейроны способны выполнять очень сложные задачи по сбору информации, ее анализу и созданию новой. Вот вам хорошо иллюстрирующий этот принцип работы пример:

Представьте себе сельскохозяйственный комбайн, исполнительные механизмы которого снабжены множеством видеокамер. Он делает пять тысяч снимков в минуту каждого растения в полосе своей траектории. Каждый снимок сам по себе ничего не значит. Но используя нейросеть, сравнивая полученные результаты с теми, что есть в его программе, комбайн анализирует — не сорняк ли это, не поражено ли оно болезнью или вредителями. И обрабатывает каждое растение индивидуально. Фантастика? Уже не совсем. А через пять лет может стать нормой.

Об этом рассказывал Влад Шершульский, директор программ технологического сотрудничества Microsoft в России.

Среди основных областей применения нейронных сетей — прогнозирование, принятие решений, распознавание образов, оптимизация, анализ данных. Нейросети лежат в основе большинства современных систем распознавания и синтеза речи, а также распознавания и обработки изображений. Они применяются в некоторых системах навигации, будь то промышленные роботы или беспилотные автомобили. О примерах мы поговорим чуть позже, а пока же узнаем…

В чем их особенность?

В обучаемости. Без этого они просто были бы еще одной математической моделью, но благодаря обучению могут приводить в шок непосвященных. Нейросети могут распознавать более глубокие, иногда неожиданные закономерности в данных. Объяснить на пальцах это не так просто. В общем смысле слова, обучение заключается в нахождении верных коэффициентов связи между нейронами, а также в обобщении данных и выявлении сложных зависимостей между входными и выходными сигналами. Если вначале ее легко обмануть, то через пару сотен тысяч действий, она легко распознает, если вы пытаетесь дать ей что-то не то.

Чаще всего, для этого нужно «прогнать» её работу на десятках миллионов наборов входных данных, указывая ей верные и убирая неверные варианты. Она учитывает это и, когда снова принимается за работу, обрабатывает полученную информацию в зависимости от новых вводных алгоритмов. И так до достижения нужного результата.

Прочитать об этом подробнее, в том числе, на примере «кот и хлеб» можно по этой ссылке. Нам показалось, что это чуть ли не самый понятный вариант объяснения, но если вы сможете лучше – мы будем только рады дополнить этот материал вашим текстом.

Где они применяются?

Самый простой пример – «умные» плейлисты музыки (например, Яндекс.Музыка подбирает уникальный плейлист исходя из того, чтобы слушаете чаще всего) или видео на YouTube . Совпадение? Не думаем. Точнее, знаем, что так работают нейронные сети, которые получают поступившую от вас, а также миллионов похожих на вас людей, и прогнозируют то, что вам может понравиться. Вы, кстати, можете им помочь, посмотрев или нет предложенный ролик или пропустив песню. Поисковый алгоритм тут же будет чуть изменен.

А вообще список их применения очень широк. Вот только самые полезные и известные истории:

  • Диагностировать заболевания сельскохозяйственных культур и других растений по фото с точностью до 99,35% (пример с комбайном). Если так дело и дальше пойдет, нейросети научатся заменить студентов на уборке картошки и капусты!
  • Прогнозировать погоду. Этим занимается, например, «Яндекс.Погода»: там используется специальный алгоритм на основе нейронных сетей, который прогнозирует метеорологические изменения с точностью до минут (или почти так).
  • Делать из чёрно-белых снимков цветные. Попробуйте этот сервис – местами он неидеален, но некоторые фотографии и правда делает красивее и ярче. Явно же у вас немало черно-белых снимков в архивах?
  • Помогать вам объезжать пробки уже сейчас, а в будущем работать помощниками автопилотов автомобилей, постоянно анализируя получаемую информацию.
  • Играя, обучать нейросети. Google запустили проект Quick, Draw!, который вроде бы и развлекательный, но при этом каждая игра обучает нейросеть и совершенствует её. Играете так – вам нужно нарисовать то, что просит сеть, а она беспрерывно дает свои варианты. И угадывает! Даже Эйфелеву башню в моем варианте (это три палочки и несколько – посередине).
  • Распознавать речь по губам лучше человека. Это удалось сделать разработчикам из Оксфордского университета. В качестве исходного материала авторы работы взяли базу данных Grid, в которой было собрано более 32 тысяч видеозаписей и, следуя алгоритму, обучали нейросеть. Результаты тестирования показали, что LipNet может правильно распознавать речь по губам в 93,4 процентах случаев. Это должно серьезно помочь для людей с нарушениями слуха.
  • Творить искусство. Можно послушать альбом «Нейронной обороны» или хоралы, написанные нейросетью за Баха. А на Vimeo есть короткометражка, снятая по сценарию нейронной сети.
  • Превращать фотографии в картины и автоматически редактировать их. Вы, конечно, слышали об этих сервисах — Prisma, MSQRD, Mlvch, deepart.io и так далее.

Почему они стали так популярны сегодня, и что ждет в будущем?

Потому что мощности стали позволят разрабатывать нейросети даже небольшим компаниям. А главное — появились готовые, предобученные нейросети, распознающие образы, на основании которых можно делать свои приложения, не занимаясь длительной подготовкой нейросети к работе. По сути, создав один раз нейросеть, которая что-то делает с фотографиями (различает лицо, например), вы потом сможете использовать этот алгоритм и на других подобных проектах.

Но что еще главное – людям понравилось, и они стали готовы платить за развлечение. В итоге, когда пару лет назад белорусские разработчики создали приложение MSQRD, добавляющее маски к вашим лицам на камере онлайн, они и подумать не могли о том, что пользователем забавной игрушки станут миллионы. Популярность приложения стала так высока, что Facebook купила их за 85 миллионов долларов. Неплохо для небольшой компании!

Стоит ли опасаться развития искусственного интеллекта до таких высот, что он потребует у вас мотоцикл и куртку? Вряд ли. Сегодня все подобные сервисы создаются скорее не для решения глобальных задач, на которые и нацелены нейросети, а для демонстрации способностей нейронной сети и проведения её обучения. «Многие прорывные результаты исследований пока не очень применимы в бизнесе. На практике зачастую разумнее использовать другие методы машинного обучения — например, различные алгоритмы, основанные на деревьях решений. Наверное, это выглядит не так захватывающе и футуристично, но эти подходы очень распространены», — пишет Борис Вольфсон, директор по развитию HeadHunter. А раз так, то человечество по-прежнему остается главным врагом самому себе

Другие статьи из рассылки Дирекции ИТ УрФУ в октябре

  • Категории

Нейронные сети, перцептрон

Искусственная нейронная сеть (ИНС) (англ. Artificial neural network (ANN)) — упрощенная модель биологической нейронной сети, представляющая собой совокупность искусственных нейронов, взаимодействующих между собой.

Основные принципы работы нейронных сетей были описаны еще в 1943 году Уорреном Мак-Каллоком и Уолтером Питтсом [1] . В 1957 году нейрофизиолог Фрэнк Розенблатт разработал первую нейронную сеть [2] , а в 2010 году большие объемы данных для обучения открыли возможность использовать нейронные сети для машинного обучения.

На данный момент нейронные сети используются в многочисленных областях машинного обучения и решают проблемы различной сложности.

Структура нейронной сети

Рисунок 2. Схема искусственного нейрона

Хорошим примером биологической нейронной сети является человеческий мозг. Наш мозг — сложнейшая биологическая нейронная сеть, которая принимает информацию от органов чувств и каким-то образом ее обрабатывает (узнавание лиц, возникновение ощущений и т.д.). Мозг же, в свою очередь, состоит из нейронов, взаимодействующих между собой.

Для построения искусственной нейронной сети будем использовать ту же структуру. Как и биологическая нейронная сеть, искусственная состоит из нейронов, взаимодействующих между собой, однако представляет собой упрощенную модель. Так, например, искусственный нейрон, из которых состоит ИНС, имеет намного более простую структуру: у него есть несколько входов, на которых он принимает различные сигналы, преобразует их и передает другим нейронам. Другими словами, искусственный нейрон — это такая функция [math]\mathbb^n \rightarrow \mathbb[/math] , которая преобразует несколько входных параметров в один выходной.

Как видно на рисунке справа, у нейрона есть [math]n[/math] входов [math]x_i[/math] , у каждого из которого есть вес [math]w_i[/math] , на который умножается сигнал, проходящий по связи. После этого взвешенные сигналы [math]x_i \cdot w_i[/math] направляются в сумматор, который аггрегирует все сигналы во взвешенную сумму. Эту сумму также называют [math]net[/math] . Таким образом, [math]net = \sum_^ w_i \cdot x_i = w^T \cdot x[/math] .

Просто так передавать взвешенную сумму [math]net[/math] на выход достаточно бессмысленно — нейрон должен ее как-то обработать и сформировать адекватный выходной сигнал. Для этих целей используют функцию активации, которая преобразует взвешенную сумму в какое-то число, которое и будет являться выходом нейрона. Функция активации обозначается [math]\phi(net)[/math] . Таким образом, выходов искусственного нейрона является [math]\phi(net)[/math] .

Для разных типов нейронов используют самые разные функции активации, но одними из самых популярных являются:

  • Функция единичного скачка. Если [math]net \gt threshold[/math] , [math]\phi(net) = 1[/math] , а иначе [math]0[/math] ;
  • Сигмоидальная функция. [math]\phi(net) = \frac[/math] , где параметр [math]a[/math] характеризует степень крутизны функции;
  • Гиперболический тангенс. [math]\phi(net) = tanh(\frac)[/math] , где параметр [math]a[/math] также определяет степень крутизны графика функции;
  • Rectified linear units (ReLU). [math]ReLU(x) = \begin x & x \geq 0 \\ 0 & x \lt 0 \end = \max(x, 0)[/math] .

Виды нейронных сетей

Разобравшись с тем, как устроен нейрон в нейронной сети, осталось понять, как их в этой сети располагать и соединять.

Как правило, в большинстве нейронных сетей есть так называемый входной слой, который выполняет только одну задачу — распределение входных сигналов остальным нейронам. Нейроны этого слоя не производят никаких вычислений. В остальном нейронные сети делятся на основные категории, представленные ниже.

Однослойные нейронные сети

Рисунок 3. Схема однослойной нейронной сети

Однослойная нейронная сеть (англ. Single-layer neural network) — сеть, в которой сигналы от входного слоя сразу подаются на выходной слой, который и преобразует сигнал и сразу же выдает ответ.

Как видно из схемы однослойной нейронной сети, представленной справа, сигналы [math]x_1, x_2, \ldots x_n[/math] поступают на входной слой (который не считается за слой нейронной сети), а затем сигналы распределяются на выходной слой обычных нейронов. На каждом ребре от нейрона входного слоя к нейрону выходного слоя написано число — вес соответствующей связи.

Многослойные нейронные сети

Рисунок 4. Схема многослойной нейронной сети

Многослойная нейронная сеть (англ. Multilayer neural network) — нейронная сеть, состоящая из входного, выходного и расположенного(ых) между ними одного (нескольких) скрытых слоев нейронов.

Помимо входного и выходного слоев эти нейронные сети содержат промежуточные, скрытые слои. Такие сети обладают гораздо большими возможностями, чем однослойные нейронные сети, однако методы обучения нейронов скрытого слоя были разработаны относительно недавно.

Работу скрытых слоев нейронов можно сравнить с работой большого завода. Продукт (выходной сигнал) на заводе собирается по стадиям на станках. После каждого станка получается какой-то промежуточный результат. Скрытые слои тоже преобразуют входные сигналы в некоторые промежуточные результаты.

Сети прямого распространения

Сети прямого распространения (англ. Feedforward neural network) (feedforward сети) — искусственные нейронные сети, в которых сигнал распространяется строго от входного слоя к выходному. В обратном направлении сигнал не распространяется.

Все сети, описанные выше, являлись сетями прямого распространения, как следует из определения. Такие сети широко используются и вполне успешно решают определенный класс задач: прогнозирование, кластеризация и распознавание.

Однако сигнал в нейронных сетях может идти и в обратную сторону.

Сети с обратными связями

Рисунок 5. Схема сети с обратными связями

Сети с обратными связями (англ. Recurrent neural network) — искусственные нейронные сети, в которых выход нейрона может вновь подаваться на его вход. В более общем случае это означает возможность распространения сигнала от выходов к входам.

В сетях прямого распространения выход сети определяется входным сигналом и весовыми коэффициентами при искусственных нейронах. В сетях с обратными связями выходы нейронов могут возвращаться на входы. Это означает, что выход какого-нибудь нейрона определяется не только его весами и входным сигналом, но еще и предыдущими выходами (так как они снова вернулись на входы).

Обучение нейронной сети

Обучение нейронной сети — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети преобразуется в нужный нам выходной.

Это определение «обучения нейронной сети» соответствует и биологическим нейросетям. Наш мозг состоит из огромного количества связанных друг с другом нейросетей, каждая из которых в отдельности состоит из нейронов одного типа (с одинаковой функцией активации). Наш мозг обучается благодаря изменению синапсов — элементов, которые усиливают или ослабляют входной сигнал.

Если обучать сеть, используя только один входной сигнал, то сеть просто «запомнит правильный ответ», а как только мы подадим немного измененный сигнал, вместо правильного ответа получим бессмыслицу. Мы ждем от сети способности обобщать какие-то признаки и решать задачу на различных входных данных. Именно с этой целью и создаются обучающие выборки.

Обучающая выборка — конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит обучение сети.

После обучения сети, то есть когда сеть выдает корректные результаты для всех входных сигналов из обучающей выборки, ее можно использовать на практике. Однако прежде чем сразу использовать нейронную сеть, обычно производят оценку качества ее работы на так называемой тестовой выборке.

Тестовая выборка — конечный набор входных сигналов (иногда вместе с правильными выходными сигналами), по которым происходит оценка качества работы сети.

Само обучение нейронной сети можно разделить на два подхода: обучение с учителем [на 28.01.19 не создан] и обучение без учителя [на 28.01.19 не создан] . В первом случае веса меняются так, чтобы ответы сети минимально отличались от уже готовых правильных ответов, а во втором случае сеть самостоятельно классифицирует входные сигналы.

Перцептрон

Рисунок 6. Схема перцептрона

Перцептрон (англ. Perceptron) — простейший вид нейронных сетей. В основе лежит математическая модель восприятия информации мозгом, состоящая из сенсоров, ассоциативных и реагирующих элементов.

История

Идею перцептрона предложил нейрофизиолог Фрэнк Розенблатт. Он предложил схему устройства, моделирующего процесс человеческого восприятия, и назвал его «перцептроном» (от латинского perceptio — восприятие). В 1960 году Розенблатт представил первый нейрокомпьютер — «Марк-1», который был способен распознавать некоторые буквы английского алфавита.

Таким образом перцептрон является одной из первых моделей нейросетей, а «Марк-1» — первым в мире нейрокомпьютером.

Описание

В основе перцептрона лежит математическая модель восприятия информации мозгом. Разные исследователи по-разному его определяют. В самом общем своем виде (как его описывал Розенблатт) он представляет систему из элементов трех разных типов: сенсоров, ассоциативных элементов и реагирующих элементов.

Принцип работы перцептрона следующий:

  1. Первыми в работу включаются S-элементы. Они могут находиться либо в состоянии покоя (сигнал равен 0), либо в состоянии возбуждения (сигнал равен 1);
  2. Далее сигналы от S-элементов передаются A-элементам по так называемым S-A связям. Эти связи могут иметь веса, равные только -1, 0 или 1;
  3. Затем сигналы от сенсорных элементов, прошедших по S-A связям, попадают в A-элементы, которые еще называют ассоциативными элементами;
    • Одному A-элементу может соответствовать несколько S-элементов;
    • Если сигналы, поступившие на A-элемент, в совокупности превышают некоторый его порог ​ [math]\theta[/math] ​, то этот A-элемент возбуждается и выдает сигнал, равный 1;
    • В противном случае (сигнал от S-элементов не превысил порога A-элемента), генерируется нулевой сигнал;
  4. Далее сигналы, которые произвели возбужденные A-элементы, направляются к сумматору (R-элемент), действие которого нам уже известно. Однако, чтобы добраться до R-элемента, они проходят по A-R связям, у которых тоже есть веса (которые уже могут принимать любые значения, в отличие от S-A связей);
  5. R-элемент складывает друг с другом взвешенные сигналы от A-элементов, а затем
    • если превышен определенный порог, генерирует выходной сигнал, равный 1;
    • eсли порог не превышен, то выход перцептрона равен -1.

Для элементов перцептрона используют следующие названия:

  • S-элементы называют сенсорами;
  • A-элементы называют ассоциативными;
  • R-элементы называют реагирующими.

Классификация перцептронов

Рисунок 7. Схема однослойного перцептрона

Перцептрон с одним скрытым слоем (элементарный перцептрон, англ. elementary perceptron) — перцептрон, у которого имеется только по одному слою S, A и R элементов.

Однослойный персептрон (англ. Single-layer perceptron) — перцептрон, каждый S-элемент которого однозначно соответствует одному А-элементу, S-A связи всегда имеют вес 1, а порог любого А-элемента равен 1. Часть однослойного персептрона соответствует модели искусственного нейрона.

Его ключевая особенность состоит в том, что каждый S-элемент однозначно соответствует одному A-элементу, все S-A связи имеют вес, равный +1, а порог A элементов равен 1. Часть однослойного перцептрона, не содержащая входы, соответствует искусственному нейрону, как показано на картинке. Таким образом, однослойный перцептрон — это искусственный нейрон, который на вход принимает только 0 и 1.

Однослойный персептрон также может быть и элементарным персептроном, у которого только по одному слою S,A,R-элементов.

Многослойный перцептрон по Розенблатту (англ. Rosenblatt multilayer perceptron) — перцептрон, который содержит более 1 слоя А-элементов.

Многослойный перцептрон по Румельхарту (англ. Rumelhart multilater perceptron) — частный случай многослойного персептрона по Розенблатту, с двумя особенностями:

  • S-A связи могут иметь произвольные веса и обучаться наравне с A-R связями;
  • Обучение производится по специальному алгоритму, который называется обучением по методу обратного распространения ошибки.

Обучение перцептрона

Задача обучения перцептрона — подобрать такие [math]w_0, w_1, w_2, \ldots, w_n[/math] , чтобы [math]sign(\sigma(w_0 + w_1 \cdot x_1 + w_2 \cdot x_2 + \ldots + w_n \cdot x_n))[/math] как можно чаще совпадал с [math]y(x)[/math] — значением в обучающей выборке (здесь [math]\sigma[/math] — функция активации). Для удобства, чтобы не тащить за собой свободный член [math]w_0[/math] , добавим в вектор $x$ лишнюю «виртуальную размерность» и будем считать, что [math]x = (1, x_1, x_2, \ldots, x_n)[/math] . Тогда [math]w_0 + w_1 \cdot x_1 + w_2 \cdot x_2 + \ldots + w_n \cdot x_n[/math] можно заменить на [math]w^T \cdot x[/math] .

Чтобы обучать эту функцию, сначала надо выбрать функцию ошибки, которую потом можно оптимизировать градиентным спуском. Число неверно классифицированных примеров не подходит на эту кандидатуру, потому что эта функция кусочно-гладкая, с массой разрывов: она будет принимать только целые значения и резко меняться при переходе от одного числа неверно классифицированных примеров к другому. Поэтому использовать будем другую функцию, так называемый критерий перцептрона: [math]E_P(w) = -\sum_ y(x)(\sigma(w^T \cdot x))[/math] , где [math]M[/math] — множество примеров, которые перцептрон с весами [math]w[/math] классифицирует неправильно.

Иначе говоря, мы минимизируем суммарное отклонение наших ответов от правильных, но только в неправильную сторону; верный ответ ничего не вносит в функцию ошибки. Умножение на [math]y(x)[/math] здесь нужно для того, чтобы знак произведения всегда получался отрицательным: если правильный ответ −1, значит, перцептрон выдал положительное число (иначе бы ответ был верным), и наоборот. В результате у нас получилась кусочно-линейная функция, дифференцируемая почти везде, а этого вполне достаточно.

Теперь [math]E_P(w)[/math] можно оптимизировать градиентным спуском. На очередном шаге получаем: [math]w^ = w^ − \eta\triangledown_w E_P(w)[/math] .

Алгоритм такой — мы последовательно проходим примеры [math]x_1, x_2, \ldots[/math] из обучающего множества, и для каждого [math]x_n[/math] :

  • если он классифицирован правильно, не меняем ничего;
  • а если неправильно, прибавляем [math]\eta \triangledown_w E_P(w)[/math] .

Ошибка на примере [math]x_n[/math] при этом, очевидно, уменьшается, но, конечно, совершенно никто не гарантирует, что вместе с тем не увеличится ошибка от других примеров. Это правило обновления весов так и называется — правило обучения перцептрона, и это было основной математической идеей работы Розенблатта.

Применение

  • Решение задач классификации, если объекты классификации обладают свойством линейной разделимости;
  • Прогнозирование и распознавание образов;
  • Управление агентами [3] .

Примеры кода

Пример использования с помощью scikit-learn [4]

Будем классифицировать с помощью перцептрона датасет MNIST [5] .

# Load required libraries from sklearn import datasets from sklearn.preprocessing import StandardScaler from sklearn.linear_model import Perceptron #Single-layer perceptron from sklearn.neural_network import MLPClassifier #Multilayer perceptron from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import numpy as np
# Load the mnist dataset mnist = datasets.load_digits()
# Create our X and y data n_samples = len(mnist.images) X = mnist.images.reshape((n_samples, -1)) y = mnist.target
# Split the data into 70% training data and 30% test data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# Train the scaler, which standarizes all the features to have mean=0 and unit variance sc = StandardScaler() sc.fit(X_train)
# Apply the scaler to the X training data X_train_std = sc.transform(X_train)
# Apply the SAME scaler to the X test data X_test_std = sc.transform(X_test)
# Create a single-layer perceptron object with the parameters: 40 iterations (epochs) over the data, and a learning rate of 0.1 ppn = Perceptron(n_iter=40, eta0=0.1, random_state=0) # Create a multilayer perceptron object mppn = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(256, 512, 128), random_state=1)
# Train the perceptrons ppn.fit(X_train_std, y_train) mppn.fit(X_train_std, y_train)
# Apply the trained perceptrons on the X data to make predicts for the y test data y_pred = ppn.predict(X_test_std) multi_y_pred = mppn.predict(X_test_std)
# View the accuracies of the model, which is: 1 - (observations predicted wrong / total observations) print('Single-layer perceptron accuracy: %.4f' % accuracy_score(y_test, y_pred)) print('Multilayer perceptron accuracy: %.4f' % accuracy_score(y_test, multi_y_pred))
Single-layer perceptron accuracy: 0.9574 Multilayer perceptron accuracy: 0.9759
Пример использования с помощью tensorflow [6]

Будем классифицировать цифры из того же датасета MNIST.

# Load required libraries import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data
#Load MNIST dataset mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
#placeholder for test data x = tf.placeholder(tf.float32, [None, 784]) #placeholder for weights and bias W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) #tensorflow model y = tf.nn.softmax(tf.matmul(x, W) + b) #loss function y_ = tf.placeholder(tf.float32, [None, 10]) cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
#gradient descent step train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
init = tf.initialize_all_variables() sess = tf.Session() sess.run(init) for i in range(1000): batch_xs, batch_ys = mnist.train.next_batch(100) sess.run(train_step, feed_dict=) correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print("Accuracy: %s" % sess.run(accuracy, feed_dict=))

Рисунок 8.
Правильные метки — 5, 4, 9, 7.
Результат классификации — 6, 6, 4, 4.

Accuracy: 0.9164

На рисунке справа показаны четыре типичных изображения, на которых классификаторы ошибаются. Согласитесь, случаи действительно тяжелые.

Пример на языке Java

Пример классификации с применением weka.classifiers.functions.MultilayerPerceptron [7]

 nz.ac.waikato.cms.weka weka-stable 3.8.0  
import weka.classifiers.functions.MultilayerPerceptron; import weka.core.converters.CSVLoader; import java.io.File;
// read train & test datasets and build MLP classifier var trainds = new DataSource("etc/train.csv"); var train = trainds.getDataSet(); train.setClassIndex(train.numAttributes() - 1); var testds = new DataSource("etc/test.csv"); var test = testds.getDataSet(); test.setClassIndex(test.numAttributes() - 1); var mlp = new MultilayerPerceptron(); mlp.buildClassifier(train); // Test the model var eTest = new Evaluation(train); eTest.evaluateModel(mlp, test); // Print the result à la Weka explorer: var strSummary = eTest.toSummaryString(); System.out.println(strSummary);

См. также

  • Сверточные нейронные сети
  • Рекуррентные нейронные сети
  • Рекурсивные нейронные сети [на 28.01.19 не создан]

Примечания

  1. ↑Artificial neuron, Wikipedia
  2. ↑Perceptron, Wikipedia
  3. ↑Применения перцептрона, Wikipedia
  4. ↑Библиотека scikit-learn для Python
  5. ↑Датасет MNIST
  6. ↑Библиотека tensorflow для Python
  7. ↑Weka, MLP

Источники информации

  • Сергей Николенко, Артур Кадурин, Екатерина Архангельская. Глубокое обучение. Погружение в мир нейронных сетей. — «Питер», 2018. — С. 93-123.
  • Нейронные сети — учебник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *