Опубликован: 13.09.2006 | Уровень: специалист | Доступ: свободно | ВУЗ: Новосибирский Государственный Университет
Лекция 12:

Рекуррентные сети на базе персептрона

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >

Сеть RTRN

Среди рекуррентных сетей особого внимания заслуживает сеть типа RTRN (англ.: Real Time Recurrent Network), предложенная Р.Вильямсом и Д.Зипсером и предназначенная для обработки сигналов в реальном времени. Сеть RTRN - частный случай сети Эльмана.

Структура сети RTRN

увеличить изображение
Рис. 4. Структура сети RTRN

Обобщенная структура сети представлена на рис. 4. Сеть содержит N входных узлов, K скрытых нейронов и K соответствующих им узлов контекстного слоя. Из K скрытых нейронов только M составляют выход сети. Обозначим взвешенную сумму i -го нейрона скрытого слоя u_i, а выход этого нейрона - y_i. Вектор x(k) и смещенный (задержанный) на один цикл вектор y(k-1) образуют расширенный вектор активации x(k), возбуждающий нейроны сети:

x(k) = [1,x_1(k),x_2(k), \ldots, x_N(k), y_1(k-1), \ldots, y_K(k-1)]^T.

После описания входного вектора сети в момент t можно определить состояние всех нейронов согласно зависимостям:

u_i(k) = \sum_{j=0}^{N+K} w_{ij}x_j(k), ( 2)
y_i(k) = f(u_i(k)). ( 3)

причем f( ) обозначает непрерывную функцию активации нейрона (как правило, сигмоидальную). На рис. 4 видно, что сеть RTRN представляет собой частный случай сети Эльмана, в которой веса выходного слоя постоянны и равны дельте Кронекера, т.е. w_{ij} = \delta_{ij} = 1 для i =
j или 0 для i \neq j. В этом случае можно применять алгоритм обучения Вильяма-Зипсера.

1. Выбрать случайные начальные значения весов сети, составляющих матрицу W и равномерно распределенных в заданном интервале (обычно в диапазоне от -1 до 1 ).

2. Рассчитать состояние всех K нейронов для очередного момента t =
0,1,2,\ldots с использованием формул (1) и (2). На этой основе можно определить входной вектор x(k), возбуждающий нейроны в момент t.

3. Рассчитать значения

\begin{align*}
dy_i(k)/dw_{ab} = (df_1(u_i)/du_i)[\delta_{ja}x_b +
\sum_{k=1}^K(dy_i(k-1)/dw_{ab})w_{i,k+N}]
\end{align*}

4. Уточнить значения весов по алгоритму наискорейшего спуска согласно формуле

\begin{align*}
w_{ab}(k+1) = w_{ab}(k) -\alpha \sum_{i=1}^K [y_i(k)- d_i(k)]( dy_i(k)/dw_{ab})
\end{align*}

для a = 1,2, \ldots, K и b = 0,1,2, \ldots, N+K.

Шаги (2-4) повторять вплоть до стабилизации значений всех весов сети.

