Сеть, состоящую из одного нейрона.

 
В продолжение темы вчерашней…

Я вчера просил у форумян-гуру по вопросам нейросети объяснить мне и показать хотя бы один простой пример ее построения и хотя бы состоящую их одного нейрона.

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

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

Другое дело, если взять в качестве нейрона не одну МА а пересечение двух МА. В этом случае можно будет легко задать функцию оценки результата данного нейрона. Например если его значение больше 0 то на выходе будем имееть +1, если значение меньше 0, то будем на выходе получать -1 и значит будем продавать. (Так как у нас один нейрон, то весовой коэффициент будет равный 100% и о нем пока речь может не идти)

И вот теперь начнется самое интересное.



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


На самом деле такую сеть нужно записать скорее всего в другом виде со скрытым слоем



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

Вот в принципе и все что я пока хотел спросить. Теперь вопрос правильно ли я рассуждаю в отношении нейросетей или есть ошибка в моем рассуждении. Заранее спасибо за отсутсвие флуда.
 
sergeev:
В продолжение темы вчерашней…

Я вчера просил у форумян-гуру по вопросам нейросети объяснить мне и показать хотя бы один простой пример ее построения и хотя бы состоящую их одного нейрона.

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

Итак. Вопрос был следующего содержания. Показать на конкретном примере сеть, состоящую из одного нейрона.

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

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

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

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

 
То есть мои рассуждения вполне нормальны и я пока на этом шаге своего обучения все правильно понимаю в отношении принципов построения сетей?
 
sergeev:
То есть мои рассуждения вполне нормальны и я пока на этом шаге своего обучения все правильно понимаю?

Все нормально.
 

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

Задачи распознавания имеют следующие характерные черты.

- преобразование исходных данных к виду, удобному для распознавания;
- собственно распознавание (указание принадлежности объекта определенному классу).

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

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

При таком построении и обучении НС, ничего хорошего не получиться.

Поэтому 1. Определитесь с объектом (или состоянием объекта) которые Вы хотите распознавать. 2. Выберите данные, которые помогут Вам это сделать и приведите их к виду удобному для НС. И только тогда обучайте НС.

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

Хорошо теперь давайте перейдем к чуток усложненному варианту

Допустим что у нас есть 10 разных нейронов-индикаторов. РСИ, МАКД, СТОХ и т.д. может быть даже их комбинации .Для простоты будем считать, что на вход индикатору подается только один его изменяемый парамтер. Результатом работы функции анализа будет сигнал + или – (покупка или продажа)

Сеть в таком случае будет представлена таким примитивным рисунком




Верно?

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

Например всем известный рисунок из книги Ф. Уоссермен


 

Так можно всю жизнь искать. 1 определитесь с классами, что вы распознаете, т.е определите выход. У потока котировок нет свойсва покупать или продавать Вы ищите то чего не существует.

2. И только потом ищите что подать на вход.

Yn - это и есть классы

Правка. Возвращаюсь к своему примеру. ВЫ хотите разделить весь город на тех кого покупать и тех кого продавать. У человека нет таких свойств !!! Как и у потока котировок тоже.

 
sergeev:
То есть мои рассуждения вполне нормальны и я пока на этом шаге своего обучения все правильно понимаю в отношении принципов построения сетей?


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

В качестве нейрона выбираем некоторый индикатор.

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

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

Это, как видите, не может быть основанием для покупки или продажи. Но если взять еще один такой нейрон и подать на него значения этих МА на предыдущем баре, а потом взять третий нейрон, поставить его в выходном слое, замкнуть на него выходы двух нейронов скрытого слоя и сделать так, что если его входы (+1,-1) или (-1,+1), то он выдает +1 для покупки и -1 для продажи соответственно, а если входы (+1, +1) или (-1,-1) - то 0 - ничего не делать, то вы получите нейросеть, которая реализует стратегию пересечения двух МА.

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

Но в качестве примера того, как нейросеть обрабатывает данные и выдает решение - подойдет.

 
Prival:

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

Yurixx:

Очень хорошие примеры. А что тогда подразумевается под обучением сети? 
Только лишь перебор всех весов и параметров входного вектора? 
Если так, то это называется сбор статистики и комбинаторика а не нейросеть.
 
sergeev:
Prival:

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


Я про котировки ничего не говорил (не надо это Вы уже сами надумали :-)). У Вас на выходе нарисована (покупка-продажа). Т.е. действие, а у котировок нет этого свойства. Подумайте на что вы хотите настроить НС на распознавание чего ? Перечислите согласно приведенной Вами картинки Y1, Y2 ..... Yn. Хотя бы словесно.
 
Щас попробую
Причина обращения: