Использование сети Хемминга для автоматической коррекции ошибок | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №2 (136) январь 2017 г.

Дата публикации: 11.01.2017

Статья просмотрена: 877 раз

Библиографическое описание:

Омаров, М. Б. Использование сети Хемминга для автоматической коррекции ошибок / М. Б. Омаров. — Текст : непосредственный // Молодой ученый. — 2017. — № 2 (136). — С. 61-65. — URL: https://moluch.ru/archive/136/37992/ (дата обращения: 23.04.2024).



В данной статье разработана система коррекции ошибок при вводе данных на основе сети Хемминга, а также рассматривается приложение на языке Java, реализующее данную систему.

Ключевые слова: нейронные сети, сеть Хемминга, нечёткий поиск, коррекция ошибок

Постановка задачи.

Под нечётким поиском подразумевается нахождение того же образца, который подаётся на вход, или близкого к нему значения. Обычно для решения таких задач применяются различные метрики (Левенштейна, Дамерау-Левенштейна, метод N-грамм, BK-деревья и т. д.). В данной статье будет предложен алгоритм поиска на основе нейронной сети Хемминга.

Сеть Хемминга. Принцип работы.

http://apsheronsk.bozo.ru/Neural/Lec6.files/image026.jpg

Рис. 1. Структурная схема сети Хемминга

Нейронная сеть Хемминга состоит из двух слоёв, количество нейронов в которых равно количеству образцов (классов), хранимых в словаре [1]. Алгоритм работы базируется на нахождении расстояния Хемминга между поданным на вход вектором и эталонными образами. Сеть должна предпочесть образец, который имеет наименьшее расстояние Хемминга до входного вектора.

Описание моделируемой системы.

Каждое слово может быть описано входным вектором X = {, , … }, где , но в сети Хемминга координаты вектора могут принимать только значения -1 и +1, поэтому перед подачей двоичного вектора на вход сети необходимо его преобразовать.

public class Neuron {

private double[] weights;

private double y;

private double s;

}

Листинг 1. Структура нейрона

public class HammingNetwork {

private int n;

private int m;

private Neuron[] firstLayer;

private Neuron[] secondLayer;

}

Листинг 2. Структура сети

Стадия инициализации.

Заполнение весовых коэффициентов нейронов первого слоя:

, где — i-ая координата j-го образца.

Расчёт состояний нейронов первого слоя.

На вход подаётся вектор X, начинается подсчёт состояний нейронов первого слоя и их аксонов: , где .

private void fillFirstLayer(int[] x) {

x = transformVector(x);

double t = (double) n / 2;

for (int j = 0; j < m; j++) {

Neuron currentNeuron = firstLayer[j];

double state = 0;

for (int i = 0; i < n; i++) {

state += (currentNeuron.getWeight(i) * x[i]);

}

state += t;

currentNeuron.setS(state);

currentNeuron.setY(state);

}

}

Листинг 3. Заполнение первого слоя нейронов

Расчёт состояний нейронов второго слоя

Производится подсчёт состояний нейронов второго слоя: и их аксонов: , где p — номер итерации, а f — активационная функция. Активационная функция имеет следующий вид: . Синапсы обратных связей нейронов второго слоя принимают значения , где . Для простоты можно принять . Подсчёт состояний и аксонов нейронов второго слоя продолжается до тех пор, пока выходы нейронов не стабилизируются. Для этого вводится величина eMax, которая определяет максимальное отклонение для координат выходного вектора [2].

private double[] calculateSecondLayer() {

final double epsilon = (double) 1 / m;

final double eMax = 0.1;

final double t = (double) n / 2;

List lastY = new ArrayList<>();

for (int j = 0; j < m; j++) {

Neuron currentNeuron = secondLayer[j];

currentNeuron.setS(firstLayer[j].getS());

currentNeuron.setY(firstLayer[j].getY());

lastY.add(firstLayer[j].getY());

}

List outputs;

boolean outputChange = false;

do {

List currentY = new ArrayList<>();

for (int j = 0; j < m; j++) {

Neuron currentNeuron = secondLayer[j];

double sum = calculateSum(lastY, epsilon, j);

currentNeuron.setS(currentNeuron.getY() - sum);

double output = currentNeuron.getY();

double newOutput = activateFunction(t, currentNeuron.getS());

outputChange = Math.abs(output - newOutput) > eMax;

currentNeuron.setY(newOutput);

currentY.add(newOutput);

}

lastY = currentY;

outputs = new ArrayList<>();

outputs.addAll(currentY);

} while (outputChange);

return outputs.stream().mapToDouble(i -> i).toArray();

}

