Википедия нейронные сети: Недопустимое название — Викисловарь

Содержание

Основой будущей технологической революции станут нейронные сети — Российская газета

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

Добро пожаловать на хакатон по глубокому обучению! — объявляет со сцены Михаил Бурцев, человек в больших очках и толстовке с нарисованным на ней мозгом и призывом хакнуть его. «Яйцеголовая» публика отрывает глаза от ноутбуков, но тут же опять принимается стучать по клавишам.

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


Михаил Бурцев — специалист в области искусственного интеллекта, заведующий лабораторией нейронных сетей и систем глубокого обучения МФТИ. Организатор международных хакатонов по глубокому машинному обучению DeepHack.Game и Deep-Hack.Q&A. Кандидат физико-математических наук, директор по науке компании DeepHackLab.


Хакатоны в России проводятся всё чаще — с их помощью удаётся двигать вперёд самые последние технологии. Например, всё то же глубокое обучение.

Объяснить это словосочетание гораздо сложнее. Понятие относится к области нейронных сетей. Умные люди говорят, что за ним будущее — эра машинного разума и прочие фантастические штуки… Чтобы во всём этом разобраться, мы обратились к Михаилу Бурцеву, возглавляющему лабораторию МФТИ, в которой создают, обучают и исследуют нейронные сети.

Слоёный пирог, который сам себя готовит

[КОТ ШРЁДИНГЕРА] В последнее время мы часто слышим слово «нейросети». Объясните, пожалуйста, что это такое.

[МИХАИЛ БУРЦЕВ] С удовольствием! Нейронные сети — это такой класс алгоритмов, который пытается использовать наши знания об устройстве мозга, чтобы совершать эффективные вычисления. Мы знаем из биологии, что наша способность обучаться основана на уникальных свойствах мозга, состоящего из 80 миллиардов нейронов. Коллективная работа этих клеток сейчас позволяет вам понимать то, что я рассказываю. А нейросетевые алгоритмы пытаются построить модель этого процесса, пусть и неправдоподобную биологически, но вдохновлённую законами природы. В этих программах расчёты делает сеть, состоящая из отдельных элементов, которые обрабатывают и передают друг другу информацию. В процессе распространения по сети информация меняется — этот процесс мы называем обучением.

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

[КШ] Что такое глубинное обучение?

[МБ] Как вы сказали: «глубокое» или «глубинное»? Перевод термина Deep Learning ещё не устоялся. Архитектура нейросети может состоять из многих слоёв — обработка информации делится на множество этапов. Отсюда и «глубина». Если быть предельно точным, нужно говорить «глубокие нейронные сети». В этом смысле слово «глубинный» неправильное: оно означает «находящийся на глубине», а не «имеющий большую глубину», то есть не подходит по сути. В общем, мы не позволим говорить «глубинное обучение»! Мы будем с этим бороться!

[КШ] И чем же глубокие нейронные сети лучше неглубоких?

[МБ] «Глубокие»? Правильно, вы быстро учитесь! Глубокие сети позволяют строить многоэтапные алгоритмы обработки информации — это как слоёный пирог, который сам себя готовит. В стандартных методах машинного обучения очень многие этапы выполнялись исследователями вручную. Алгоритмы глубокого обучения позволили исключить человека из этого процесса. Не надо больше вручную задавать признаки, по которым машина будет распознавать объекты. Теперь сеть сама выбирает направление обучения.

Нейросеть слышит и видит

[КШ] Чего удалось достичь благодаря глубине обучения?

[МБ] Начали решать задачи, прежде казавшиеся фантастикой. Вы, наверное, слышали про How-old.net? Это такое приложение Microsoft, определяющее по фото возраст и пол человека. Кстати, те же ребята выпустили программу, способную распознавать эмоции.

[КШ] Говорят, эти сервисы пока работают весьма неточно. Но понятно, что у них всё впереди.

[МБ] Может показаться, что глубокие нейросети — это отдалённое будущее. Но очень возможно, что вы пользуетесь подобными приложениями на своём смартфоне уже год или два, не подозревая об этом. Я понял, что машинное обучение плотно входит в жизнь, когда таксист, встречавший меня в аэропорту, вместо того чтобы набрать адрес на клавиатуре, произнёс его. То есть качество распознавания речи стало таким, что позволяет работать корректно даже в случае среднестатистического человека и плохих условий записи.

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

Или другой продукт, который использует глубокие нейронные сети, — фотоальбом от той же команды из Google. Вы вбиваете в поиске «дом» или «собака», и система находит все фотографии, на которых присутствуют эти объекты. Круто, правда?

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

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

Глубокое общение

[КШ] Что умеют глубокие нейронные сети кроме распознавания изображений?

[МБ] Вы слышали про автоматический генератор ответов на письма в приложении Google Inbox? Там появилась функция Smart Reply: на любое пришедшее вам англоязычное письмо выдаётся по три варианта ответа, составленных на основе вашей предыдущей переписки. Вы можете выбрать один из них, подредактировать немного и отправить.

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

[КШ] А как насчёт русского языка?

[МБ] Мы с коллегами из DeepHackLab взяли уже готовый алгоритм, построенный на рекуррентных нейронных сетях, и обучили его на русских субтитрах отвечать на вопрос в произвольной форме. Рекуррентные нейронные сети — способ обработки информации, при котором учитываются данные из предыдущих этапов жизни программы. Это возможно благодаря наличию связей между элементами слоя в предыдущий момент времени.

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

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

[КШ] А можно пообщаться с вашей программой?

[МБ] Да, разумеется. Надеюсь, вы будете с ней любезны.

[КШ] Сегодня чудесный вечер, не правда ли?

[НЕЙРОННАЯ СЕТЬ] Неужели ты думаешь, что я буду об этом помнить?

[КШ] Она всегда не в настроении?

[МБ] Мы уже задавали ей подобный вопрос. Ответ осмыслен: сеть не разделяет ваше мнение о том, что этот вечер ей стоит запомнить.

В ожидании помощника

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

[КШ] Доверить программе конфиденциальную информацию?

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

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

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

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

[КШ] Михаил, о чём вы мечтаете в двадцатилетней перспективе? Что бы хотели видеть в своём гаджете и доме через несколько десятков лет?

[МБ] Две вещи. Во-первых, я хотел бы иметь интеллектуального помощника, чтобы не тратить время и когнитивные возможности на согласование поездок, встреч, покупок. Чем старше становишься, тем чаще замечаешь, что свободного времени всё меньше, а тратишь ты его на всякую ерунду: ожидание, выбор чего-то, что может оказаться совершенно ненужным. Было бы здорово иметь ассистента, который работал бы без перерывов на еду и сон.

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

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

Подготовил Федор Киташов

Википедия о нейронных сетях — 13 Ноября 2008

Википедия о нейронных сетях

Категория: Нейросети

Искусственная нейронная сеть

Иску́сcтвенные нейро́нные се́ти (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге при мышлении, и при попытке смоделировать эти процессы. Первой такой моделью мозга был перцептрон. Впоследствии эти модели стали использовать в практических целях, как правило в задачах прогнозирования. С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации. С точки зрения кибернетики, нейронная сеть используется в задачах адаптивного управления и как алгоритмы (software) для робототехники. С точки зрения развития вычислительной техники и программирования, нейронная сеть — способ решения проблемы эффективного параллелизма. А с точки зрения искусственного интеллекта, ИНС является основой философского течения коннективизма и основным направлением в структурном подходе по изучению возможности построения (моделирования) естественного интеллекта с помощью компьютерных алгоритмов…

Перцептрон

Перцептро́н (неверно: персептрон[1], англ. perсeptron от лат. perсeptio — восприятие) — математическая и компьютерная модель восприятия информации мозгом (кибернетическая модель мозга), предложенная Фрэнком Розенблаттом в 1957 году и реализованная в виде электронной машины «Марк-1»[2] в 1960 году. Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» — первым в мире нейрокомпьютером. Несмотря на свою простоту, перцептрон способен обучаться и решать довольно сложные задачи…

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

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

(с) ru.wikipedia.org

Урок Цифры — всероссийский образовательный проект в сфере цифровой экономики

Вы: *

Ученик

Учитель

Родитель

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

E-mail *

Пароль *

Повторите пароль *

Я не из России

Страны: *Выбрать

Регион: *ВыбратьАдыгеяАлтайАлтайский крайАмурская областьАрхангельская областьАстраханская областьБашкортостанБелгородская областьБрянская областьБурятияВладимирская областьВолгоградская областьВологодская областьВоронежская областьДагестанЕврейская АОЗабайкальский крайИвановская областьИнгушетияИркутская областьКабардино-БалкарияКалининградская областьКалмыкияКалужская областьКамчатский крайКарачаево-ЧеркессияКарелияКемеровская областьКировская областьКомиКостромская областьКраснодарский крайКрасноярский крайКрымКурганская областьКурская областьЛенинградская областьЛипецкая областьМагаданская областьМордовияМоскваМосковская областьМурманская областьНенецкий АОНижегородская областьНовгородская областьНовосибирская областьОмская областьОренбургская областьОрловская областьПензенская областьПермский крайПриморский крайПсковская областьРеспублика Марий ЭлРостовская областьРязанская областьСамарская областьСанкт-ПетербургСаратовская областьСаха (Якутия)Сахалинская областьСвердловская областьСевастопольСеверная Осетия — АланияСмоленская областьСтавропольский крайТамбовская областьТатарстанТверская областьТомская областьТульская областьТываТюменская областьУдмуртияУльяновская областьХабаровский крайХакасияХанты-Мансийский АО — ЮграЧелябинская областьЧеченская республикаЧувашская республикаЧукотский АОЯмало-Ненецкий АОЯрославская область

Город (если не нашли свой, выберите центр вашего региона): *Выбрать

Класс: *Выбрать1-й2-й3-й4-й5-й6-й7-й8-й9-й10-й11-й

Обычно я прохожу тренажер один

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

Авторизация в VK Connect

Авторизируйтесь, чтобы использовать VK Connect для дальнейших входов в личный кабинет

нейронных сетей — SEG Wiki

Аннотация

Мы все слышали, как гиперболист-прозелитик произносит речь об искусственном интеллекте-собирается-украсть-мою-работу. Если вы подписались, посмотрите код в записной книжке к этому руководству по адресу https://github.com/seg/tutorials-2018. Демонстрирует небольшую нейронную сеть. Вы найдете простую систему, состоящую в основном из операций умножения и сложения. Это действительно все, что происходит внутри нейронной сети. Умножьте и сложите. Здесь нет никакой магии.{-z}}}}

и его производные: ∂σ (z) ∂z знак равно z (1 − z) {\ displaystyle {\ frac {\ partial \ sigma {(z)}} {\ partial z}} = z (1-z)}

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

Сигмоидная функция в Python выглядит так:

 def sigma (z, forward = True):
    если вперед:
        return 1 / (1 + np.ехр (-z))
    еще:
        вернуть z * (1 - z)
 

Функция преобразует числа в диапазон [0, 1]. График зависимости σ (z) {\ displaystyle \ sigma (z)} от z {\ displaystyle z} выглядит так:

Определите сеть

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

Реализуем сеть с одним скрытым слоем.{(i)}}, и -я оценка желаемого результата. Мы не собираемся применять нелинейность к выходу, но люди часто это делают. Веса инициализируются случайным образом, а смещения начинаются с нуля. Во время обучения они будут итеративно обновляться, чтобы сеть могла сходиться к оптимальному приближению к ожидаемому результату.

Мы начнем с определения прямого прохода, используя оператор @ в NumPy для умножения матриц:

 def вперед (xi, W1, b1, W2, b2):
    z1 = W1 @ xi + b1
    а1 = сигма (z1)
    z2 = W2 @ a1 + b2
    вернуть z2, a1
 

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

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

Мы можем «научить» эту простую систему моделировать отображение между одним набором чисел и другим набором. Например, мы можем обучить эту систему выводить двойку, когда мы вводим единицу, четверку, когда мы вводим двойку, и 2N , когда мы вводим N .{2}}. Что еще более интересно, мы могли бы научить его объединять несколько входов в один выход.

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

Вместо трех входов мы будем использовать семь: VP, VS, {\ displaystyle V_ {P}, V_ {S},} и ρ {\ displaystyle \ rho} для свойств верхнего и нижнего уровней в каждом интерфейсе, плюс угол падения θ {\ displaystyle \ theta} на каждом интерфейсе.И вместо пяти единиц в скрытом слое мы будем использовать 300.

Как сеть обучается? Краткая версия состоит в том, что мы показываем системе набор соответствующих пар ввода / вывода, которые мы хотим, чтобы она изучила, и показываем ей эти пары много раз. Каждый раз, когда мы это делаем, мы перемещаем W {\ displaystyle W’s} и b {\ displaystyle b’s} в любом направлении, чтобы сделать выходные данные сети более похожими на известные выходные данные, которым мы пытаемся ее научить.

Эта итеративная корректировка весов и смещений основана на процессе, называемом обратным распространением ошибок .

