Мы используем файлы cookie на этом сайте, чтобы улучшить ваш пользовательский опыт.
Пожалуйста, ознакомьтесь с Политикой конфиденциальности для получения более подробной информации.

AI
Что такое нейронная сеть?
10.09.2024

Нейронная сеть это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов, передающих информацию в виде электрических импульсов.

 

Для чего нужны нейронные сети?

 

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

 

Классификация распределение данных по параметрам. Например, на вход дается набор людей и нужно решить, кому из них давать кредит, а кому нет. Эту работу может сделать нейронная сеть, анализируя такую информацию как: возраст, платежеспособность, кредитная история и т.д.

 

Предсказание возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.

 

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

 

Что такое нейрон?

Нейрон это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основные типа: входной (на картинке синий), скрытый (красный) и выходной (зеленый). В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин “слои”. Соответственно, есть входной слой, который получает информацию, n скрытых слоев, которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основные параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего она нормализуется с помощью функции активации и попадает в поле output.

Что такое синапс?

Синапс это связь между двумя нейронами. У синапсов есть 1 параметр вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Возьмём 3 нейрона, которые передают информацию следующему. Тогда есть 3 веса, соответствующие каждому из этих нейронов. Нейрон, вес которого будет больше, несет доминирующую информацию в следующем нейроне (пример на картинке смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов это своеобразный мозг всей системы. Именно благодаря этим весам, входная информация обрабатывается и превращается в результат.

 

Как работает нейронная сеть?

В данном примере изображена часть нейронной сети, где буквами I обозначены входные нейроны, буквой H скрытый нейрон, а буквой W веса. Из формулы видно, что входная информация это сумма всех входных данных, умноженных на соответствующие им веса. На вход каждого входного нейрона I подается информация, по которой рассчитывается взвешенная сумма. Полученное число входная информация слоя H. Теперь, когда имеются входные данные, можно получить выходные данные, подставив входное значение в функцию активации (подробнее о ней далее). Затем, когда вычислены выходные данные, они передаются дальше. И так повторяется для всех слоев, пока не дойдет до выходного нейрона. Запустив такую сеть в первый раз, заметно, что ответ далек от правильного, потому что сеть не натренирована. Для понимания тренировки нейронной сети необходимо ввести несколько терминов.

 

Функция активации

Функция активации это способ нормализации входных данных. То есть, если на входе будет большое число, пропустив его через функцию активации, можно получить выход в нужном диапазоне. Функций активации достаточно много, в данной статье будeт рассмотрены самые основные: Сигмоид (Логистическая) и Гиперболический тангенс. Главные их отличия это диапазон значений.

 

Сигмоид

Самая распространенная функция активации, ее диапазон значений [0,1]. Именно на ней показано большинство примеров в сети, также ее иногда называют логистической функцией. Соответственно, если в данных присутствуют отрицательные значения (например, акции могут идти не только вверх, но и вниз), то в таком случае понадобится функция, которая захватывает и отрицательные значения.

 

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

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

 

Тренировочный сет (выборка/набор)

 

Тренировочный сет это последовательность данных, на которых обучается нейронная сеть.

 

Итерация

 

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

 

Эпоха

 

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

 

Ошибка

 

Ошибка это величина, отражающая расхождение между ожидаемым и полученным ответами, которая формируется каждую эпоху. Ошибку можно вычислить разными путями, но в данной статье будут рассмотрены лишь два основных способа: Mean Squared Error (далее MSE) и Root MSE. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы можете выбрать любой метод, который будет приносить наилучший результат.

 

MSE

Root MSE

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

 

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