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

Есть разница между искусственным интеллектом, глубоким обучением и машинным обучением.

  • Искусственный интеллект, по сути, включает в себя любые усилия, которые позволяют машинам имитировать человеческий интеллект.
  • Машинное обучение - это процесс обучения компьютерной системы тому, как делать точные прогнозы на основе определенных данных, не будучи явно запрограммированным на это.
  • Глубокое обучение - это метод машинного обучения, созданный на основе человеческого мозга с помощью нейронных сетей.

Человеческий мозг состоит примерно из 100 миллиардов нейронов, связанных между собой. Каждый нейрон связан примерно с 10 000 другими нейронами, и все эти нейроны вместе образуют нейронную сеть. Они получают входные данные, обрабатывают определенную информацию, а затем выдают выходной сигнал, который затем отправляется остальным нейронам, к которым они подключены.

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

Так как же выглядит структура нейрона в ИНС?

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

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

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

Как мы знаем, нейрон является основным и наиболее важным строительным блоком сети. Вот что делает нейрон.

Пусть x0, x1 и x2 - независимые переменные, а w0, w1 и w2 - веса, присвоенные соответствующим синапсам. Нейрон вычисляет сумму всех независимых переменных с их соответствующими весами, и к взвешенной сумме добавляется смещение (постоянное значение). Смещение используется для корректировки выходных данных с суммой, чтобы модель наилучшим образом соответствовала данным. Окончательное вычисленное значение затем передается в функцию активации, которая затем выдает выходные данные.

Зачем нужны функции активации?

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

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

Сейчас существуют различные типы функций активации, но наиболее популярными из них являются:

Сигмовидная функция:

Функцию, используемую в этом методе, можно увидеть в правом верхнем углу изображения выше, где x - значение взвешенной суммы. Причина, по которой эта функция важна, заключается в том, что она имеет плавную кривую (s-образную) в отличие от пороговой функции. Когда значение опускается ниже 0, результат приближается к 0, а чем выше значение, тем приближается к 1. Эта функция очень полезна на последнем уровне для прогнозирования вероятностей.

ReLU (выпрямленная линейная единица):

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

Нейронные сети

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

Первый уровень в нейронной сети всегда является входным слоем. Здесь мы загружаем данные в сеть.

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

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

Обучение нейронной сети

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

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

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

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

где y (шляпа) - результат, полученный от нейронной сети, а y - требуемый результат.

Обратное распространение

Наша цель - максимально уменьшить значение функции стоимости, чтобы получить лучшую точность от сети. Итак, теперь, когда мы сравнили значения y (шляпа) и y, мы вернем эти данные обратно в нейронную сеть и обновим веса. Этот процесс выполняется с помощью обратного распространения.

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

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

Итак, мы только что поговорили о том, как работает нейронная сеть, и о процессах, задействованных в создании алгоритма, чтобы учиться на данных, предоставленных нами, и делать точные прогнозы невидимых данных. Но это еще не все. Существуют разные типы нейронных сетей. Некоторые из этих нейронных сетей - это рекуррентная нейронная сеть (RNN), состоящая из LSTM и GRU, сверточная нейронная сеть (CNN), генеративные состязательные сети (GAN) и многое другое. Каждый из них имеет определенную функцию или функцию, которая поможет вам построить модель для выполнения различных задач, таких как распознавание лиц, анализ настроений, обнаружение активности, автономное вождение, распознавание речи и многое другое. Его даже используют в медицине для обнаружения опухолей и различных заболеваний. Приложения бесконечны ...