Обратное распространение — критически важный элемент мышления, который сделал возможным революцию глубокого обучения. По этой причине Google может находить изображения цветов или переводить с хинди на английский. По этой причине мы можем прогнозировать отказ бурового оборудования за несколько дней до отказа (подробнее об этом см. Мое видео на http://bit.ly/2Ks5tQf).

Вот алгоритм обратного распространения, который мы будем использовать:

Для каждого обучающего примера:

Для каждого слоя:

  • Рассчитайте ошибку.
  • Рассчитать градиент веса.
  • Обновить веса.
  • Рассчитайте градиент смещения.
  • Обновление предвзятости.

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

Давайте реализуем внутренний цикл как функцию Python:

 def назад (xi, yi,
             а1, z2,
             параметры,
             learning_rate):
   
    err_output = z2 - yi
    grad_W2 = err_output * a1
    params ['W2'] - = скорость_обучения * grad_W2
  
    grad_b2 = err_output
    параметры ['b2'] - = скорость_обучения * grad_b2
 
    производная = сигма (a1, вперед = ложь)
    err_hidden = err_output * производная * параметры ['W2']
    grad_W1 = err_hidden [:, None] @ xi [None,:]
    params ['W1'] - = скорость_обучения * grad_W1

    grad_b1 = err_hidden
    параметры ['b1'] - = скорость_обучения * grad_b1

    вернуть параметры
 

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

Данные обучения

Мы могли бы придумать некоторые данные, но гораздо интереснее использовать настоящие журналы. Мы будем использовать скважину R-39 на шельфе Новой Шотландии.

Вот журналы и серии по отражательной способности, на которых мы тренируемся:

После обработки данных и зарезервирования 20% их для проверочного тестирования у нас есть матрица признаков X с формой 400 × 7 и целевой вектор y с 400 элементами. В матрице признаков есть одна строка для каждой выборки данных и один столбец для каждой функции.Семь функций: VP, VS, {\ displaystyle V_ {P}, V_ {S},} и ρ {\ displaystyle \ rho} для верхнего и нижнего слоя в каждой выборке, а также угол падения. Цели в y — это коэффициенты отражения, рассчитанные для каждого набора функций.

Обучить сеть

Теперь мы можем инициализировать веса и смещения для нашей сети. Обычный подход — инициализировать веса небольшими случайными числами (с функцией NumPy randn () ) и смещениями нулями:

 def initialize_params (единицы, особенности):
    нп.random.seed (42)
    params = {
        "W1": 0,1 * randn (единицы, характеристики),
        "b1": np.zeros (shape = единицы),
        
        «W2»: 0,1 * randn (единицы),
        "b2": np.zeros (shape = 1)
   }
   вернуть параметры

единиц = 300
features = X_train.shape [-1]

params = initialize_params (единицы, функции)
 

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

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

 число_эпохов = 100
Learning_rate = 0,001
loss_history = []

данные = список (zip (X_train, y_train))

для i в tnrange (num_epochs):

    нп.random.shuffle (данные)
    потеря = 0

    для xi, yi в данных:
        z2, a1 = вперед (xi, ** параметры)
        
        params = назад (xi, yi,
                          а1, z2,
                          параметры,
                          Learning_rate)

        потеря + = np.square (z2 - yi)
    
    loss_history.append (убыток / y_train.size)
 

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

Потери резко уменьшились в течение 100 эпох, так что, по-видимому, сеть чему-то научилась. Чтобы проверить эту теорию, давайте нарисуем первые 100 выходов сети до (зеленый) и после (оранжевый) обучения и сравним их с ожидаемым результатом (синий):

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

Слепой тест: Новые камни

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

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

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

Слепой тест: новые углы

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

Сеть, возможно, не так обобщена, как мы надеялись.По крайней мере, он находится в правильном диапазоне в пределах того диапазона углов, на котором он тренировался. Но за пределами этого диапазона он не работает так хорошо. Вероятно, нам нужно сделать больше данных для обучения — это оставлено читателю в качестве упражнения. Вы можете найти весь код для самостоятельного запуска этой сети по адресу https://github.com/seg/tutorials-2018.

Сводка

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

Автор, ответственный за переписку

  • Автор, ответственный за переписку: Грэм Гэнссл, Expero Inc., Остин, Техас, США. E-mail: grm-gan.sl

Благодарности

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

Внешние ссылки

Нейронная сеть — GIS Wiki

Упрощенный вид искусственной нейронной сети с прямой связью

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

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

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

Обзор

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

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

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

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

История нейросетевых аналогий

Основная статья: Коннекционизм

Концепция нейронных сетей возникла в конце 1800-х годов как попытка описать, как работает человеческий разум. Эти идеи начали применяться к вычислительным моделям с машинами Тьюринга типа B и перцептроном.

В начале 1950-х Фридрих Хайек был одним из первых, кто высказал идею о спонтанном порядке [ цитата: ] в мозге, возникающем из децентрализованных сетей простых единиц (нейронов). В конце 1940-х годов Дональд Хебб выдвинул одну из первых гипотез механизма нейронной пластичности (т. Е. Обучения) — обучения Хебба. Хеббийское обучение считается «типичным» правилом обучения без учителя, и оно (и его варианты) было ранней моделью для долгосрочного потенцирования.

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

Cognitron (1975) был ранней многоуровневой нейронной сетью с алгоритмом обучения. Фактическая структура сети и методы, используемые для установки весов межсоединений, меняются от одной нейронной стратегии к другой, каждая со своими преимуществами и недостатками. Сети могут распространять информацию только в одном направлении, или они могут перемещаться взад и вперед, пока не произойдет самоактивация в узле и сеть не перейдет в конечное состояние. Возможность двунаправленного потока входных данных между нейронами / узлами была создана с помощью сети Хопфилда (1982), а специализация этих узловых слоев для конкретных целей была введена через первую гибридную сеть.

Параллельная распределенная обработка в середине 1980-х стала популярной под названием коннекционизм.

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

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

Мозг, нейронные сети и компьютеры

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

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

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

Нейронные сети и искусственный интеллект

Основная статья: Искусственная нейронная сеть

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

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

Фон

Искусственная нейронная сеть включает в себя сеть простых обрабатывающих элементов (искусственных нейронов), которые могут демонстрировать сложное глобальное поведение, определяемое связями между обрабатывающими элементами и параметрами элементов.Искусственные нейроны были впервые предложены в 1943 году нейрофизиологом Уорреном Маккалоком и логиком Массачусетского технологического института Уолтером Питтсом [1]. Одним из классических типов искусственных нейронных сетей является сеть Хопфилда.

В модели нейронной сети простые узлы, которые можно по-разному называть «нейронами», «нейродами», «обрабатывающими элементами» (PE) или «единицами», соединяются вместе, образуя сеть узлов — отсюда и термин «нейронная сеть». сеть». Хотя нейронная сеть не обязательно должна быть адаптивной как таковая , ее практическое использование связано с алгоритмами, предназначенными для изменения силы (веса) соединений в сети для создания желаемого потока сигналов.

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

Концепция нейронной сети, по-видимому, впервые была предложена Аланом Тьюрингом в его статье 1948 года «Интеллектуальные машины».

Приложения

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

Реальные приложения

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

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

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

Использование в стратегии обучения

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

Программное обеспечение нейронной сети

Основная статья: Программное обеспечение нейронной сети

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

Парадигмы обучения

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

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

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

Неконтролируемое обучение

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

Обучение с подкреплением

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

Алгоритмы обучения

Существует множество алгоритмов обучения нейронных сетей; большинство из них можно рассматривать как прямое приложение теории оптимизации и статистической оценки.К ним относятся: обратное распространение градиентным спуском, Rprop, BFGS, CG и т. Д.

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

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

Нейронные сети и нейробиология

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

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

Типы моделей

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

Текущие исследования

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

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

Критика

Общая критика нейронных сетей, особенно в робототехнике, заключается в том, что они требуют большого разнообразия обучения для реальной работы. Дин Померло в своем исследовании, представленном в статье «Обучение искусственных нейронных сетей для автономного вождения роботов на основе знаний», использует нейронную сеть для обучения роботизированного транспортного средства движению по разным типам дорог (однополосная, многополосная, грязная). , и т.д.). Большая часть его исследований посвящена (1) экстраполяции нескольких сценариев обучения из одного опыта обучения и (2) сохранению разнообразия прошлых тренировок, чтобы система не перетренировалась (если, например, она представлена ​​серией правых поворотов — он не должен учиться всегда поворачивать направо). Эти проблемы распространены в нейронных сетях, и их нужно решать на основе самых разных ответов.

А.К. Дьюдни, бывший обозреватель Scientific American , писал в 1997 году: «Хотя нейронные сети действительно решают несколько игрушечных задач, их вычислительные возможности настолько ограничены, что я удивлен, что кто-то серьезно относится к ним как к общему инструменту решения проблем. .»(Дьюдни, стр. 82)

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

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

