Мы с интересом смотрим на все более совершенные технические новинки, которые предлагает нам индустрия, наблюдаем за тем, как оттачивают свою технику крупнейшие технологические гиганты вроде Samsung или Google, восхищаемся необычайно правдоподобными гуманоидами японца Хироши Ишигуры, которого ставят на 26е место в списке 100 живых гениев.
Мы пользуемся поиском картинок, переводчиками, иногда играем в топовые приложения, которые делают из наших фотографий картины Рембрандта, а из нас – кавайных персонажей японских мультфильмов. Но что стоит за всем этим прогрессом? Правильный ответ – новейшие алгоритмы обработки информации, которые учёные и программисты «подсмотрели» у природы.
Признайтесь, каждый из нас втайне мечтает наконец встретиться со своим роботом-двойником или познакомиться с каким-нибудь иным разумным продуктом искусственного интеллекта, что бы там не говорили испуганные граждане, боящиеся «восстания машин». Нам бы хотелось, чтобы по возвращении домой нас встречал какой-нибудь Джарвис, которому бы мы задавали параметры нашего настроения, усталости, выполненных и невыполненных дел, а он на основе этого просчитал программу отдыха и релаксации, скорректировал наши планы на вечер, перенес пару встреч на более удобное время и распланировал несколько наших дней наперед. Или, возможно, мы бы хотели, отправившись в незнакомый город и надев там очки типа Google glasses, лишь задать параметры поиска и найти наиболее интересные места для посещения, лучшие кафе и вкуснейшие кондитерские, потайные уголки с живописными видами, просто людей, с которыми мы почти наверняка установим дружеский контакт, и все это исключительно индивидуально для нас, основанное на наших взглядах и интересах.
Сейчас такое описание кажется неправдоподобным вымыслом, но судя по тому, насколько быстро технологии работы с информацией движутся вперед, подобные функции станут вполне доступными и войдут в нашу жизнь наравне со смартфонами. А приближают «светлое будущее» нейронные сети – математические алгоритмы, строящие свою работу по принципу работы реального мозга. Это понятие находится на стыке сразу нескольких наук: нейрофизиологии, математики, кибернетики и программирования, — поэтому разобраться с ним будет непросто. Но мы попробуем.
Как это работает?
Впервые идею искусственной нейронной сети описали еще в 1943 году нейропсихолог Уоррен Мак-Каллок и математик Уолтер Питтс. В их представлении мозг упрощался до простейшей взаимосвязанной цепи, каждое звено в которой может обрабатывать информацию по принципу нескольких входных данных, анализа и одного выхода с последующей передачей ответа другому звену.
Конечно, сразу это воплотить в жизнь не удалось и не удавалось долгое время, пока опытные программисты и инженеры не создали модели и режимы работы с нейросетями и не обеспечили подходящее техническое обеспечение.
Каждое такое звено – условный нейрон. Вспомним, как он выглядит: тело, множество коротких отростков – дендритов, один длинный – аксон, тонкие нервные окончания и места соприкосновения одного нейрона с другим – синапсы. Это упрощенная схема, но именно она нам и подходит. Главное – запомнить, что по дендритам информация идет в нейрон, и только по аксону передается дальше, а также то, что у каждого нейрона могут быть тысячи синапсов, по которым поступает информация, но выход один.
Наш простейший нейрон – идеальный вычислительный элемент. Его задача – оценить некоторые факты на входе и дать им оценку в зависимости от своей настройки – синаптических весов. В это время внутри – в его теле – происходит суммация фактов, умноженных на вес каждого, их преобразование, а затем готовая оценка по аксону переходит в следующий нейрон, где с ней совершаются преобразования уже иного толка.
Чтобы не углубляться в теорию, рассмотрим этот процесс на примере. Допустим, вы пришли в магазин электроники и выбираете плеер. Вы уже заранее в интернете просмотрели обзоры, узнали про характеристики и составили себе план того, что вам бы хотелось иметь из функций. Например, мощный аккумулятор, хорошая подача звука, наличие небольшого экрана. Это будут входные данные.
Очень редко бывает так, что вы найдете однозначно сделанную специально под ваши запросы вещь. Поэтому вы выбираете то, что для вас имеет большее значение: возможность смотреть на то, какая песня играет сейчас? А, может быть, вы будете брать его в двухнедельные походы без возможности подзарядки? Или вы хотите слышать кристально чистый звук? Вы ориентируетесь сугубо индивидуально, мысленно подгоняя бегунки, а нейросеть определяет каждый параметр в процентах.
В магазине вы подставляете каждую модель под необходимые вам критерии и анализируете, насколько она подходит. Здесь есть несколько типов выбора. Один из них назовем «нейрон-максималист», который при малейшем несоответствии будет отметать предлагаемые варианты, другой – прямолинейный, при котором возможность вашей покупки будет возрастать строго в прямой зависимости от повышения кристальности звука или объема батареи, и самый подходящий – «нейрон-мудрец», который позволит решить проблему наподобие «этот плеер достаточно вынослив, но в нем нет экрана, да и звук немного не подходит моему тонкому слуху гурмана, поэтому поищу, пожалуй, еще».
Но это самая простая схема. Допустим, что кроме перечисленных трех параметров для нас также важна стоимость плеера, так как мы имеем ограниченный бюджет. Кроме того, мы хотим, чтобы наш плеер обладал современным дизайном и был в металлическом корпусе, так как мы частенько что-то роняем.
Таким образом, вводя все большее количество входных данных и выставляя им свой вес, мы уточняем пределы наших желаний и возможностей и в итоге на выходе получаем свой «идеальный» гаджет. Все, что находится между входами и выходом и происходит в теле нейрона, называется скрытыми слоями. Мы уже сейчас приняли взвешенное решение, которое оказалось далеким от бескомпромиссной логики типичных программистов «если – то» (характерно для старых алгоритмов). А если мы каждый раз будем усложнять сеть, добавлять в нее все новые слои, наращивая количество нейронов до 1000 и больше?
Ученье – свет
Ни один человеческий разум не сможет охватить всю глубину «проблемы», тем более, сделать ручные настройки, поэтому такая нейросеть должна уметь обучаться самостоятельно.
Представим младенца, который, повторяя за взрослыми, учится ходить. Вот он сделал пару неловких движений и упал. Встал, попытался чуть выпрямить траекторию своего движения, сделать шаги более четкими, а при следующем падении сгруппироваться, чтобы было менее больно. Так мы в детстве и постигаем жизнь методом проб и ошибок. То же самое относится к нейросети. Мы задаем ей исходные параметры и то, что хотим получить в итоге, а уже она сама простраивает необходимые для этого пути по методу обратного распространения ошибки (в котором полученный результат сравнивается с введенным нами эталоном), пока мы не приходим к удовлетворяющему нас итогу.
Здесь тоже возможно несколько вариантов развития событий. Вернемся к нашему выбору плеера.
Вариант первый – обучение с учителем. Мы читаем статьи, смотрим обзоры от компаний и видеоблогеров, обмениваемся мыслями на форумах владельцев гаджетов и расспрашиваем друзей. Затем, вооружившись советами, идем в магазин.
Вариант второй – обучение без учителя. Не готовимся специально, приходим в магазин и выбираем первый попавшийся плеер, который нам приглянулся чисто внешне. А потом покупаем еще и еще, пока не наткнемся на то, что нам действительно нравится.
Вариант третий – смешанный или обучение с подкреплением. Мы не готовимся, но имеем примерный набор желаний, идем в магазин, изводим консультанта вопросами, выслушиваем подробные характеристики про каждую модель и делаем свой выбор.
То, о чем мы рассказали – самый простой тип нейросети, который называется перцептроном. Это – та основа, на которой построены остальные типы. Например, есть сверточные нейросети, которые анализируют объект одновременно по ряду характеристик, сложение которых затем приводит к единой картине.
Также есть реккурентные нейросети, главная особенность которых – наличие памяти. То есть она запоминает каждый предыдущий полученный в процессе обработки результат и кладет его в основу нового анализа, точно определяя динамику процесса и делая правильные предсказания. Несложно догадаться, что такие нейросети используют на биржах.
Универсальный работник
О применении нейронных сетей можно говорить часами, а в СМИ каждый день мелькают сообщения, что в очередной раз их чему-либо научили. Наверное, только ленивый не слышал про победу нейросети в сложнейшую игру Го над действующим чемпионом или про то, как нейросеть прошла в финал именитой литературной премии имени Хоси Синъити.
Сейчас алгоритмы, похожие на работу мозга, могут писать вполне неплохие материалы, что доказывает робот-журналист Wordsmith от компании Automated Insights. Они «работают» на крупнейшие поисковики типа Яндекса и Google, помогая нам быстро отыскивать нужную информацию, прогнозируют поведение биржевых индексов, помогают маркетологам таргетировать целевую аудиторию, осуществляют качественные смысловые переводы с многих языков и даже активно используются в медицине.
Так, например, в апреле в журнале PLOS One вышла далеко не первая статья, сравнивающая диагностические способности нейросетей и врачей в области кардиологии. Оказалось, что на основании рекомендаций по оценке сердечно-сосудистых рисков можно предсказать опасные для жизни в 72,8 процентах случаев, тогда как нейронная сеть, учитывая некоторые другие параметры в том числе, в состоянии сделать это почти на 8 процентов более эффективно. И таких примеров – десятки.
Конечно, говорить о том, что искусственный интеллект скоро выйдет на одну прямую с человеческим, в корне неправильно, так как все-таки свобода воли – понятие, не поддающееся математизации. Поэтому и бояться восстания машин не стоит. А вот то, что у нас появился мощный виртуальный помощник – факт, не требующий доказательств.
Текст: Анна Хоружая