Как работает нейронная сеть: что это такое и как работают нейронные системы, примеры

Содержание

что это такое и как работают нейронные системы, примеры

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

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

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

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

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

Но главная особенность нейронных сетей — способность обучаться. И именно она легла в основу машинных нейросетей.

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

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

Но даже элементарная структура уже могла обучаться и более-менее точно решать простые задачи. Например, перцептрон мог ответить, есть ли на картинке предмет, который его научили распознавать. Он был способен отвечать только на вопросы, где есть два варианта ответов: «да» и «нет».

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

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

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

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

Курс
Машинное обучение
Отработка практических навыков программирования глубоких нейронных сетей. Используйте силу машинного обучения для решения задач бизнеса.
Посмотреть программу

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

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

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

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

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

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

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

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

Читайте также: Как построить свою первую нейросеть

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

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

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

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

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

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

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

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

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

Читайте также: Искусственный интеллект против сценаристов: как нейросети создают истории

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

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

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

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

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

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

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

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

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

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

Еще есть стартапы — они в основном работают на арендованных мощностях и концентрируются на создании нейросети под конкретные задачи. Пример — знаменитое приложение Prisma.

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

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

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

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

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

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

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

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

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

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

Еще один вариант применения — прогнозирование. Принцип такой же: «На улице тучи — значит, пойдет дождь». Но критерии, по которым нейросети делают выводы, до конца непонятны.

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

Или более сложный пример: идиома that’s a piece of cake в контексте переведется не как «это кусок торта», а как «проще простого» в зависимости от стиля текста. На это сейчас способны не все переводчики.

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

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

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

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

Сверточные слои «воспринимают» отдельные элементы картинки как простые клетки — линии. Особые слои, называемые субдискретизирующими, реагируют на конкретные найденные элементы. Чем больше слоев, тем более абстрактные детали способна заметить и определить сеть.

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

Не совсем. Нейронные сети относят к глубокому обучению (Deep Learning), которое является частью машинного, но от классического ML подход сильно отличается. В стандартном машинном обучении программе предварительно рассказывают, как выглядит то, что она должна сделать. Например, если нужно отличить мужчину от женщины, потребуется «объяснить» модели, в чем принципиальные различия между фигурами. Это делается с помощью математических формул и абстракций, которые будут описывать параметры. Выше мы говорили про понятие карты признаков — по сути, это она и есть.

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

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

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

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

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

Но далеко не все задачи можно решить вот так. Например, робот может ответить на более менее стандартные вопросы в банковском приложении, но не поймет, что делать, если человек задаст что-то неочевидное.

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

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

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

Курс
Машинное обучение
Отработка практических навыков программирования глубоких нейронных сетей. Используйте силу машинного обучения для решения задач бизнеса.
Посмотреть программу

Нейронные сети для начинающих. Часть 1 / Хабр

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

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


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






abc
000
011
101
110

Соответственно, нейронная сеть берет на вход два числа и должна на выходе дать другое число — ответ. Теперь о самих нейронных сетях.

Что такое нейронная сеть?

Нейронная сеть — это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Заинтересовавшимся обязательно к просмотру 2 видео из TED Talks: Видео 1, Видео 2). Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов передающих информацию в виде электрических импульсов.

Какие бывают нейронные сети?


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

Для чего нужны нейронные сети?


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

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

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

Распознавание — в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.

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

Что такое нейрон?


Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый). Также есть нейрон смещения и контекстный нейрон о которых мы поговорим в следующей статье. В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Соответственно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.

Важно помнить, что нейроны оперируют числами в диапазоне [0,1] или [-1,1]. А как же, вы спросите, тогда обрабатывать числа, которые выходят из данного диапазона? На данном этапе, самый простой ответ — это разделить 1 на это число. Этот процесс называется нормализацией, и он очень часто используется в нейронных сетях. Подробнее об этом чуть позже.

Что такое синапс?


