И скусственная нейронная сеть — это математическая модель и её программное или аппаратное воплощение, построенная по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Она является системой соединённых и взаимодействующих между собой простых процессоров- искусственных нейронов.
Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной, скрытый и выходной. (На рисунке 1 синий, красный и зеленый соответственно)
Рисунок 1
Когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Следовательно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). Благодаря этой структуре, машина обретает способность анализировать и запоминать различную информацию, а также воспроизводить ее из своей памяти.
Синапс – это связь между двумя нейронами. У них есть 1 параметр — вес, благодаря которому, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Каждому из нейронов соответствует три веса. У того нейрона, у которого вес будет больше, та информация будет доминирующей в следующем нейроне. Именно благодаря весу, входная информация обрабатывается и превращается в результат.
Состояние нейрона можно определить по формуле
n - число входов нейрона
xi – значение i-го входа нейрона
wi – вес i-го синапса.
Нейронные сети используются для решения сложных задач, которые требуют аналитических вычислений подобных тем, что делает человеческий мозг. Самыми распространенными применениями нейронных сетей является:
Классификация — распределение данных по параметрам. Например, на вход дается набор людей и нужно решить, кому из них давать кредит, а кому нет. Эту работу может сделать нейронная сеть, анализируя такую информацию как: возраст, платежеспособность, кредитная история и тд.
Предсказание — возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.
Распознавание — в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.
Практическое применение нейронных сетей в некоторых областях.
Экономика и бизнес: прогнозирование временных рядов (курсов валют, цен на сырьё, спроса, объемов продаж
Безопасность, охранные системы: распознавание лиц, идентификация личности по отпечаткам пальцев, голосу, подписи или лицу, распознавание автомобильных номеров
Ввод и обработка информации: распознавание рукописных текстов, отсканированных почтовых, платежных, финансовых и бухгалтерских документов; распознавание речевых команд, речевой ввод текста в компьютер.
Компьютерные и настольные игры: создание нейроигроков в шашки и шахматы.
В криптоанализе используется способность нейронных сетей исследовать пространство решений. Также есть возможность создавать новые типы атак на существующие алгоритмы шифрования, основанные на том, что любая функция может быть представлена нейронной сетью. Взломав алгоритм, теоретически можно найти решение.
В основе криптографических нейронных систем шифрования данных лежат два подхода к использованию ключей. В системе с одним секретным ключом, ключ известен только абонентам системы. В другом подходе используются два ключа – секретный для дешифрования и открытый для шифрования.
Нейронных сет обладают такими свойствами, как:
взаимное обучение
самообучение
стохастическое поведение
низкая чувствительность к шуму, неточностям (искажения данных, весовых коэффициентов, ошибки в программе)
Они позволяют решать проблемы криптографии с открытым ключом, распределения ключей, хеширования и генерации псевдослучайных чисел. Хеш-функция- функция, осуществляющая преобразование массива входных данных произвольной длины в (выходную) битовую строку установленной длины, выполняемое определённым алгоритмом.
В 1995 году Себастьян Дорленс применил нейрокриптоанализ, чтобы научить нейронные сети инвертировать S-перестановки в DES— алгоритм для симметричногошифрования- для шифрования и дешифрования используется один и тот же ключ). В ходе эксперимента было найдено 50% битов ключа, то есть ключ целиком может быть найден за короткое время. Аппаратная реализация состоит из множества (64К) простых микроконтроллеров, расположенных на СБИС.
Другой пример—протокол шифрования с открытым ключом Халил Шибаба, в котором процесс дешифрации основан на многоуровневой нейронной сети, обучающейся по алгоритму обратного распространения. В то же время процесс шифрования и создания закрытого ключа использует обычную двоичную алгебру. Преимущество этого метода в малых затратах времени и памяти. Недостаток—в алгоритме обратного распространения: на больших массивах входных данных нейронная сеть обучается очень долго. Поэтому данный протокол имеет лишь теоретическое значение.
Искусственные нейронные сети используются повсеместно. Число их приложений, вкладываемые средства в их разработку, а также интерес к ним постоянно растут. Они используются в системах прогнозирования трафика на дорогах, в системах распознавания образов (в том числе лиц людей, например), существуют даже модели систем управления вертолетами на базе ИНС. Спектр задач, решаемых с использованием ИНС велик: классификация объектов, аппроксимация функции по конечному набору её значений, оптимизация, построение отношений на множестве объектов, смысловой поиск информации и ассоциативная память, управление динамическими системами и другие.