Специалист по технологиям Роджер Бриджмен прокомментировал высказывания Дьюдни о нейронных сетях:

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

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

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

См. Также

  • ADALINE
  • Искусственная нейронная сеть
  • Биологическая кибернетика
  • Биологически вдохновленные вычисления
  • Контроллер артикуляции модели мозжечка
  • Когнитивная архитектура
  • Когнитивные науки
  • Культивируемые нейронные сети
  • Мемристор
  • Программное обеспечение нейронной сети

Список литературы

  1. ↑ Арбиб, с.666
  2. ↑ Монтерола, К., Роксас, Р.М., и Карреон-Монтерола, С. (2008). Характеристика влияния расстановки сидений на обучение в классе с использованием нейронных сетей. Сложность, 14 (4), 26-33. ISSN 1076-2782.
  3. ↑ Защита нейронных сетей Роджера Бриджмена

Дополнительная литература

  • Арбиб, Майкл А. (Ред.) (1995). Справочник по теории мозга и нейронным сетям .
  • Alspector, Патент США 4874963 « Neuromorphic Learning Network «.17 октября 1989 г.
  • Agre, Филип Э. (1997). Вычисления и человеческий опыт . Издательство Кембриджского университета. ISBN 0-521-38603-9. , п. 80
  • Янир Бар-Ям (2003). Динамика сложных систем, Глава 2 .
  • Янир Бар-Ям (2003). Динамика сложных систем, Глава 3 .
  • Янир Бар-Ям (2005). Как заставить все работать . См. Главу 3.
  • Бертсекас, Дмитрий П. (1999). Нелинейное программирование .
  • Бертсекас, Дмитрий П. и Цициклис, Джон Н. (1996). Нейродинамическое программирование .
  • Бхадешия Х. К. Д. Х. (1992). «Нейронные сети в материаловедении». ISIJ International 39 : 966–979. DOI: 10.2355 / isijinternational.39.966.
  • Бойд, Стивен и Ванденберге, Ливен (2004). Выпуклая оптимизация .
  • Дьюдни, А. К. (1997). Да, у нас нет нейтронов: открывающий глаза тур по перипетиям плохой науки .Wiley, 192 стр. См. Главу 5.
  • Эгмонт-Петерсен, М., де Риддер, Д., Хандельс, Х. (2002). «Обработка изображений с помощью нейронных сетей — обзор». Распознавание образов 35 (10): 2279–2301. DOI: 10.1016 / S0031-3203 (01) 00178-9.
  • Фукусима, К. (1975). «Когнитрон: самоорганизующаяся многоуровневая нейронная сеть». Биологическая кибернетика 20 : 121–136. DOI: 10.1007 / BF00342633.
  • Фрэнк, Майкл Дж. (2005). «Динамическая модуляция дофамина в базальных ганглиях: нейрокомпьютерный учет когнитивных нарушений при паркинсонизме с лекарственными и немедикаментозными средствами». Журнал когнитивной неврологии 17 : 51–72. DOI: 10.1162 / 089892
  • 80093.
  • Гарднер, Э.Дж., и Деррида, Б. (1988). «Оптимальные запоминающие свойства моделей нейронных сетей». Физический журнал 21 : 271–284. DOI: 10.1088 / 0305-4470 / 21/1/031.
  • Krauth, W. & Mezard, M. (1989). «Объем памяти с двоичными связями». Journal de Physique 50 : 3057–3066. DOI: 10,1051 / jphys: 0198

    0200305700.

  • Маасс, В., и Маркрам, Х. (2002). «О вычислительной мощности рекуррентных цепей импульсных нейронов». Журнал компьютерных и системных наук 69 (4) : 593–616.
  • Маккей, Дэвид (2003). Теория информации, логические выводы и алгоритмы обучения .
  • Мандич, Д. и Чемберс, Дж. (2001). Рекуррентные нейронные сети для прогнозирования: архитектуры, алгоритмы обучения и стабильность . Вайли.
  • Минского, М.И Паперт, С. (1969). Введение в вычислительную геометрию . MIT Press.
  • Мюллер, П. и Инсуа, Д. (1995). «Проблемы байесовского анализа моделей нейронных сетей». Нейронные вычисления 10 : 571–592.
  • Рейли, Д.Л., Купер, Л. И Эльбаум, К. (1982). «Нейронная модель для категорийного обучения». Биологическая кибернетика 45 : 35–41. DOI: 10.1007 / BF00387211.
  • Розенблатт, Ф. (1962). Принципы нейродинамики .Спартанские книги.
  • Сан, Р. и Букман, Л. (ред.) (1994). Вычислительные архитектуры, интегрирующие нейронные и символьные процессы. . Kluwer Academic Publishers, Needham, MA ..
  • Саттон, Ричард С. и Барто, Эндрю Г. (1998). Обучение с подкреплением: введение .
  • Van den Bergh, F. Engelbrecht, AP. Совместное обучение в нейронных сетях с использованием оптимизаторов роя частиц . CIRG 2000.
  • Wilkes, A.L. & Wade, N.Дж. (1997). «Бэйн в нейронных сетях». Мозг и познание 33 : 295–305. DOI: 10.1006 / brcg.1997.0869.
  • Вассерман, П.Д. (1989). Теория и практика нейронных вычислений . Ван Ностранд Рейнхольд.
  • Джеффри Т. Спунер, Манфреди Маджоре, Рауль Ордонес и Кевин М. Пассино, Стабильное адаптивное управление и оценка для нелинейных систем: методы нейронного и нечеткого приближения, John Wiley and Sons, NY, 2002.
  • http: //www.cs.stir.ac.uk/courses/31YF/Notes/Notes_PL.html
  • http://www.shef.ac.uk/psychology/gurney/notes/l1/section3_3.html
  • Питер Даян, Л.Ф. Эбботт. Теоретическая неврология . MIT Press.
  • Вульфрам Герстнер, Вернер Кистлер. Пиковые модели нейронов: одиночные нейроны, популяции, пластичность . Издательство Кембриджского университета.
  • Steeb, WH (2008). The Nonlinear Workbook: Chaos, Fractals, Neural Networks, Genetic Algorithms, Gene Expression Programming, Support Vector Machine, Wavelets, Hidden Markov Models, Fuzzy Logic with C ++, Java and SymbolicC ++ Programs: 4th edition .Мировое научное издательство. ISBN 981-281-852-9.

