Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Как обучить многослойный персептрон? (http://forums.kuban.ru/f1024/kak_obuchit-_mnogoslojnyj_perseptron-5612068.html)

megabax 11.04.2014 15:58

Как обучить многослойный персептрон?
 
Читал, что для обучения одного нейрона надо каждый вес скорректировать на некую дельту, умноженную на соответствующее значение входного вектора из обучающей матрицы, примерно как то так:

/// <summary>
/// Обучение нейрона
/// </summary>
/// <param name="t">Желаемая реакция</param>
/// <param name="a_inputs">Входной вектор</param>
public void study(double t, List<double> a_inputs)
**
double y = output;
double dty = t - y;
if (trans.id == TransFuncConstId.ThreeLevelsId || trans.id == TransFuncConstId.ThresholdId)
**
(trans as Threshold).level = (trans as Threshold).level - mu * dty * (trans as Threshold).level;
**
for (int i = 0; i < weights.Count; i++)
**
weights[i] = weights[i] + mu * dty * a_inputs[i];
**
**


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

folodia 12.04.2014 23:08

мне кажется вы неправильно понимаете алгоритм
как я понял вы пытаетесь обучить НН методом обратного распространения ошибки
[url]http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html[/url]
а вообще погуглите, есть готовые библиотеки на шарпе, которые сделают все за вас

megabax 18.05.2014 19:54

1-vr > Спасибо, в статье все вроде доходчиво объяснено. Непонятно только одно - а как найти производную ступенчатой функции? В моей нейросети активаторная функция - ступенька.

x_05772 22.05.2014 19:27

[quote=megabax;34858831]Но как делать для персептрона с несколькими слоями, если в каждом слое разное количество нейронов?[/quote]
Никак. Идея персептрона была выдвинута ещё в 1950х, вместе с биокибернетикой, бионикой и прочими дисциплинами. Для реальных задач он не используется. Равно как и сети Петри, нечеткие множества... Плюнуть и заниматься более полезным.

folodia 22.05.2014 21:13

[quote=x_05772;35303445] Никак. Идея персептрона была выдвинута ещё в 1950х, вместе с биокибернетикой, бионикой и прочими дисциплинами. Для реальных задач он не используется. Равно как и сети Петри, нечеткие множества... Плюнуть и заниматься более полезным. [/quote]
ты парень вообще не шаришь, в японии уже 15 лет бум нечетких контроллеров

megabax 24.05.2014 10:55

3-x_05772 > А распознавание символов в таких программах, как файн риадер, как тогда происходит?

x_05772 25.05.2014 11:56

[quote=vr;35304596]ты парень вообще не шаришь, в японии уже 15 лет бум нечетких контроллеров[/quote]
А где ссылка?[quote=megabax;35319572]А распознавание символов в таких программах, как файн риадер, как тогда происходит?[/quote]
Не знаю, но точно не сетями, персепронами и прочей самообучаемой конструкции. Можно по топологии, как в FineReader, интегральным характеристикам.


Текущее время: 20:49. Часовой пояс GMT +3.