Jump to content

    

Использование нейронных сетей

Я пока только прикасаюсь к этой теме, но позвольте и мне тоже высказатся.

 

Применение НС, AI я вижу даже не областях, а в условиях. Например, в условиях, когда использование мозга самого человека ограничено, а делать что-то обязательно нужно. Может быть так, что и не обязательно (можно подождать человека), но если делать - это повысит эффективность, откроет новые возможности.

 

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

 

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

 

Еще одно ограничение - это "утомляемость" мозга, более простой искуственный мог бы работать 24х7.

Share this post


Link to post
Share on other sites

Вот три очень хорошие книги по нейросетям:

1. С.Хайкин Нейронные сети.

http://www.books.ru/shop/books/358228

 

2. Bishop C.M.

Neural networks for pattern recognition. -- New York:

Oxford University Press, 1996. -- xvii+482 pp.

 

3. Ripley B.D.

Pattern recognition and neural networks.

-- Cambridge University Press, 1996. -- xii+403 pp.

 

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

 

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

Share this post


Link to post
Share on other sites

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

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

Результаты например в моей бывшей задачке (распознавание сайтов гормонального ответа на ДНК) были вполне на уровне, false positive около 1:2к, false negative менее 2% (погрешность исходных данных всегда несколько процентов, так что что могли - выжали).

 

Правда сейчас самые продвинутые перемещаются в support vector machines и разные kernel methods. Для них с готовыми решениями туговато, а точность замеченная получше. Например что касается ОЧЕНЬ проблемной задачи предсказания вторичной структруры белков, то разные ANN больше 70% точности не поднимались (и то с большииими извращениями, типа каскадов разных сетей, введения эволюционной инфы для взвешивания иходных данных и т.п.), а работа нашего завлаба по SVM (in press пока) обещает уже 78%.

Edited by MarSS

Share this post


Link to post
Share on other sites

Кстати, про эти SVM написано у Хайкина.

Share this post


Link to post
Share on other sites

Ссылка на книгу.

А.Б. Барский

Нейронные сети: распознавание, управление, принятие решений

Москва, "Финансы и статистика", 2004.(http://akps.ssau.ru/AI/barsky.pdf

Edited by Kopa

Share this post


Link to post
Share on other sites
Ссылка, кстати, не работает. :(

Да там и написано, что выкладывать боится.

Share this post


Link to post
Share on other sites
Интересно кто-нибудь использовал НС в задачах анализа временных рядов курсов валют или котировок? Ну конечно же использовал. Интересует каких результатов Вы добились?

 

Там вам кто и скажет, из тех кто добился :) Дальше, Шура, вы будете только получать

"Запомните, с этой минуты вы будете только получать!" (с)

 

Очень приличная библиотека по биржевой торговле, где есть и раздел по нейросетям прилагательно к области

http://dma.masterforex-v.org/#prog7

 

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

Tushar Chande. Beyond technical analysis

Share this post


Link to post
Share on other sites
Самое главное это понять что ничего магического НС делать не могут: на самом деле это просто линейные функции, то есть задается плоскость и нейрон определяет с какой стороны от нее находятся входные данные, ну а обучение это просто выбор этой плоскости. Более сложные НС это еще простенькая схемка приделанная к нескольким нейронам. Вот и получается что они могут решать только задачи которые (пусть приближенно) можно описать таким тривиальным способом.

Тут как раз все не так. Нейрон это не линейная функция на вход которой подается скалярное произведение входов с весовыми коэффициэнтами. Если бы не было нелинейной функции на выходе то автоматически вся нейронная сеть свелась бы к одному скалярному произведению. В этом то их и сила.

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

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

Share this post


Link to post
Share on other sites

Конечно, нелинейные. А кроме того выходы первого слоя перцептронов являются входами следующего слоя. Потому и сети. Теории, по большому счёту нет и не будет. Но поскольку такие системы способны к обучению, можно построить много разных "уродов" и устроить им конкуренцию на выживание. C автоматическим отбором приобретённых качеств. Наука смотрит в эту строну, в сторону генетических нейронных сетей. Я слышал, что таким способом были созданы нейронные сети играющие в нарды лучше любых чемпионов.

 

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

Share this post


Link to post
Share on other sites

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

И точно, они становятся переобученными, с непредсказуемым поведением.

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this