Нейронная сеть программа. Пощупать нейросети или конструктор нейронных сетей

Что такое нейронные сети

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

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

Как они устроены и зачем нужны

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

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

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

7 самых забавных применений нейронных сетей

Норвежский программист Ларс Эйднес решил добавить компьютеру творческую искру. Для начала он нейронную сеть писать броские интернет-заголовки в духе «Семь секретов долголетия, о которых молчат тибетские ламы». Для этого он загрузил примерно 2 млн примеров с сайтов - корифеев жанра: BuzzFeed, Gawker, Jezebel, The Huffington Post и Upworthy. После тренировки сеть стала выдавать заголовки, в большинстве из которых была верная грамматика, а кое-где даже мелькал смысл. Потом Эйднес запустил , целиком написанный нейронными сетями. Новые заметки на нем выходят раз в 20 минут, а главная страница формируется исходя из просмотров статей и голосов читателей. Сегодня Click-o-Tron передает, что Джеймс Кэмерон защищает возможные проблемы с геями, Майли Сайрус исполнилось 13 лет, и вдобавок предлагает почитать о 16 самых подходящих городах для ресторана на кухне.

Что-то подобное проделал и журналист технологического сайта Engadget Аарон Суппурис. Он бота на основе той же нейронной сети, что была у Эйднеса, и загрузил туда тексты Engadget. К третьей версии бот научился копировать стилистику авторов сайта и выдавал более-менее вразумительные заметки. Правда, Суппурис полагает, что без чудесных инноваций нейронные сети никогда не заменят живого журналиста, зато пригодятся как удобный вспомогательный инструмент.

Другие экспериментаторы задавались еще более неординарными целями. Один нейронную сеть писать речи в стиле Барака Обамы - та неизменно желала божьего благословления. Другой загрузил книги о Гарри Поттере и получил приключений юного волшебника. Третий сеть на любовных романах и строчках из песен Тейлор Свифт, чтобы компьютер подобающе описывал изображения на картинках. Исследователи Google тоже пикантное чтиво, чтобы та научилась писать в подобном стиле. Правда, сделали они это не ради забавы, а для дела: низкопробная беллетристика должна очеловечить язык голосового помощника и почтового клиента.

Нейроэпигон Егора Летова

Нейронные сети не раз сочиняли музыку, а творческих союзов человека и машины не в пример меньше. Самый громкий из недавних - альбом полувиртуального ансамбля «Нейронная оборона». В конце июня аналитик «Яндекса» Иван Ямщиков и его приятель Алексей Тихонов выложили десяток песен, стихи для которых написал компьютер.

Сначала Тихонов придумал бота-подражателя, сочинявшего в духе Хармса и Пушкина, - друзьям захотелось что-нибудь сделать с этим творчеством, и они загрузили в сеть поэзию любимого певца, Егора Летова, получили стилистически выверенные куплеты, а потом спели их под гитару и драм-машину. Альбом под названием «404» , . Судя по оценкам, поклонники остались довольны.


Если нейронная сеть может писать, то ей не обязательно быть журналистом, Э.Л.Джеймс или Уильямом Шекспиром. Так рассудил аспирант из университета Алабамы и в сеть все известные карты из настольной игры Magic: The Gathering. Компьютер их обработал и принялся выдумывать собственные. Многие из карт получились бесполезными, другие - незаконченными (например, указано действие, но без условий применения). Впрочем, со временем сеть наловчилась и немного исправилась.

Вскоре о проекте узнал пользователь Reddit под псевдонимом Scfdivine. Он повторил эксперимент, но с картами из похожей . Карт в результате получилось меньше, и большинство из них нарушало баланс игры. Хотя некоторые эксперты сошлись во мнении, что у сети была слишком маленькая выборка (Hearthstone появилась сравнительно недавно), а компьютеру недоставало мощности - иначе опыт был бы удачнее.


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

