Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diplom1.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2.73 Mб
Скачать

Преимущества и недостатки ооп-подхода

Очевидным преимуществом ООП-подхода является ясная иерархия объектов. Стандартным подходом к реализации нейронных сетей является создание полностью открытой системы, где данные хранятся в массивах, а доступ к ним осуществляется внешней функцией. ООП-подход дает инкапсуляцию данных, что позволяет лучше понимать взаимодействией частей программы. Также при таком подходе многие функции более естественно разделяются на подфункции: например активация сети как последовательный вызов функции активации слоев, которые, в свою очередь, вызывают функции активации своих нейронов. Также это касается взаимодействия элементов: синаптические связи генерируются на уровне слоя и присваиваются нейронам однократно, а последующая активация одного нейрона является обращением к его собственным связям. Такая структура позволяет поэтапно отлаживать программу: на уровне сети и ее обращения к слоям, на уровне взаимодействия слоев с нейронами и на уровне внутренних функций нейронов.

Также разделение сети на самодостаточные объекты позволяет легче перейти к использованию параллельных вычислений. Чтобы применить распараллеливание на цельной системе, необходимо искусственно разделить ее данные на независимые фрагменты; при объектно-ориентированном подходе каждый нейрон имеет все необходимые ему данные и может обсчитываться независимо. Поскольку нейронные сети являются системой с большими требованиями к ресурсам и при этом обладает параллельностью на уровне данных. Таким образом задача может быть распараллелена не только методом использования нескольких CPU, но и на графическом процессоре. И имеющаяся структура подходит для этого наилучшим образом.

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

Производительность системы

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

Таблица 1.1. Объем памяти, требуемой первой версии системы

Входной образ

64х64 px

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

5 S-слоев, 6 C-слоев

UG(UC0)

US1

UC1

US2

UC2

US3

UC3

US4

UC4

US5

UC5

Количество плоскостей (K)

2

12

12

6

6

6

6

6

6

4

4

Размер окрестности

4

7

4

4

4

3

3

3

3

3

15

Фактические размеры плоскости слоя (px)

73 х 73

87 х 87

52 х 52

60 х 60

38 х 38

44 х 44

28 х 28

34 х 34

23х 23

29х

29

1 х 1

Объем памяти, сети и слоев

M ~ 50 MB

Объем памяти нейронов

M ~ 1500 MB

Данные размеры не позволяют сконструировать сеть согласно описанию Фукусимы в работе [1], предназначенную для распознавания цифр на образцах 64х64 пикселя. Поскольку программа создана для работы с произвольными образцами, которые могут быть большего размера, а также иметь более сложную структуру (и для этого требовать большего числа нейронных плоскостей), эти затраты по памяти неприемлемы. Также можно заметить, что данная сеть не сможет полноценно обучаться, поскольку процесс обучения последних слоев включает в себя генерацию дополнительных нейронных плоскостей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]