Студопедия — Глава 4. Имплементация темпорального группировщика и ее псевдокод
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Глава 4. Имплементация темпорального группировщика и ее псевдокод






В данной главе содержится детальный псевдокод первой имплементации функций алгоритма темпорального группировщика. Входом для него является результат вычислений activeColumns(t), полученный в результате работы пространственного группировщика. Данный код вычисляет состояния активности и предсказания для всех клеток в данный момент времени t. Логическая операция ИЛИ для указанных состояний по всем клеткам формирует вектор результата работы темпорального группировщика для передачи его на вход следующему уровню.

Данный псевдокод разбивается на три отдельные фазы, которые выполняются последовательно:

Фаза 1: вычисление активных состояний activeState(t) для каждой клетки.

Фаза 2: вычисление состояний предчувствия (предсказания) predictiveState(t) для каждой клетки.

Фаза 3: обновление синапсов.

Фаза 3 необходима только для обучения. Тем не менее, в отличии от работы пространственного группировщика, здесь фазы 1 и 2 включают в себя несколько операций специфических именно для обучения, если оно задействовано. Поскольку темпоральный группировщик гораздо более сложен в своей работе, чем пространственный группировщик, мы рассмотрим сначала его версию предназначенную только для распознавания, а потом версию, где будут и распознавание и обучение. Описание некоторых деталей имплементации, терминологии и вспомогательных процедур приводится в конце этой главы, после обсуждения псевдокода.

Псевдокод темпорального группировщика: только распознавание

Фаза 1

На первой фазе вычисляются активные состояния для каждой клетки. То есть для каждой победившей активной колонки мы должны определить какие из ее клеток должны стать активными. Если прямой вход был предсказан какой-либо из ее клеток (т.е. ее параметр predictiveState был равен 1 благодаря ее сегменту последовательностей (латеральному), на предыдущем временном шаге), тогда такие клетки становятся активными (строки 4-9). А если данный прямой вход был неожиданным для колонки (т.е. в ней не было клеток с predictiveState равным 1), тогда каждая клетка в этой колонке становится активной (строки 11-13).

 

1. for c in activeColumns(t)

2.

3. buPredicted = false

4. for i = 0 to cellsPerColumn - 1

5. if predictiveState(c, i, t-1) == true then

6. s = getActiveSegment(c, i, t-1, activeState)

7. if s.sequenceSegment == true then

8. buPredicted = true

9. activeState(c, i, t) = 1

10.

11. if buPredicted == false then

12. for i = 0 to cellsPerColumn - 1

13. activeState(c, i, t) = 1

 

Фаза 2

Вторая фаза вычисляет состояния предсказания (предчувствия активации) для каждой клетки. Каждая клетка включает свое состояние предчувствия (параметр predictiveState становится 1) если хоть один из ее латеральных сегментов становится активным, т.е. достаточное число его горизонтальных (боковых, латеральных) соединений сейчас активно благодаря прямому входу.

 

14. for c, i in cells

15. for s in segments(c, i)

16. if segmentActive(c, i, s, t) then

17. predictiveState(c, i, t) = 1

Псевдокод темпорального группировщика: комбинация распознавания и обучения

Фаза 1

На первой фазе вычисляются активные состояния (значения activeState) для каждой клетки из победивших колонок. Из этих колонок далее выбирается одна клетка на колонку для обучения (learnState). Логика здесь следующая: если текущий прямой вход снизу был предсказан какой-либо из клеток (т.е. ее параметр predictiveState был равен 1 благодаря какому-то ее латеральному сегменту), тогда эти клетки становятся активными (строки 23-27). Если этот сегмент стал активным из-за клеток выбранных для обучения (learnState ==1), тогда такая клетка также выбирается для обучения (строки 28-30 [исправлена опечатка]). Если же текущий прямой вход снизу не был предсказан, тогда все клетки становятся активными (строки 32-34) и кроме того, клетка лучше всего соответствующая входным данным выбирается для обучения (строки 36-41), причем ей добавляется новый латеральный сегмент.

 

18. for c in activeColumns(t)

19.

20. buPredicted = false

21. lcChosen = false

22. for i = 0 to cellsPerColumn - 1

23. if predictiveState(c, i, t-1) == true then

24. s = getActiveSegment(c, i, t-1, activeState)

25. if s.sequenceSegment == true then

26. buPredicted = true

27. activeState(c, i, t) = 1

28. if segmentActive(s, t-1, learnState) then

29. lcChosen = true

30. learnState(c, i, t) = 1

31.

32. if buPredicted == false then

33. for i = 0 to cellsPerColumn - 1

34. activeState(c, i, t) = 1

35.

36. if lcChosen == false then

37. i = getBestMatchingCell(c, t-1)

38. learnState(c, i, t) = 1

39. sUpdate = getSegmentActiveSynapses (c, i, -1, t-1, true)

40. sUpdate.sequenceSegment = true

41. segmentUpdateList.add(sUpdate)

Фаза 2

Вторая фаза вычисляет состояния предсказания (предчувствия активации) для каждой клетки. Каждая клетка включает свое состояние предчувствия (параметр predictiveState) если любой из ее латеральных сегментов становится активным, т.е. достаточное число его горизонтальных (боковых, латеральных) соединений становятся активными благодаря прямому входу. В этом случае клетка ставит в очередь на отложенное исполнение ряд следующих своих изменений: а) усиление активных сейчас латеральных сегментов (строки 47-48)) и б) усиление сегментов которые могли бы предсказать данную активацию, т.е. сегментов которые соответствуют (возможно пока слабо) активности на предыдущем временном шаге (строки 50-53)).

 

 

42. for c, i in cells

43. for s in segments(c, i)

44. if segmentActive(s, t, activeState) then

45. predictiveState(c, i, t) = 1

46.

47. activeUpdate = getSegmentActiveSynapses (c, i, s, t, false)

48. segmentUpdateList.add(activeUpdate)

49.

50. predSegment = getBestMatchingSegment(c, i, t-1)

51. predUpdate = getSegmentActiveSynapses(

52. c, i, predSegment, t-1, true)

53. segmentUpdateList.add(predUpdate)

 

Фаза 3

Третья и последняя фаза занимается обучением. В этой фазе происходит реальное обновление сегментов (которое было поставлено в очередь на исполнение) в том случае если колонка клетки активирована прямым входом и эта клетка выбрана в качестве кандидатки для обучения (строки 55-57). В противном случае, если клетка по каким-либо причинам перестала предсказывать, мы ослабляем ее латеральные сегменты (строки 58-60)

 

54. for c, i in cells

55. if learnState(s, i, t) == 1 then

56. adaptSegments (segmentUpdateList(c, i), true)

57. segmentUpdateList(c, i).delete()

58. else if predictiveState(c, i, t) == 0 and predictiveState(c, i, t-1)==1 then

59. adaptSegments (segmentUpdateList(c,i), false)

60. segmentUpdateList(c, i).delete()

61.

 







Дата добавления: 2015-08-12; просмотров: 416. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

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

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

МЕТОДИКА ИЗУЧЕНИЯ МОРФЕМНОГО СОСТАВА СЛОВА В НАЧАЛЬНЫХ КЛАССАХ В практике речевого общения широко известен следующий факт: как взрослые...

Studopedia.info - Студопедия - 2014-2024 год . (0.007 сек.) русская версия | украинская версия