Краткое введение в функциональность искусственных нейронных сетей

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

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

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

Строительные блоки: нейроны

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

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

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

2. Суммируются все взвешенные входы нейрона. Кроме того, добавляется смещение b:

3. Затем результат передается в так называемую функцию активации.

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

Это имеет то преимущество для нейронной сети, что все значения, полученные на шаге 2, находятся в заданном меньшем диапазоне. Таким образом, сигмовидная функция ограничивает значения, которые теоретически могут находиться между (- ∞, + ∞), и отображает их в диапазоне между (0,1).

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

Сеть: входной слой, скрытый слой и выходной слой

Информация проходит через сеть на разных уровнях:

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

Как учатся искусственные нейронные сети?

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

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

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

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

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

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

Функция потерь

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

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

Это то, что вы должны взять с собой

  • Искусственные нейронные сети состоят из большого количества нейронов. Вес отдельных нейронов изменяется и уточняется на этапе обучения.
  • Сеть состоит из трех различных типов слоев: входного слоя, скрытого слоя и выходного слоя.
  • Цель искусственных нейронных сетей — минимизировать функцию потерь, то есть разницу между прогнозируемым результатом и фактическим результатом.

Если вам нравится моя работа, подпишитесь здесь или загляните на мой сайт Data Basecamp! Кроме того, Medium позволяет вам бесплатно читать 3 статьи в месяц. Если вы хотите иметь неограниченныйдоступ к моим статьям и тысячам замечательных статей, не стесняйтесь получить членство за 5 долларов США в месяц, нажав на мою реферальную ссылку: https://medium.com/@niklas_lang/membership