Статья нашего сотрудника.

Тема посвящена нейронным сетевым технологиям.

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

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

В нейронных сетевых технологиях есть метод решения проблем исключающего «или» (XOR).

Таблица исключающего «или» выглядит следующим образом:

· для бинарного сложения по модулю 2 (применяется в двоичных полусумматорах):

A

B

A+B

0

0

0

0

1

1

1

0

1

1

1

0

Правило: результат равен 0, если оба операнда равны; в остальных случаях результат равен 1.

· для тернарного сложения по модулю 2 (применяется в двоичных полных сумматорах):

A

B

C

A+B+C

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

1

Правило: результат равен 0, если нет операндов, равных 1, либо их чётное количество.

Следовательно, нейронная сеть берет на вход два числа (параметра) и должна на выходе дать другое эквивалентное число — ответ.

Нейрон — это единица (входные данные (input data)), которая получает информацию и дальше передаёт информацию на скрытые слои n, где происходят арифметико-логические вычисления, после следует выходной слой, который выводит результат (выходные данные (output data)).

Синапс – это связь между двумя нейронами, у синапсов есть 1 параметр – вес.
Благодаря ему входная информация изменяется, когда передаётся от одного нейрона к другому.

Аннотированная ссылка

Нейроны оперируют числами в диапазоне [0,1] или [-1,1]. Если числа выходят из данного диапазона, то необходимо «1» разделить на полученное число.

Аннотированная ссылка

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

Функция активация служит для нормализации входных данных (оптимизация), то есть, если на вход поступает большое число, функция активации позволяет получить это число в нужном для нас диапазоне.

Самые основные функции активации: Линейная, Сигмоид и Гиперболический тангенс. Главное их отличие, это диапазон значений:

Линейная функция

Чаще всего используется для тестирования нейронной сети.

Сигмоид

Распространённая нормализуемая сигмоидальная функция активации, её диапазон значений [0,1].

Гиперболический тангенс

Используется тогда, когда могут быть числа отрицательными, и положительными, так как диапазон функции [-1,1].

Аннотированная ссылка

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

Аннотированная ссылка

где x min – минимальное выборочные значения признака.
      x max – максимальное выборочное значение признака.
      [a, b] – выборка интервала.
      x i – значение признака.

Либо, если метод обработки нейронной сети обучения не имеет жёстких ограничений, применяется формула по масштабированию, дающая ненулевое среднее и единичную дисперсию пред обработанной величине:

Аннотированная ссылка

где M(x) – исходное выборочное среднее.
       ?(x) – среднее квадратичное отклонение.
       x i – значение признака.

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

Нейронная сеть обучается итерациями - это общее количество тренировочных сетов пройденных нейронной сетью. 
Тренировочный сет  – это последовательность данных, которыми оперирует нейронная сеть.
Эпоха – это шаг, который считается выполненным при завершении всего набора тренировочных сетов.
Ошибка – это процентная величина, она формируется каждую эпоху и должна идти на спад. Вычисляется ошибка разными математическими формулами: «MSE», «Root MSE», «Arctan» и т.д. 

Аннотированная ссылка

Примером может быть популярная система распознавания объектов с помощью изображения от разработчиков компании Google.
Вот пример обработки изображения с целью получения результата, что это за действие/объект:

На изображении два снимка, нейронная сеть проходит первый шаг тренировки, где ей показывают снимок животного, в данном случае «Cat» -кошку, и через некоторое время вычислений, пройдя процесс классификации распознавания, говорит оператору, что процесс распознавания завершён с выводом результата «Cat» - кошка.
Как видно на фото, когда нейронная сеть состоит из большого количества нейронов, вводят термин слоя.

Заключение

Нейронные сети позволят обновить все нынешние системы принятия и поддержки решения, автоматизировать процесс, и в дальнейшем создать самостоятельную систему после прохождения запуска итераций обучения нейронной сети. В перспективе полная глобализация автоматизированных процессов, вплоть до поддержки пользователей в решении бытовых и иных задач на персональных компьютерах: начиная с захвата на экране области ошибки на станции АРМ/ПК и поиска по сходству точек/пикселей аналогичной записи в базе данных и выдачи решения.

Автор: Кирилл Артамонов