![]() |
|
Использование языка MC# для реализаций параллельного классификатора образов.*Е.С.Борисов 1 Цели и проблемыК задаче классификации можно свести много прикладных задач : от оптического распознавания текста до выявление фальшивых кредитных карт и медицинской диагностики. Существует несколько подходов к построению классификаторов. В данной статье рассмотрен классификатор на основе искусственной нейронной сети [1]. При большой размерности нейронной сети, возникает потребность в высокопроизводительных многопроцессорных вычислительных системах [2]. Это особенно важно для классификаторов реального времени, где необходимо получать результат сразу, без существенных задержек. Для многопроцессорных вычислительных систем необходимо создавать специальные программы. В тексте такой программы определяются части (ветки), которые могут выполнятся параллельно, а также алгоритм их взаимодействия. Целью данной работы является построение классификатора для эффективного использования на многопроцессорных вычислительных системах. 2 Постановка задачиЗадача, которую мы будем рассматривать в данной статье, это классификация бинарных образов (черно-белых видеоизображений). Постановку задачи можно сформулировать так : разработать параллельную программу классификации бинарных образов, способную одновременно обрабатывать несколько образов. 3 РешениеДля реализации классификатора будем использовать модели искусственных нейронных сетей. 3.1 Искусственная нейронная сетьИскусственная нейронная сеть это совокупность нейронных элементов (рис. 1) и связей между ними [3].
Множество всех нейронов нейронной сети можно разделить на подмножества - т.н. слои. Слой искусственной нейронной сети это множество нейронов на которые в каждый такт времени параллельно поступают сигналы от других нейронов данной сети [3]. Взаимодействие нейронов происходит послойно. 3.2 КлассификаторВ данной работе для реализации классификатора используется однослойная нейронная сеть (персептрон) из 10 нейронов (рис. 2).3.2.1 Параметры сети
3.2.2 Алгоритм работы классификатораНа вход классификатора подаются бинарные картинки (рис. 3) размером
Важной особенностью искусственной нейронной сети есть возможность её обучения. Процесс обучения сводится к процедуре корректировки весовых коэффициентов. В качестве метода обучения используется правило Видроу-Хоффа [4]:
Таким образом, прежде чем классификатор начнет работать его необходимо обучить на множестве учебных примеров, которое представляет собой множество пар - (картинка, выход сети). Цикл обучения выглядит так :
3.3 Реализация с распараллеливаниемСоответственно представленной выше модели, на языке MC# [5][6][7] написан параллельный классификатор бинарных образов. ''Память'' сети это матрица весовых коэффициентов Классификатор реализуется тремя классами : // однослойная сеть ParClassificator - класс, реализующий параллельный классификатор. На этапе инициализации программы при помощи конструктора ParClassificator(), на основе содержимого patterns.dat и targets.dat, создается рабочая матрица весов m_weight. Собственно, механизм распараллеливания заключен в двух методах recognize и Get :
Параллельный классификатор ParClassificator осуществляет одновременное распознавание бинарных образов из tests.dat при помощи метода makeTestPar. Этот метод для каждого образа из tests.dat вызывает movable метод recognize и собирает результаты методом Get. class ParClassificator {
4 РезультатДанная программа реализует модель распараллеливания по данным - все множество данных для обработки делится на части и распределяется между вычислительными узлами, которые независимо друг от друга по единому алгоритму обрабатывают свои части. При увеличении количества процессоров, предполагается ускорение близкое к
линейному. Ускорение[8] на где Литература
Сноски
Об этом документе ...Использование языка MC# для реализаций параллельного классификатора образов.This document was generated using the LaTeX2HTML translator Version 2002 (1.67) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer
Based Learning Unit, University of Leeds. The command line arguments were: The translation was initiated by mechanoid on 2003-09-27 Evgeny S. Borisov 2003-09-27 |
|