Форум myROBOT.ru » Лаборатория » Алгоритмы » Нейронная сеть

Страниц (1): [1]
 

1. Erhaben - 23 Августа, 2014 - 12:57:16 - перейти к сообщению
Приветствую всех на этом форуме.

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

Суть работы сети - на основании даты ( те самые пять входов : день, месяц, год, часы, минуты ) выдавать мне предполагаемую температуру. Сеть учится с учителем.

Обучающую выборку сделал - там данные о погоде с 2005 по 2014 год для моего родного города.

Но из-за недостатка опыта и отсутствия хоть кого-то знающего рядом возник ряд вопросов :

1. Архитектура сети. Если я правильно понимаю, мне следует использовать многослойную линейную сеть т.к. нелинейные нейроны на выходе имеют сигналы либо 0 / 1, либо -1 / +1, в зависимости от того униполярные они или биполярные.
2. Сам принцип выходного сигнала. Видимо я просто не привык мыслить такими категориями. Поясню свое непонимание :
Предположим я решил что в сети будет два слоя. В первом 10 нейронов, во втором 3. Первый слой срыт.
Порядок действий сети :
1. Сигналы поступают на необучающиеся нейроны входного слоя.
2. Каждый нейрон входного слоя шлет эти сигналы на все нейроны скрытого слоя ( связь каждый с каждым ).
3. Каждый нейрон скрытого слоя обрабатывает сигналы и шлет ответ на каждый нейрон выходного слоя.
4. Каждый нейрон выходного слоя обрабатывает сигнал

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

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

Буду дико благодарен за любые советы, особенно за ссылку на практическую реализацию подобной задачи.
(Добавление)
Вопрос с ответом сети вроде как отпал после гугления, насколько я понял для получения конкретного значения на выходе нужно просто иметь один нейрон. Т.е. структура сети выходит :
5 ( входной слой ) - 10 ( первый скрытый слой ) - 5 ( второй скрытый слой ) - 1 ( выходной слой, в теории именно он скажет мне температуру ).

Если я правильно понимаю как оно работает выйдет так - ответ первого скрытого слоя будет массивом из 10-ти ( по числу нейронов ) элементов.

Значит у нейронов второго скрытого слоя должно быть десять входов у каждого, верно? Ответ первого скрытого слоя я подаю на каждый нейрон второго скрытого слоя. На выходе имею массив из 5-ти элементов, опять же, по числу нейронов.

Нейрон выходного слоя должен иметь пять входов. На выходе он даст мне цифру, которая будет являться прогнозируемой температурой. Я верно понимаю?
2. Predator - 23 Августа, 2014 - 15:26:39 - перейти к сообщению
Цитата:
ответ каждого слоя это грубо говоря массив, состоящий из ответов каждого нейрона
совершенно верно.
Цитата:
Нейрон выходного слоя должен иметь пять входов. На выходе он даст мне цифру, которая будет являться прогнозируемой температурой
совершенно верно.
Цитата:
Значит у нейронов второго скрытого слоя должно быть десять входов у каждого
совершенно верно.

теперь несколько уточнений: у нелинейного нейрона не обязательно выход 0 или 1, это может быть любая функция, которая будет отличаться от y=ax+b, где y- выход, а x-сумма входных воздействий.
Архитектура сети: между слоями есть связи, они соединяют выходы предыдущего слоя с входами следующего, в идеале - каждый с каждым. И собственно весовые коэффициенты этих связей и обучаются.
3. Erhaben - 23 Августа, 2014 - 17:39:56 - перейти к сообщению
Благодарю за ответ. Насчет нелинейных нейронов не знал, видимо пропустил во время обучения.

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

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

Еще несколько вопросов - под задачу такого плана лучше использовать линейные или нелинейные нейроны? Является ли хорошей практикой смешивать нейроны разных типов в одной сети? Имеет ли это вообще какой-нибудь практический смысл? Возможно все это глупые вопросы конечно.
4. Predator - 23 Августа, 2014 - 20:21:25 - перейти к сообщению
под задачу такого плана- нейроны лучше не использовать, нейронные сети хороши в задачах с огромным количеством входов и нечеткой зависимостью от них выхода.
Смешивать нейроны разных типов.... ну наверное можно, я такого не встречал (хотя я не много нейронных сетей встречал в принципе).
5. cjA - 13 Ноября, 2014 - 23:51:16 - перейти к сообщению
"нечеткой зависимостью"- он минуты хочет учитывать- куда уж нечетчее, Predator? Помираю со смеху