![]() |
|
Модераторы: Rickert |
![]()
|
|
| 4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
добрый вечер.начал вот изучать нейросети и сразу возникли вопросы:
1)стоит ли изнчально задать веса для каждого нейрона индивидуально,тем самым как бы специализируя его?(потом они само собой корректируются)например пишу простенький пример,чтобы понять как что работает - есть юнит,у него есть голод,кот с каждым ходом увеличиваетсяж.на поле есть еда.также есть враг,кот может покалечить.так вот идея в том,чтобы "специализировать" некоторые нейроны скажем так чтобы они отвечали за голод,безопасность и тд... 2)в каком диапазоне изменяются веса?нашел пример где изнчально они порядка 0,01,но до какой величины они могут расти?понятно что до бесконечности,но там же вроде есть так называемое состояние насыщения...или я чтото потуаю? 3)веса они мгут только увеличиваться?ведь если один нейрон "неправ",то проще у него одного уменьшить вес,чем потом увеличивать веса у всех остальных.или это просто сложно реализовать? 4)может ли изменяться число нейронов в слое?пока про это нигде не нашел.. Это сообщение отредактировал(а) 4ybaka - 5.11.2007, 23:09 -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
| dereyly |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 2 Всего: 4 |
1) Веса вручную почти никогда не задаются, хотя если вы знаете что начальные значения должны быть примерно такими, вы можете назначить веса +0.3*rand().
1.1) Чаще всего веса инициализируются случайными значениями k*rand(). 0.01<k<0.3 1.2) Иногда инициализация задается некоторым функционалом... Ну допустим равномерное распределение значений... Что-то подобное было в статье Галушкина.... некое применение Монте-Карло (к сожалению точнее описать не могу... не помню... если вы заинтересуетесь проблемой инициализации то можете начать копать оттуда) 2) "Насыщение" наверно зависит от выбора активационной функции. Чаще всего это сигмоидальная функция, где разница между 5 и бесконечностью поступающая на вход сигмоиды не такая большая... (0.9933 и 1 при стандартных коэффициентах) 3) Веса естественно могут как уменьшатся так и увеличиватся... так же они могут быть положительными и отрицательными (тормозящие синапсы) 4) Опишите в каких целях вам нужно менять число нейронов (все зависит от топологии сети) Это сообщение отредактировал(а) dereyly - 5.11.2007, 23:30 |
|||
|
||||
| 4ybaka |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
просто хотелось узнать,какие параметры в сети могут быть динамическими(нужно для проектирования сети) еще возник вопрос: если случилось такое чудо и вес синапса стал равен 0,то как я понимаю этот синапс больше не будет влиять на этот нейрон? и еще пара вопросов: 1)сколько примерно необходимо наборов данных для обучения сети в 3 слоя по 2 нейрона в каждом? 2)на Code Project нашел такой пример:
насколько я понял цикл while это все прокручивает для одного и того же набора(кот весь прогоняется в foreach),но вот когда реализовал это у себя получил что после первой итерации результат больше не менялся...я чего то не понял? Это сообщение отредактировал(а) 4ybaka - 8.11.2007, 00:29 -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
||||
|
|||||
| dereyly |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 2 Всего: 4 |
Да все правильно и это достаточно важная информация. При оптимизации (обученной) нейронной сети можно прослеживать цепочки нейронов с малыми значениями... С помощью этих данных можно исключать входные элементы (анализ главных компонент) или перенормировать их. 1. Что то немогу вспомнить стандартную эмпирическую формулу =(, но где то >20 2. Самое интересное вы не выложили... по какой формуле идет обратное распространение и как корректируются веса... обычно обучение включает >1000 итераций, для тестовых задачек естественно меньше |
|||
|
||||
| 4ybaka |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
после добавления смещения все вроде заработало...но только вроде.
расчет выхода нейрона:
расчет ошибки и пересчет весов и смещений:
обучение всей сети:
так вот пытался обучить эту сеть складывать 2 числа (или вычитать) которые лежат в диапазоне от 0 до1.но в итоге получал либо почти 0(для - ) либо почти 1(для + ).но ошибка(по модулю!)была менее 0,2.выяснилось что во всем виноваты веса синапсов.они всегда получались следующего порядка:
те они все обнуляются!..что не так? Это сообщение отредактировал(а) 4ybaka - 9.11.2007, 00:05 -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
||||||||
|
|||||||||
| dereyly |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 2 Всего: 4 |
1) Какая топология...
я тут запустил нейросеть 2-3-1 (входной-сигмоидальный-линейный) на 100 примерах 100 итераций... ошибка на выходе в 4ом знаке 2) Смещение я думаю проще задать как дополнительный нейрон с выходом +1... 3) Вроде все правильно в коде... еще посмотри как у тебя веса обновляются и learningRate покрути... ИМХО у тебя где то модуль зарыт потому что веса у тебя меняются только в одну сторону --- уменьшения |
|||
|
||||
| 4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
а почему +1?ведь он тогда будет открывать нейрон а не закрывать его? а вот про использование разных функций в каждом слое это идея,надо будет попробовать... -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
| 4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
но вот обучается довольно плохо.при тех же 100 примерах и 100 итераций дает ошибку во 2 знаке... dereyly, не поделитесь секретом -------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
| dereyly |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 2 Всего: 4 |
Я тоже еще раз проверил и тоже получил ошибку во 2 знаке... значит в тот раз мне с инициализацией повезло =)
Как я писал выше 100 итераций это мало... за 500 итераций оно хорошо обучается |
|||
|
||||
| 4ybaka |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 28.4.2007 Репутация: нет Всего: нет |
dereyly, спасибо за помощь.держи)
-------------------- "То,что вы понимаете - это все,что вы понимаете." Брайн Керниган |
|||
|
||||
| zaver |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 15.8.2005 Репутация: нет Всего: 3 |
На эти вопорсы нельзя дать одназначного ответа, т.к. на сегодня существует просто немерянно разных моделей НС, которые отличаються принципиально, а не просто пороговыми функциями, суматорыми, алгоритмами обучения и пр. Отличия настолько принципиальны, что некоторые из них называют уже не "НС". бывает и такое, что в разной литературе ты можешь встретиь разные величины для одной и той-же модели НС. Однозначный ответ на какой-нибудь пункт тебе даст только тот, кто знаком, с какой-то конкретной моделью НС и не знает, что есть другие, принципиально отличающиеся модели. Ближе к конкретике: если тебе хочеться сделать хоть простую НС, то советую начать с Перцептронов - эта наиболее простая модель НС, там функция активации зачастую линейная, а сама сеть разделена на слоя. Такая модель легко программируется и обучается. Перцептроны умеют классифицировать несложные объекты. Когда перцептрон - уже будет слишком просто для тебя советую почитать побольше литературы, где есть обзор моделей НС. Есть еще несколько классических моделей НС, они наиболее часто встречаются в литературе: "сети Хопфилда", "сети Хеминга", "сети Кохонена","(не)когниторные сети" - самые распространенные. они моделируются довольно не просто, но зато могут намного больше. Если захочешь моделировать человеческое мышление, то советую "осцилляторные сети" и "нейропроцессорные сети" - самое перспективное направление. из литературы могу посоветовать только "Хайкин "Нейронные сети"" - книга огромная, но охватывает немерянно материала, есть примеры на MatLab'e. Но использует очень тяжелую математику, школьного курса явно не хватит, тут нужно мехматовские знания. НО, если ты освоишь эту книгу, то будешь мегамозгом в области НС. На заметку: хаотично накидав побольше нейронов и связав их random'om через синапсы, ты НС не получишь. (т.е. формально это будет НС, но без функций НС). сколько ты не будешь сигналить на вход (найти вход в такой каше тоже проблема |
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 6 Всего: 61 |
||||
|
||||
| zaver |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 204 Регистрация: 15.8.2005 Репутация: нет Всего: 3 |
потому что эти связи упорядочены. и причем нейроны имеют разный алгоритм расположения, соединения в зависимости от их специализации (т.е. нейрон из позмоночника, из лобных долей, из ствола мозга, из коры, и пр.), некоторые связи заложены генетически, некоторые появляються в первые дни жизни (но опять таки по генетически заложенному алгоритму), а некоторые формируються до конца жизни. нейроны в нашей голове - это не каша, которая смогла самоорганизоваться. |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |