Статья нашего сотрудника.
Тема посвящена нейронным сетевым технологиям.
Ранее эта тема публиковалась для института, в целях получения первого научного исследовательского опыта, и на мой взгляд, это одна из самых актуальных тем на ряду с квантовой сетью, то есть эти технологии радикально поменяют сферу применения и обработки данных как ситуативных, так и предсказуемых ситуаций.
Особенность применения нейронных сетевых технологий в том, что можно создавать разные системы принятия решения, которые требуют аналитических вычислений на основании собранной базы знаний, созданной при помощи специалиста в конкретной области и программиста играющего роль посредника между машиной - исполнителем и специалистом в конкретной области.
В нейронных сетевых технологиях есть метод решения проблем исключающего «или» (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» - кошка.
Как видно на фото, когда нейронная сеть состоит из большого количества нейронов, вводят термин слоя.
Заключение
Нейронные сети позволят обновить все нынешние системы принятия и поддержки решения, автоматизировать процесс, и в дальнейшем создать самостоятельную систему после прохождения запуска итераций обучения нейронной сети. В перспективе полная глобализация автоматизированных процессов, вплоть до поддержки пользователей в решении бытовых и иных задач на персональных компьютерах: начиная с захвата на экране области ошибки на станции АРМ/ПК и поиска по сходству точек/пикселей аналогичной записи в базе данных и выдачи решения.
Автор: Кирилл Артамонов
polak228
Для новичков более менее понятно
Almet
Согласен, но не совсем. Хотелось бы получить план действий, с примерами кода на C# :)
fermarunet Автор
Продолжение следует в следующей части)
Almet
Хорошо, спасибо, подождем следующую часть.