Недавно Бонд спас драгоценные клумбы супруги. Программист показал сети изображения кошек, встроил датчики в оросительную систему во дворе и повесил камеру: стоит кошке приблизиться к цветам, ее . По словам Бонда, соседские животные больше к ним не наведываются.


Известный сервис FindFace ищет людей по фотографиям профиля в «ВКонтакте», а команда ученых из греческого Университета города Патры научилась распознавать по снимкам - правда, не простым, а инфракрасным - подвыпивших людей. Исследователи собрали 41 добровольца, налили им вина, сфотографировали и . Сначала несколько нейросетей изучали по отдельности разные участки лица. Оказалось, что в подпитии в основном меняется температура лба. Дальше сеть рассматривала лица целиком. В итоге она научилась отличать трезвых от выпивших. Разработка кажется курьезной только на первый взгляд: если оборудовать ИК-камерами автомобили и общественные пространства, то можно оперативно выявлять возможных правонарушителей.

Видео-Prisma

Еще недавно соцсети наводняли однотипные фотографии, стилизованные под картины великих художников с помощью приложения Prisma. Обработанные кадры выглядели свежо, но сама идея . Еще прошлым летом ученые из Тюбингенского университета опубликовали работу «Нейроалгоритм художественного стиля», в которой изложили свой метод преобразования изображения в стилистике другой картинки. Упомянутый выше норвежец Эйднес технологию к видео. Для этого ему пришлось обхитрить нейросеть, чтобы та обрабатывала соседние кадры не по отдельности и произвольно, а похожим образом. Эйднес написал код для измерения оптического потока между кадрами - ему удалось определить, как движутся снятые объекты, а нейросеть учитывала смещение при перерисовке. Для теста был выбран клип группы The xx на песню Islands: теперь в нем угадываются и Поллок, и Матисс, и роспись с античных амфор. Правда, поиграться с программой получится не скоро: даже на мощном железе один кадр обрабатывается целых три минуты.

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

Я давно интересовался нейросетями, но только с позиции зрителя – следил за новыми возможностями, которые они дают по сравнению с обычным программированием. Но никогда не лез ни в теорию, ни в практику. И вдруг (после сенсационной новости о AlphaZero) мне захотелось сделать свою нейросеть. Посмотрев несколько уроков по этой теме на YouTube, я немного врубился в теорию и перешёл к практике. В итоге я сделал даже лучше, чем свою нейросеть. Получился конструктор нейросетей и наглядное пособие по ним (то есть можно смотреть, что творится внутри нейросети). Вот как это выглядит:

Как пользоваться конструктором

Для начала скачайте архив отсюда .

Распакуйте в корень диска D:\

Запустите NeuroNet.exe

Можете попробовать «Загрузить» какую-нибудь сеть, посмотреть на неё, нажать «Обучение», увидеть её точность, потыкать стрелки влево, вправо (по бокам), чтобы посмотреть различные варианты входных (левый столбец нейронов) и выходных (правый) данных, нажать «Стоп» и попробовать ввести свои входные данные (разрешены любые значения от 0 до 1, учитывайте это при создании своих сетей и нормализуйте входные и выходные данные).

Теперь как строить свои сети. Первым делом необходимо задать архитектуру сети (количество нейронов в каждом слое через запятую), нажать «Построить» (или сначала «Снести», затем построить, если у Вас на экране уже отображается другая сеть), нажать «Обучающая выборка», «Удалить всё» и ввести свои обучающие примеры, согласно инструкции на экране. Также можно указать на вход и на выход маленькие квадратные картинки (максимум 5х5 пикселей), из которых будут определены нормализованные значения яркости пикселей (не учитывая их цвет), для чего нужно нажать на «in» и «out» соответственно. Нажать «Добавить пример», повторить процедуру нужное количество раз. Нажать «Готово», «Обучение» и как точность станет удовлетворительной (обычно 98%), нажать «Стоп», иконку в виде дискеты (сохранить), дать сети имя и радоваться, что Вы сами создали нейросеть. Дополнительно можете устанавливать скорость обучения ползунком «Точнее/Быстрее», а также визуализировать не каждый 50й шаг, а каждый 10й или 300й, как Вам угодно.

