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

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

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

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

Как работают нейронные сети?

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

После определения входного слоя ему присваиваются веса. Эти веса помогают определить релевантность той или иной переменной, при этом большие значения в большей степени влияют на результат, чем меньшие. Затем все входные данные умножаются на их веса и складываются вместе. После этого вывод обрабатывается функцией активации, которая определяет вывод. Если этот вывод достигает определенного порога, узел «запускается» (или активируется), отправляя данные на следующий уровень сети. В результате выход одного узла становится входом следующего. Эта нейронная сеть классифицируется как сеть с прямой связью, поскольку данные передаются с одного уровня на другой.

Давайте используем двоичные значения, чтобы разобрать, как может выглядеть отдельный узел. Этот принцип можно применить к более конкретному примеру, например, стоит ли вам заниматься серфингом (Да: 1, Нет: 0). Наш ожидаемый результат, или y-hat, — это решение идти или не идти. Предположим, что на принятие решений влияют три фактора:

  1. Волны хорошие? (Да: 1, Нет: 0)
  2. Состав пустой? (Да: 1, Нет: 0)
  3. Было ли в последнее время нападение акулы? (Да: 0, Нет: 1)

Затем предположим следующее, предоставив нам следующие входные данные:

  • X1 = 1, так как волны накачивают
  • X2 = 0, так как толпы нет
  • X3 = 1, так как недавнего нападения акулы не было

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

  • W1 = 5, так как большие волны возникают нечасто.
  • W2 = 2, так как вы привыкли к толпе
  • W3 = 4, так как вы боитесь акул

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

Y-шляпа = (1*5) + (0*2) + (1*4) — 3 = 6

Используя функцию активации, описанную ранее в этом разделе, мы можем увидеть, что выход этого узла будет равен 1, потому что 6 больше, чем 0. В этом случае вы отправитесь в серфинг; но, регулируя веса или порог, мы можем получить различные результаты от модели. Когда мы смотрим на один вариант, такой как в приведенном выше примере, мы видим, как нейронная сеть может делать все более сложные суждения на основе результатов предыдущих решений или слоев.

В предыдущем примере мы использовали перцептроны, чтобы продемонстрировать некоторые математические операции, но нейронные сети полагаются на сигмовидные нейроны, значения которых находятся в диапазоне от 0 до 1. Поскольку нейронные сети функционируют аналогично деревьям решений с точки зрения каскадирования данных из одного узла. к следующему, имея значения x от 0 до 1, уменьшает влияние любого заданного изменения одной переменной на выходные данные любого конкретного узла и, следовательно, на выходные данные нейронной сети.

Когда мы начнем думать о более практических вариантах использования нейронных сетей, таких как распознавание изображений или классификация, мы будем использовать обучение с учителем или помеченные наборы данных для обучения алгоритма. По мере обучения модели мы хотим оценить ее точность с помощью функции затрат (или потерь). Это также обычно называют среднеквадратической ошибкой (MSE). В приведенном ниже уравнении

  • i представляет индекс выборки,
  • y-это прогнозируемый результат,
  • y - фактическое значение, и
  • m — количество образцов.

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