| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
dmitrdv Новый посетитель

Зарегистрирован: 02 Фев 2006 Сообщения: 10 Откуда: екатеринбург
|
Добавлено: Ср Мар 01, 2006 1:22 pm Заголовок сообщения: Back propagation must die |
|
|
Реализовал классический алгоритм обратного распространения - он ужасен
взял простую сеть из 2 последовательно связанных нейронов:
вход1 -> нейрон1 -> нейрон2 -> выход1
взял обучающую выборку из одного элемента (X1, Y1) - попытался обучить сеть
Результат:
постоянно приходится подбирать коэффициент скорости обучения для разных X1 и Y1
Что делать? - а я то хотел реализовать этот алгоритм - сделать какой нидь интересный пример (это моя дипломная работа). А теперь придется делать более совершенный алгоритм - может подскажете какой - или усовершенствовать этот?
И вообще как этим алгоритмом вообще кто то пользуется? - если он даже на таком простом примере не работает - а что будет если сеть и обучающая выборка будет больше? |
|
| Вернуться к началу |
|
 |
siteadmin НейроПроект

Зарегистрирован: 10 Июн 2005 Сообщения: 81 Откуда: Москва
|
Добавлено: Ср Мар 01, 2006 2:37 pm Заголовок сообщения: |
|
|
| я бы посоветовал не изобретать колесо и скачать каких-нить готовых пакетов. А для диплома например провести сравнение эффективности разных архитектур или алгоритмов при решении каких-нибудь модельных или реальных задачек |
|
| Вернуться к началу |
|
 |
Oleg Agapkin Администратор


Зарегистрирован: 10 Июн 2005 Сообщения: 112 Откуда: Москва
|
Добавлено: Ср Мар 01, 2006 4:07 pm Заголовок сообщения: Re: Back propagation must die |
|
|
| dmitrdv писал(а): | Реализовал классический алгоритм обратного распространения - он ужасен
...
И вообще как этим алгоритмом вообще кто то пользуется? - если он даже на таком простом примере не работает - а что будет если сеть и обучающая выборка будет больше? |
Уверяю вас, если правильно реализовать этот алгоритм, он будет работать прекрасно на гораздо более сложных выборках. |
|
| Вернуться к началу |
|
 |
Eugeen Эксперт

Зарегистрирован: 15 Ноя 2005 Сообщения: 66 Откуда: Москва
|
Добавлено: Ср Мар 01, 2006 5:21 pm Заголовок сообщения: Re: Back propagation must die |
|
|
| Цитата: | взял простую сеть из 2 последовательно связанных нейронов:
вход1 -> нейрон1 -> нейрон2 -> выход1
взял обучающую выборку из одного элемента (X1, Y1) - попытался обучить сеть |
Как же Вы хотите обучить сеть: 2 слоя а выборка из одного элемента?
Попробуйте хотя бы наоборот. Обучающий набор должен быть представительным, надо иметь еще cross-referens набор и test-набор. тогда у Вас все получиться. _________________ Мелочи не играют решающей роли. Они решают все.
"Жизнь среди акул", Х. Маккей. |
|
| Вернуться к началу |
|
 |
dmitrdv Новый посетитель

Зарегистрирован: 02 Фев 2006 Сообщения: 10 Откуда: екатеринбург
|
Добавлено: Чт Мар 02, 2006 8:35 am Заголовок сообщения: |
|
|
| Sergey Sharov писал(а): | | я бы посоветовал не изобретать колесо и скачать каких-нить готовых пакетов. А для диплома например провести сравнение эффективности разных архитектур или алгоритмов при решении каких-нибудь модельных или реальных задачек |
уже многое сделано - нужно доработать что есть |
|
| Вернуться к началу |
|
 |
dmitrdv Новый посетитель

Зарегистрирован: 02 Фев 2006 Сообщения: 10 Откуда: екатеринбург
|
Добавлено: Чт Мар 02, 2006 8:39 am Заголовок сообщения: Re: Back propagation must die |
|
|
| Oleg Agapkin писал(а): | | dmitrdv писал(а): | Реализовал классический алгоритм обратного распространения - он ужасен
...
И вообще как этим алгоритмом вообще кто то пользуется? - если он даже на таком простом примере не работает - а что будет если сеть и обучающая выборка будет больше? |
Уверяю вас, если правильно реализовать этот алгоритм, он будет работать прекрасно на гораздо более сложных выборках. |
я взял за основу алгоритм на этом сайте http://ai.obrazec.ru/neur-2.html
этот же алгоритм есть на многих других сайтах
Он может работать? - тогда посоветуйте какой нидь пример интересный чтобы я реализовал
может быть кинете ссылку где есть усовершенствованный алгоритм обр распр |
|
| Вернуться к началу |
|
 |
dmitrdv Новый посетитель

Зарегистрирован: 02 Фев 2006 Сообщения: 10 Откуда: екатеринбург
|
Добавлено: Чт Мар 02, 2006 8:40 am Заголовок сообщения: Re: Back propagation must die |
|
|
| Eugeen писал(а): | | Цитата: | взял простую сеть из 2 последовательно связанных нейронов:
вход1 -> нейрон1 -> нейрон2 -> выход1
взял обучающую выборку из одного элемента (X1, Y1) - попытался обучить сеть |
Как же Вы хотите обучить сеть: 2 слоя а выборка из одного элемента?
Попробуйте хотя бы наоборот. Обучающий набор должен быть представительным, надо иметь еще cross-referens набор и test-набор. тогда у Вас все получиться. |
а как насчет того что каждый раз приходится подбирать скорость обучения
или он вылетает в большие числа или сходится к стационарной точке |
|
| Вернуться к началу |
|
 |