Синапс это связь между двумя нейронами. У синапсов есть 1 параметр — вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. У того нейрона, у которого вес будет больше, та информация и будет доминирующей в следующем нейроне (пример — смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов — это своеобразный мозг всей системы. Именно благодаря этим весам, входная информация обрабатывается и превращается в результат.

Важно помнить, что во время инициализации нейронной сети, веса расставляются в случайном порядке.

Как работает нейронная сеть?


В данном примере изображена часть нейронной сети, где буквами I обозначены входные нейроны, буквой H — скрытый нейрон, а буквой w — веса. Из формулы видно, что входная информация — это сумма всех входных данных, умноженных на соответствующие им веса. Тогда дадим на вход 1 и 0. Пусть w1=0.4 и w2 = 0.7 Входные данные нейрона Н1 будут следующими: 1*0.4+0*0.7=0.4. Теперь когда у нас есть входные данные, мы можем получить выходные данные, подставив входное значение в функцию активации (подробнее о ней далее). Теперь, когда у нас есть выходные данные, мы передаем их дальше. И так, мы повторяем для всех слоев, пока не дойдем до выходного нейрона. Запустив такую сеть в первый раз мы увидим, что ответ далек от правильно, потому что сеть не натренирована. Чтобы улучшить результаты мы будем ее тренировать. Но прежде чем узнать как это делать, давайте введем несколько терминов и свойств нейронной сети.

Функция активации


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

Линейная функция


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

Сигмоид


Это самая распространенная функция активации, ее диапазон значений [0,1]. Именно на ней показано большинство примеров в сети, также ее иногда называют логистической функцией. Соответственно, если в вашем случае присутствуют отрицательные значения (например, акции могут идти не только вверх, но и вниз), то вам понадобиться функция которая захватывает и отрицательные значения.

Гиперболический тангенс


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

Тренировочный сет


Тренировочный сет — это последовательность данных, которыми оперирует нейронная сеть. В нашем случае исключающего или (xor) у нас всего 4 разных исхода то есть у нас будет 4 тренировочных сета: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.

Итерация


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

Эпоха


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

Важно не путать итерацию с эпохой и понимать последовательность их инкремента. Сначала n

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

Ошибка


Ошибка — это процентная величина, отражающая расхождение между ожидаемым и полученным ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы вольны выбрать любой метод, который будет приносить вам наилучший результат. Стоит лишь учитывать, что каждый метод считает ошибки по разному. У Arctan, ошибка, почти всегда, будет больше, так как он работает по принципу: чем больше разница, тем больше ошибка. У Root MSE будет наименьшая ошибка, поэтому, чаще всего, используют MSE, которая сохраняет баланс в вычислении ошибки.

MSE

Root MSE

Arctan


Принцип подсчета ошибки во всех случаях одинаков. За каждый сет, мы считаем ошибку, отняв от идеального ответа, полученный. 2)/1=0.45

Результат — 0.33, ошибка — 45%.


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

Использованные ресурсы:

— Раз

— Два

— Три

Как работает нейронная сеть: основная информация

В статье рассказывается:

  1. Сравнение искусственной нейронной сети с человеческим мозгом
  2. Алгоритм работы нейронной сети
  3. Типы нейронных сетей
  4. Преимущества и недостатки нейросети
  5. Сферы использования нейросетей

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

Алгоритм работы искусственной нейронной сети так или иначе списан с деятельности человеческого мозга. По крайней мере по аналогии с ним смоделированы аналитические механизмы. Разумеется, есть и определенные отличия между биологией и «цифрой». Вот о процессе работы современной нейронной сети мы сегодня и поговорим.

Сравнение искусственной нейронной сети с человеческим мозгом

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

Сравнение искусственной нейронной сети с человеческим мозгом

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

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

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

В искусственной нейронной сети на этом моменте заострять внимание не стали. Просто построили упрощенную модель и выделили в ней две основные составляющие: алгоритм и вес решения:

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

Алгоритм работы нейронной сети

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

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

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

Каждый из нейронов имеет два основных параметра: входные (input data) и выходные (output data) данные. Входная клетка — это когда input равен output. В других случаях, на месте input образуется информация от суммы всех нейронов предыдущего слоя. Затем при помощи функции активации, она стабилизируется и передается на место output.

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

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

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

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

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

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

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

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

Топ-30 самых востребованных и высокооплачиваемых профессий 2022

Поможет разобраться в актуальной ситуации на рынке труда

Подборка 50+ ресурсов об IT-сфере

Только лучшие телеграм-каналы, каналы Youtube, подкасты, форумы и многое другое для того, чтобы узнавать новое про IT

ТОП 50+ сервисов и приложений от Geekbrains

Безопасные и надежные программы для работы в наши дни

pdf 3,7mb

doc 1,7mb


Уже скачали 15196

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

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

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

  1. Сверточные (СНС). Это наиболее используемый тип нейронных сетей, который применяют для распознавания различной информации в видео, фото, при обработке языка и т. д. К основным характеристикам СНС относят:
    • способность справляться с большими объемами. Они могут распознавать картинку любого разрешения, вне зависимости от ее размера;
    • использование нейронов в трехмерном измерении — нейроны внутри слоя соединяются в малом поле, который называется рецептивным;
    • наличие механизма определения местоположения. Он связывает соседние слои ИНС, тем самым обеспечивая работу нелинейных фильтров. Также это позволяет охватить большее число точек-пикселей в графической картинке.

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

  2. Рекуррентные (РНС).

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

Интенсив «Путь в IT» поможет:

  • За 3 часа разбираться в IT лучше, чем 90% новичков.
  • Понять, что действительно ждет IT-индустрию в ближайшие 10 лет.
  • Узнать как по шагам c нуля выйти на доход в 200 000 ₽ в IT.

При регистрации вы получите в подарок:

«Колесо компетенций»

Тест, в котором вы оцениваете свои качества и узнаете, какая профессия в IT подходит именно вам

«Критические ошибки, которые могут разрушить карьеру»

Собрали 7 типичных ошибок, четвертую должен знать каждый!

Тест «Есть ли у вас синдром самозванца?»

Мини-тест из 11 вопросов поможет вам увидеть своего внутреннего критика

Хотите сделать первый шаг и погрузиться в мир информационных технологий? Регистрируйтесь и
смотрите интенсив:

Только до 20 октября


Осталось 17 мест

Преимущества и недостатки нейросети

К преимуществам искусственной нейронной сети относят:

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

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

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

Сферы использования нейросетей

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

Среди основных областей практического применения нейронных сетей выделяют:

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

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

Сферы использования нейросетей

Это относится к поисковым системам Google, Yandex, Bing, Baidu. Когда пользователь вводит запрос, то алгоритмы учатся определять необходимую степень соответствия и предоставлять ту информацию, которая ищется.

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

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


Продвижение блога — Генератор
продаж


Рейтинг:
4. 2


( голосов
5 )


Поделиться статьей

Нейронные сети: что это такое и почему они важны

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

История нейронных сетей

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

Эта прорывная модель проложила путь исследованиям нейронных сетей в двух областях:

Биологические процессы в мозге.

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

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

Почему важны нейронные сети?

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

  • Обнаружение мошенничества с кредитными картами и Medicare.
  • Оптимизация логистики транспортных сетей.
  • Распознавание символов и голоса, также известное как обработка естественного языка.
  • Медицина и диагностика болезней.
  • Целевой маркетинг.
  • Финансовые прогнозы цен на акции, валюты, опционы, фьючерсы, рейтинги банкротства и облигаций.
  • Системы управления роботами.
  • Прогнозирование электрической нагрузки и спроса на энергию.
  • Процесс и контроль качества.
  • Идентификация химических соединений.
  • Оценка экосистем.
  • Компьютерное зрение для интерпретации необработанных фотографий и видео (например, в медицинской визуализации, робототехнике и распознавании лиц).

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

