на чем основаны нейросетевые технологии
Применение нейросетевых технологий: Разработка программного обеспечения
1. Введение
2. Сокращения
НС — Нейронные сети
ПО — Программное обеспечение
ТЗ — Техническое задание
ИИ — Искусственный интеллект
3. Искусственные нейронные сети
Что такое искусственный интеллект? Грубо говоря, это симуляция человека с помощью компьютера. Тест Тьюринга в каком-то смысле отвечает на этот вопрос. Он заключается в том, что в ходе диалога человек должен решить кто перед ним человек или машина. В наше время тест Тьюринга считается не совсем правильным и используются другие методы тестирования искусственного интеллекта. Для большего понимания почему этот тест не совсем верный его можно просто перевернуть. Как компьютер узнает, что перед ним человек? Задаст вопрос сколько будет 754534*32 и запустит таймер. Поэтому как и мы не можем решить уравнение достаточно быстро так и машина (пока что) не может полностью симулировать человеческое общение со всеми его тонкостями и особенностями. В таком представлении полная симуляция мозга компьютером кажется невозможной. Так что пока мы используем искусственный интеллект только как помощников в конкретной области.
3.1 Краткая история ИИ
3.2 Принцип работы нейронной сети, её успехи и слабые места
В упрощенном виде принцип работы нейронной сети состоит в нахождении зависимостей и изменении весов если действие верное то усиливаются весы, которые отвечали за данное действие и наоборот. А если быть по точнее то принцип заключается в уменьшении некоторой функции ошибки. Градиентный спуск чаще всего применяется для этой цели.
Об успехах нейронных сетей все наслышаны. Они побеждают чемпионов игры GO, играть в которую по идее прерогатива исключительно человека и для компьютера она слишком сложна, но как видно это не правда. Не так давно в 2015 году программа AlphaGo победила чемпиона выиграв четыре из пяти партий. Неплохо правда? Через два года в 2017 году нейросеть улучшили и она обыграла 9 чемпионов GO, выиграв шестьдесят из шестидесяти партий. Самое страшное для чемпионов было то что программа действовала абсолютно хаотично и в итоге все равно выигрывала. Как же Google (разработчики AlphaGo) добились такого результата? Все просто улучшенная AlphaGo тренировалась со своей предшественницей. Нейросеть сама нашла недостатки и исправила их.
Нейросети так же обучились писать музыку. «Прослушав» шедевры мировой классики нейросеть сочинила свою музыку и без хорошего понимания работы машинного обучения отличить творение людей от творения машины практически невозможно. На лекции «Нейронные сети: maths & magic» включили одно из произведений компьютерных вычислений и предложили прослушать предварительно сказав что это создал великий музыкант. После прослушивания слушателей спросили: «Кого-нибудь зацепило?» некоторая часть ответила «Да». Получается машины могут творить? Ответить довольно сложно. Чтобы понять почему, немного разберемся с принципом работы нейросети на примере комнаты с очень большим количеством листочков с символами, которые мы не понимаем. У нас есть алгоритм как, куда и какой листочек перекладывать или мы сами строим этот алгоритм основываясь на том поощряют или ругают нас за наши действия. И вот на вход мы получаем запрос после бежим перекладывать листочки по нашему алгоритму и получаем на выход набор сложенных листочков, при этом сами не понимаем что значат эти символы на входе и то что получаем на выходе, мы и есть нейронная сеть. Вернемся к созданию музыки. Получается что нейронная сеть не творит произведение она просто хаотично но с определенными правилами бьет по аккордам сама не понимая что делает (чем-то напоминает современную живопись). Один из примеров музыки созданной нейронной сетью от компании Яндекс:
Рисовать нейросети тоже научились, используя тот же принцип, что и с музыкой.
Как можно заметить, машинное обучение позволяет решать огромное множество задач. Но как же научить их выполнять все это? Секрет кроется в машинном обучении. Вернемся к комнате с листочками и вспомним что «у нас есть алгоритм как, куда и какой листочек перекладывать» при таком раскладе нейросеть уже обучена. Она знает что и куда надо положить, но так же был и второй вариант «мы сами строим этот алгоритм основываясь на том поощряют или ругают нас за наши действия» именно этот вариант формулирует так называемое обучение нейронной сети с подкреплением. Некий «учитель» поощряет правильные действия нейросети вследствие чего она запоминает и пытается найти зависимость в правильных действиях или «учитель» ругает нейросеть за её ошибки и она все больше пытается найти зависимость в правильных действиях. Так же нейросети обучают методами: с учителем, без учителя, с частичным привлечением учителя. Выбор происходит в зависимости от условий, в которых обучается нейронная сеть.
Используя обучение с учителем мы должны подать набор данных с правильными ответами или по другому тренировочный набор данных на вход после чего нейросеть должна выявить закономерности и ответить правильно уже на тестовый набор данных. Обычно (что и логично) нейросеть чаще ошибается на тестовой выборке это происходит из-за «проблемы переобучения».
Когда нейронная сеть слишком много раз обрабатывает одни и те же данные она приспосабливается исключительно к этой выборке данных вследствие чего на новой выборке где многое по другому нейросеть ошибается.
Используя обучение без учителя мы так же подаем данные, но мы не знаем правильного ответа и задача собственно найти зависимость в этих данных. Обучение с частичным привлечением учителя чаще всего используется при обучении нейросетей способных обрабатывать звук. Не размеченных данных мы можем найти сколько угодно, а вот разметкой придется заняться вручную.
Самым интересным (по некоторым мнениям) является обучение с подкреплением так как мы можем по сути научить чему угодно нейросеть просто отмечая правильное или неправильное действие она выполнила. В 2017 году прошел киберспортивный чемпионат по дисциплине «DOTA 2» под названием «The International 2017», на котором профессиональные игроки сыграли в игру против нейросети «OpenAI» (правда с некоторыми ограничениями). У профессионалов не было ни шанса на победу. Для обучения данной нейросети использовался метод с подкреплением. Нейронная сеть сыграла очень очень много раз и обучилась побеждать без проблем. Ясное дело совсем без проблем у неё не получается так как игра довольно сложна и этим нейросеть можно обмануть. Одному профессиональному игроку удалось одержать победу только благодаря обману.
Теперь, поняв основы, можем обсудить использование нейронных сетей в качестве помощников для программистов.
4. Применение нейронных сетей в создании технического задания
4.1 Принцип
Кому может понадобиться программное обеспечение? В наше время каждому необходимо причем для абсолютно разных целей. Зачастую самим создать ПО они либо не могут, либо не хотят поэтому они, обращаются к программистам. Но как объяснить исполнителю что вы хотите? В принципе программист может составить техническое задание и условно рассказать что будет в программе, но не всем будет до конца ясно ввиду использования терминов или будет понято не так. Как насчет того, чтобы составлять ТЗ индивидуально? Сложно, долго и не так уж и нужно при таких затратах, но когда необходимо сделать что-то сложно и долго почему бы не возложить эту задачу на компьютер? Нейронная сеть позволит выполнить эту задачу.
4.2 Необходимость
Строитель далек от программирования да и вообще далек от компьютера. Для него строка «Процессор Intel Core i5 4200M 2.5 ГГц и выше» совершенно ничего не скажет и зачем тогда ему ТЗ вообще? Давайте научим нейросеть менять строки для каждого индивидуально исходя из того чем он занимается. К примеру возьмем ту же строку из пункта 4.3 «Процессор Intel Core i5 4200M 2.5 ГГц и выше» будем менять её например на краткое название и среднюю стоимость этого процессора на рынке. Так будет более информативно для заказчика.
4.3 Реализация
Реализовать это можно используя метод обучения с учителем. На вход подаем набор той информации, которую может получить исполнитель об условных заказчиках. Так же добавим ярлыки и будем вешать их на людей и за каждым ярлыком будет висеть программа, которая и будет менять текст. Стандартная задача классификации есть набор данных и несколько вариантов ответа. Предположим нейросеть определила, что степень знания в этой области у заказчика находится не на высоком уровне и вешает на него соответствующий ярлык после обращается к программе, которая отвечает за этот ярлык и вот текст заменен на соответствующий знаниям заказчика. Это не совсем то, так как работа нейросети сводится только к определению типа заказчика, а текст меняет сама программа.
Как насчет того чтобы саму программу отвечающую за ярлыки заменить на нейросеть (кремлебота) подобную той что используется для создания отзывов для сайтов, фильмов и вообще где используются отзывы. Научим нейронную сеть использовать термины присущие ярлыку заказчика взамен на программным терминам и вскоре программа по примерному описанию заказчика будет перефразировать и передавать данные исполнителю. Скорее всего по началу можно будет использовать связь нейросетей только для пункта «4.Технические требования к программному продукту» ввиду того что там в основном находится «проблемная зона». Пункт «8. Календарный план работ» тоже можно перенести на нейронную сеть, но об этом в пункте 6.
Позже когда технологии немного эволюционируют можно будет перенести все оформление технического задания на плечи нейронной сети, а точнее на связанную цепь нейросетей. Подобно нашему мозгу отдельные составные части буду отвечать за отдельные процессы в нашем искусственном нейронном организме. Все это позволит разрушить профессиональный барьер общения (его ещё называют коммуникативным барьером) между заказчиком и исполнителем.
4.4 Вывод
Реализация подобного не очень сложна, в особенности первая нейронная сеть. Со второй придется повозиться, но в итоге и она принесет свои плоды. Подобное использование нейросети упростит взаимодействие между заказчиком и исполнителем.
5. Применение нейронных сетей в создании оптимальных методологий разработки ПО
Человек с трудом принимает что-то новое когда он уже привык. Даже если лопата удобнее, проще, легче человек продолжит использовать палку, чтобы выкопать яму. Очень ярко это видно между поколениями. Бабушки имея возможность оплачивать коммуналку из дома через интернет, предпочитают проехать пол города. Почему? Потому что во-первых они люди и как большинство людей не очень любят перемены, во вторых они не хотят учиться новому считают это слишком сложно для них и даже не пытаются вникать. С методологиями та же история. Компании, особенно большие, не очень охотно будут менять методологию, которая и так работает. Но что делать если выбранная методология не оптимальна или совершенно не подходит для данного проекта? Логично сказать, что нужно заменить на оптимальную, но какая будет таковой и что значит оптимальной? Та, которую легко примет команда, или та, которая ускорит разработку? На кого можно возложить такую ответственную работу? Посмотрим как это могут решить нейронные сети.
5.1 Реализация
Скорее всего, для подобного одна нейросеть не справиться и нам снова понадобится цепочка связей, каждая из которых будет отвечать за отдельную задачу. В данной ситуации у нас есть набор данных об использовании методологий и самих проектов, для которых они применялись. Так же можно добавить данные о разработчиках, но это сильно все усложнит так что отложим на время. В наличии набор данных, у которых нет «ответа» значит воспользуемся методом без учителя. Нейронная сеть сама найдет взаимосвязь между временем затраченным на разработку и данными о самом проекте. Скорее всего точность будет не очень высокой ввиду человеческого фактора. Понадобится вторая нейросеть, которая будет анализировать разработчиков на основе например переписок (для чего понадобится их согласие) или того как они предпочитают работать. И добавим ярлыки наподобие тех, что были в пункте 4 и будем их возвращать в первую нейросеть для обработки. Здесь уже придется использовать метод с частичным привлечением учителя. Нам придется отобрать группу людей и выявить по тестам их характеры (ярлыки) и подать эти данные на вход. Теперь необходимо определить с чем нейросеть будет искать взаимосвязь. Если взять переписки, то это во-первых людям не понравится, потому что используются их личные данные во вторых не даст точного результата. Тогда попробуем использовать данные о работе этих людей, но здесь проблема в доступности этих данных для нейросети. Переписку передать на вход не составит труда, а вот как собрать и преобразовать данные о работе этих людей? Зайдем с другой стороны. В качестве «характеров» возьмем 8 типов ролей выявленных доктором Мередит Белбин.
Теперь мы имеем конкретные ярлыки и характеристики для определения какой на кого вешать. Учитывать человеческий фактор довольно сложно ввиду его стохастически, но все же некоторые закономерности прослеживаются, что и может заметить нейросеть. Предположим испытуемый будет иметь первый ярлык «Председатель», но НС об этом знать не будет. Характеристики этой личности нейронная сеть может брать из личного дела этого ей будет достаточно. На основе отчетов так же будет формироваться то какой ярлык будет применен к этой личности. В итоге будет повешен ярлык и отправлен первой нейронной сети для обработки и нахождения взаимосвязей. Все это довольно сложно, но это ощутимо добавит точности при выборе нейросетью методологий. Наша цепочка обучилась, и может определить по входным данным какая методология будет оптимальной по времени с учетом особенностей команды разработчиков. Если команда будет постоянно использовать нейросеть для выбора методологий, то шаг за шагом она будет обучаться все лучше и лучше тем самым окупая себя и повышая свою точность. Исходя из этого нейросеть не лучший выход ввиду долгой обучаемости. Посмотрим в чем ещё нам может машинное обучение.
5.2 Вывод
Нейронная сеть не совсем подходит для подобной задачи ввиду большого количества человеческих факторов и долгого и дорогостоящего обучения.
6. Тестирование программного обеспечения с помощью нейронных сетей
Все мы люди и нам свойственно ошибаться. Кевин Митник однажды сказал: «Люди — самое слабое звено в безопасности. Люди, а не технологии». С развитием технологий разработки программного обеспечения всегда остаются одни и те же проблемы. Недоработки, баги, ошибки. Все это появляется из-за человеческой лени, невнимательности или не знания. Эту проблему решает отладка и тестирование.
6.1 Веб-приложение методом без учителя
Тестирование занимает целых шестьдесят процентов от общего времени это самый долгий этап разработки программного обеспечения. Подобное происходит из-за сложности автоматизации данного этапа ввиду отсутствия стохастичности в автотестировщиках и сложности их создания. Лучший вариант это ручное тестирование, ведь никакая программа (на данный момент) не заменит человека полностью. Долго и сложно реализуемо? Снова пользуемся помощью нейронной сети. Для начала необходимо понять, что значит тестирование с помощью нейросети. Сразу необходимо понять, что универсального тестера создать не получится придется создавать для каждой обобщенной задачи отдельно например нейронная сеть, которая тестирует сайты. Для начала попробуем разобраться с её принципом работы и возможно ли её использование в данном направлении. Что подаем на вход? Чего ожидаем на выход? Обучающая выборка будет состоять из проверенных сайтов, на которых нейросеть будет обучаться. Отпустив нашего друга в свободное плаванье врятли мы получим желаемый результат поэтому ограничим НС в плане объектов которые могу присутствовать на сайте это всякие кнопки, бары, чекбоксы и действий, которые может выполнить нейронная сеть. Пока нейросеть развлекается и запоминает, что происходит при таком действии, что при таком, и ищет зависимость мы создаем самый баганый сайт из всех, что есть и настраиваем нейросеть подавать на выход сообщение, если происходящее не совпадает с её ожиданием. Подав на вход данный сайт мы будем получать сообщения о возможных багах тем самым автоматизируем процесс создания Acceptance Sheet.
Веб-приложение. Методом с подкреплением. Кнут и пряник.
На сколько будет точен предыдущий вариант тестирования предсказать сложно так как нейронная сеть может обучится не верно и ожидать нелогичного исхода. Есть второй вариант более долгий, но при этом более точный и универсальный. Нейросеть просто будет следить за действиями тестировщиков тем самым обучаясь используя метод с подкреплением. Она будет в большом объеме получать данные находя связь в них и воспроизводить их. Нейросеть должна фиксировать не только действия на сайте, но и в какой момент тестировщик запишет сообщение о баге для нахождения связи. Здесь мы уже получим более точный вариант автономного тестировщика. Но в тоже время и там и там присутствует человеческий фактор, который описать функцией не самая простая задача поэтому нейросетям сложно дается человеческая стохастичность.
6.2 Тестирование программного обеспечения
При тестировании ПО мы так же как и предыдущем разделе можем использовать метод с подкреплением. Крайне универсальный метод позволяющий научить нейронную сеть практически чему угодно. Поставим нейросеть следить за огромным колличиством тестеров. Разделим её функции на функциональное тестирование и нефункциональное тестирование. Нейросеть отвечающая за функциональное тестирование будет основываться на техническом задании. Для её обучения воспользуемся набором ТЗ и найденных программистами багов в этих программах. Здесь тоже можно воспользоваться нейросетию из пункта 5 для добавления ярлыков в данные подающиеся на вход. Таким образом НС сможет оповестить о возможных багах или ошибка так же постоянно само улучшаясь со временем и подстраиваясь под определенную команду разработчиков. Для нефункционального тестирования можно использовать обычные программы так как нейросеть здесь будет лишь усложнением.
6.3 Вывод
Нейронная сеть хорошо подойдет для тестирования сайтов, но при этом на обучение придется потратить не мало времени. Примерно то же самое все обстоит и с тестированием программного обеспечения, но несколько хуже и тяжелее в реализации самого тестирования.
7. Заключение
Подытожив, можно сказать, что использование нейросетей для разработки программного обеспечения ускорит процесс, но не во всех случаях. Все выше сказанное конечно же только в теории работает, на практике все может оказать не так радужно, но работа заключается в исследовании возможности хотя бы в теории ускорить разработку программного обеспечения с помощью нейронной сети. Моим итоговым результатом исследования является ответ: да и не только в теории, но при индивидуальных подходах и анализе человека как личности будут большие проблемы, которые на данный момент сложно преодолеть. Для полноценного использования нейросетей как помощников необходимо долгое обучение, которое в дальнейшем окупиться. Лучше всего нейросеть подходит для создания технического задания, а точнее для упрощения взаимодействия между исполнителем и заказчиком. Нейросеть разрушает коммуникативный барьер чем ускоряет и облегчает весь процесс. Так же стоит подметить возможность использования нейросетей в тестировании тоже крайне полезна. Нейронная сеть может предсказать возможный баг чем ускорит тестирование. Это не кардинально ускорит процесс, но немного его облегчит. К сожалению в подборе методологий нейронные сети не очень эффективны. Нейронная сеть не может начать понимать чувства людей поэтому выбирать методологию она может только исходя из статистических данных.
Нейронные сети развиваются семимильными шагами и кто знает как быстро в наших домах появятся те самые человекоподобные андроиды, которые (уничтожат все человечество) улучшат нашу жизнь.
(Андроид София)
Николенко, С. Глубокое обучение: Погружение в мир нейронных сетей / С. Николенко, А. Кадурин, Е. Архангельская – Санкт-Петербург – Глубокое обучение. – СПб: Питер, 2018 – 480 с.: ил. – (Серия «Библиотека программиста»).
Нейросети: как искусственный интеллект помогает в бизнесе и жизни
Читайте оригинал статьи в Блоге DTI.
В работе Oxford Martin School 2013 года говорилось о том, что 47% всех рабочих мест может быть автоматизировано в течение следующих 20 лет. Основным драйвером этого процесса является применение искусственного интеллекта, работающего с большими данными, как более эффективной замены человеку.
Машины теперь способны решать все больше процессов, за которые раньше отвечали люди. Кроме того, делают это качественнее и во многих случаях дешевле. О том, что это значит для рынка труда, в июле этого года говорил Герман Греф, выступая перед студентами Балтийского федерального университета им. Канта:
“Мы перестаём брать на работу юристов, которые не знают, что делать с нейронной сетью. Вы — студенты вчерашнего дня. Товарищи юристы, забудьте свою профессию. В прошлом году 450 юристов, которые у нас готовят иски, ушли в прошлое, были сокращены. У нас нейронная сетка готовит исковые заявления лучше, чем юристы, подготовленные Балтийским федеральным университетом. Их мы на работу точно не возьмем.”
Искусственный интеллект, машинное обучение и нейросети: в чем разница
Нейронная сеть – один из способов реализации искусственного интеллекта (ИИ).
В разработке ИИ существует обширная область — машинное обучение. Она изучает методы построения алгоритмов, способных самостоятельно обучаться. Это необходимо, если не существует четкого решения какой-либо задачи. В этом случае проще не искать правильное решение, а создать механизм, который сам придумает метод для его поиска.
#справка Во многих статьях можно встретить термин «глубокое» — или «глубинное» — обучение. Под ним понимают алгоритмы машинного обучения, использующие много вычислительных ресурсов. В большинстве случаев под ним можно понимать просто “нейронные сети”.
Чтобы не запутаться в понятиях «искусственный интеллект», «машинное обучение» и «глубокое обучение», предлагаем посмотреть на визуализацию их развития:
#интересное Существует два типа искусственного интеллекта (ИИ): слабый (узконаправленный) и сильный (общий). Слабый ИИ предназначен для выполнения узкого списка задач. Такими являются голосовые помощники Siri и Google Assistant и все остальные примеры, которые мы приводим в этой статье. Сильный ИИ, в свою очередь, способен выполнить любую человеческую задачу. На данный момент реализация сильного ИИ невозможна, он является утопической идеей.
Как устроена нейросеть
Нейросеть моделирует работу человеческой нервной системы, особенностью которой является способность к самообучению с учетом предыдущего опыта. Таким образом, с каждым разом система совершает все меньше ошибок.
Как и наша нервная система, нейросеть состоит из отдельных вычислительных элементов – нейронов, расположенных на нескольких слоях. Данные, поступающие на вход нейросети, проходят последовательную обработку на каждом слое сети. При этом каждый нейрон имеет определенные параметры, которые могут изменяться в зависимости от полученных результатов – в этом и заключается обучение сети.
Предположим, что задача нейросети – отличать кошек от собак. Для настройки нейронной сети подается большой массив подписанных изображений кошек и собак. Нейросеть анализирует признаки (в том числе линии, формы, их размер и цвет) на этих картинках и строит такую распознавательную модель, которая минимизирует процент ошибок относительно эталонных результатов.
На рисунке ниже представлен процесс работы нейросети, задача которой — распознать цифру почтового индекса, написанную от руки.
История нейросетей
Несмотря на то, что нейросети попали в центр всеобщего внимания совсем недавно, это один из старейших алгоритмов машинного обучения. Первая версия формального нейрона, ячейки нейронной сети, была предложена Уорреном Маккалоком и Уолтером Питтсом в 1943 году.
А уже в 1958 году Фрэнк Розенблатт разработал первую нейронную сеть. Несмотря на свою простоту, она уже могла различать, например, объекты в двухмерном пространстве.
Mark I Perceptron — машина Розенблатта
Первые успехи привлекли повышенное внимание к технологии, однако затем другие алгоритмы машинного обучения стали показывать лучшие результаты, и нейросети отошли на второй план. Следующая волна интереса пришлась на 1990-е годы, после чего о нейросетях почти не было слышно до 2010 года.
Почему нейросети вновь популярны
До 2010 года попросту не существовало базы данных, достаточно большой для того, чтобы качественно обучить нейросети решать определенные задачи, в основном связанные с распознаванием и классификацией изображений. Поэтому нейросети довольно часто ошибались: путали кошку с собакой, или, что еще хуже, снимок здорового органа со снимком органа, пораженного опухолью.
Но в 2010 году появилась база ImageNet, содержащая 15 миллионов изображений в 22 тысячах категорий. ImageNet многократно превышала объем существовавших баз данных изображений и была доступна для любого исследователя. С такими объемами данных нейросети можно было учить принимать практически безошибочные решения.
Размер ImageNet в сравнении с другими существовавшими в 2010 году базами изображений
До этого на пути развития нейросетей стояла другая, не менее существенная, проблема: традиционный метод обучения был неэффективен. Несмотря на то что важную роль играет число слоев в нейронной сети, важен также и метод обучения сети. Использовавшийся ранее метод обратного шифрования мог эффективно обучать только последние слои сети. Процесс обучения оказывался слишком длительным для практического применения, а скрытые слои глубинных нейросетей не функционировали должным образом.
Результатов в решении этой проблемы в 2006 году добились три независимых группы ученых. Во-первых, Джеффри Хинтон реализовал предобучение сети при помощи машины Больцмана, обучая каждый слой отдельно. Во-вторых, Ян ЛеКан предложил использование сверточной нейронной сети для решения проблем распознавания изображений. Наконец, Иошуа Бенджио разработал каскадный автокодировщик, позволивший задействовать все слои в глубокой нейронной сети.
Примеры успешного применения нейросетей в бизнесе
Медицина
Команда исследователей из Ноттингемского университета разработала четыре алгоритма машинного обучения для оценки степени риска сердечно-сосудистых заболеваний пациентов. Для обучения использовались данные 378 тыс. британских пациентов. Обученный искусственный интеллект определял риск кардиологических заболеваний эффективнее реальных врачей. Точность алгоритма — между 74 и 76,4 процентами (стандартная система из восьми факторов, разработанная Американской коллегией кардиологии, обеспечивает точность лишь в 72,8%).
Финансы
Японская страховая компания Fukoku Mutual Life Insurance заключила контракт с IBM. Согласно нему, 34 сотрудников японской компании заменит система IBM Watson Explorer AI. Нейросеть будет просматривать десятки тысяч медицинских сертификатов и учитывать число посещений госпиталей, перенесенные операции и другие факторы для определения условий страхования клиентов. В Fukoku Mutual Life Insurance уверены, что использование IBM Watson повысит продуктивность на 30% и окупится за два года.
Машинное обучение помогает распознавать потенциальные случаи мошенничества в различных сферах жизни. Подобный инструмент использует, например, PayPal – в рамках борьбы с отмыванием денег компания сравнивает миллионы транзакций и обнаруживает среди них подозрительные. В результате, мошеннические транзакции в PayPal составляют рекордно низкие 0,32%, тогда как стандарт в финансовом секторе — 1,32%.
Коммерция
Искусственный интеллект существенно улучшил механизмы рекомендаций в онлайн-магазинах и сервисах. Алгоритмы, основанные на машинном обучении, анализируют ваше поведение на сайте и сравнивают его с миллионами других пользователей. Все для того, чтобы определить, какой продукт вы купите с наибольшей вероятностью.
Механизм рекомендаций обеспечивает Amazon 35% продаж. Алгоритм Brain, используемый YouTube для рекомендации контента, позволил добиться того, что практически 70% видео, просматриваемых на сайте, люди нашли благодаря рекомендациям (а не по ссылкам или подпискам). WSJ сообщало о том, что использование искусственного интеллекта для рекомендаций является одним из факторов, повлиявших на 10-кратный рост аудитории за последние пять лет.
Алгоритм Yandex Data Factory способен предсказывать влияние промоакций на объем продаж товаров. Анализируя историю продаж, а также тип и ассортимент магазина, алгоритм дал 87% точных (с точностью до коробки) и 61% ультраточных (с точностью до упаковки) прогнозов.
Нейросети, анализирующие естественный язык, могут использоваться для создания чат-ботов, позволяющих клиентам получить необходимую информацию о продуктах компании. Это позволит сократить издержки на команды колл-центров. Подобный робот уже работает в приемной Правительства Москвы и обрабатывает около 5% запросов. Бот способен подсказать, в том числе, расположение ближайшего МФЦ и график отключения горячей воды.
На технологии нейронных сетей также основана Albert – маркетинговая платформа полного цикла, самостоятельно осуществляющая практически все операции. Использующая ее компания-производитель нижнего белья Cosabella в итоге расформировала собственный отдел маркетинга и полностью доверилась платформе.
Транспорт
Беспилотные автомобили – концепт, над которым работает большинство крупных концернов, а также технологические компании (Google, Uber, Яндекс и другие) и стартапы, в своей работе опирается на нейросети. Искусственный интеллект отвечает за распознавание окружающих объектов – будь то другой автомобиль, пешеход или иное препятствие.
Так видит наш мир нейросеть
Потенциал искусственного интеллекта в этой сфере не ограничивается автопилотом. Недавний опрос IBM показал: 74% топ-менеджеров автомобильной индустрии ожидают, что умные автомобили появятся на дорогах уже к 2025 году. Такие автомобили, интегрированные в Интернет вещей (см. наш предыдущий лонгрид), будут собирать информацию о предпочтениях пассажиров и автоматически регулировать температуру в салоне, громкость радио, положение сидений и другие параметры. Помимо пилотирования, система также будет информировать о возникающих проблемах (и даже попытается решить их сама) и ситуации на дороге.
Промышленность
Нейросеть, разработанная Марком Уоллером из Шанхайского Университета, специализируется на разработке синтетических молекул. Алгоритм составил шестистадийный синтез производного бензопирана сульфонамида (необходим при лечении Альцгеймера) всего за 5,4 секунды.
Инструменты Yandex Data Factory помогают при выплавке стали: использующийся для производства стали металлический лом зачастую неоднороден по составу. Чтобы сталь соответствовала стандартам, при ее выплавке всегда нужно учитывать специфику лома и вводить специальные добавки. Этим обычно занимаются специально обученные технологи. Но, поскольку на таких производствах собирается много информации о поступающем сырье, применяемых добавках и результате, эту информацию с большей эффективностью способна обработать нейросеть. По данным Яндекса, внедрение нейросетей позволяет на 5% сократить расходы дорогих ферросплавов.
Аналогичным образом нейросеть способна помочь в переработке стекла. Сейчас это нерентабельный, хотя и полезный, бизнес, нуждающийся в государственных субсидиях. Использование технологий машинного обучения позволит значительно сократить издержки.
Сельское хозяйство
Инженеры Microsoft совместно с учеными из ICRISAT применяют искусственный интеллект, чтобы определить оптимальное время посева в Индии. Приложение, использующее Microsoft Cortana Intelligence Suite, также следит за состоянием почвы и подбирает необходимые удобрения. Изначально в программе участвовало всего лишь 175 фермеров из 7 деревень. Они начали посев только после соответствующего SMS уведомления. В результате, они собрали урожая на 30-40% больше, чем обычно.
Развлечения и искусство
В прошлом году вышли и мгновенно стали популярными приложения, использующие нейросети для обработки фото и видео: MSQRD от белорусских разработчиков (в дальнейшем сервис выкупила Facebook), и российские Prisma и Mlvch. Другой сервис, Algorithmia, раскрашивает черно-белые фотографии.
Яндекс успешно экспериментирует с музыкой: нейронные сети компании уже записали два альбома: в стиле Nirvana и “Гражданской обороны”. А музыка, написанная нейросетью под композитора-классика Александра Скрябина, была исполнена камерным оркестром, что заставляет вновь задуматься над вопросом о том, сможет ли робот сочинить симфонию. Нейросеть, созданная сотрудниками Sony, вдохновлялась Бахом.
Японский алгоритм написал книгу “День, когда Компьютер написал роман”. Несмотря на то что с характерами героев и сюжетными линиями неопытному писателю помогали люди, компьютер проделал огромную работу – в итоге одна из его работ прошла отборочный этап престижной литературной премии. Нейросети также написали продолжения к Гарри Поттеру и Игре Престолов.
В 2015 году нейросеть AlphaGo, разработанная командой Google DeepMind, стала первой программой, победившей профессионального игрока в го. А в мае этого года программа обыграла сильнейшего игрока в го в мире, Кэ Цзэ. Это стало прорывом, поскольку долгое время считалось, что компьютеры не обладают интуицией, необходимой для игры в го.
Безопасность
Команда разработчиков из Технологического университета Сиднея представила дронов для патрулирования пляжей. Основной задачей дронов станет поиск акул в прибрежных водах и предупреждение людей на пляжах. Анализ видеоданных производят нейросети, что существенно отразилось на результатах: разработчики утверждают о вероятности обнаружения и идентификации акул до 90%, тогда как оператор, просматривающий видео с беспилотников, успешно распознает акул лишь в 20-30% случаев.
Австралия занимает второе место в мире после США по количеству случаев нападения акул на людей. В 2016 году в этой стране были зафиксированы 26 случаев нападения акул, два из которых закончились смертью людей.
В 2014 году Лаборатория Касперского сообщала, что их антивирус регистрирует 325 тыс. новых зараженных файлов ежедневно. В то же время, исследование компании Deep Instinct показало, что новые версии вирусов практически не отличаются от предыдущих – изменение составляет от 2% до 10%. Самообучающаяся модель, разработанная Deep Instinct, на основании этой информации способна с высокой точностью определять зараженные файлы.
Нейросети также способны искать определенные закономерности в том, как хранится информация в облачных сервисах, и сообщать об обнаруженных аномалиях, способных привести к бреши в безопасности.
Бонус: нейросети на страже нашего газона
В 2016 году 65-летний инженер NVIDIA Роберт Бонд столкнулся с проблемой: соседские кошки регулярно посещали его участок и оставляли следы своего присутствия, что раздражало его жену, работающую в саду. Бонд сразу отсек слишком недружелюбную идею соорудить ловушки для незваных гостей. Вместо этого он решил написать алгоритм, который бы автоматически включал садовые разбрызгиватели воды при приближении кошек.
Перед Робертом стояла задача идентификации кошек в поступающем с внешней камеры видеопотоке. Для этого он использовал систему, основанную на популярной нейросети Caffe. Каждый раз, когда камера наблюдала изменение в обстановке на участке, она делала семь снимков и передавала их нейросети. После этого нейросеть должна была определить, присутствует ли в кадре кошка, и, в случае утвердительного ответа, включить разбрызгиватели.
Изображение с камеры во дворе Бонда
До начала работы нейросеть прошла обучение: Бонд “скормил” ей 300 разных фотографий кошек. Анализируя эти фотографии, нейросеть училась распознавать животных. Но этого оказалось недостаточно: она корректно определяла кошек лишь в 30% случаев и приняла за кошку тень Бонда, в результате чего он сам оказался мокрым.
Нейросеть заработала лучше после дополнительного обучения на большем количестве фотографий. Однако Бонд предупреждает, что нейросеть можно натренировать слишком сильно, в случае чего у нее сложится нереалистичный стереотип – например, если все снимки, использующиеся для обучения, сняты с одного ракурса, то искусственный интеллект может не распознать ту же самую кошку с другого угла. Поэтому чрезвычайно важным является грамотный подбор обучающего ряда данных.
Через некоторое время кошки, обучившиеся не на фотографиях, но на собственной шкуре, перестали посещать участок Бонда.
Заключение
Нейронные сети, технология середины прошлого века, сейчас меняет работу целых отраслей. Реакция общества неоднозначна: одних возможности нейросетей приводят в восторг, а других – заставляют усомниться в их пользе как специалистов.
Однако не везде, куда приходит машинное обучение, оно вытесняет людей. Если нейросеть ставит диагнозы лучше живого врача, это не значит, что в будущем нас будут лечить исключительно роботы. Вероятнее, врач будет работать вместе с нейросетью. Аналогично, суперкомпьютер IBM Deep Blue выиграл в шахматы у Гарри Каспарова еще в 1997 году, однако люди из шахмат никуда не делись, а именитые гроссмейстеры до сих пор попадают на обложки глянцевых журналов.
Кооперация с машинами принесет гораздо больше пользы, чем конфронтация. Поэтому мы собрали список материалов в открытом доступе, которые помогут вам продолжить знакомство с нейросетями: