Нейронные сети: углублённое обучение

часть 1

?Глава 1: Введение в глубокое обучение: понимание основных нейронных сетей

Описание:

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

  • Определение нейронных сетей
  • Определение глубокого обучения
  • История глубокого обучения
  • Базовые нейронные сети
  • Как работает биологический и искусственный нейрон?

1- Определение нейронных сетей

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

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

2- Определение глубокого обучения

Def: Термин «глубокое обучение» относится к обучению нейронных сетей, иногда очень больших нейронных сетей. Def: Глубокое обучение относится к процессу вовлечения системы, которая думает и учится точно так же, как люди, используя искусственную нейронную сеть Def:. Глубокое обучение — это подмножество машинного обучения, которое использует искусственные нейронные сети для обучения на основе данных. «Глубокий» в глубоком обучении относится к глубине слоев в нейронной сети. Def: Нейронную сеть, состоящую из более чем трех слоев, включая входы и выходы, можно считать алгоритмом глубокого обучения.

3- История глубокого обучения

Глубокое обучение было введено в начале 50-х годов, но в последние годы оно стало популярным из-за увеличения количества приложений, ориентированных на ИИ, и данных, которые генерируются компаниями. История глубокого обучения восходит к ранним дням искусственного интеллекта (ИИ). В 1943 году Уоррен Маккаллох и Уолтер Питтс создали математическую модель нейронов в мозге, которая стала первой искусственной нейронной сетью.

  • В 1950-х годах Фрэнк Розенблатт разработал персептрон, простую двухслойную нейронную сеть, которую можно было обучить распознавать закономерности. Однако у персептрона были ограничения, и только в 1980-х годах нейронные сети начали использоваться более широко.
  • В 1980-х годах Джеффри Хинтон и другие разработали новый тип нейронной сети, названный алгоритмом обратного распространения. Обратное распространение позволило нейронным сетям изучать более сложные паттерны, и это привело к возобновлению интереса к нейронным сетям.
  • В 1990-х годах исследования в области глубокого обучения продолжались, но это все еще была относительно нишевая область. Однако в начале 2000-х годов произошел ряд прорывов, которые привели к возрождению интереса к глубокому обучению.
  • Одним из важнейших прорывов стала разработка сверточной нейронной сети (CNN). CNN — это тип нейронной сети, специально разработанный для обработки изображений. Они использовались для достижения самых современных результатов в различных задачах распознавания изображений, таких как распознавание лиц и обнаружение объектов.
  • Еще одним важным прорывом стала разработка рекуррентной нейронной сети (РНН). RNN — это тип нейронной сети, специально разработанный для обработки последовательных данных. Они использовались для достижения самых современных результатов в различных задачах обработки естественного языка, таких как машинный перевод и распознавание речи.
  • За последнее десятилетие глубокое обучение достигло значительного прогресса в решении широкого круга задач, включая распознавание изображений, обработку естественного языка, распознавание речи и машинный перевод. Сейчас это одно из самых активных и перспективных направлений исследований в области ИИ.

Вот некоторые из основных вех в истории глубокого обучения:

  • 1943: Уоррен Маккаллох и Уолтер Питтс создают математическую модель нейронов в мозге.
  • 1958: Фрэнк Розенблатт разрабатывает персептрон, простую двухслойную нейронную сеть, которую можно обучить распознавать паттерны.
  • 1986: Джеффри Хинтон и другие разрабатывают алгоритм обратного распространения, который позволяет нейронным сетям изучать более сложные паттерны.
  • 1998: Ян Лекун и др. разрабатывают LeNet-5 CNN, который обеспечивает самые современные результаты в распознавании рукописных цифр.
  • 2006: Джеффри Хинтон и др. разрабатывают Deep Belief Network, которая представляет собой тип нейронной сети, которую можно предварительно обучить на большом количестве немаркированных данных.
  • 2012: Алекс Крижевский и др. разрабатывают AlexNet CNN, который достигает самых современных результатов в классификации изображений.
  • 2014: Илья Суцкевер и др. разрабатывают Transformer, новый тип нейронной сети, специально разработанный для задач обработки естественного языка.
  • 2015: Google Translate использует глубокое обучение для достижения производительности машинного перевода на уровне человека.
  • 2016: AlphaGo побеждает профессионального игрока в Го с помощью глубокого обучения.

4- Базовая нейронная сеть

Многослойный персептрон

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

Одиночная нейронная сеть — это нейронная сеть, которая имеет только один слой нейронов. Этот тип сети также известен как персептрон. Персептроны — это простейший тип нейронной сети, и их можно использовать для решения простых задач.

Начнем с примера прогнозирования цен на жилье. Допустим, у вас есть набор данных с шестью домами, поэтому вы знаете размер домов в квадратных футах или квадратных метрах, и вы знаете цену дома, и вы хотите подогнать функцию для прогнозирования цены дома в зависимости от его размера. Итак, если вы знакомы с линейной регрессией, вы можете сказать: «Давайте проведем прямую линию к этим данным, и мы получим такую прямую линию». Но если быть более причудливым, вы можете сказать, что мы знаем, что цены никогда не могут быть отрицательными, верно? Таким образом, вместо прямой подгонки, которая в конечном итоге станет отрицательной, давайте согнем кривую здесь. Так что здесь просто получается ноль. Таким образом, эта толстая синяя линия в конечном итоге является вашей функцией для прогнозирования цены дома в зависимости от его размера. Там, где он равен нулю здесь, а затем есть прямая линия, подходящая вправо. Таким образом, вы можете думать об этой функции, которую вы только что подогнали к ценам на жилье, как об очень простой нейронной сети. Это почти простейшая из возможных нейронных сетей. Позвольте мне нарисовать его здесь. В качестве входных данных для нейронной сети мы имеем размер дома, который мы называем x. Он входит в этот узел, в этот маленький круг, а затем выводит цену, которую мы называем y. Таким образом, этот маленький круг, который представляет собой один нейрон в нейронной сети, реализует эту функцию, которую мы нарисовали слева. И все, что делает нейрон, это вводит размер, вычисляет эту линейную функцию, принимает максимум нуля, а затем выводит расчетную цену. И, кстати, в литературе по нейросетям вы часто увидите эту функцию. Эта функция, которая иногда стремится к нулю, а затем принимает прямую линию. Эта функция называется функцией ReLU, что означает выпрямленные линейные единицы. Итак, Р-Е-Л-У. А выпрямить просто означает взять максимум 0, поэтому вы получаете такую форму функции. На данный момент вам не нужно беспокоиться о блоках ReLU, но это просто то, что вы увидите позже в этом курсе. Итак, если это один нейрон, нейронная сеть, на самом деле крошечная маленькая нейронная сеть, большая нейронная сеть затем формируется путем взятия многих одиночных нейронов и сложения их вместе. Итак, если вы думаете об этом нейроне, который похож на один кирпичик Lego, вы получаете большую нейронную сеть, складывая вместе многие из этих кубиков Lego.

5- Многослойная нейронная сеть

Давайте посмотрим на пример. Допустим, вместо того, чтобы предсказывать цену дома только по размеру, теперь у вас есть другие функции. Вы знаете другие вещи о доме, такие как количество спален, которое мы бы написали как «#bedrooms», и вы можете подумать, что одна из вещей, которая действительно влияет на цену дома, — это размер семьи, верно? Так может ли этот дом подойти вашей семье из трех человек, или семье из четырех человек, или семье из пяти человек? И это действительно основано на размере в квадратных футах или квадратных метрах, а также на количестве спален, которые определяют, может ли дом соответствовать размеру семьи вашей семьи. И потом, может быть, вы знаете почтовые индексы, в разных странах это называется почтовым индексом дома. И почтовый индекс, может быть, как вам говорит функция, проходимость? Так является ли этот район удобным для прогулок? Думаете, просто идете в продуктовый магазин? Дойти до школы пешком? Вам нужно сесть за руль? А некоторые люди предпочитают пешеходные районы. И тогда почтовый индекс, а также богатство могут сказать вам, верно. Конечно, в Соединенных Штатах, но и в некоторых других странах. Рассказывает, насколько хорошо качество школы. Таким образом, каждый из этих маленьких кругов, которые я рисую, может быть одним из этих ReLU, выпрямленных линейных единиц или какой-то другой немного нелинейной функцией. Таким образом, основываясь на размере и количестве спален, вы можете оценить размер семьи, их почтовый индекс, на основе пешеходной доступности, на основе почтового индекса и достатка, чтобы оценить качество школы. И, наконец, вы можете подумать, что люди решают, сколько они готовы платить за дом, они смотрят на вещи, которые действительно важны для них. В этом случае размер семьи, проходимость и качество школы, и это помогает вам прогнозировать цену. Итак, в примере x — это все эти четыре входа. А y — это цена, которую вы пытаетесь предсказать. Таким образом, сложив вместе несколько отдельных нейронов или простых предикторов, которые мы получили из предыдущего слайда, мы теперь имеем немного большую нейронную сеть. То, как вы управляете нейронной сетью, заключается в том, что когда вы ее реализуете, вам нужно дать ей только вход x и выход y для ряда примеров в вашем обучающем наборе, и все эти вещи в середине они разберутся сами собой. Итак, то, что вы на самом деле реализуете, заключается в следующем. Где, здесь, у вас есть нейронная сеть с четырьмя входами.

Таким образом, входными признаками могут быть размер, количество спален, почтовый индекс или почтовый индекс, а также богатство района. И поэтому, учитывая эти входные функции, работа нейронной сети будет заключаться в том, чтобы предсказать цену y. И заметьте также, что каждый из этих кругов, они называются скрытыми единицами в нейронной сети, что каждый из них принимает на свои входы все четыре входных признака. Так, например, вместо того, чтобы говорить, что этот первый узел представляет размер семейства, а размер семейства зависит только от функций X1 и X2. Вместо этого мы собираемся сказать: «Ну, нейронная сеть, вы сами решаете, каким вы хотите, чтобы этот узел был». И мы предоставим вам все четыре функции ввода для вычисления всего, что вы хотите. Итак, мы говорим, что это входной слой, и этот слой в середине нейронной сети плотно связаны. Потому что каждый входной элемент связан с каждым из этих кругов посередине. И примечательная вещь о нейронных сетях заключается в том, что при наличии достаточного количества данных о x и y, при наличии достаточного количества обучающих примеров как с x, так и с y, нейронные сети удивительно хороши в выяснении функций, которые точно отображают от x до y. Итак, это базовая нейронная сеть. Оказывается, по мере того, как вы строите свои собственные нейронные сети, вы, вероятно, обнаружите, что они наиболее полезны, наиболее эффективны в стимулировании контролируемого обучения, а это означает, что вы пытаетесь взять входной x и сопоставить его с некоторым выходом y, как мы только что видели в примере прогнозирования цен на жилье.

6- Как работает биологический и искусственный нейрон?

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

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

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

Позвольте мне объяснить сценарий, когда вы прикасаетесь рукой к горячему предмету, вы чувствуете боль и немедленно убираете руку. Это действие и реакция выполняются в течение доли секунды. У вас когда-нибудь возникало ощущение, как это происходит? Ну, это триллионы нейронов, соединенных в теле, когда вы прикасаетесь к горячему предмету, электрический импульс будет проходить от нейронов в вашей руке к нейронам в вашем мозгу. Затем принимается решение, и сразу же электрический импульс возвращается к нейронам в руке, инструктируя удалить его. Внутри нейронов дендриты действуют как нейрорецепторы, не что иное, как входной слой. Аксоны действуют как нейротрансмиттеры, не что иное, как выходной слой. Ядро — это место, где потенциал действия сравнивается с порогом. Если потенциал действия больше порога, электрический импульс будет передаваться другому нейрону. Если потенциал действия меньше порога, электрический импульс не будет передаваться другому нейрону.

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

Здесь входные данные (от x1 до xn) умножаются на соответствующие веса (от w1 до wn), а затем суммируются вместе с смещением. Результат будет принят в качестве входных данных для функции активации, именно здесь происходит решение, и выход функции активации передается другим нейронам. Существуют различные типы функций активации, некоторые из которых линейные, ступенчатые, сигмовидные, RelU и т. Д.

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

часть 2

?Глава 1: Введение в глубокое обучение: контролируемое обучение с помощью нейронных сетей

Содержание

  • Пример контролируемого обучения нейронной сети
  • Типы нейронных сетей
  • Применение машинного обучения как к структурированным, так и к неструктурированным данным

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

Пример контролируемого обучения нейронной сети

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

  • Возможно, самым прибыльным применением глубокого обучения сегодня является онлайн-реклама, может быть, не самая вдохновляющая, но, безусловно, очень прибыльная, в которой, вводя информацию об объявлении на веб-сайт, который он думает показать вам, и некоторую информацию о пользователе, нейронные сети очень хорошо предсказывают, нажимаете ли вы на объявление или нет. И, показывая вам и пользователям рекламу, на которую вы, скорее всего, нажмете, это было невероятно прибыльное применение нейронных сетей в нескольких компаниях. Потому что возможность показывать вам рекламу, на которую вы, скорее всего, нажмете, напрямую влияет на прибыль некоторых из очень крупных рекламных компаний в Интернете.
  • Компьютерное зрение также добилось огромных успехов за последние несколько лет, в основном благодаря глубокому обучению. Таким образом, вы можете ввести изображение и захотеть вывести индекс, скажем, от 1 до 1000, пытаясь сказать вам, является ли это изображение, это может быть любое из, скажем, 1000 различных изображений. Итак, вы можете использовать это для маркировки фотографий.
  • Я думаю, что недавний прогресс в распознавании речи также был очень захватывающим, когда теперь вы можете ввести аудиоклип в нейронную сеть и заставить его выводить текстовую расшифровку.
  • Машинный перевод также добился огромных успехов благодаря глубокому обучению, где теперь вы можете заставить нейронную сеть вводить английское предложение и напрямую выводить, скажем, китайское предложение.
  • А при автономном вождении вы можете ввести изображение, скажем, изображение того, что находится перед вашим автомобилем, а также некоторую информацию с радара, и на основе этого, возможно, нейронная сеть может быть обучена, чтобы сообщать вам положение других автомобилей на дороге. Таким образом, это становится ключевым компонентом в системах автономного вождения.

Типы нейронных сетей

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

  • Например, в заявке на недвижимость. Мы используем универсальную стандартную архитектуру нейронной сети, верно? Возможно, для недвижимости и интернет-рекламы может быть относительно стандартная нейронная сеть, наподобие той, которую мы видели.
  • Для приложений с изображениями мы часто будем использовать сверточные нейронные сети, часто сокращенно CNN. И для данных последовательности.
  • Так, например, звук имеет временную составляющую, верно? Звук воспроизводится во времени, поэтому звук наиболее естественно представлен в виде одномерного временного ряда или одномерной временной последовательности. И поэтому для данных последовательности вы часто используете RNN, рекуррентную нейронную сеть.
  • Язык, английский и китайский, алфавиты или слова приходят по одному. Таким образом, язык также наиболее естественно представлен в виде данных последовательности. И поэтому для этих приложений часто используются более сложные версии RNN.
  • А затем, для более сложных приложений, таких как автономное вождение, где у вас есть изображение, это может предложить больше CNN, сверточной нейронной сети, структуры и радиолокационной информации, что является чем-то совершенно другим. Вы можете получить более индивидуальную или более сложную гибридную архитектуру нейронной сети.

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

Применение машинного обучения как к структурированным, так и к неструктурированным данным.

Структурированные данные

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

Неструктурированные данные

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

часть 3

?Глава 1: Введение в глубокое обучение

Почему Deep Learning набирает обороты?

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

  • Данные
  • Вычисление
  • Алгоритм

1- ДАННЫЕ

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

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

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

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

Если вы тренируете маленькую нейронную сеть, то эта производительность может выглядеть так. Если вы тренируете несколько больший NN, это называется NN среднего размера. Чтобы попасть во что-то среднее, и если вы тренируете очень большую нейронную сеть, то это форма, которая часто становится все лучше и лучше.

Итак, пара наблюдений.

  • Во-первых, если вы хотите достичь такого высокого уровня производительности, вам сначала нужны две вещи: часто вам нужно иметь возможность обучить достаточно большую нейронную сеть, чтобы воспользоваться огромным объемом данных
  • А во-вторых, вам нужно быть здесь, на оси X вам нужно много данных, поэтому мы часто говорим, что масштаб является движущей силой прогресса в глубоком обучении, и под масштабом я имею в виду как размер нейронной сети, так и просто новую сеть, множество скрытых блоков, множество параметров, Множество связей, а также масштаб данных.

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

Для того, чтобы сделать эту диаграмму немного более технически точной и просто добавить еще несколько вещей, я записал количество данных по оси X. Технически это количество помеченных данных, где под данными меток я подразумеваю обучающие примеры, у нас есть как входной X, так и метка Y. Я пошел, чтобы ввести немного обозначений, которые мы будем использовать позже в этом курсе. Мы собираемся использовать строчный алфавит m для обозначения размера моих обучающих наборов или количества обучающих примеров в нижнем регистре M, так что это горизонтальная ось.

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

Очень большие обучающие наборы, очень большой М-режим справа, что мы более последовательно видим большие нейронные сети, доминирующие в других подходах.

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

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

2- Алгоритмы

  • Совершенствование алгоритмов глубокого обучения. Алгоритмы глубокого обучения постоянно совершенствуются в течение последних нескольких лет. Были разработаны новые алгоритмы, которые являются более эффективными и точными.

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

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

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

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

3- Вычисление

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

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

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

Эти факторы привели к ряду успешных применений глубокого обучения, таких как:

  • Классификация изображений: Алгоритмы глубокого обучения можно использовать для классификации изображений по различным категориям, таким как кошки, собаки или автомобили.
  • Распознавание речи: Алгоритмы глубокого обучения можно использовать для распознавания речи и транскрибирования ее в текст.
  • Обработка естественного языка: Алгоритмы глубокого обучения можно использовать для понимания и обработки естественного языка, такого как текст и речь.
  • Машинный перевод: алгоритмы глубокого обучения можно использовать для перевода текста с одного языка на другой.
  • Медицинская диагностика: Алгоритмы глубокого обучения можно использовать для диагностики заболеваний по медицинским изображениям.

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

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

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

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

часть 4

?Глава 1: Введение в глубокое обучение

Изучение различных типов искусственных нейронных сетей

Знакомство

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

Краткая история:ИНС была впервые введена в 1943 году нейрофизиологом Уорреном Маккаллохом и математиком Уолтером Питтсом. Однако у ИНС были свои взлеты и падения. После 1960 года наблюдалось падение интереса и волнения среди исследователей нейронных сетей с развитием машин опорных векторов и других мощных методов машинного обучения, которые обеспечивали лучшую точность и имели более прочную теоретическую основу. Нейронные сети были сложными и требовали огромной вычислительной мощности и времени для обучения. Однако после 1990 года прогресс в области вычислений (см. закон Мура), за которым последовало производство мощных графических карт, вернул некоторый интерес.

Приложение:ИНС универсальны, адаптивны и масштабируемы, что делает их подходящими для решения больших наборов данных и очень сложных задач машинного обучения, таких как классификация изображений (например, Google Images), распознавание речи (например, Siri от Apple), рекомендации по видео (например, YouTube) или анализ настроений среди клиентов (например, Twitter Sentiment Analyzer).

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

Вот некоторые распространенные типы:

1- Персептрон

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

2- Нейронные сети с прямой связью (FNN)

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

2- ИНС (искусственные нейронные сети):

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

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

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

3- Сверточные нейронные сети (CNN)

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

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

Процесс обучения включает в себя обратное распространение, очень похожее на ИНС, но с учетом сохранения пространственной иерархии объектов.

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

4- Рекуррентные нейронные сети (RNN)

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

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

Для решения этих проблем были разработаны более продвинутые версии, такие как сети с длинной краткосрочной памятью (LSTM) и закрытыми рекуррентными блоками (GRU).

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

5 сетей с длинной краткосрочной памятью (LSTM)

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

6-закрытые рекуррентные блоки (GRU)

Подобно LSTM, GRU — это еще один тип RNN, который решает проблему исчезающего градиента и улучшает изучение зависимостей на большие расстояния. ГРУ имеют более простую структуру по сравнению с LSTM и часто используются, когда речь идет о вычислительной эффективности.

7- Сети глубоких убеждений:

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

8-Генеративно-состязательные сети (GAN)

Def: Генеративно-состязательные сети: Генеративно-состязательные сети (GAN) — это тип нейронных сетей, которые используются для генерации новых данных. Они состоят из двух нейронных сетей, генератора и дискриминатора. Генератор отвечает за генерацию новых данных, в то время как дискриминатор отвечает за различение реальных и сгенерированных данных. GAN часто используются для генерации изображений и текстов.

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

9- Автоэнкодеры

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

10- Самоорганизующиеся карты (SOM):

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

11-радиальные сети базисных функций (RBFNS)

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

Заключение

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

часть 5

Двоичная классификация

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

Раздел 1- Что такое двоичная классификация в глубоком обучении?

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

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

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

Ниже приведены некоторые распространенные примеры задач двоичной классификации.

  • Обнаружение спама
  • Обнаружение мошенничества
  • Кредитный скоринг
  • Диагностика заболевания
  • Прогнозирование оттока клиентов
  • Анализ тональности

Раздел 2 — Двоичная классификация и представление изображений

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

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

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

Мы просто возьмем все значения пикселей 255, 231 и так далее. 255, 231 и так далее, пока мы не перечислим все красные пиксели. А затем, в конце концов, 255, 134, 255, 134 и так далее, пока мы не получим длинный вектор элементов, перечисляющий все значения интенсивности красных, зеленых и синих пикселей этого изображения. Если это изображение представляет собой изображение 64 на 64, общая размерность этого вектора x будет 64 на 64 на 3, потому что это общие числа, которые мы имеем во всех этих матрицах. Что в данном случае оказывается 12 288, вот что вы получите, если перемножите все эти числа. Итак, мы собираемся использовать nx = 12288 для представления размерности входных объектов x. А иногда для краткости я также просто использую строчную букву n для представления размерности этого входного вектора признаков. Таким образом, в двоичной классификации наша цель состоит в том, чтобы изучить классификатор, который может вводить изображение, представленное этим вектором признаков x. И предсказать, является ли соответствующая метка y 1 или 0, то есть является ли это изображением кошки или не кошачьим.

Раздел 3: Нотация, используемая в глубоком обучении

Давайте теперь изложим некоторые обозначения, которые мы будем использовать в оставшейся части этого курса. Один обучающий пример представлен парой (x,y), где x — это x-мерный вектор признаков, а y, метка, равна 0 или 1. Ваши обучающие наборы будут содержать обучающие примеры m в нижнем регистре. Таким образом, ваши обучающие наборы будут записаны (x1, y1), которые являются входными и выходными данными для вашего первого обучающего примера (x(2), y(2)) для второго обучающего примера до (xm, ym), который является вашим последним обучающим примером. И тогда это в целом весь ваш тренировочный набор. Поэтому я собираюсь использовать строчную букву m для обозначения количества обучающих выборок. И иногда, чтобы подчеркнуть, что это количество примеров поездов, я мог бы записать это как M = M поезд. И когда мы говорим о тестовом наборе, мы можем иногда использовать m подстрочный тест для обозначения количества тестовых примеров. Вот и столько тестовых примеров. Наконец, чтобы вывести все обучающие примеры в более компактную нотацию, мы собираемся определить матрицу, заглавную букву X. Как определено, возьмите входные данные обучающего набора x1, x2 и т. д. и сложите их в столбцы. Итак, мы берем X1 и помещаем его в качестве первого столбца этой матрицы, X2, помещаем его в качестве второго столбца и так далее вплоть до Xm, тогда это матричная заглавная буква X. Таким образом, эта матрица X будет иметь M столбцов,
где M — количество примеров поездов и количество железных дорог, или высота этой матрицы равна NX. Обратите внимание, что в других случаях вы можете увидеть, что матричная заглавная буква X определена путем сложения примеров поезда в строки, например, X1 транспонируется вниз в транспонирование Xm. Оказывается, когда вы реализуете нейронные сети с использованием этого соглашения, которое у меня слева, это значительно облегчит реализацию. Итак, чтобы резюмировать, x — это размерная матрица nx на m, и когда вы реализуете это в Python, вы видите, что x.shape, это команда python для поиска формы матрицы, что это nx, m. Это просто означает, что это размерная матрица nx на m. Вот как вы группируете обучающие примеры, вводите x в матрицу. Как насчет выходных меток Y? Оказывается, чтобы упростить реализацию нейронной сети, было бы удобно также складывать столбцы Y In. Итак, мы собираемся определить капитал Y равным Y 1, Y 2, вплоть до Y m вот так. Таким образом, Y здесь будет размерной матрицей размером 1 на m. И опять-таки, использовать обозначение без формы Y будет равно 1, м. Это просто означает, что это матрица 1 на m. И по мере того, как вы будете реализовывать свою нейронную сеть позже в этом курсе, вы обнаружите, что полезным соглашением было бы взять данные, связанные с различными примерами обучения, и под данными я имею в виду либо x, либо y, либо другие величины, которые вы увидите позже. Но взять материал или данные, связанные с различными примерами обучения, и сложить их в разные столбцы, как мы сделали здесь для x и y. Итак, это обозначение, которое мы будем использовать для логистической регрессии и для сетей нейронных сетей позже в этом курсе. Если вы когда-нибудь забудете, что означает фрагмент нотации, например, что такое M, что такое N или что-то еще, мы также разместили на веб-сайте курса руководство по нотации, которое вы можете использовать, чтобы быстро найти, что означает тот или иной конкретный фрагмент нотации. Итак, давайте перейдем к следующему видео, где мы начнем извлекать логистическую регрессию, используя эту нотацию.

часть 6

Логистическая регрессия

Описание

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

Раздел 1 — Введение логистической регрессии

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

Логистическая регрессия — это метод прогнозирования двоичных результатов, таких как «да» или «нет», «истина» или «ложь», в отличие от линейной регрессии, которая используется для прогнозирования непрерывных результатов. Логистическая функция, которая преобразует любые входные данные с вещественным значением в число от 0 до 1, служит основой для модели логистической регрессии.

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

Раздел 2 — Зачем нужна логистическая регрессия?

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

Раздел 3 — Как работает логистическая регрессия?

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

Логистическая регрессия преобразует данные в диапазоне от 0 до 1, чтобы предсказать класс, к которому они принадлежат. Если значение меньше 0,5, то оно относится к классу 0, а если значение больше 0,5, то оно классифицируется как класс 1. Как следует из названия, логистическая регрессия является производной от ее вычисления, которое преобразует ее в логиты, т.е. 0 или 1.

Логистическая регрессия дает вероятность для прогнозируемого класса, которая лежит между 0 и 1. Чем больше вероятность предсказания, тем выше вероятность того, что он принадлежит к прогнозируемому классу

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

Учитывая, что вектор входного признака X может соответствовать изображению, которое вы хотите распознать как изображение кошки или не изображение кошки, вам нужен алгоритм, который может выводить предсказание, которое мы назовем шляпой Y, что является вашей оценкой Y. Более формально вы хотите, чтобы Y была вероятностью вероятности того, что Y равен единице с учетом входных признаков X. Другими словами, если X — это картинка, как мы видели в последнем уроке, вы хотите, чтобы шляпа Y сказала вам, какова вероятность, что это изображение кошки? Таким образом, X, как мы уже говорили в предыдущем уроке, является X-мерным вектором, учитывая, что параметрами логистической регрессии будут W, который также является мерным вектором, вместе с b, который является просто действительным числом. Итак, учитывая входной X и параметры W и b, как мы генерируем выходную шляпу Y? Ну, одна вещь, которую вы могли бы попробовать, которая не работает, — это транспонировать Y X плюс B, своего рода линейную функцию входного X. И на самом деле, это то, что вы используете, если бы занимались линейной регрессией. Но это не очень хороший алгоритм для двоичной классификации, потому что вы хотите, чтобы Y был шансом, что Y равен единице. Таким образом, Y hat действительно должен быть между нулем и единицей, и это трудно осуществить, потому что транспонирование W X плюс B может быть намного больше единицы или даже может быть отрицательным, что не имеет смысла для вероятности. Что вы хотите, чтобы он был между нулем и единицей.

Таким образом, в логистической регрессии наш вывод будет равен Y, что равно сигмовидной функции, примененной к этой величине. Так выглядит сигмовидная функция. Если на горизонтальной оси построить график Z, то сигмовидная функция Z выглядит так. Так что все идет плавно от нуля до единицы. Позвольте мне обозначить здесь свои оси, это ноль, и он пересекает вертикальную ось как 0.5. Вот так выглядит сигмовидная кишка Z. И мы собираемся использовать Z для обозначения этой величины, W транспонирует X плюс B. Вот формула для сигмовидной функции. Сигмоида Z, где Z — действительное число, равна единице на единицу плюс E к отрицательному Z. Итак, обратите внимание на пару вещей. Если Z очень большое, то E к отрицательному Z будет близко к нулю. Таким образом, сигмовидная кишка Z будет примерно единица на единицу плюс что-то очень близкое к нулю, потому что E к отрицательному очень большому числу будет близко к нулю. Так что это близко к 1. И действительно, если вы посмотрите на график слева, если Z очень большой, сигмовидная кишка Z очень близка к единице. И наоборот, если Z очень маленькое или очень большое отрицательное число, то сигмовидная кишка Z становится единицей больше единицы плюс E к отрицательному Z, и это становится огромным числом. Таким образом, это становится, думайте об этом как об одном на один плюс число, которое очень, очень велико, и поэтому оно близко к нулю. И действительно, вы видите, что, когда Z становится очень большим отрицательным числом, сигмовидная мышца Z очень близка к нулю. Поэтому, когда вы реализуете логистическую регрессию, ваша задача состоит в том, чтобы попытаться изучить параметры W и B, чтобы Y стал хорошей оценкой вероятности того, что Y будет равен единице. Прежде чем двигаться дальше, еще одно замечание о нотации. Когда мы программируем нейронные сети, мы обычно разделяем параметры W и B, где здесь B соответствует интерспектру. В некоторых других курсах вы, возможно, видели обозначения, которые обрабатывают это по-другому. В некоторых соглашениях вы определяете дополнительную функцию, называемую X0, и она равна единице. Так что теперь X находится в R NX плюс один. И тогда вы определяете, что Y равна сигме тета-транспонирования X. В этом альтернативном соглашении обозначений у вас есть векторные параметры тета, тета-ноль, тета-один, тета-два, вплоть до тета-NX Итак, тета-ноль, поместите строку B, это просто действительное число, а тета-единица вплоть до тета-NX играет роль W. Оказывается, когда вы реализуете свою нейронную сеть, вам будет проще просто сохранить B и W как отдельные параметры. Итак, в этом классе мы не будем использовать ни одно из этих условных обозначений, которые я только что написал красным цветом. Если вы раньше не видели эту нотацию в других курсах, не беспокойтесь об этом. Просто для тех из вас, кто видел эту нотацию, я хотел бы прямо упомянуть, что мы не используем эту нотацию в этом курсе. Но если вы не видели этого раньше, это не важно, и вам не нужно об этом беспокоиться. Итак, теперь вы увидели, как выглядит модель логистической регрессии. Далее для изменения параметров Wand B необходимо определить функцию затрат.

Для более подробного изложения.

Обработка естественного языка (часть 9) | by Coursesteach | Сентябрь, 2023 | Терпимая

Раздел 4 — Практическое применение

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

Диагностика заболевания: логистическая регрессия может быть использована для прогнозирования наличия у пациента определенного заболевания на основе его симптомов и истории болезни.
Прогнозирование оттока клиентов: Логистическая регрессия может помочь определить клиентов, которые, вероятно, уйдут из услуги или продукта.
Анализ тональности: логистическая регрессия может классифицировать текстовые данные как положительные или отрицательные.
Кредитный скоринг: Логистическая регрессия может оценить кредитоспособность на основе демографической и финансовой информации.

Раздел 5 — Преимущества и ограничения

Логистическая регрессия предлагает несколько преимуществ в глубоком обучении:

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

Однако у него есть и ограничения:

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

Раздел 6: Заключение

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

часть 7

Общие сведения о логистической регрессионной функции затрат

Описание

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

Раздел 1: Введение в логистическую регрессию

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

Раздел 2: Потребность в функции затрат

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

Раздел 3: Определение функции затрат логистической регрессии

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

Раздел 4: Интуиция, стоящая за функцией затрат

Таким образом, вы выводите Y, hat является сигмовидной W, транспортирует экспертов, где сигмоида Z определена здесь. Таким образом, чтобы изучить параметры для вашей модели, вам предоставляется обучающий набор обучающих примеров, и кажется естественным, что вы хотите найти параметры W и B. Так что, по крайней мере, на тренировочном наборе у вас есть прогнозы, которые у вас есть на тренировочном наборе, которые я напишу как y hat i, что это будет близко к ярлыкам наземных войск y i, которые вы получили в учебном наборе. Итак, чтобы заполнить немного больше деталей для уравнения сверху, мы сказали, что y hat, как определено вверху для обучающего примера X. И, конечно же, для каждого обучающего примера мы используем эти надстрочные индексы с круглыми скобками и скобками для индексации в различных примерах обучения. Ваш прогноз на обучающем примере I, который y и I будет получен путем взятия сигмовидной функции и применения ее к W транспонирован X I, входным данным для обучающего примера плюс B. И вы также можете определить Z I следующим образом, где Z I равен, вы знаете, W транспорт Z I плюс B. Итак, на протяжении всего этого курса мы будем использовать это условное обозначение, согласно которому скобки суперполосы, которые я называю данными, должны быть X, Y или Z. Или что-то еще, связанное с обучающим примером «У меня есть», связанным с жизненным примером, хорошо, это то, что означает надстрочный индекс I в скобках.

Теперь давайте посмотрим, какую функцию потерь или функцию ошибки мы можем использовать, чтобы измерить, насколько хорошо работает наш альбом. Одна вещь, которую вы можете сделать, это определить потери, когда ваш алгоритм выводит y hat, а истинная метка y может быть квадратной ошибкой или ошибкой в половине квадрата. Оказывается, вы могли бы это сделать, но в логистической регрессии люди обычно этого не делают. Потому что, когда вы приходите изучать параметры, вы обнаруживаете, что задача оптимизации, о которой мы поговорим позже, становится невыпуклой. Таким образом, вы сталкиваетесь с проблемой оптимизации, у вас есть несколько локальных оптимумов. Так здорово в инакомыслии, может не найти глобального оптимума, если вы не поняли последние пару комментариев, не беспокойтесь об этом, Ww доберется до этого в более позднем видео. Но интуиция, которую следует убрать, заключается в том, что дисфункция L, называемая функцией потерь, должна быть определена, чтобы измерить, насколько хорош наш выходной y-hat, когда истинная метка y. И квадратная эра кажется разумным выбором, за исключением того, что она делает великие по происхождению не очень хорошими. Таким образом, в логистической регрессии на самом деле была определена другая функция потерь, которая играет ту же роль, что и квадрат ошибки, но даст нам задачу оптимизации, которая является выпуклой. И поэтому мы увидим в более позднем видео, что становится намного проще оптимизировать, поэтому то, что мы используем в логистической регрессии, на самом деле является следующей функцией потерь, которую я просто выхожу прямо здесь, отрицательной. y log y шляпа плюс 1 минус y log 1 минус, y шляпа вот некоторая интуиция о том, почему эта функция потерь имеет смысл. Имейте в виду, что если мы используем квадрат ошибки, то вы хотите, чтобы квадрат ошибки был как можно меньше. И с этой логистической регрессией потерянная функция также захочет, чтобы она была как можно меньше. Чтобы понять, почему это имеет смысл, давайте посмотрим на два случая, в первом случае допустим, что y равно 1, затем функция потерь. y запятая Y — это просто первый член прямо в этой отрицательной науке, это отрицательный log y hat, если y равен 1. Потому что, если y равно 1, то второй член 1 минус Y равен 0, поэтому это говорит о том, что если y равно 1, вы хотите, чтобы отрицательный log y был как можно меньше. Это означает, что вы хотите, чтобы бревенчатая шляпа была большой, чтобы быть как можно больше, а это значит, что вы хотите, чтобы шляпа была большой. Но поскольку вы знаете сигмовидную функцию, она никогда не может быть больше единицы. Таким образом, это говорит о том, что если y равно 1, вы хотите, чтобы шляпа y была как можно больше, но она никогда не может быть больше единицы. Итак, если вы хотите, чтобы y также был близок к единице, другой случай — Y равен нулю, если Y равен 0. Тогда этот первый член в функции потерь равен 0, потому что y равен 0, а во втором члене определяет функцию потерь. Таким образом, потеря становится отрицательной Log 1 минус y шляпа, и поэтому, если в вашей процедуре обучения вы пытаетесь сделать функцию потерь маленькой. Это означает, что вы хотите, чтобы Log 1 минус y шляпа была большой и потому что это отрицательный знак. И затем, используя аналогичные рассуждения, вы можете заключить, что эта функция потерь пытается сделать y hat как можно меньше, и опять же, потому что y hat должен быть между нулем и 1. Это говорит о том, что если y равно нулю, то ваша функция потерь подтолкнет параметры, чтобы сделать y hat как можно ближе к нулю. Сейчас существует множество функций с примерно таким эффектом: если y равно единице, попробуйте сделать y шляпой большой, а y равной нулю или попробуйте сделать шляпу y маленькой. Мы только что дали здесь зеленым цветом несколько неформальное обоснование для этой конкретной функции потерь, мы предоставим необязательное видео позже, чтобы дать более формальное обоснование для y. В логистической регрессии мы предпочитаем использовать функцию потерь именно в этой форме. Наконец, последняя функция была определена применительно к одному обучающему примеру. Он измеряет, насколько хорошо вы справляетесь с одним обучающим примером, теперь я собираюсь определить нечто, называемое функцией затрат, которая измеряет, как вы справляетесь со всем обучающим набором. Таким образом, функция затрат j, которая применяется к вашим параметрам W и B, будет средним, на самом деле одним из m солнца функции потерь, применимой к каждому из обучающих примеров. В свою очередь, мы здесь, y, конечно, является результатом предсказания вашего алгоритма логистической регрессии с использованием, знаете ли, определенного набора параметров W и B. Итак, чтобы расширить это, это равно отрицательному одному из них, некоторые из I равны единице через определение потерянной функции выше. Итак, это y I log y hat i плюс 1 минус Y, я регистрирую 1minus y hat I я думаю, что здесь можно заключить квадратные скобки. Таким образом, знак минус находится за пределами всего остального, поэтому терминология, которую я собираюсь использовать, заключается в том, что функция потерь применяется только к одному обучающему примеру. Точно так же и функция затрат — это стоимость ваших параметров, поэтому при обучении модели логистической регрессии мы попытаемся найти параметры W и B. Это минимизирует общую функцию затрат J, написанную внизу. Итак, вы только что увидели настройку алгоритма логистической регрессии, функцию потерь для примера обучения и функцию общих затрат для параметров вашего алгоритма. Оказывается, логистическую регрессию можно рассматривать как очень и очень маленькую нейронную сеть. В следующем уроке мы рассмотрим это, чтобы вы могли начать получать интуицию о том, что делают нейронные сети. Итак, давайте перейдем к следующему видео о том, как рассматривать логистическую регрессию как очень маленькую нейронную сеть.

Раздел 5: Свойства функции затрат

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

1. Выпуклость

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

2. Непрерывный и дифференцируемый

Функция затрат является непрерывной и дифференцируемой, что позволяет нам использовать методы оптимизации на основе градиента для ее эффективной минимизации.

3. Монотонность

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

Раздел 6: Реализация функции затрат в Python

import numpy as np
def logistic_regression_cost_function(y_true, y_pred):
«»»Computes the logistic regression cost function.
Args:
y_true: A numpy array of the true labels.
y_pred: A numpy array of the predicted labels.
Returns:
A numpy array of the cost function values. «»»
cost = -np.mean(y_true * np.log(y_pred) + (1 — y_true) * np.log(1 — y_pred))
return cost
# Example usage:
y_true = np.array([1, 0, 1, 0])
y_pred = np.array([0.8, 0.2, 0.7, 0.3])
cost = logistic_regression_cost_function(y_true, y_pred)
print(cost)
#output
0.2899092476264711

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

Если вы хотите узнать больше, прочтите:

Логистическая регрессия: функция затрат
Логистическая регрессия: тестирование
Логистическая регрессия: обучение

Обзор логистической регрессии

Раздел 8: Заключение

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

Источник