Интеграция созданных сетей в свои проекты

Чтобы использовать свои нейросети в собственных проектах, я создал отдельное приложение doNet.exe , которое нужно запускать с параметрами: « D:\NeuroNet\doNet.exe <название сети> <входные данные через пробел> », дождаться завершения работы приложения, после чего считать выходные данные из D:\NeuroNet\temp.txt

Для примера создано приложение 4-5.exe, использующее сеть «4-5» (об этой и других сетях ниже). В этом приложении подробно расписано как правильно запускать doNet.exe

Разбор сетей, идущих в комплекте

Начнём с классики – «XOR(Полусумматор)». Среди прочих, в частности, эту задачу – сложение по модулю 2 – в 1969 году приводили в качестве примера ограниченности нейросетей (а именно однослойных перцептронов). В общем, имеется два входа (со значениями либо 0, либо 1 у каждого), наша же задача - ответить 1, если значения входов разные, 0 – если одинаковые.

Далее «Количество-единиц». Три входа (0 либо 1 на каждом). Требуется посчитать, сколько было подано единиц. Реализовано как задача классификации – четыре выхода на каждый вариант ответа (0,1,2,3 единицы). На каком выходе максимальное значение, соответственно таков и ответ.

«Умножение» – Два входа (вещественные от 0 до 1), на выход их произведение.

«4-5» – На вход подаются нормализованные значения яркости пикселей картинки 4х4, на выходе имеем нормализованные значения яркости пикселей картинки 5х5.

Сеть задумывалась, как увеличение качества большой картинки на 25%, вышел же интересный фильтр для фото:

UPD: В архив добавлено приложение NeuroNet2.exe (тот же конструктор, но без визуализации (благодаря чему работает в 2 раза быстрее) и ограничений на количество нейронов в слое (до 1024 вместо 30), также в обучающей выборке на вход и выход можно подавать квадратные картинки до 32х32). Также добавлен график обучения. Нейросетями теперь могут пользоваться (и встраивать в свои проекты (даже на сервере)) и те, кто не знает их теории! В полуавтоматическом режиме (после обучения вручную подавать на вход значения и получать результат на экране) их можно использовать даже без знания программирования!

Вот собственно и всё, жду комментариев.

P.S. Если вылезает ошибка, попробуйте зарегистрировать от администратора с помощью regsvr32 файлы comdlg32, которые также есть в архиве.

Конечно, Prisma уже далеко не единственные, и с тех пор у них появилось множество конкурентов. Facebook купили приложение MSQRD , которое добавляет анимированные «маски» к вашим видео. В отличие от Призмы здесь ставка сделана на распознавание лиц и наложение фильтров на них.

SwiftKey и другие клавиатуры

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

Новая технология пока доступна для ограниченного количества языков и находится на стадии бета-версии. Но и публичная версия SwiftKey основывается на Больших данных. Например, пользовательские словари доступны всем, кто установил клавиатуру. Конечно, за исключением персональных данных.

Snapchat и его фильтры - ещё одно из самых известных применений нейросетей. Если упростить сложное, то приложение использует компьютерное распознавание лиц для идентификации мимики и точек движения мускулов. А уже потом применяет к ним свои фильтры.

Shazam и SoundHound

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

Google Ассистент и Siri

Говорить только про Google Ассистент или Siri будет не совсем правильно. Представить современные сервисы Google и Apple невозможно без Big Data и нейросетей. Любая разработка от этих двух компаний, так или иначе, задействует нейросети. Автоподсказки при поиске, показ рекламы, очистка почты от спама и многое другое. И всё-таки самое явное для нас применение - это голосовые ассистенты. Смартфон распознаёт наш запрос и выполняет поставленную задачу в зависимости не только от контекста фразы, но и нашего местоположения.

