Подробно объясните принцип глубокого обучения персептрона.

глубокое обучение

Всем привет, добро пожаловать на чтениеглубокое обучениеТемы.

Наша предыдущая тема машинного обучения подошла к концу, мы рассмотрели алгоритмы, модели, их принципы и реализации, обычно используемые в области машинного обучения. Хотя есть некоторые методы, такие как Марков, Скрытый Марков, Условные случайные поля и т. д., которые не рассматриваются. Однако эти содержания слабее по сравнению с ними, а частота использования не очень высока, поэтому мы не будем описывать их по отдельности, а заинтересованные студенты могут изучить их самостоятельно. Я предполагаю, что если такие модели, как GBDT и SVM, могут понять, эти модели не должны быть проблемой.

Введение в глубокое обучение

Глубокое обучение стало очень популярным в последние годы, и многие люди связывают его с искусственным интеллектом. Углубленное здесь не означает углубленного изучения и не означает, что понятие очень глубокое, а просто относится кМногослойная нейронная сетьсостоит из «глубоких» нейронных сетей.

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

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

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

Персептрон

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

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

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

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

В качестве примера рассмотрим простейший персептрон:

Этот персептрон имеет только два входа, мы можем легко получить. Здесь y — число с плавающей запятой, мы можем поставить знаковую функцию на y. Так называемая знаковая функция, даже если классификация основана на пороге. Например, мы устанавливаем порог,если,Так,если не.

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

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

Судя по изображению, функция tanh и сигмовидная функция очень похожи, небольшая разница заключается в ихдругой диапазон, диапазон сигмовидной функции — от 0 до 1, а диапазон тангенса — от -1 до 1. Хотя кажется, что отличается только диапазон значений, разница все же довольно большая, С одной стороны, чувствительные интервалы у них разные. Чувствительный диапазон tanh относительно больше.Еще один момент заключается в том, что все значения, выводимые сигмоидой, являются положительными значениями, что может вызвать проблемы в некоторых сценариях.

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

Ответ — нет, и причина очень проста, потому что когда мы объединяем несколько нейронов в сеть.Если расчет каждого нейрона настолько чисто линейный, то вся нейронная сеть фактически эквивалентна линейной операции. Это можно доказать математически, поэтому нам нужно что-то добавить к персептрону, чтобы результат его вычислений не был чисто линейным.

Персептроны и логические схемы

Наконец, давайте рассмотрим практический пример.Самым простым примером, конечно же, является вентиль И-ИЛИ в логической схеме. Элементы И, ИЛИ и НЕ на самом деле похожи тем, что все они имеют два входа и один выход.

Возьмем в качестве примера вентиль И:

Мы все знакомы с двоичной операцией И. Только когда оба числа равны 1, мы можем получить 1. Нам также очень просто написать такой персептрон:

def AND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    theta = 0.7
    return w.dot(x) > theta

Мы также можем написать вентили ИЛИ или вентили да-нет, что несложно. Но мы также обнаружим, что есть ситуация, которую мы не можем решить, то есть ситуация XOR. Давайте сначала посмотрим на таблицу истинности XOR:

У нас нет возможности достичь сегментации данных XOR с помощью персептрона.Мы представили эту проблему в модели SVM ранее, потому что данные XOR не являются линейно разделимыми, то есть мы не можем пройти разделительную линию.Он разделяет.

Но проблема XOR не является неразрешимой, мы не можем разделить ее одним персептроном, но мы можем соединить персептроны последовательно, чтобы сформировать простую нейронную сеть, и эта проблема становится решаемой. Предположим, мы реализовали вентиль И, вентиль ИЛИ и вентиль НЕ. Мы можем реализовать вентиль XOR следующим образом:

def XOR(x1, x2):
    # 非门
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    return AND(s1, s2)

Структура всего персептрона следующая:

На официальном сайте TensorFlow есть веб-приложение под названием «Игровая площадка», позволяющее интуитивно почувствовать состав нейронной сети и процесс ее обучения. Например, в задаче XOR только что мы можем сами задать количество слоев нейронной сети и количество нейронов, содержащихся в каждом слое. А еще можно задать функцию активации нейрона, можно интуитивно понять процесс обучения нейросети и роль различных параметров.

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

TensorFlow-Playground

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

Желаю всем удачи каждый день. Если вам все еще нравится сегодняшний контент, пожалуйста, зайдите на одинТройная поддержкабар~(Нравится, подписывайтесь, делайте репост)

Оригинальная ссылка, обратите внимание

В этой статье используетсяmdniceнабор текста

- END -