private double calculateSum(List y, double epsilon, int j) {

double sum = 0;

for (int k = 0; k < m; k++) {

if (k != j) {

sum += y.get(k);

}

}

sum *= epsilon;

return sum;

}

Листинг 4. Заполнение второго слоя нейронов

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

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

Рис. 2. График зависимости времени обработки от размеров словаря

Заключение

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

Литература:

  1. Короткий С. Нейронные сети Хопфилда и Хэмминга.
  2. Нейронные сети Хемминга [Электронный ресурс], http://neuronus.com/nn/38-theory/971-nejronnye-seti-khemminga.html (дата обращения: 04.01.2017).
Основные термины (генерируются автоматически): входной вектор, активационная функция, нейронная сеть, нечеткий поиск, сеть.


Ключевые слова

нейронные сети, нечеткий поиск, сеть Хемминга, коррекция ошибок

Похожие статьи

Распознавание английского текста сверточной нейронной сетью

. Таким образом, выходом сверточной нейронной сети является вектор следующего вида

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

Матричный метод расчетов динамических рекуррентных...

Ключевые слова: искусственная нейронная сеть, синаптические веса, ассоциативная память, сигнальные графы, матрицы смежности

вектор функций активационных блоков. ; (3). ‒ — вектор значений, подаваемых на входы всех нейронов ИНС внешних сигналов.

Исследование возможностей использования нейронных сетей

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

Обучение нейронной сети (Training) — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети...

Гибкие нейро-нечеткие системы вывода и программная...

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

Исследование и разработка математической модели метеопрогноза

- вектора параметров. Второй нейронной сетью является нейронная сеть, использующая радиально-базисные функции как активационные. Такая сеть называется сетью радиально-базисных функций (Radial Basis Function Network RBFN) [3]...

Разработка математической модели нейронной сети

Ключевые слова: модель, нейрон, математика, нейронные сети, основные модели нейронных сетей, нейрон.

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

Модель математической нейронной сети | Статья в журнале...

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

Применение нейронных сетей в распознавании рукописного текста

Самыми популярными можно назвать нечеткие нейронные сети [6], сеть Хэмминга [7], сеть Хопфилда [8], самоорганизующиеся карты [9] и многие другие.

В процессе обучения весы сети постепенно становятся такими, что каждый входной вектор производит выходной вектор.

От биологических процессов мозга к нейровычислителям

Функция θ [h] — активационная характеристика, или передаточная функция нейрона.

Происходит в результате умножения входных сигналов на весовые коэффициенты.

Особенностью искусственной нейронной сети является наличие активационной...

Распознавание английского текста сверточной нейронной сетью

. Таким образом, выходом сверточной нейронной сети является вектор следующего вида

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

Матричный метод расчетов динамических рекуррентных...

Ключевые слова: искусственная нейронная сеть, синаптические веса, ассоциативная память, сигнальные графы, матрицы смежности

вектор функций активационных блоков. ; (3). ‒ — вектор значений, подаваемых на входы всех нейронов ИНС внешних сигналов.

Исследование возможностей использования нейронных сетей

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

Обучение нейронной сети (Training) — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети...

Гибкие нейро-нечеткие системы вывода и программная...

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

Исследование и разработка математической модели метеопрогноза

- вектора параметров. Второй нейронной сетью является нейронная сеть, использующая радиально-базисные функции как активационные. Такая сеть называется сетью радиально-базисных функций (Radial Basis Function Network RBFN) [3]...

Разработка математической модели нейронной сети

Ключевые слова: модель, нейрон, математика, нейронные сети, основные модели нейронных сетей, нейрон.

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

