37 897
01 июня 2017 в 8:00
Автор: Виталий Олехнович. Фото: Александр Ружечка. Иллюстрация: Олег Гирель

Боги из машины. Как нейронные сети работают, учатся и готовятся менять наш мир

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

Для стороннего наблюдателя искусственная нейронная сеть является синонимом некоей магической коробочки (Deus ex machina), способной преобразовывать банальную фотографию в стилизованную картину какого-нибудь художника. Мы же попробуем на простом примере объяснить, как работает нейросеть и из чего она состоит.

Из чего состоит нейросеть?

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

Как жениться с помощью нейросети

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

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

Когда нейросеть отыскала тебе пару...

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

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

Как учатся нейросети?

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

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

Кэ Цзе, сильнейший в мире игрок в го, проигрывает программе Google AlphaGo

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

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

Побочные эффекты работы сверточной нейронной сети в виде программы DeepDream

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

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

Нейросети и машинное обучение сегодня находятся на вершине «хайпа Gartner'a» — это своеобразный рейтинг самых востребованных технологий, о которых все говорят и которые все хотят. Так считает Денис Пирштук, аспирант факультета прикладной математики и информатики БГУ, а также Chief Data Scientist в компании InData Labs, предоставляющей услуги по исследованию данных, машинному обучению и нейросетям.

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

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

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

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

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

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

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

На днях NVIDIA презентовала новые, более мощные процессоры Volta с энергопотреблением, аналогичным предыдущему поколению. Для data-центров цена комплектующих находится далеко не на первом месте. Куда важнее энергопотребление и система охлаждения. Пока Prisma не переехала на смартфоны, она использовала серверы из восьми видеокарт GTX 1080, каждый из которых потреблял по 3 кВт·ч. И наибольшей трудностью было не подвести эти три киловатта, а научиться отводить все это тепло. Ведь оборудование работает под нагрузкой 24 часа 7 дней в неделю.

Как нейросети связаны с Big Data?

По итогу все крутится вокруг больших данных (Big Data), которые нейросети умеют поглощать и интерпретировать. Еще пять лет назад о больших данных говорили все. Но, по мнению Дениса Пирштука, одно дело обладать данными, а другое — научиться их применять.

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

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

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

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

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

Где работают и могут работать нейросети?

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

Google Photos, например, благодаря сверточным нейросетям умеет искать конкретный объект в галерее пользователя по его запросу

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

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

Так, пару месяцев назад в Ноттингемском университете команда исследователей представила четыре алгоритма машинного обучения, которые предсказывают сердечный приступ или инсульт у пациентов лучше системы, разработанной докторами на основе восьми факторов. Ученые сперва «скормили» нейросетям данные 295 000 пациентов для создания внутренней модели предсказания, а затем протестировали ее на еще 80 000 историй болезни. По итогу оказалось, что из этого количества нейросеть могла бы дополнительно спасти 355 жизней.

Распознавание объектов в режиме реального времени глазами робота-терминатора Т-800

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

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

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

Веб-камеры в каталоге Onliner.by

Читайте также:

Перепечатка текста и фотографий Onliner.by запрещена без разрешения редакции. sk@onliner.by

Автор: Виталий Олехнович. Фото: Александр Ружечка. Иллюстрация: Олег Гирель