Иван Гомес
Специалист по данным и консультант
Зенкос

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

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

  • Сверточные нейронные сети (CNN) содержат пять типов слоев: входной, сверточный, объединяющий, полносвязный и выходной. У каждого слоя есть определенная цель, такая как подведение итогов, соединение или активация. Сверточные нейронные сети популяризировали классификацию изображений и обнаружение объектов. Однако CNN также применялись в других областях, таких как обработка естественного языка и прогнозирование.
  • Рекуррентные нейронные сети (RNN) используют последовательную информацию, такую ​​как данные с отметками времени от сенсорного устройства или устное предложение, состоящее из последовательности терминов. В отличие от традиционных нейронных сетей, все входные данные рекуррентной нейронной сети не являются независимыми друг от друга, а выходные данные для каждого элемента зависят от вычислений его предыдущих элементов. RNN используются в приложениях прогнозирования и временных рядов, анализе настроений и других текстовых приложениях.
  • Нейронные сети с прямой связью, в которых каждый персептрон одного слоя связан с каждым персептроном следующего слоя. Информация передается от одного уровня к другому только в прямом направлении. Петли обратной связи отсутствуют.
  • Нейронные сети Autoencoder используются для создания абстракций, называемых кодировщиками, созданных из заданного набора входных данных. Хотя автоэнкодеры похожи на более традиционные нейронные сети, они стремятся сами моделировать входные данные, и поэтому этот метод считается неконтролируемым. Предпосылка автоэнкодеров состоит в том, чтобы снизить чувствительность к нерелевантному и повысить чувствительность к важному. По мере добавления уровней дальнейшие абстракции формулируются на более высоких уровнях (уровнях, ближайших к точке, на которой вводится уровень декодера). Затем эти абстракции могут использоваться линейными или нелинейными классификаторами.

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

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

Нейронные сети для здоровья стада

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

Прочитать историю

Изучите моделирование нейронной сети

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

Запишитесь на курс

Как проводить глубокое обучение с помощью SAS

®

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

Скачать документ

Кто использует нейронные сети?

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

Науки о жизни

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

Больше решений для медико-биологических наук

Производство

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

Производственная аналитика

Банковское дело

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

Банковская аналитика

Государственный сектор

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

Решения для государственного сектора

Розничная торговля

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

Розничные решения

Узнайте больше об отраслях, использующих эту технологию

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

Ли Энн Херхольд
Специалист по данным и консультант
Зенкос

Построение модели нейронной сети

В этом видеоролике вы узнаете, как использовать SAS ® Visual Data Mining and Machine Learning в контексте нейронных сетей. В этом примере исследуются драйверы посетителей веб-сайта и то, что заставляет их загружать статью с сайта ИТ-компании.

Узнайте о SAS ® Viya ®

Как работают нейронные сети

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

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

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

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

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

Следующие шаги

Узнайте, какую роль нейронные сети играют в искусственном интеллекте.

SAS для решений ИИ

Рекомендованный продукт для нейронных сетей

SAS

® Визуальный анализ данных и машинное обучение

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

Попробуйте бесплатно

Рекомендуемая литература

Объяснение: Нейронные сети | MIT News

За последние 10 лет самые эффективные системы искусственного интеллекта, такие как распознаватели речи на смартфонах или новейший автоматический переводчик Google, стали результатом техники, называемой «глубокое обучение».

Глубокое обучение на самом деле является новым названием подхода к искусственному интеллекту, называемого нейронными сетями, который то входит в моду, то выходит из моды уже более 70 лет. Впервые нейронные сети были предложены в 1944 Уоррена Маккалоу и Уолтера Питтса, двух исследователей из Чикагского университета, переехавших в Массачусетский технологический институт в 1952 году в качестве основателей того, что иногда называют первым отделом когнитивных наук.

Нейронные сети были важной областью исследований как в нейронауке, так и в информатике до 1969 года, когда, согласно знаниям в области информатики, они были уничтожены математиками Массачусетского технологического института Марвином Мински и Сеймуром Пейпертом, которые год спустя станут содиректорами. новой Лаборатории искусственного интеллекта Массачусетского технологического института.

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

«Существует представление о том, что идеи в науке чем-то напоминают эпидемии вирусов», — говорит Томасо Поджио, профессор Юджина Макдермотта, профессор кафедры мозга и когнитивных наук в Массачусетском технологическом институте, исследователь Института исследований мозга Макговерна в Массачусетском технологическом институте и директор Центра Массачусетского технологического института. для мозгов, разума и машин. «Очевидно, существует пять или шесть основных штаммов вирусов гриппа, и, по-видимому, каждый из них возвращается с периодом около 25 лет. Люди заражаются, у них вырабатывается иммунный ответ, и поэтому они не заражаются следующие 25 лет. А потом появляется новое поколение, готовое к заражению тем же штаммом вируса. В науке люди влюбляются в идею, воодушевляются ею, забивают ее до смерти, а затем делают прививку — они устают от нее. Так что идеи должны иметь такую ​​же периодичность!»

Важные вопросы

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

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

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

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

Разум и машины

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

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

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

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

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

«Вы должны поместить эти вещи в исторический контекст», — говорит Поджо. «Они выступали за программирование — за такие языки, как Лисп. Не так много лет назад люди все еще использовали аналоговые компьютеры. В то время было совсем не ясно, что программирование — это правильный путь. Я думаю, что они немного переборщили, но, как обычно, это не черное и белое. Если вы думаете об этом как о соревновании между аналоговыми и цифровыми вычислениями, они боролись за то, что в то время было правильным».

Периодичность

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

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

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

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

Современные графические процессоры позволили одноуровневым сетям 1960-х годов и двух- или трехуровневым сетям 1980-х превратиться в современные 10-, 15- и даже 50-уровневые сети. Вот что означает «глубокое» в «глубоком обучении» — глубина слоев сети. И в настоящее время глубокое обучение отвечает за самые эффективные системы почти во всех областях исследований искусственного интеллекта.

Под капотом

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

Первая часть, которая была опубликована в прошлом месяце в International Journal of Automation and Computing , посвящена ряду вычислений, которые могут выполнять сети с глубоким обучением, а также преимуществам глубоких сетей перед более мелкими. Вторая и третья части, которые были выпущены в виде технических отчетов CBMM, посвящены проблемам глобальной оптимизации или гарантии того, что сеть нашла настройки, которые лучше всего соответствуют ее обучающим данным, и переобучения, или случаев, когда сеть становится такой настроенной. к особенностям своих обучающих данных, которые он не может обобщить на другие экземпляры тех же категорий.

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

Что такое нейронная сеть? Руководство по искусственному интеллекту и машинному обучению

Что такое нейронная сеть?

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

Почему важны нейронные сети?

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

Делать обобщения и выводы

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

  • Подскажите, как произвести оплату?
  • Как перевести деньги?

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

Для чего используются нейронные сети?

Нейронные сети имеют несколько вариантов использования во многих отраслях, например следующие:

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

Ниже мы приводим четыре важных приложения нейронных сетей.

Компьютерное зрение

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

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

Распознавание речи

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

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

Обработка естественного языка

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

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

Рекомендованные двигатели

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

Как работают нейронные сети?

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

Простая архитектура нейронной сети

Базовая нейронная сеть имеет взаимосвязанные искусственные нейроны в трех слоях:

Входной слой

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

Скрытый слой

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

Выходной слой

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

Архитектура глубокой нейронной сети

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

Какие бывают нейронные сети?

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

Нейронные сети с прямой связью

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

Алгоритм обратного распространения

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

  1. Каждый узел делает предположение о следующем узле на пути.
  2. Проверяет правильность предположения. Узлы присваивают более высокие значения веса путям, которые приводят к более правильным предположениям, и более низкие значения веса путям узлов, которые приводят к неправильным предположениям.
  3. Для следующей точки данных узлы делают новый прогноз, используя пути с более высоким весом, а затем повторяют шаг 1.

Сверточные нейронные сети

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

Как обучать нейронные сети?

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

Обучение с учителем

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

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

Что такое глубокое обучение в контексте нейронных сетей?

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

Машинное обучение против глубокого обучения

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

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

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

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

Что такое сервисы глубокого обучения в AWS?

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

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