< Лекция 11 || Лекция 12: 1234 || Лекция 13 >
Андрей Глинский
Андрей Глинский
Россия

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8107102831072watchdog( )../bootstrap.inc:0
22.8109102833560module_invoke( )../bootstrap.inc:967
32.8109102835416call_user_func_array ( )../module.inc:462
42.8109102835752devel_watchdog( )../module.inc:462
52.8111102836600decode_entities( )../devel.module:382
62.8111102838520drupal_error_handler( )../devel.module:340
72.8111102842144watchdog( )../common.inc:663
82.8111102844232module_invoke( )../bootstrap.inc:967
92.8111102846088call_user_func_array ( )../module.inc:462
102.8111102846424devel_watchdog( )../module.inc:462
112.8112102847120decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8107102831072watchdog( )../bootstrap.inc:0
22.8109102833560module_invoke( )../bootstrap.inc:967
32.8109102835416call_user_func_array ( )../module.inc:462
42.8109102835752devel_watchdog( )../module.inc:462
52.8111102836600decode_entities( )../devel.module:382
62.8111102838520drupal_error_handler( )../devel.module:340
72.8111102842144watchdog( )../common.inc:663
82.8111102844232module_invoke( )../bootstrap.inc:967
92.8111102846088call_user_func_array ( )../module.inc:462
102.8111102846424devel_watchdog( )../module.inc:462
112.8112102847120decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8107102831072watchdog( )../bootstrap.inc:0
22.8109102833560module_invoke( )../bootstrap.inc:967
32.8109102835416call_user_func_array ( )../module.inc:462
42.8109102835752devel_watchdog( )../module.inc:462
52.8111102836600decode_entities( )../devel.module:382
62.8118102838712drupal_error_handler( )../devel.module:340
72.8118102842400watchdog( )../common.inc:663
82.8118102844488module_invoke( )../bootstrap.inc:967
92.8118102846344call_user_func_array ( )../module.inc:462
102.8118102846680devel_watchdog( )../module.inc:462
112.8119102847456decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8107102831072watchdog( )../bootstrap.inc:0
22.8109102833560module_invoke( )../bootstrap.inc:967
32.8109102835416call_user_func_array ( )../module.inc:462
42.8109102835752devel_watchdog( )../module.inc:462
52.8111102836600decode_entities( )../devel.module:382
62.8118102838712drupal_error_handler( )../devel.module:340
72.8118102842400watchdog( )../common.inc:663
82.8118102844488module_invoke( )../bootstrap.inc:967
92.8118102846344call_user_func_array ( )../module.inc:462
102.8118102846680devel_watchdog( )../module.inc:462
112.8119102847456decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8125102831616watchdog( )../bootstrap.inc:0
22.8125102833704module_invoke( )../bootstrap.inc:967
32.8125102835560call_user_func_array ( )../module.inc:462
42.8125102835896devel_watchdog( )../module.inc:462
52.8126102836600decode_entities( )../devel.module:382
62.8126102838520drupal_error_handler( )../devel.module:340
72.8126102842144watchdog( )../common.inc:663
82.8126102844232module_invoke( )../bootstrap.inc:967
92.8126102846088call_user_func_array ( )../module.inc:462
102.8126102846424devel_watchdog( )../module.inc:462
112.8127102847120decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8125102831616watchdog( )../bootstrap.inc:0
22.8125102833704module_invoke( )../bootstrap.inc:967
32.8125102835560call_user_func_array ( )../module.inc:462
42.8125102835896devel_watchdog( )../module.inc:462
52.8126102836600decode_entities( )../devel.module:382
62.8126102838520drupal_error_handler( )../devel.module:340
72.8126102842144watchdog( )../common.inc:663
82.8126102844232module_invoke( )../bootstrap.inc:967
92.8126102846088call_user_func_array ( )../module.inc:462
102.8126102846424devel_watchdog( )../module.inc:462
112.8127102847120decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8125102831616watchdog( )../bootstrap.inc:0
22.8125102833704module_invoke( )../bootstrap.inc:967
32.8125102835560call_user_func_array ( )../module.inc:462
42.8125102835896devel_watchdog( )../module.inc:462
52.8126102836600decode_entities( )../devel.module:382
62.8131102838712drupal_error_handler( )../devel.module:340
72.8131102842400watchdog( )../common.inc:663
82.8131102844488module_invoke( )../bootstrap.inc:967
92.8131102846344call_user_func_array ( )../module.inc:462
102.8131102846680devel_watchdog( )../module.inc:462
112.8132102847456decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.8125102831616watchdog( )../bootstrap.inc:0
22.8125102833704module_invoke( )../bootstrap.inc:967
32.8125102835560call_user_func_array ( )../module.inc:462
42.8125102835896devel_watchdog( )../module.inc:462
52.8126102836600decode_entities( )../devel.module:382
62.8131102838712drupal_error_handler( )../devel.module:340
72.8131102842400watchdog( )../common.inc:663
82.8131102844488module_invoke( )../bootstrap.inc:967
92.8131102846344call_user_func_array ( )../module.inc:462
102.8131102846680devel_watchdog( )../module.inc:462
112.8132102847456decode_entities( )../devel.module:382