Модель математической нейронной сети | Статья в журнале...

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

Применение нейронных сетей в распознавании рукописного текста

Самыми популярными можно назвать нечеткие нейронные сети [6], сеть Хэмминга [7], сеть Хопфилда [8], самоорганизующиеся карты [9] и многие другие.

В процессе обучения весы сети постепенно становятся такими, что каждый входной вектор производит выходной вектор.

От биологических процессов мозга к нейровычислителям

Функция θ [h] — активационная характеристика, или передаточная функция нейрона.

Происходит в результате умножения входных сигналов на весовые коэффициенты.

Особенностью искусственной нейронной сети является наличие активационной...

Похожие статьи

Распознавание английского текста сверточной нейронной сетью

. Таким образом, выходом сверточной нейронной сети является вектор следующего вида

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

Матричный метод расчетов динамических рекуррентных...

Ключевые слова: искусственная нейронная сеть, синаптические веса, ассоциативная память, сигнальные графы, матрицы смежности

вектор функций активационных блоков. ; (3). ‒ — вектор значений, подаваемых на входы всех нейронов ИНС внешних сигналов.

Исследование возможностей использования нейронных сетей

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

Обучение нейронной сети (Training) — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети...

Гибкие нейро-нечеткие системы вывода и программная...

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

Исследование и разработка математической модели метеопрогноза

- вектора параметров. Второй нейронной сетью является нейронная сеть, использующая радиально-базисные функции как активационные. Такая сеть называется сетью радиально-базисных функций (Radial Basis Function Network RBFN) [3]...

Разработка математической модели нейронной сети

Ключевые слова: модель, нейрон, математика, нейронные сети, основные модели нейронных сетей, нейрон.

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

Модель математической нейронной сети | Статья в журнале...

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

Применение нейронных сетей в распознавании рукописного текста

Самыми популярными можно назвать нечеткие нейронные сети [6], сеть Хэмминга [7], сеть Хопфилда [8], самоорганизующиеся карты [9] и многие другие.

В процессе обучения весы сети постепенно становятся такими, что каждый входной вектор производит выходной вектор.

От биологических процессов мозга к нейровычислителям

Функция θ [h] — активационная характеристика, или передаточная функция нейрона.

Происходит в результате умножения входных сигналов на весовые коэффициенты.

Особенностью искусственной нейронной сети является наличие активационной...

Распознавание английского текста сверточной нейронной сетью

. Таким образом, выходом сверточной нейронной сети является вектор следующего вида

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

Матричный метод расчетов динамических рекуррентных...

Ключевые слова: искусственная нейронная сеть, синаптические веса, ассоциативная память, сигнальные графы, матрицы смежности

вектор функций активационных блоков. ; (3). ‒ — вектор значений, подаваемых на входы всех нейронов ИНС внешних сигналов.

Исследование возможностей использования нейронных сетей

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

Обучение нейронной сети (Training) — поиск такого набора весовых коэффициентов, при котором входной сигнал после прохода по сети...

Гибкие нейро-нечеткие системы вывода и программная...

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

Исследование и разработка математической модели метеопрогноза

- вектора параметров. Второй нейронной сетью является нейронная сеть, использующая радиально-базисные функции как активационные. Такая сеть называется сетью радиально-базисных функций (Radial Basis Function Network RBFN) [3]...

Разработка математической модели нейронной сети

Ключевые слова: модель, нейрон, математика, нейронные сети, основные модели нейронных сетей, нейрон.

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

Модель математической нейронной сети | Статья в журнале...

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

Применение нейронных сетей в распознавании рукописного текста

Самыми популярными можно назвать нечеткие нейронные сети [6], сеть Хэмминга [7], сеть Хопфилда [8], самоорганизующиеся карты [9] и многие другие.

В процессе обучения весы сети постепенно становятся такими, что каждый входной вектор производит выходной вектор.

От биологических процессов мозга к нейровычислителям

Функция θ [h] — активационная характеристика, или передаточная функция нейрона.

Происходит в результате умножения входных сигналов на весовые коэффициенты.

Особенностью искусственной нейронной сети является наличие активационной...

Задать вопрос