Глубинное обучение (deep learning) ИИ — как это работает

Опубликовано: 2017-08-30

«Глубинное обучение» (deep learning) – это разновидность машинного обучения, в основе которой лежат нейронные сети. По сути техника обучения нейросети, которая использует множество слоев для решения сложных проблем (например, распознавания речи) с помощью шаблонов, признаков. Эта статья будет посвящена важному компоненту глубинного обучения — данным, представленным изображениями, видеофайлами, электронными письмами, схемами проезда, фразами, объектами и прочими элементами, используемыми для обучения нейросетей.

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

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

Управляемое обучение: я буду держать тебя за руку

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

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

Неуправляемое обучение: вы свободны, молодой человек

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

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

Данные, данные и только данные

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

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

 

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

 

В настоящее время существует множество способов, с помощью которых исследователи и ученые из отрасли искусственного интеллекта получают данные для обучения своих машин. Прежде всего, речь идет о самостоятельной сборке огромных массивов помеченных данных. Это то, чем занимаются такие компании, как Google, Amazon, Baidu, Apple, Microsoft и Facebook, в ходе коммерческой деятельности которых, как ни странно, создаются громаднейшие объемы данных — большую часть которых тщательно и бесплатно обрабатывают сами клиенты.

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

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

Учиться на своих ошибках

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

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

Так в чем же проблема?

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

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

Нэд никогда раньше не видел испанских текстов и не говорит на испанском. Ему показали 10 случайных дидактических карточек, чтобы он запомнил, как выглядят (и как не выглядят) слова на испанском. На пяти карточках были слова на испанском: «niño», «rojo», «comer», «uno» и «enfermos», а на других пяти были слова на других языках: «cat», «猫», «céu», «yötaivas». Нэду пообещали огромное мороженное, если он найдет все слова на испанском на новых карточках. После часа изучения мы проводим тест.

Сначала Нэду показали испанское слово «azul». Поскольку буква «а» содержалась только на карточках, на которых были слова не на испанском, Нэд решил, что слово «azul» не испанское. На второй карточке было португальское слово «mãe» (мама). Нэд сразу же закричал, что это испанский. Опять неправильно. Дело в том, что его обучающие карточки включали только одно слово с тильдой, и это слово было в испанской стопке. На третьей карточке было написано слово «volcano». Мальчик обратил внимание на то, что это слово заканчивается на «о» и, вспомнив обучающие карточки, уверенно сказал: «Это испанский». На четвертой карточке было слово «منزل», оно не похоже ни на одно слово ни в одной стопке обучающих карточек, и мы видим, как у ребенка начинают течь слезы, по мере того, как мороженное тает на его глазах. В чем же проблема, в мальчике или данных?

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

 

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

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

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

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

Создание интеллектуальной мышеловки

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

Авторы: OphirTanz, Cambron Carte

 

нужен
перевод?
заказать онлайн
+7 (495) 995 7253
info@swan-swan.ru