Внешние ссылки

Сверточная нейронная сеть

| Brilliant Math & Science Wiki

Сверточные нейронные сети (сверточные сети, CNN) — это мощный тип нейронной сети, который используется в основном для классификации изображений. Сети CNN изначально были разработаны Джеффри Хинтоном, одним из пионеров машинного обучения. Их неизменность местоположения делает их идеальными для обнаружения объектов в различных положениях на изображениях.Google, Facebook, Snapchat и другие компании, работающие с изображениями, используют сверточные нейронные сети.

Convnet состоят в основном из трех разных типов слоев: свертки, объединяющие слои и один полностью связанный слой. В сверточных слоях матрица, известная как ядро, передается по входной матрице для создания карты признаков для следующего слоя. Размеры ядра также можно настроить для создания другой карты функций или для расширения данных по одному измерению при уменьшении его размера по другим осям.Иногда значения на карте характеристик вычисляются путем суммирования результата поэлементного умножения ядра и участка входной матрицы подходящего размера. Часто вместо поэлементного умножения используется скалярное произведение, но его можно изменить для получения лучших (или худших) результатов. Другой метод улучшения CNN — использование нескольких ядер в заданном сверточном слое и объединение результатов для создания карты признаков. Тот факт, что одно ядро ​​используется для всего изображения, делает сверточные нейронные сети очень инвариантными к местоположению и предотвращает их переобучение.Вот пример свертки:

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

Затем слой объединения применяется к карте признаков, созданной сверткой. Максимальное объединение, наиболее распространенный тип объединения, просто означает получение максимального значения из заданного массива чисел. В этом случае мы разбиваем карту функций на группу из n × nn \ умноженных на nn × n блоков и выбираем только максимальное значение из каждого поля. Вот как это выглядит:

Последний слой сверточной нейронной сети называется полносвязным слоем.Это стандартный слой нейронной сети, в котором некоторая нелинейность (ReLu, tanh, сигмоид и т. Д.) Применяется к скалярному произведению входных данных и матрицы весов. Затем функция softmax может преобразовать вывод в список вероятностей для классификации.

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

Сверточные нейронные сети чаще всего используются для классификации изображений.Их неизменность местоположения делает их идеальными для обнаружения объектов в различных положениях на изображениях. Google, Facebook, Snapchat и другие компании, работающие с изображениями, используют сверточные нейронные сети. Еще одно менее распространенное использование CNN — это классификация текста. Список вложений Word2Vec или Glove может использоваться в качестве входных данных для CNN, которую можно обучить распознавать настроения или какую-либо другую классификацию.

Сверточная нейронная сеть (CNN) имеет большие приложения для распознавания изображений и видео. Чтобы распознать автомобиль по модели глубокого обучения, обратитесь к разделу «Понимание CNN» с примером для распознавания автомобиля

Искусственная нейронная сеть — Википедия — TRC4901 — Вычисления

Искусственные нейронные сети (ИНС) или коннекционист

Системы

— это вычислительные системы, смутно вдохновленные биологическими нейронными сетями

, которые составляют мозг животных [1].

Такие системы «изучают» (т.е. постепенно повышают производительность

) задачи, рассматривая примеры, как правило, без задач —

специального программирования. Например, при распознавании изображений

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

анализа примеров изображений, которые были вручную помечены как

«кошка» или «без кошек», и использования результатов для идентификации кошек в других

изображений. Они делают это без каких-либо априорных знаний о

кошках, т.е.g., что у них мех, хвосты, усы и кошачьи мордашки.

Вместо этого они развивают свой собственный набор соответствующих характеристик

из учебного материала, который они обрабатывают.

ИНС основана на наборе соединенных единиц или узлов

, называемых искусственными нейронами (упрощенная версия биологических нейронов

в головном мозге животного). Каждое соединение (упрощенная версия синапса

) между искусственными нейронами может передавать

сигнала от одного к другому.Искусственный нейрон, который получает сигнал

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

нейронам, подключенным к нему.

В обычных реализациях ИНС сигнал в соединении

между искусственными нейронами является действительным числом, а выход

каждого искусственного нейрона вычисляется нелинейной функцией

суммы его входов. Искусственные нейроны и соединения

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

в соединении. Искусственные нейроны могут иметь такой порог, что только если совокупный сигнал пересекает этот порог, будет отправлен сигнал

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

на своих входах. Сигналы проходят от первого (входного) к последнему (выходному) слою, возможно, после многократного прохождения

слоев.

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

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

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

и видеоигры, а также медицинскую диагностику.

История

Хеббианское обучение

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

Аппаратные конструкции

Соревнования

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

Искусственная нейронная сеть представляет собой взаимосвязанную группу узлов из

, сродни обширной сети из

9000 нейронов мозга .Здесь каждый круговой узел

представляет собой искусственный нейрон, а стрелка

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

и входом другого.

Википедия использует искусственный интеллект для расширения своих рядов редакторов-людей

Аарон Халфакер только что построил механизм искусственного интеллекта, предназначенный для автоматического анализа изменений в Википедии.

Википедия — это онлайн-энциклопедия, которую может редактировать каждый. Создав энциклопедию краудсорсингом, некоммерческий веб-сайт навсегда изменил способ получения информации.Он входит в десятку самых посещаемых сайтов в Интернете, и он выбросил такие книги, как World Book и Encyclopedia Britannica, на свалку истории. Но не без недостатков. Если кто-то может редактировать Википедию, любой может ошибочно добавить фальшивую информацию. И любой может совершить вандализм на сайте, намеренно добавив фальшивую информацию. Халфакер, старший научный сотрудник Фонда Викимедиа, организации, которая курирует Википедию, построил свой механизм искусственного интеллекта как способ выявления такого вандализма.

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

«Этот проект — одна из попыток вернуть человеческий фактор, — говорит Дарио Тараборелли, руководитель отдела исследований Викимедиа, — чтобы сосредоточить человеческое внимание там, где оно наиболее необходимо.«

Не пугайте новичков

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

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

В своем новом проекте ИИ, получившем название Objective Revision Evaluation Service, или ORES, Халфакер стремится увеличить участие, сделав Википедию более удобной для новичков. Используя набор алгоритмов машинного обучения с открытым исходным кодом, известный как SciKit Learn (код, свободно доступный для всего мира), сервис стремится автоматически идентифицировать явный вандализм и отделить его от изменений, сделанных с благими намерениями.Считается, что с более детальным представлением новых правок эти алгоритмы могут продолжать расправляться с вандалами, не отгоняя законных участников. Дело не в том, что Википедии нужно отказаться от автоматизированных инструментов, чтобы привлечь больше редакторов-людей. Дело в том, что Википедии нужны более совершенные автоматизированные инструменты.

«Нам не нужно отмечать добросовестные правки так же, как мы отмечаем недобросовестные правки, наносящие ущерб», — говорит Халфакер, который использовал Википедию в качестве основы для своей докторской работы на факультете информатики Университета Миннесоты.

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

7 типов искусственных нейронных сетей для обработки естественного языка | by Data Monsters

Ольга Давыдова

Что такое искусственная нейронная сеть? Как это работает? Какие типы искусственных нейронных сетей существуют? Как разные типы искусственных нейронных сетей используются при обработке естественного языка? Все эти вопросы мы обсудим в следующей статье.

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

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

Искусственная нейронная сеть https: // en.wikipedia.org/wiki/Artificial_neural_network#/media/File:Colored_neural_network.svg

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

Искусственный нейрон с четырьмя входами http: // en.citizendium.org/wiki/File:Artificialneuron.png

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

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

f (x) = ax

Шаговая функция

Логистическая (сигмоидная) функция

Tanh Function

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

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

Персептрон https: // upload.wikimedia.org/wikipedia/ru/d/de/Neuro.PNG

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

Типичная архитектура CNN https: // en.wikipedia.org/wiki/Convolutional_neural_network#/media/File:Typical_cnn.png

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

Сверточные нейронные сети показывают выдающиеся результаты в приложениях для обработки изображений и речи.Юн Ким в книге «Сверточные нейронные сети для классификации предложений» описывает процесс и результаты задач классификации текста с использованием CNN [1]. Он представляет модель, построенную на основе word2vec, проводит с ней серию экспериментов и проверяет ее на нескольких тестах, демонстрируя, что модель работает отлично.

In Text Understanding from Scratch, Xiang Zhang и Yann LeCun, демонстрируют, что CNN могут достичь выдающейся производительности без знания слов, фраз, предложений и любых других синтаксических или семантических структур в отношении человеческого языка [2].Семантический анализ [3], обнаружение перефразирования [4], распознавание речи [5] также являются приложениями CNN.

Простая рекурсивная архитектура нейронной сети https://upload.wikimedia.org/wikipedia/commons/6/60/Simple_recursive_neural_network.svg

Рекурсивная нейронная сеть (RNN) — это тип глубокой нейронной сети, сформированной путем применения один и тот же набор весов рекурсивно по структуре, чтобы сделать структурированное предсказание по входным структурам переменного размера или скалярное предсказание по ней, пройдя заданную структуру в топологическом порядке [6].В простейшей архитектуре нелинейность, такая как tanh, и матрица весов, которая является общей для всей сети, используются для объединения узлов в родительские.

Рекуррентная нейронная сеть (RNN), в отличие от нейронной сети прямого распространения, является вариантом рекурсивной искусственной нейронной сети, в которой связи между нейронами образуют направленный цикл. Это означает, что выход зависит не только от текущих входов, но и от состояния нейрона на предыдущем шаге. Эта память позволяет пользователям решать проблемы НЛП, такие как распознавание рукописного ввода или речи.В статье «Генерация естественного языка, перефразирование и обобщение отзывов пользователей с помощью рекуррентных нейронных сетей» авторы демонстрируют модель рекуррентной нейронной сети (RNN), которая может генерировать новые предложения и резюме документов [7].

