Для чего нужны нейросети
Искусственные нейронные сети простыми словами
Когда, за бутылкой пива, я заводил разговор о нейронных сетях — люди обычно начинали боязливо на меня смотреть, грустнели, иногда у них начинал дёргаться глаз, а в крайних случаях они залезали под стол. Но, на самом деле, эти сети просты и интуитивны. Да-да, именно так! И, позвольте, я вам это докажу!
Допустим, я знаю о девушке две вещи — симпатична она мне или нет, а также, есть ли о чём мне с ней поговорить. Если есть, то будем считать это единицей, если нет, то — нулём. Аналогичный принцип возьмем и для внешности. Вопрос: “В какую девушку я влюблюсь и почему?”
Можно подумать просто и бескомпромиссно: “Если симпатична и есть о чём поговорить, то влюблюсь. Если ни то и ни другое, то — увольте.”
Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?
Понятно, что для каждого из нас что-то одно будет важнее. Точнее, у каждого параметра есть его уровень важности, или вернее сказать — вес. Если помножить параметр на его вес, то получится соответственно “влияние внешности” и “влияние болтливости разговора”.
И вот теперь я с чистой совестью могу ответить на свой вопрос:
“Если влияние харизмы и влияние болтливости в сумме больше значения “влюбчивость” то влюблюсь…”
То есть, если я поставлю большой вес “болтологичности” дамы и маленький вес внешности, то в спорной ситуации я влюблюсь в особу, с которой приятно поболтать. И наоборот.
Собственно, это правило и есть нейрон.
Искусственный нейрон — это такая функция, которая преобразует несколько входных фактов в один выходной. Настройкой весов этих фактов, а также порога возбуждения — мы настраиваем адекватность нейрона. В принципе, для многих наука жизни заканчивается на этом уровне, но ведь эта история не про нас, верно?
Сделаем ещё несколько выводов:
Смешно, но параметр “влюбчивости” называется “порогом возбуждения”. Но, дабы эта статья не получила рейтинг “18+”, давайте договоримся говорить просто “порог”, ок?
Нейронная сеть
Не бывает однозначно симпатичных и однозначно общительных дам. Да и влюблённость влюблённости рознь, кто бы что ни говорил. Потому давайте вместо брутальных и бескомпромиссных “0” и “1”, будем использовать проценты. Тогда можно сказать — “я сильно влюблён (80%), или “эта дама не особо разговорчива (20%)”.
Наш примитивный “нейрон-максималист” из первой части уже нам не подходит. Ему на смену приходит “нейрон-мудрец”, результатом работы которого будет число от 0 до 1, в зависимости от входных данных.
“Нейрон-мудрец” может нам сказать: “эта дама достаточно красива, но я не знаю о чём с ней говорить, поэтому я не очень-то ей и восхищён”
К слову говоря, входные факты нейрона называются синапсами, а выходное суждение — аксоном. Связи с положительным весом называются возбуждающими, а с отрицательным — тормозящими. Если же вес равен нулю, то считается, что связи нет (мёртвая связь).
Поехали дальше. Сделаем по этим двум фактам другую оценку: насколько хорошо с такой девушкой работать (сотрудничать)? Будем действовать абсолютно аналогичным образом — добавим мудрый нейрон и настроим веса комфортным для нас образом.
Но, судить девушку по двум характеристикам — это очень грубо. Давайте судить её по трём! Добавим ещё один факт – деньги. Который будет варьироваться от нуля (абсолютно бедная) до единицы (дочь Рокфеллера). Посмотрим, как с приходом денег изменятся наши суждения….
Для себя я решил, что, в плане очарования, деньги не очень важны, но шикарный вид всё же может на меня повлиять, потому вес денег я сделаю маленьким, но положительным.
В работе мне абсолютно всё равно, сколько денег у девушки, поэтому вес сделаю равным нулю.
Оценивать девушку только для работы и влюблённости — очень глупо. Давайте добавим, насколько с ней будет приятно путешествовать:
Соединим все эти три схемы в одну и обнаружим, что мы перешли на более глубокий уровень суждений, а именно: от харизмы, денег и разговорчивости — к восхищению, сотрудничеству и комфортности совместного путешествия. И заметьте — это тоже сигналы от нуля до единицы. А значит, теперь я могу добавить финальный “нейрон-максималист”, и пускай он однозначно ответит на вопрос — “жениться или нет”?
Ладно, конечно же, не всё так просто (в плане женщин). Привнесём немного драматизма и реальности в наш простой и радужный мир. Во-первых, сделаем нейрон «женюсь — не женюсь» — мудрым. Сомнения же присущи всем, так или иначе. И ещё — добавим нейрон «хочу от неё детей» и, чтобы совсем по правде, нейрон “держись от неё подальше».
Я ничего не понимаю в женщинах, и поэтому моя примитивная сеть теперь выглядит как картинка в начале статьи.
Входные суждения называются “входной слой”, итоговые — “выходной слой”, а тот, что скрывается посередине, называется «скрытым». Скрытый слой — это мои суждения, полуфабрикаты, мысли, о которых никто не знает. Скрытых слоёв может быть несколько, а может быть и ни одного.
Долой максимализм.
Помните, я говорил об отрицательном влияние денег на моё желание путешествовать с человеком? Так вот — я слукавил. Для путешествий лучше всего подходит персона, у которой денег не мало, и не много. Мне так интереснее и не буду объяснять почему.
Но тут я сталкиваюсь с проблемой:
Если я ставлю вес денег отрицательным, то чем меньше денег — тем лучше для путешествий.
Если положительным, то чем богаче — тем лучше,
Если ноль — тогда деньги “побоку”.
Чтобы это обойти, я сделаю два нейрона — “денег много” и “денег мало”, и подам им на вход денежный поток от нашей дамы.
Теперь у меня есть два суждения: “много” и “мало”. Если оба вывода незначительны, то буквально получится “ни много — ни мало”. То есть, добавим на выход ещё один нейрон, с отрицательными весами:
“Нимногонимало”. Красные стрелки — положительные связи, синие — отрицательные
Вообще, это значит, что нейроны подобны элементам конструктора. Подобно тому, как процессор делают из транзисторов, мы можем собрать из нейронов мозг. Например, суждение “Или богата, или умна” можно сделать так:
Или-или. Красные стрелки — положительные связи, синие – отрицательные
можно заменить “мудрые” нейроны на “максималистов” и тогда получим логический оператор XOR. Главное — не забыть настроить пороги возбуждения.
В отличие от транзисторов и бескомпромиссной логики типичного программиста “если — то”, нейронная сеть умеет принимать взвешенные решения. Их результаты будут плавно меняться, при плавном изменение входных параметров. Вот она мудрость!
Обращу ваше внимание, что добавление слоя из двух нейронов, позволило нейрону “ни много — ни мало” делать более сложное и взвешенное суждение, перейти на новый уровень логики. От “много” или “мало” — к компромиссному решению, к более глубокому, с философской точки зрения, суждению. А что если добавить скрытых слоёв ещё? Мы способны охватить разумом ту простую сеть, но как насчёт сети, у которой есть 7 слоёв? Способны ли мы осознать глубину её суждений? А если в каждом из них, включая входной, около тысячи нейронов? Как вы думаете, на что она способна?
Представьте, что я и дальше усложнял свой пример с женитьбой и влюблённостью, и пришёл к такой сети. Где-то там в ней скрыты все наши девять нейрончиков, и это уже больше похоже на правду. При всём желании, понять все зависимости и глубину суждений такой сети — попросту невозможно. Для меня переход от сети 3х3 к 7х1000 — сравним с осознанием масштабов, если не вселенной, то галактики — относительно моего роста. Попросту говоря, у меня это не получится. Решение такой сети, загоревшийся выход одного из её нейронов — будет необъясним логикой. Это то, что в быту мы можем назвать “интуицией” (по крайней мере – “одно из..”). Непонятное желание системы или её подсказка.
Но, в отличие от нашего синтетического примера 3х3, где каждый нейрон скрытого слоя достаточно чётко формализован, в настоящей сети это не обязательно так. В хорошо настроенной сети, чей размер не избыточен для решения поставленной задачи — каждый нейрон будет детектировать какой-то признак, но это абсолютно не значит, что в нашем языке найдётся слово или предложение, которое сможет его описать. Если проецировать на человека, то это — какая-то его характеристика, которую ты чувствуешь, но словами объяснить не можешь.
Обучение.
Несколькими строчками ранее я обмолвился о хорошо настроенной сети, чем вероятно спровоцировал немой вопрос: “А как мы можем настроить сеть, состоящую из нескольких тысяч нейронов? Сколько “человеколет” и погубленных жизней нужно на это. Боюсь предположить ответ на последний вопрос. Куда лучше автоматизировать такой процесс настройки — заставить сеть саму настраивать себя. Такой процесс автоматизации называется обучением. И чтобы дать поверхностное о нём представление, я вернусь к изначальной метафоре об “очень важном вопросе”:
Мы появляемся в этом мире с чистым, невинным мозгом и нейронной сетью, абсолютно не настроенной относительно дам. Её необходимо как-то грамотно настроить, дабы счастье и радость пришли в наш дом. Для этого нам нужен некоторый опыт, и тут есть несколько путей по его добыче:
1) Обучение с учителем (для романтиков). Насмотреться на голливудские мелодрамы и начитаться слезливых романов. Или же насмотреться на своих родителей и/или друзей. После этого, в зависимости от выборки, отправиться проверять полученные знания. После неудачной попытки — повторить всё заново, начиная с романов.
2) Обучение без учителя (для отчаянных экспериментаторов). Попробовать методом “тыка” жениться на десятке-другом женщин. После каждой женитьбы, в недоумение чесать репу. Повторять, пока не поймёшь, что надоело, и ты “уже знаешь, как это бывает”.
3) Обучение без учителя, вариант 2 (путь отчаянных оптимистов). Забить на всё, что-то делать по жизни, и однажды обнаружить себя женатым. После этого, перенастроить свою сеть в соответствие с текущей реальностью, дабы всё устраивало.
Далее, по логике я должен расписать всё это подробно, но без математики это будет слишком философично. Потому считаю, что мне стоит на этом остановиться. Быть может в другой раз?
Всё вышесказанное справедливо для искусственной нейронной сети типа “персептрон”. Остальные сети похожи на нее по основным принципам, но имеют свою нюансы.
Хороших вам весов и отличных обучающих выборок! Ну а если это уже и не нужно, то расскажите об этом кому-нибудь ещё.
Нейросети для чайников. Начало
Так получилось, что в университете тема нейросетей успешно прошла мимо моей специальности, несмотря на огромный интерес с моей стороны. Попытки самообразования несколько раз разбивались невежественным челом о несокрушимые стены цитадели науки в облике непонятных «с наскока» терминов и путанных объяснений сухим языком вузовских учебников.
В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».
Заинтересовавшихся прошу под кат.
Для чего же нужны нейросети?
Нейросеть – это обучаемая система. Она действует не только в соответствии с заданным алгоритмом и формулами, но и на основании прошлого опыта. Этакий ребенок, который с каждым разом складывает пазл, делая все меньше ошибок.
И, как принято писать у модных авторов – нейросеть состоит из нейронов.
Тут нужно сделать остановку и разобраться.
Договоримся, что нейрон – это просто некая воображаемая чёрная коробка, у которой кучка входных отверстий и одно выходное.
Причем как входящая, так и исходящая информация может быть аналоговой (чаще всего так и будет).
Как выходной сигнал формируется из кучи входных – определяет внутренний алгоритм нейрона.
Для примера напишем небольшую программу, которая будет распознавать простые изображения, скажем, буквы русского языка на растровых изображениях.
Условимся, что в исходном состоянии наша система будет иметь «пустую» память, т.е. этакий новорожденный мозг, готовый к бою.
Для того чтобы заставить его корректно работать, нам нужно будет потратить время на обучение.
Уворачиваясь от летящих в меня помидоров, скажу, что писать будем на Delphi (на момент написания статьи была под рукой). Если возникнет необходимость – помогу перевести пример на другие языки.
Также прошу легкомысленно отнестись к качеству кода – программа писалась за час, просто чтобы разобраться с темой, для серьезных задач такой код вряд ли применим.
Итак, исходя из поставленной задачи — сколько вариантов выхода может быть? Правильно, столько, сколько букв мы будем уметь определять. В алфавите их пока только 33, на том и остановимся.
Далее, определимся со входными данными.Чтобы слишком не заморачиватсья – будем подавать на вход битовый массив 30х30 в виде растрового изображения:
В итоге – нужно создать 33 нейрона, у каждого из которых будет 30х30=900 входов.
Создадим класс для нашего нейрона:
Создадим массив нейронов, по количеству букв:
Теперь вопрос – где мы будем хранить «память» нейросети, когда программа не работает?
Чтобы не углубляться в INI или, не дай бог, базы данных, я решил хранить их в тех же растровых изображениях 30х30.
Вот например, память нейрона «К» после прогона программы по разным шрифтам:
Как видно, самые насыщенные области соответствуют наиболее часто встречаемым пикселям.
Будем загружать «память» в каждый нейрон при его создании:
В начале работы необученной программы, память каждого нейрона будет белым пятном 30х30.
Распознавать нейрон будет так:
— Берем 1й пиксель
— Сравниваем его с 1м пикселем в памяти (там лежит значение 0..255)
— Сравниваем разницу с неким порогом
— Если разница меньше порога – считаем, что в данной точке буква похожа на лежащую в памяти, добавляем +1 к весу нейрона.
И так по всем пикселям.
Вес нейрона – это некоторое число (в теории до 900), которое определяется степенью сходства обработанной информации с хранимой в памяти.
В конце распознавания у нас будет набор нейронов, каждый из которых считает, что он прав на сколько-то процентов. Эти проценты – и есть вес нейрона. Чем больше вес, тем вероятнее, что именно этот нейрон прав.
Теперь будем скармливать программе произвольное изображение и пробегать каждым нейроном по нему:
Как только закончится цикл для последнего нейрона – будем выбирать из всех тот, у которого вес больше:
Именно по вот этому значению max_n, программа и скажет нам, что, по её мнению, мы ей подсунули.
По началу это будет не всегда верно, поэтому нужно сделать алгоритм обучения.
Само обновление памяти будем делать так:
Т.е. если данная точка в памяти нейрона отсутствует, но учитель говорит, что она есть в этой букве – мы её запоминаем, но не полностью, а только наполовину. С дальнейшим обучением, степень влияния данного урока будет увеличиваться.
Вот несколько итераций для буквы Г:
На этом наша программа готова.
Обучение
Начнем обучение.
Открываем изображения букв и терпеливо указываем программе на её ошибки:
Через некоторое время программа начнет стабильно определять даже не знакомые ей ранее буквы:
Заключение
Программа представляет собой один сплошной недостаток – наша нейросеть очень глупа, она не защищена от ошибок пользователя при обучении и алгоритмы распознавания просты как палка.
Зато она дает базовые знания о функционировании нейросетей.
Если данная статья заинтересует уважаемых хабравчан, то я продолжу цикл, постепенно усложняя систему, вводя дополнительные связи и веса, рассмотрю какую-нибудь из популярных архитектур нейросетей и т.д.
Поиздеваться над нашим свежерожденный интеллектом вы можете, скачав программу вместе с исходниками тут.
За сим откланяюсь, спасибо за чтение.
UPD: У нас получилась заготовка для нейросети. Пока что это ещё ей не является, но в следующей статье мы постараемся сделать из неё полноценную нейросеть.
Спасибо Shultc за замечание.
Нейросети: как искусственный интеллект помогает в бизнесе и жизни
Читайте оригинал статьи в Блоге 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 году, однако люди из шахмат никуда не делись, а именитые гроссмейстеры до сих пор попадают на обложки глянцевых журналов.
Кооперация с машинами принесет гораздо больше пользы, чем конфронтация. Поэтому мы собрали список материалов в открытом доступе, которые помогут вам продолжить знакомство с нейросетями: