Глубокие нейронные сети: что это такое и как они работают
Глубокие нейронные сети — это концепция, составляющая основную технологическую архитектуру, используемую в моделях глубокого обучения. Эти структуры невозможно понять без понимания общей идеи искусственных нейронных сетей, лежащих в основе искусственного интеллекта.
Нейронные сети используются для тысячи вещей: для распознавания номерных знаков, песен, лиц, голосов и даже фруктов на нашей кухне. Это особенно полезная технология, и, несмотря на то, что она только недавно стала практичной, она станет будущим человечества.
Следующий Мы подробно рассмотрим идею искусственных нейронных сетей и глубокое, понимание того, как они работают, как их обучают и как происходят взаимодействия между различными нейронами, из которых они состоят.
- Связанная статья: «Что такое когнитивная наука? Его основные идеи и этапы развития»
Что такое глубокие нейронные сети и что их характеризует?
Глубокие нейронные сети одна из наиболее важных технологических архитектур, используемых в глубоком обучении или глубоком обучении
. Эти особые искусственные сети в последние годы получили головокружительный рост, потому что они представляют собой фундаментальный аспект, когда речь идет о распознавании всех видов паттернов. Искусственный интеллект существует благодаря работе этих конкретных сетей, которые в По сути, они становятся копией того, как работает наш мозг, хотя и в технологическом и математика.Прежде чем углубляться в то, что такое глубокие нейронные сети, нам сначала нужно понять, как вообще работают искусственные нейронные сети и для чего они нужны. лнейронные сети — это ветвь «машинного обучения», оказавшая огромное влияние в последние годы., помогая программистам и специалистам по информатике создавать такие вещи, как чат-боты, которые, когда мы с ними разговариваем, заставляют нас думать, что мы разговариваем с реальными людьми.
Искусственные нейронные сети также использовались в беспилотных автомобилях. мобильные приложения, которые распознают наше лицо и превращают его в то, что мы хотим, и многое другое функции. Его применимость очень обширна, он служит основой современного искусственного интеллекта и имеет бесконечное полезное применение в нашей повседневной жизни.
искусственные нейронные сети
Давайте представим, что мы находимся на нашей кухне и решаем поискать апельсин, очень простая задача.. Мы знаем, как очень легко отличить апельсин, а также знаем, как отличить его от других фруктов, которые мы находим на кухне, таких как бананы, яблоки и груши. Как? Потому что в нашем мозгу мы очень усвоили типичные свойства апельсина: его его размер, его форма, цвет, как он пахнет... Все это параметры, которые мы используем, чтобы найти апельсин.
Это простая задача для людей, но... Может ли компьютер сделать это тоже? Ответ положительный. В принципе, было бы достаточно определить те же самые параметры и присвоить значение узлу или чему-то, что мы вполне могли бы назвать «искусственным нейроном». Мы бы сказали этому нейрону, на что похожи апельсины, указав их размер, вес, форму, цвет или любой другой параметр, который мы приписываем этому фрукту. Ожидается, что, имея эту информацию, нейрон будет знать, как идентифицировать апельсин, когда он представлен.
Если мы правильно выбрали параметры, вам будет легко отличить апельсины от вещей, которые не являются апельсинами, просто принимая во внимание эти характеристики. При представлении изображения любого фрукта этот нейрон будет искать характеристики связанные с апельсином, и решить, включать ли его в категорию «апельсин» или в категорию «другие фрукты". С точки зрения статистики, это было бы поиском области на графике параметров, которая соответствует тому, что происходит. поиск области, которая включала бы в себя все кусочки фруктов, которые имеют одинаковый размер, форму, цвет, вес и аромат, что и апельсины.
На первый взгляд все это кажется очень простым для кодирования, и на самом деле это так. Он очень хорошо помогает отличить апельсин от банана или яблока, поскольку они имеют разные цвета и формы. Однако что, если мы подарим вам грейпфрут? и очень большой мандарин? Это фрукты, которые вполне можно спутать с апельсином. Сможет ли искусственный нейрон самостоятельно различать апельсины и грейпфруты? Ответ — нет, и на самом деле они, вероятно, считаются одним и тем же.
Проблема с использованием только одного слоя искусственных нейронов или, что то же самое, с использованием сначала только простых нейронов, заключается в том, что генерировать очень неточные границы решений, когда вам представляют что-то, что имеет много общих характеристик с тем, что вы должны быть в состоянии распознать, но на самом деле это не так. Если мы представим что-то похожее на апельсин, например грейпфрут, даже если это не тот фрукт, он идентифицирует его как таковой.
Эти границы решений, если их представить в виде графика, всегда будут линейными. Использование одного искусственного нейрона, то есть одного узла с интегрированными параметрами конкретные, но не могут учиться за их пределами, будут получены очень близкие границы решений. диффузный. Его основное ограничение состоит в том, что он использует два статистических метода, а именно многоклассовую регрессию и многоклассовую регрессию. логистическая регрессия, что означает, что в случае сомнения она включает в себя что-то не то, что мы ожидали. будет идентифицировать.
Если бы мы разделили все фрукты на «апельсины» и «не апельсины», используя только один нейрон, то ясно, что бананы, груши, яблоки, арбузы и любые фрукты, не соответствующие по размеру, цвету, форме, аромату и т. д. апельсинам я бы отнес к категории «нет». апельсины». Однако грейпфруты и мандарины поместили бы их в категорию «апельсинов», поскольку они плохо справляются со своей задачей.
А когда мы говорим об апельсинах и грейпфрутах, мы вполне можем говорить о собаках и волках, курицах и цыплятах, книгах и тетрадях... Все Это ситуации, в которых простого ряда «если…» («если…») недостаточно, чтобы четко отличить одно от другого. другой. Нужна более сложная, нелинейная система, более точная, когда дело доходит до различения различных элементов. Что-то, что учитывает, что между сходствами могут быть различия. Здесь на помощь приходят нейронные сети.
Больше слоев, больше похоже на человеческий мозг
Искусственные нейронные сети, как следует из их названия, представляют собой вычислительные искусственные модели, вдохновленные в нейронных сетях человеческого мозга, сетях, которые фактически имитируют работу этого органа биологический. Эта система вдохновлена нейронным функционированием, и ее основное применение — распознавание шаблоны всех видов: идентификация лица, распознавание голоса, отпечатки пальцев, почерк, номерные знаки… Распознавание образов работает практически для всего..
Поскольку существуют разные нейроны, применяемые параметры различны, и достигается более высокая степень точности. Эти нейронные сети представляют собой системы, которые позволяют нам разделять предметы на категории, когда разница может быть тонкой, разделяя их нелинейным образом, что было бы невозможно сделать иначе способ.
С одним узлом, с одним нейроном при обработке информации выполняется мультиклассовая регрессия. Добавляя больше нейронов, так как каждый из них имеет свою собственную нелинейную функцию активации, которая, в переводе на более простой язык, делает их границы решений, которые более точным, графически представленным в изогнутой форме и учитывающим больше характеристик при различении «апельсинов» и «не апельсинов», чтобы продолжить этот пример.
Кривизна этих границ решений будет напрямую зависеть от того, сколько слоев нейронов мы добавим в нашу нейронную сеть. Те слои нейронов, которые делают систему более сложной и точной, по сути являются глубокими нейронными сетями. В принципе, чем больше слоев глубоких нейронных сетей у нас будет, тем более точной и похожей будет программа по сравнению с человеческим мозгом.
Короче говоря, нейронные сети — это не что иное, как интеллектуальная система, которая позволяет принимать более точные решения, очень похоже на то, как это делаем мы, люди. Человеческие существа основаны на опыте, учась у окружающей среды. Например, возвращаясь к случаю с апельсином и грейпфрутом, если мы никогда их не видели, мы совершенно точно примем их за апельсины. Когда мы познакомимся с ним, это будет тогда, когда мы уже будем знать, как его идентифицировать и отличить от апельсинов.
Первое, что делается, — это задаем нейронным сетям некоторые параметры, чтобы они знали, что это такое, что мы хотим, чтобы они научились идентифицировать. Затем наступает этап обучения или обучения, чтобы он становился все более точным и постепенно имел меньшую погрешность. Это время, когда мы бы подарили нашей нейронной сети апельсин и другие фрукты. На этапе обучения им будут давать случаи, в которых они оранжевые, и случаи, в которых они не оранжевые, чтобы посмотреть, правильно ли они ответили, и сообщить им правильный ответ.
Мы постараемся сделать многочисленные попытки и максимально приближенные к реальности.. Таким образом, мы помогаем нейронной сети работать, когда поступают реальные случаи, и она знает, как правильно различать, так же, как это делал бы человек в реальной жизни. Если обучение было адекватным, выбрав хорошие параметры распознавания и хорошо классифицируются, нейронная сеть будет иметь очень высокий уровень успешного распознавания образов. высокий.
- Вас может заинтересовать: «Как работают нейроны?»
Что они собой представляют и как они работают?
Теперь, когда мы увидели общее представление о том, что такое нейронные сети, мы собираемся более полно понять, что они из себя представляют и как работают эти эмуляторы нейронов человеческого мозга и где во всем этом рисуют глубокие нейронные сети процесс.
Давайте представим, что у нас есть следующая нейронная сеть: у нас есть три слоя искусственных нейронов. Допустим, в первом слое 4 нейрона или узла, во втором 3, а в последнем только 2. Это все пример искусственной нейронной сети, довольно простой для понимания.
Первый уровень — это тот, который получает данные., то есть информация, которая вполне может прийти в виде звука, изображения, аромата, электрического импульса... Это первое слой является входным слоем и отвечает за получение всех данных, чтобы иметь возможность позже отправить их на следующий слои. Во время обучения нашей нейронной сети это будет тот слой, с которым мы собираемся работать в первую очередь, давая ему данные, которые мы будем использовать, чтобы увидеть, насколько хорошо вы делаете прогнозы или идентифицируете предоставленную вам информацию дает.
Второй слой нашей гипотетической модели — это скрытый слой, который находится прямо посередине между первым и последним слоями., как если бы наша нейронная сеть была бутербродом. В этом примере у нас есть только один скрытый слой, но их может быть сколько угодно. Мы могли бы говорить о 50, 100, 1000 или даже 50 000 слоев. По сути, эти скрытые слои являются частью нейронной сети, которую мы бы назвали глубокой нейронной сетью. Чем больше глубина, тем сложнее нейронная сеть.
Наконец, у нас есть третий слой нашего примера, который является выходным слоем. Этот слой, как видно из его названия, отвечает за получение информации от предыдущих слоев, принятие решения и предоставление нам ответа или результата.
В нейронной сети каждый искусственный нейрон связан со всеми последующими. В нашем примере, где мы прокомментировали, что у нас есть три слоя из 4, 3 и 2 нейронов, 4 входного слоя равны связаны с 3 скрытого слоя, а 3 скрытого слоя с 2 вывода, что дает нам в общей сложности 18 соединения.
Все эти нейроны связаны с нейронами следующего слоя, посылая информацию в направлении вход->скрытый->выход.. Если бы было больше скрытых слоев, мы бы говорили о большем количестве соединений, посылающих информацию от скрытого слоя к скрытому слою, пока она не достигнет выходного слоя. Выходной слой, как только он получит информацию, выдаст нам результат, основанный на полученной информации и способе ее обработки.
Когда мы обучаем наш алгоритм, то есть нашу нейронную сеть, этот процесс, который мы только что объяснили, будет выполняться много раз. Мы собираемся передать некоторые данные в сеть, мы увидим, что нам даст результат, мы собираемся проанализировать его и сравнить с тем, что мы ожидали от результата. Если существует большая разница между ожидаемым и полученным, это означает, что существует большая погрешность и, следовательно, необходимо внести несколько модификаций.
Как работают искусственные нейроны?
Теперь мы собираемся понять индивидуальное функционирование нейронов, которые работают в нейронной сети. Нейрон получает информацию от предыдущего нейрона. Допустим, этот нейрон получает три информационных входа, каждый из которых поступает от трех нейронов предыдущего слоя. В свою очередь, этот нейрон генерирует выходы, в этом случае скажем, что он связан только с нейроном следующего слоя.
Каждое соединение, которое этот нейрон имеет с тремя нейронами предыдущего слоя, приносит значение «x», которое является значением, которое посылает нам предыдущий нейрон.; и он также имеет значение «w», которое является весом этой связи. Вес — это значение, которое помогает нам придавать большее значение одному соединению по сравнению с другими. Короче говоря, каждая связь с предыдущими нейронами имеет значения «x» и «w», которые умножаются (x·w).
у нас тоже будет значение, называемое «смещение» или смещение, представленное буквой «b», которая представляет собой число ошибок, побуждающих одни нейроны активироваться легче, чем другие.. Кроме того, у нас есть функция активации внутри нейрона, что делает его степень классификации различных элементов (стр. г., апельсины) не является линейным. Каждый нейрон сам по себе имеет разные параметры, которые необходимо учитывать, что делает всю систему, то есть нейронную сеть, классифицирующей нелинейным образом.
Как нейрон узнает, должен он активироваться или нет? то есть, когда вы узнаете, нужно ли отправлять информацию на следующий уровень? Ну, это решение определяется следующим уравнением:

Эта формула означает, что необходимо произвести сумму всех весов «w», умноженных на все значения «x», которые нейрон получает от предыдущего слоя. К этому добавляется смещение «b».
Результат этого уравнения отправляется в функцию активации, которая является просто функцией, которая говорит нам, что, если результат этого уравнения больше, чем определенного числа нейрон будет посылать сигнал следующему слою и, если меньше, то не будет отправить его Итак, вот как искусственный нейрон решает, отправлять ли информацию нейронам, следующим образом: слоя с помощью выхода, который мы назовем «y», выхода, который, в свою очередь, является входом «x» следующего нейрон.
И как обучить всю сеть?
Первое, что нужно сделать, это доставить данные на первый слой, как мы уже отмечали ранее. Этот слой будет отправлять информацию на следующие слои, которые являются скрытыми слоями или глубокой нейронной сетью. Нейроны этих слоев будут активироваться или нет в зависимости от полученной информации. Наконец, выходной слой даст нам результат, который мы сравним со значением, которого мы ждали, чтобы увидеть, научилась ли нейронная сеть делать правильно.
Если он плохо усвоил, то мы выполним другое взаимодействие, то есть мы снова представим вам информацию и посмотрим, как поведет себя нейросеть. В зависимости от полученных результатов будут корректироваться значения «b», то есть смещения каждого нейрона, и «w», это вес каждой связи с каждым нейроном для уменьшения ошибки. Чтобы узнать, насколько велика эта ошибка, мы собираемся использовать другое уравнение, которое выглядит следующим образом:

Это уравнение представляет собой среднеквадратичную ошибку. Мы собираемся сделать сумму y (x), которая представляет собой значение, которое наша сеть дала нам во взаимодействии, минус «a», которое является значением, которое мы ожидали, что она нам даст, возведенным в квадрат. Наконец, мы собираемся умножить эту сумму на 1/2n, поскольку «n» — это количество взаимодействий, которые мы отправили для обучения нашей нейронной сети.
Например, предположим, что у нас есть следующие значения

Первый столбец «y (x)» представляет то, что наша сеть дала нам в каждом из четырех взаимодействий, которые мы протестировали. Полученные нами значения, как видно, не соответствуют значениям второго столбца «а», которые являются искомыми значениями для каждого из протестированных взаимодействий. Последний столбец представляет ошибку каждого взаимодействия.
Применяя вышеупомянутую формулу и используя эти данные здесь, имея в виду, что в этом случае n = 4 (4 взаимодействия) дает нам значение 3,87, которое является среднеквадратической ошибкой, которую наша нейронная сеть имеет в этих моменты. Зная об ошибке, теперь нам нужно, как мы уже отмечали ранее, изменить предвзятость и веса каждого из нейронов и их взаимодействий с намерением таким образом устранить ошибку. уменьшать.
На данный момент инженеры и компьютерщики применяют алгоритм, называемый градиентным спуском с помощью которых они могут получить значения для проверки и изменения смещения и веса каждого искусственного нейрона. так что таким образом получается все более низкая ошибка, приближающаяся к прогнозу или результату в розыске. Это вопрос тестирования, и чем больше взаимодействий, тем больше будет обучение и тем большему научится сеть.
Как только нейронная сеть будет должным образом обучена, она будет давать нам точные и надежные прогнозы и идентификации. На данный момент у нас будет сеть, в каждом из нейронов которой будет значение определенный вес, с контролируемым смещением и с возможностью принятия решения, которая сделает систему работа.
Библиографические ссылки:
- Пуиг, А. [AMP Tech] (28 июля 2017 г.). Как работают нейронные сети? [Видеофайл]. Выздоровел от https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
- Сантаолалла, Дж. [Подарите себе видеоблог] (2017, 11 апреля) CienciaClip Challenge — Что такое нейронные сети? [Видеофайл]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
- Шмидхубер, Дж. (2015). «Глубокое обучение в нейронных сетях: обзор». Нейронные сети. 61: 85–117. архив: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509