Куркин Дмитрий Новый посетитель

Зарегистрирован: 23 Янв 2006 Сообщения: 12 Откуда: Челябинск
|
Добавлено: Чт Мар 02, 2006 12:44 pm Заголовок сообщения: Re: Back propagation must die |
|
|
| Eugeen писал(а): | | Цитата: | взял простую сеть из 2 последовательно связанных нейронов:
вход1 -> нейрон1 -> нейрон2 -> выход1
взял обучающую выборку из одного элемента (X1, Y1) - попытался обучить сеть |
Как же Вы хотите обучить сеть: 2 слоя а выборка из одного элемента?
Попробуйте хотя бы наоборот. Обучающий набор должен быть представительным, надо иметь еще cross-referens набор и test-набор. тогда у Вас все получиться. |
Не могли бы вы по-подробнее объяснить, что есть cross-referens набор и test-набор? |
|
| Вернуться к началу |
|
 |
Eugeen Эксперт

Зарегистрирован: 15 Ноя 2005 Сообщения: 66 Откуда: Москва
|
Добавлено: Чт Мар 02, 2006 10:33 pm Заголовок сообщения: Re: Back propagation must die |
|
|
| Цитата: | | Не могли бы вы по-подробнее объяснить, что есть cross-referens набор и test-набор |
Доходчиво это описано у Саймона Хайкина п. 4.14 (стр.288-289).
Если вы хотите серьезно заниматься НС, Вам ее надо иметь.
cross-referens или cross-validation набор нужен для контроля правильности обучения. Привожу оригинальный текст, чтобы не было ошибок интерпретации:
During training, the input and desired data will be repeatedly presented to the network. As the network learns, the error will drop towards zero. Lower error, however, does not always mean a better network. It is possible to overtrain a network.
Cross validation is a highly recommended criterion for stopping the training of a network. Although highly recommended, it is not required. One will often want to try several networks using just training data in order to see which works best, and then use cross validation for the final training.
When using cross validation, the next step is to decide how to divide your data into a training set and a validation set, also called the test set. The network is trained with the training set, and the performance checked with the test set. The neural network will find the input-output map by repeatedly analyzing the training set. This is called the network training phase. Most of the neural network design effort is spent in the training phase. Training is normally slow because the network’s weights are being updated based on the error information. At times, training will strain the patience of the designer. But a carefully controlled training phase is indispensable for good performance, so be patient. NeuroSolutions’ code was written to take maximum advantage of your computer’s resources. Hardware accelerators for NeuroSolutions that are totally transparent to the user are forthcoming.
There is a need to monitor how well the network is learning. One of the simplest methods is to observe how the cost, which is the square difference between the network’s output and the desired response, changes over training iterations. Note that in principle the learning curve decreases exponentially to zero or a small constant. One should be satisfied with a small error. How small depends upon the situation, and your judgment must be used to find what error value is appropriate for your problem. The training phase also holds the key to an accurate solution, so the criterion to stop training must be very well delineated. The goal of the stop criterion is to maximize the network’s generalization.
It is relatively easy to adapt the weights in the training phase to provide a good solution to the training data. However, the best test for a network’s performance is to apply data that it has not yet seen. Take a stock prediction example. One can train the network to predict the next day’s stock price using data from the previous year. This is the training data. But what is really needed is to use the trained network to predict tomorrow’s price.
To test the network one must freeze the weights after the training phase and apply data that the network has not seen before. If the training is successful and the network’s topology is correct, it will apply its ‘past experience’ to this data and still produce a good solution. If this is the case, then the network will be able to generalize based on the training set.
What is interesting is that a network with enough weights will always learn the training set better as the number of iterations is increased. However, neural network researchers have found that this decrease in the training set error was not always coupled to better performance in the test set. When the network is trained too much, the network ‘memorizes’ the training patterns and does not generalize well.
A practical way to find a point of better generalization is to set aside a small percentage (around 10%) of the training set and use it for cross validation. One should monitor the error in the training set and the validation set. When the error in the validation set increases, the training should be stopped because the point of best generalization has been reached. Cross validation is one of the most powerful methods to stop the training. _________________ Мелочи не играют решающей роли. Они решают все.
"Жизнь среди акул", Х. Маккей. |
|
| Вернуться к началу |
|
 |
dmitrdv Новый посетитель

Зарегистрирован: 02 Фев 2006 Сообщения: 10 Откуда: екатеринбург
|
Добавлено: Пн Мар 06, 2006 10:39 am Заголовок сообщения: |
|
|
Вопрос насчет аппроксимации функций нейронными сетями:
для решения этой задачи создаем сеть с одним входом и одним выходом
далее обучаем сеть подавая точки, которые мы аппроксимируем
а затем подаем любые X из интервалов - и получаем график
Я правильно описал процесс?
Какую лучше конфигурацию выбрать? |
|
| Вернуться к началу |
|
 |
|