166 ТРУДЫ БГТУ. 2015. № 6. Физико-математические науки и информатика. С. 166-1 70
УДК 681.391
А. М. Драко, Д. М. Романенко
Белорусский государственный технологический университет
ОСОБЕННОСТИ НЕЙРОСЕТЕВОГО ДЕКОДИРОВАНИЯ ЛИНЕЙНЫХ БЛОЧНЫХ КОДОВ
В статье рассматриваются особенности применения нейронной сети для декодирования кода Хэмминга. Предлагается использовать нейронную сеть для декодирования полученного сообщения путем выбора, к какому из вариантов кодовых последовательностей наиболее вероятно принадлежало переданное сообщение, что является решением задачи классификации. Для решения таких задач применяется сеть Геленбе. Кодовые символы поступят на элементы сети, образующие входной слой. Данный слой использует рекуррентную связь между нейронами, что позволяет найти корреляцию между символами переданного сообщения. Следующий слой содержит необходимое число выходных элементов, равное количеству вариаций кодовых последовательностей. Связанный прямой связью с предыдущим слоем, этот слой произведет классификацию. На выходе сети предполагается получать нулевое значение в одном из выходных элементов и единицы в других элементах. Сеть обучается на примерах входных и выходных значений элементов по методу градиентного спуска с минимизацией количества ошибок при классификации.
Проведенные исследования при помощи разработанной программной модели нейронного метода декодирования показали возможность его применения и с другими блочными кодами, например итеративными. Нейросетевой декодер показал высокие результаты по обнаружению и исправлению ошибок, которые близки к «мягкому» декодированию. Однако увеличение длины кодовой последовательности усложняет процесс декодирования, что определяет необходимость дальнейших исследований в данной области.
Ключевые слова: кодирование, сети, нейрон, информация, каналы, связь, передача, обучение, уровни.
А. M. Drako, D. M. Romanenko
Belarusian State Technological University
FEATURES OF NEURAL NETWORK DECODING OF LINEAR BLOCK CODES
^е article describes the features for the decoding Hamming code with a neural network. It is proposed to use a neural network to decode the received message by selecting which of the variants of the code sequences most likely was belong to transmitted message. This selection is a solution for the problem of classification. To solve these problems usually applied Gelenbe network. The code symbols go to the network elements forming the input layer. This layer uses a recursive relationship between the neurons that allows to find a correlation between symbols of the transmitted message. The next layer contains the required number of output elements equal to the number of variations of code sequences. Connected with a direct link to the previous layer, this layer will produce classification. At the output of the network is supposed to receive a zero value in one of the output elements, and one in other elements. The network is trained on the examples of input and output values by a gradient descent method with the minimization of errors at classification.
Conducted researches using the developed software model of neural decoding method showed the possibility of its use with other block codes, such as iterative. The neural network decoder showed good results on the detection and correction of errors, which are close to the "soft" decoding. However, increasing the length of the code sequence complicates the decoding process, which determines the needs for further research in this area.
Key words: coding, network, neuron, information channels, communication, connection, training, levels.
Введение. Рост числа пользователей коммуникационных систем, появление новых мультимедийных услуг предъявляют высокие требования к скорости, надежности и времени задержки при обработке информации. Одна из самых весомых задержек связана с необходимостью использования помехоустойчивого ко-
дирования и декодирования данных. Для снижения временных затрат необходимо решать проблемы совершенствования существующих и разработки новых методов обработки информации.
В настоящее время подобные проблемы решаются различными путями, в том числе
внедрением параллельных методов кодирования и декодирования, основанных на элементах теории искусственных нейронных сетей.
Перспектива развития нейронных сетей кажется довольно яркой в свете решения нетрадиционных задач, которые являются сложными для решения традиционной архитектурой вычислительных машин. Одной из таких задач может стать декодирование линейных блочных кодов. Декодирование можно рассматривать как процесс перехода от вторичного отображения сообщения к первичному алфавиту. Именно декодер играет ключевую роль в процессе исправления ошибок в переданном сообщении, что позволяет говорить об актуальности исследований по разработке новых методов декодирования.
Таким образом, задачей исследования является разработка метода декодирования избыточных кодовых последовательностей с использованием нейронных сетей, а также оценка эффективности исправления ошибок в подобных системах.
Основная часть. Существует множество подходов к использованию нейронных сетей как элементов системы декодирования, так и как дискретный декодер [1]. Нейронные сети на данный момент могут решать ряд задач. Среди них оптимизация, аппроксимация, прогноз. Для декодирования наиболее интересной выглядит задача классификации, которая состоит в определении принадлежности входного образа (например, языкового сигнала или рукописного символа), представленного вектором признаков, к одному или нескольким предварительно определенным классам.
При конструировании нейронного декодера необходимо решить ряд задач. Сети с прямой связью являются универсальным средством аппроксимации функций, что позволяет их использовать в решении задач классификации. Как правило, нейронные сети оказываются наиболее эффективным способом классификации, потому что генерируют фактически большое число регрессионных моделей (которые используются в решении задач классификации статистическими методами).
К сожалению, в применении нейронных сетей в практических задачах возникает ряд проблем. Заранее не известно, какой сложности (размера) может потребоваться сеть для достаточно точной реализации отображения. Эта сложность может оказаться чрезмерно высокой, что потребует сложной архитектуры сетей. Так, в работе [2] доказано, что простейшие однослойные нейронные сети способны решать только линейно разделимые задачи. Это ограничение преодолимо при использовании мно-
гослойных нейронных сетей. В общем виде можно сказать, что в сети с одним скрытым слоем вектор, соответствующий входному образцу, преобразуется скрытым слоем в некоторое новое пространство, которое может иметь другую размерность, а затем гиперплоскости, соответствующие нейронам выходного слоя, разделяют его на классы. Таким образом, сеть распознает не только характеристики исходных данных, но и «характеристики характеристик», сформированные скрытым слоем. Последнее и позволяет найти корреляционные зависимости между информационными и избыточными символами сообщения.
Задача классификации при наличии двух классов может быть решена сетью из одного нейрона в выходном слое, который может принимать одно из двух значений (0 или 1) в зависимости от того, к какому классу принадлежит образец. При наличии нескольких классов возникает проблема, связанная с представлением этих данных для выхода сети. Наиболее простым способом представления выходных данных в таком случае является вектор, компоненты которого соответствуют различным номерам классов. При этом /-я компонента вектора соответствует /-му классу. Все остальные компоненты при этом устанавливаются в нуль. Тогда, например, второму классу будет соответствовать единица на втором выходе сети и нуль на остальных. При интерпретации результата обычно считается, что номер класса определяется номером выхода сети, на котором появилось максимальное значение. Например, если в сети с тремя выходами имеется вектор выходных значений (0,3; 0,6; 0,4), то, что максимальное значение имеет вторая компонента вектора, значит класс, к которому относится этот пример, - второй. При данном способе кодирования иногда вводится также понятие «уверенности» сети в том, что пример относится к этому классу. Наиболее простой способ определения «уверенности» заключается в установлении разности между максимальным значением выхода и значением другого выхода, которое является ближайшим к максимальному значению. Например, для рассмотренного выше примера «уверенность» сети в том, что пример относится ко второму классу, определится как разность между второй и третьей компонентой вектора и равна 0,2. Соответственно, чем выше уверенность, тем больше вероятность того, что сеть дала правильный ответ. Этот метод кодирования является самым простым, но не всегда самым оптимальным способом представления данных.
Известны и другие способы. Например, выходной вектор представляет собой номер кластера,
записанный в двоичной форме. Тогда при наличии ста двадцати восьми классов потребуется вектор из восьми элементов, и, скажем, сто двадцать седьмому классу будет соответствовать вектор 01111111. При этом пятьсот двенадцати классам соответствует вектор из десяти элементов, что всего на два элемента больше. В случае получения неверного значения на одном из выходов возможно получить неверную классификацию. В рассмотренном далее примере используется значение выходных элементов, равное количеству классов, однако обе системы имеют как преимущества, так и недостатки. Преимуществом первой будет надежность классификации, однако большое количество элементов сети делает ее ненадежной и значительно более медленной, чем в случае, когда класс представлен в двоичном значении.
При классификации большее значение имеет выбор данных. Так, для блочных кодов исходными данными являются кодовая последовательность, переданное сообщение. Поэтому мы можем использовать переданное сообщение как входные данные. Далее нейронная сеть при помощи скрытого слоя найдет корреляцию между информационными и избыточными битами, а на выходном слое будет класс, который укажет, какая кодовая последовательность была изначально передана. При этом мы используем обучение с примерами. Входному сообщению будет соответствовать класс для определенной кодовой последовательности.
В качестве архитектуры сети целесообразно применить сеть Геленбе, так как она лучше всего соответствует задаче неявной классификации. В данной сети обучение происходит методом градиентного спуска с минимизацией среднего количества неправиль-
ных классификаций. Необходимо отметить, что обучение не требуется при дальнейшей работе декодера, а только служит для первоначальной настройки сети.
Топологию сети приведем на примере кода Хэмминга (7,4). Именно код Хэмминга считается наиболее удобным для демонстрации работы нейронных декодеров, поэтому он используется во всех основных работах по данной тематике [3]. Кодовая последовательность подается на семь элементов на входном слое. Скрытый слой также состоит из семи элементов, связанных рекуррентно, для получения корреляции между символами переданного сообщения. При этом информационных символов всего четыре, что соответственно дает шестнадцать вариаций кодовых последовательностей или классов для сети. В соответствии с этим используется либо шестнадцать элементов выходного слоя, либо четыре в зависимости от применяемого кодирования классов. Схема данной сети показана на рис. 1.
Рассмотрим пример декодирования. После получения из канала с шумом сообщение 0010110 формирует входной вектор нейронной сети. Итогом работы нейронной сети после соответствующих вычислений будет выходной вектор значений: 1; 0,52; 1; 0,59; 1; 0,88; 0,62; 1; 0,86; 0,73; 1; 0,65; 1; 0,64; 0,59; 0,67. Минимальное значение, полученное во втором элементе вектора, означает, что переданная кодовая последовательность относится ко второму классу, который соответствует кодовой последовательности 0010110 (из таблицы соответствия класса кодовой последовательности). Если значения изначальной кодовой последовательности и последовательность, выбранная нейронной сетью, совпадают, то сеть правильно декодировала сообщение.
Выходные значения
Слой классификации
Слой взаимосвязи
Входные значения
Рис. 1. Схема нейронной сети
По результатам теоретических исследований создана имитационная модель процесса декодирования линейных избыточных кодов с использованием нейронной сети. С ее помощью были получены данные для сравнения с другими методами декодирования. Интерфейс программного средства для декодирования линейных избыточных кодов с использованием нейронной сети представлен на рис. 2.
Интерфейс программного средства условно делится на несколько разделов. В первом разделе необходимо выбрать кодовую последовательность и уровень шума в канале передачи данных. Также можно внести дискретное количество ошибок в переданное сообщение. Во втором разделе находится переданное сообщение, где можно внести корректировку в переданное сообщение. При появлении ошибки в канале цвет текста в ячейке становится красным. Последний раздел отвечает за запуск функции декодирования и информацию о дос-
товерности декодирования сообщения, принятого из канала с шумом. В данном разделе показаны результаты декодирования сообщения «мягким» и нейронным декодером, что позволяет сравнить их корректирующие способности. При внесении одной или двух ошибок декодер на основе нейронной сети правильно классифицирует или декодирует сообщение. При наличии трех ошибок появляется большое количество ошибочных классификаций, но существует вероятность правильного декодирования. В целом можно говорить об улучшении декодирования в сравнении с «жестким» (например, синдромным) декодированием кода Хэмминга. И при этом данный метод декодирования лишь несущественно уступает «мягкому» декодеру. Для сравнения на рис. 3 представлены графики зависимости вероятности ошибки после декодирования от уровня шума в канале при применении «жесткого», «мягкого» и нейронного декодеров.
Ней дек:
Рис. 2. Интерфейс программного средства процесса декодирования линейных избыточных кодов
10'
о-е-о Классический * ' * Нейронный «Мягкий»
12 3 45 6 789 10 Рис. 3. График зависимости вероятности ошибки после декодирования от уровня шума в канале
Несмотря на то, что эффективность «мягкого» декодера не была достигнута, необходимо подчеркнуть большой потенциал метода декодирования с использованием нейросетевых технологий - возможность выполнения параллельных операций (например, вычислений) при аппаратном исполнении декодера, например на основе VLSI (Very-large-scale integration) чипа. Также необходимо отметить, что при классическом методе декодирования кода Хэмминга возможно исправление только одной ошибки, а при декодировании с использованием нейронной сети возможно исправление до трех ошибок с относительно высокой вероятностью получения корректного сообщения.
Заключение. По результатам проведенных исследований можно утверждать, что нейронные сети можно использовать при декодировании, например, известных линейных блочных кодов. В рассмотренном примере нейронная сеть выполняет задачу классификации. Данный метод предполагает универсальность применения к блочным кодам и показывает более высо-
кие характеристики обнаружения ошибок, которые близки к «мягкому» декодированию. Однако увеличение кодовой последовательности значительно усложняет процесс декодирования, что определяет необходимость дальнейших исследований в данной области. Выходом из данной ситуации может служить бинарное кодирование классов, что значительно уменьшает количество выходных элементов. Сокращение количества входных элементов невозможно по причине большого числа вариантов ошибок в переданном сообщении. Разработанная в рамках исследования имитационная модель процесса декодирования линейных избыточных кодов с использованием нейросетевых технологий позволила получить оценку эффективности предложенного метода декодирования в виде зависимостей вероятности ошибки от соотношения сигнал/шум. Данная имитационная модель также позволила увидеть как сильные, так и слабые места разрабатываемого метода декодирования, которые должны быть учтены в дальнейших исследованиях.
Литература
1. Zeng G., Hush D., Ahmed N. An application of neural net in decoding error-correcting codes // IEEE International Symposium on Circuits and Systems. 1989. Vol. 1. P. 782-785.
2. Minsky M. L., Papert S. Perceptrons: An Introduction to Computational Geometry. Cambridge: MIT Press, 1969. 258 p.
3. Stefano A. D., Cataldo G. D., Palumbo G. On the use of neural networks for hamming coding // IEEE International Symposium on Circuits and Systems. 1991. Vol. 3. P. 1601-1604.
References
1. Zeng G., Hush D., Ahmed N. An application of neural net in decoding error-correcting codes. IEEE International Symposium on Circuits and Systems, 1989, vol. 1, pp. 782-785.
2. Minsky M. L., Papert S. Perceptrons: An Introduction to Computational Geometry. Cambridge, MIT Press, 1969. 258 p.
3. Stefano A. D., Cataldo G. D., Palumbo G. On the use of neural networks for hamming coding. IEEE International Symposium on Circuits and Systems, 1991, vol. 3, pp. 1601-1604.
Информация об авторах
Драко Арсений Михайлович - магистр технических наук, ассистент кафедры информатики и компьютерной графики. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13 а, Республика Беларусь). E-mail: [email protected]
Романенко Дмитрий Михайлович - кандидат технических наук, доцент, заведующий кафедрой информатики и компьютерной графики. Белорусский государственный технологический университет (220006, г. Минск, ул. Свердлова, 13а, Республика Беларусь). E-mail: [email protected]
Information about the authors
Drako Arseniy Mikhaylovich - master of engineering, assistant, the Department of Informatics and Computer Graphics. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: [email protected]
Romanenko Dmitriy Mikhaylovich - Ph. D. (Engineering), Assistant Professor, Head of the Department of Informatics and Computer Graphics. Belarusian State Technological University (13a, Sverdlova str., 220006, Minsk, Republic of Belarus). E-mail: [email protected]
Поступила 12.03.2015