Студопедия — Глава 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; просмотров: 415. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

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

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Ученые, внесшие большой вклад в развитие науки биологии Краткая история развития биологии. Чарльз Дарвин (1809 -1882)- основной труд « О происхождении видов путем естественного отбора или Сохранение благоприятствующих пород в борьбе за жизнь»...

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

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Принципы, критерии и методы оценки и аттестации персонала   Аттестация персонала является одной их важнейших функций управления персоналом...

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