Сивэй Лай, Лихенг Сю, Кан Лю и Цзюнь Чжао создали рекуррентную сверточную нейронную сеть для классификации текста без функций, созданных человеком, и описали ее в книге «Рекуррентные сверточные нейронные сети для классификации текста». Их модель сравнивалась с существующими методами классификации текста, такими как Bag of Words, Bigrams + LR, SVM, LDA, Tree Kernels, Recursive neural network и CNN.Было показано, что их модель превосходит традиционные методы для всех используемых наборов данных [8].

Блок LSTM-глазка с воротами входа, выхода и забвения. https://upload.wikimedia.org/wikipedia/commons/5/53/Peephole_Long_Short-Term_Memory.svg

Long Short-Term Memory (LSTM) — это особая архитектура рекуррентной нейронной сети (RNN), которая была разработана для моделирования временных последовательности и их дальнодействующие зависимости точнее, чем обычные RNN [9]. LSTM не использует функцию активации в своих повторяющихся компонентах, сохраненные значения не изменяются, и градиент не имеет тенденции к исчезновению во время обучения.Обычно блоки LSTM реализуются «блоками» по несколько блоков. Эти блоки имеют три или четыре «шлюза» (например, входной вентиль, вентиль забывания, вентиль выхода), которые управляют информационным потоком, опираясь на логистическую функцию.

В архитектуре рекуррентных нейронных сетей с кратковременной памятью для крупномасштабного акустического моделирования Хасим Сак, Эндрю Старший и Франсуаза Бофайс показали, что глубокие архитектуры LSTM RNN обеспечивают высочайшую производительность для крупномасштабного акустического моделирования.

В работе Peilu Wang, Yao Qian, Frank K. Soong, Lei He и Hai Zhao, модель для части речи ( POS) была представлена ​​маркировка [10]. Модель достигла точности маркировки 97,40%. Apple, Amazon, Google, Microsoft и другие компании включили LSTM в качестве фундаментального элемента в свои продукты.

Обычно модель последовательность-последовательность состоит из двух рекуррентных нейронных сетей: кодировщика, который обрабатывает ввод, и декодера, который производит вывод.Кодировщик и декодер могут использовать одинаковые или разные наборы параметров.

Модели от последовательности к последовательности в основном используются в системах ответов на вопросы, чат-ботах и ​​машинном переводе. Такие многослойные ячейки успешно использовались в моделях последовательность-последовательность для перевода в исследовании «Последовательность-последовательность-обучение с помощью нейронных сетей» [11].

В разделе «Обнаружение парафраз с использованием рекурсивного автоэнкодера» представлена ​​новая архитектура рекурсивного автоэнкодера. Представления — это векторы в n-мерном семантическом пространстве, где фразы с одинаковым значением близки друг к другу [12].

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

В этой статье мы описали различные варианты искусственных нейронных сетей, такие как глубокий многослойный персептрон (MLP), сверточная нейронная сеть (CNN), рекурсивная нейронная сеть (RNN), рекуррентная нейронная сеть (RNN), долговременная краткосрочная память. (LSTM), модель последовательность-последовательность и мелкие нейронные сети, включая word2vec для встраивания слов. Мы показали, как работают эти сети и как их разные типы используются в задачах обработки естественного языка. Мы продемонстрировали, что сверточные нейронные сети в основном используются для задач классификации текста, в то время как рекуррентные нейронные сети обычно используются для генерации естественного языка или машинного перевода.В следующей части этой серии мы изучим существующие инструменты и библиотеки для обсуждаемых типов нейронных сетей.

1. http://www.aclweb.org/anthology/D14-1181

2. https://arxiv.org/pdf/1502.01710.pdf

3. http://www.aclweb.org/ anthology / P15-1128

4. https://www.aclweb.org/anthology/K15-1013

5. https://www.microsoft.com/en-us/research/wp-content/uploads/ 2016/02/CNN_ASLPTrans2-14.pdf

6. https://en.wikipedia.org/wiki/Recursive_neural_network

7.http://www.meanotek.ru/files/TarasovDS(2)2015-Dialogue.pdf

8. https://www.aaai.org/ocs/index.php/AAAI/AAAI15/paper/view/9745 / 9552

9. https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenTerm1201415/sak2.pdf

10. https://arxiv.org/pdf/1510.06168.pdf

11. https://arxiv.org/pdf/1409.3215.pdf

12. https://nlp.stanford.edu/courses/cs224n/2011/reports/ehhuang.pdf

13. https: // arxiv. org / pdf / 1301.3781.pdf

Объяснение внедрения нейронных сетей | by Will Koehrsen

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

Вложения нейронной сети имеют 3 основные цели:

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

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

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

Ограничения одного горячего кодирования

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

Метод «горячего» кодирования имеет два основных недостатка:

  1. Для переменных с высокой мощностью — переменных с множеством уникальных категорий — размерность преобразованного вектора становится неуправляемой.
  2. Отображение полностью неинформировано: «похожие» категории не размещаются ближе друг к другу во встраиваемом пространстве.

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

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

Это означает, что такие сущности, как Война и мир и Анна Каренина (обе классические книги Льва Толстого) не ближе друг к другу, чем Война и мир — к Автостопом по Галактике , если мы используйте горячую кодировку.

  # One Hot Encoding Категории   books = [«Война и мир», «Анна Каренина», 
«Автостопом по Галактике»]
books_encoded = [[1, 0, 0],
[0 , 1, 0],
[0, 0, 1]]
Сходство (скалярное произведение) между первым и вторым = 0
Сходство (скалярное произведение) между вторым и третьим = 0
Сходство (скалярное произведение) между первым и третьим = 0

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

Добавить комментарий

Ваш адрес email не будет опубликован.