Carat

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

Netflix, YouTube, Apple и Google Музыка... Все эти сервисы предлагают музыку и видео на основе ваших предпочтений. За последние пару лет этот тренд пошёл немного дальше и теперь нам предлагаются целые смарт-листы, которые подойдут под наш род занятий или время дня.

Big Data и нейросети могут не только продавать нам рекламу, лечить наши болезни или управлять нашим разумом. Большинство разработок мы замечаем только тогда, когда они подаются нам в развлекательном формате или улучшают наши самые простые ежедневные задачи. Из-за чего мы часто забываем, что нейросеть - это не только моська котёнка у нас в телефоне.

Пример программы нейронной сети с исходным кодом на с++.

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

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

Дано InColor - цвет RGB (24 бит)

классифицировать цвет, т.е. отнести его к одному из цветов заданных множеством М ={ Черный, Красный, Зеленый, Желтый, Синий, Фиолетовый, Голубой, Белый } .

OutColor - цвет из множества М

Решение номер 1. (цифровое)

Создаем массив размером 16777216 элементов

Решение номер 2. (аналоговое)

напишем функцию, типа

Int8 GetColor(DWORD Color)
{
double Red = (double(((Color>>16)&0xFF)))/255*100;
double Green = (double(((Color>>8)&0xFF)))/255*100;
double Blue = (double((Color&0xFF)))/255*100;
double Level = Red;
if(Green > Level)
Level = Green;
if(Blue > Level)
Level = Blue;
Level = Level * 0.7;
int8 OutColor = 0;
if(Red > Level)
OutColor |= 1;
if(Green > Level)
OutColor |= 2;
if(Blue > Level)
OutColor |= 4;
return OutColor;
}

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

Решение номер 3. (нейронная сеть)

Простейшая нейронная сеть. Однослойный перцептрон.

Все нейронное заключено в класс CNeuroNet

Каждый нейрон имеет 3 входа, куда подаются интенсивности компонент цвета. (R,G, B) в диапазоне (0 - 1). Всего нейронов 8 , по количеству цветов в выходном множестве. В результате работы сети на выходе каждого нейрона формируется сигнал в диапазоне (0 - 1), который означает вероятность того что на входе этот цвет. Выбираем максимальный и получаем ответ.

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

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


Проголосовали за программу: 91 средняя оценка: 1098903,2
Опубликована в сборнике программ: 17.07.2010 г.

Операционная система: Windows ALL
Размер программы (дистрибутива): 20 KB
Тип лицензии: Shareware


# Программа "Нейронная сеть" предназначена для создания нейронной сети с произвольной конфигурацией. Алгоритм обучения: с обратным распространиением ошибки. При создании структуры сети можно настроить следующии параметры 1. количество нейронов во входном слое

# 2. количество нейронов в выходном слое

# 3. количество скрытых слоев и количество нейронов в каждом из них.

# 4. вид активационной функции

# 5. скорость обучение

# 6. крутизна сигмоида

# 7. количество эпох

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

При добавление программы, в каталог нашего сайта, ссылка на Нейронная сеть 2.4.2, проверялась антивирусом, но так как файл находится на сервере разработчика или издателя софта, он может быть изменён, мы рекомендуем перед загрузкой программного обеспечения к себе на компьютер, проверять файлы в режиме On-Line антивирусом - откроется в новом окне и будет проверена!

Вы можете оставить своё мнение о программе Нейронная сеть 2.4.2 или комментарии, а также сообщить о битой ссылке на скачивание.
Если у Вас есть вопрос по работе с программой «Нейронная сеть 2.4.2», Вы можете задать его здесь, так как многие авторы программ и издатели отслеживают сообщения на этом сайте!
Все рекламные сообщения не по теме, а также ссылками и телефонами будут удаляться!

Статьи по теме: