Как выглядит нейросеть искусственного интеллекта
Вот так выглядит нейросеть без фреймворков
Чтобы лучше понять глубокое обучение, Data Scientist из Hewleet Packard написал нейросеть только при помощи NumPy. Знать свои инструменты необходимо любому специалисту, поэтому наш курс по науке о данных включает раздел «Математика для Data Science». Под катом вы найдёте не только реализацию нейронной сети. Статья начинается со знакомства с книгой автора, которая, по его словам, будет полезна, если вы хотите создать достойное портфолио Machine Learning.
Книга по ссылке ниже — продолжение этой статьи. В ней рассказывается о реализации проектов нейронных сетей в областях распознавания лиц, анализа настроений, удаления шума и т. д. Каждая глава освещает отдельную архитектуру нейросети: это свёрточные сети, сети долгой краткосрочной памяти и сиамские нейронные сети. Если вы хотите создать сильное портфолио в области ML, включающее проекты глубокого обучения, присмотритесь к этой книге, скачать которую вы можете здесь.
Что такое нейросеть?
Большинство вводных текстов приводят аналогию с мозгом. Но я считаю, что проще описать нейросеть как математическую функцию, которая отображает данное входное значение на желаемое выходное. Вот из каких компонентов состоит нейросеть:
Произвольное число скрытых слоёв.
Множество весов и смещений между всеми слоями — W и b.
Выбираемой нами функция активации для каждого слоя — σ. Здесь воспользуемся сигмоидной функцией потерь.
Обратите внимание: входной слой не учитывается в подсчёте количества слоёв.
Архитектура двухслойной нейронной сети
Создать класс нейросети на Python просто:
Обучаем сеть
Вот её вывод в виде формулы:
Веса W и смещения b — это только переменные, которые влияют на вывод — ŷ. Естественно, правильность значений и весов предопределяется предсказательной силой. Процесс тонкой настройки весов и смещений на основании входных данных известен как обучение нейронной сети. Каждая итерация обучения состоит из:
Расчёта спрогнозированного вывода ŷ, известного как прямое распространение.
Обновления весов и смещений, известного как обратное распространение.
Диаграмма ниже иллюстрирует обучение:
Прямое распространение
Как мы видим, прямое распространение — это просто. Вывод нашей нейросети будет таким:
Добавим прямое распространение в код. Для простоты возьмём смещение, равное нулю:
Однако мы по-прежнему нуждаемся в оценке точности предсказаний. Именно в этом поможет функция потерь.
Функция потерь
Функций потерь множество: диктовать её выбор должна природа проблемы. Здесь задействуем функцию суммы квадратов ошибок.
Это просто разница между каждым спрогнозированным и реальным значениями. Она возводится в квадрат, чтобы получить абсолютное значение. Цель обучения — найти лучшее множество значение весов и смещений, которое минимизирует функцию потерь.
Обратное распространение
Теперь, когда мы измерили ошибку предсказаний (потерю), нужно найти способ распространить ошибку обратно, обновив при этом смещения и веса. Чтобы узнать полученную сумму, мы должны найти производную функции потерь. Напомню, что производная функции — это просто её уклон.
Алгоритм градиентного спуска
Имея производную, мы можем обновлять веса и смещения, увеличивая или уменьшая её. Смотрите график выше. Метод известен как градиентный спуск. Однако нельзя напрямую рассчитать производную функции потерь относительно весов и смещений: уравнение просто не содержит их. Чтобы вычислить производную, понадобится правило цепочки:
Правило цепочки для вычисления производной относительно весов и смещений.
Обратите внимание: для простоты я показываю частную производную, предполагая сеть в один слой.
Жутковато, но мы получили то, что нужно — производную относительно весов и смещений, так что можно соответствующим образом настроить веса. Добавим обратное распространение в код:
Чтобы лучше понять приложение интегрального исчисления и правило цепочки в обратном распространении, я настоятельно рекомендую это учебное руководство от 3Blue1Brown:
Соберём всё воедино
У нас есть код обратного и прямого распространений. Посмотрим, как работает нейросеть. Вот набор данных:
Сеть должна представить идеальный для этой функции набор весов и смещений. Замечу, что определять веса только через исследование — не совсем тривиально. Обучим сеть на 1500 итерациях и посмотрим, что произойдёт. Наблюдая за потерями на графике ниже, мы ясно увидим монотонное убывание к минимуму. Это соответствует алгоритму градиентного спуска, о котором говорилось выше.
Посмотрим на вывод:
Прогнозы после полутора тысяч итераций
Мы сделали это! Обратное и прямое распространения с успехом натренировали сеть, а предсказания сошлись с истинными значениями. Отмечу, что между предсказанными и истинными значениями есть небольшая разница. Она желательна, поскольку предотвращает переобучение и позволяет нейросети лучше обобщать данные, которых она не видела.
Что дальше?
К счастью для нас, это далеко не конец путешествия. О нейронных сетях и глубоком обучении ещё многое предстоит изучить. Например:
Какие функции активации, кроме сигмоидной, можно использовать?
Как работать со скоростью обучения нейросетей?
Как при помощи CNN классифицировать изображения?
Продолжить изучение Machine Learning и Data Science вы сможете на наших курсах. Также вы можете узнать, как мы готовим специалистов в других направлениях.
Data Science и Machine Learning
Искусственные нейронные сети простыми словами
Когда, за бутылкой пива, я заводил разговор о нейронных сетях — люди обычно начинали боязливо на меня смотреть, грустнели, иногда у них начинал дёргаться глаз, а в крайних случаях они залезали под стол. Но, на самом деле, эти сети просты и интуитивны. Да-да, именно так! И, позвольте, я вам это докажу!
Допустим, я знаю о девушке две вещи — симпатична она мне или нет, а также, есть ли о чём мне с ней поговорить. Если есть, то будем считать это единицей, если нет, то — нулём. Аналогичный принцип возьмем и для внешности. Вопрос: “В какую девушку я влюблюсь и почему?”
Можно подумать просто и бескомпромиссно: “Если симпатична и есть о чём поговорить, то влюблюсь. Если ни то и ни другое, то — увольте.”
Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?
Понятно, что для каждого из нас что-то одно будет важнее. Точнее, у каждого параметра есть его уровень важности, или вернее сказать — вес. Если помножить параметр на его вес, то получится соответственно “влияние внешности” и “влияние болтливости разговора”.
И вот теперь я с чистой совестью могу ответить на свой вопрос:
“Если влияние харизмы и влияние болтливости в сумме больше значения “влюбчивость” то влюблюсь…”
То есть, если я поставлю большой вес “болтологичности” дамы и маленький вес внешности, то в спорной ситуации я влюблюсь в особу, с которой приятно поболтать. И наоборот.
Собственно, это правило и есть нейрон.
Искусственный нейрон — это такая функция, которая преобразует несколько входных фактов в один выходной. Настройкой весов этих фактов, а также порога возбуждения — мы настраиваем адекватность нейрона. В принципе, для многих наука жизни заканчивается на этом уровне, но ведь эта история не про нас, верно?
Сделаем ещё несколько выводов:
Смешно, но параметр “влюбчивости” называется “порогом возбуждения”. Но, дабы эта статья не получила рейтинг “18+”, давайте договоримся говорить просто “порог”, ок?
Нейронная сеть
Не бывает однозначно симпатичных и однозначно общительных дам. Да и влюблённость влюблённости рознь, кто бы что ни говорил. Потому давайте вместо брутальных и бескомпромиссных “0” и “1”, будем использовать проценты. Тогда можно сказать — “я сильно влюблён (80%), или “эта дама не особо разговорчива (20%)”.
Наш примитивный “нейрон-максималист” из первой части уже нам не подходит. Ему на смену приходит “нейрон-мудрец”, результатом работы которого будет число от 0 до 1, в зависимости от входных данных.
“Нейрон-мудрец” может нам сказать: “эта дама достаточно красива, но я не знаю о чём с ней говорить, поэтому я не очень-то ей и восхищён”
К слову говоря, входные факты нейрона называются синапсами, а выходное суждение — аксоном. Связи с положительным весом называются возбуждающими, а с отрицательным — тормозящими. Если же вес равен нулю, то считается, что связи нет (мёртвая связь).
Поехали дальше. Сделаем по этим двум фактам другую оценку: насколько хорошо с такой девушкой работать (сотрудничать)? Будем действовать абсолютно аналогичным образом — добавим мудрый нейрон и настроим веса комфортным для нас образом.
Но, судить девушку по двум характеристикам — это очень грубо. Давайте судить её по трём! Добавим ещё один факт – деньги. Который будет варьироваться от нуля (абсолютно бедная) до единицы (дочь Рокфеллера). Посмотрим, как с приходом денег изменятся наши суждения….
Для себя я решил, что, в плане очарования, деньги не очень важны, но шикарный вид всё же может на меня повлиять, потому вес денег я сделаю маленьким, но положительным.
В работе мне абсолютно всё равно, сколько денег у девушки, поэтому вес сделаю равным нулю.
Оценивать девушку только для работы и влюблённости — очень глупо. Давайте добавим, насколько с ней будет приятно путешествовать:
Соединим все эти три схемы в одну и обнаружим, что мы перешли на более глубокий уровень суждений, а именно: от харизмы, денег и разговорчивости — к восхищению, сотрудничеству и комфортности совместного путешествия. И заметьте — это тоже сигналы от нуля до единицы. А значит, теперь я могу добавить финальный “нейрон-максималист”, и пускай он однозначно ответит на вопрос — “жениться или нет”?
Ладно, конечно же, не всё так просто (в плане женщин). Привнесём немного драматизма и реальности в наш простой и радужный мир. Во-первых, сделаем нейрон «женюсь — не женюсь» — мудрым. Сомнения же присущи всем, так или иначе. И ещё — добавим нейрон «хочу от неё детей» и, чтобы совсем по правде, нейрон “держись от неё подальше».
Я ничего не понимаю в женщинах, и поэтому моя примитивная сеть теперь выглядит как картинка в начале статьи.
Входные суждения называются “входной слой”, итоговые — “выходной слой”, а тот, что скрывается посередине, называется «скрытым». Скрытый слой — это мои суждения, полуфабрикаты, мысли, о которых никто не знает. Скрытых слоёв может быть несколько, а может быть и ни одного.
Долой максимализм.
Помните, я говорил об отрицательном влияние денег на моё желание путешествовать с человеком? Так вот — я слукавил. Для путешествий лучше всего подходит персона, у которой денег не мало, и не много. Мне так интереснее и не буду объяснять почему.
Но тут я сталкиваюсь с проблемой:
Если я ставлю вес денег отрицательным, то чем меньше денег — тем лучше для путешествий.
Если положительным, то чем богаче — тем лучше,
Если ноль — тогда деньги “побоку”.
Чтобы это обойти, я сделаю два нейрона — “денег много” и “денег мало”, и подам им на вход денежный поток от нашей дамы.
Теперь у меня есть два суждения: “много” и “мало”. Если оба вывода незначительны, то буквально получится “ни много — ни мало”. То есть, добавим на выход ещё один нейрон, с отрицательными весами:
“Нимногонимало”. Красные стрелки — положительные связи, синие — отрицательные
Вообще, это значит, что нейроны подобны элементам конструктора. Подобно тому, как процессор делают из транзисторов, мы можем собрать из нейронов мозг. Например, суждение “Или богата, или умна” можно сделать так:
Или-или. Красные стрелки — положительные связи, синие – отрицательные
можно заменить “мудрые” нейроны на “максималистов” и тогда получим логический оператор XOR. Главное — не забыть настроить пороги возбуждения.
В отличие от транзисторов и бескомпромиссной логики типичного программиста “если — то”, нейронная сеть умеет принимать взвешенные решения. Их результаты будут плавно меняться, при плавном изменение входных параметров. Вот она мудрость!
Обращу ваше внимание, что добавление слоя из двух нейронов, позволило нейрону “ни много — ни мало” делать более сложное и взвешенное суждение, перейти на новый уровень логики. От “много” или “мало” — к компромиссному решению, к более глубокому, с философской точки зрения, суждению. А что если добавить скрытых слоёв ещё? Мы способны охватить разумом ту простую сеть, но как насчёт сети, у которой есть 7 слоёв? Способны ли мы осознать глубину её суждений? А если в каждом из них, включая входной, около тысячи нейронов? Как вы думаете, на что она способна?
Представьте, что я и дальше усложнял свой пример с женитьбой и влюблённостью, и пришёл к такой сети. Где-то там в ней скрыты все наши девять нейрончиков, и это уже больше похоже на правду. При всём желании, понять все зависимости и глубину суждений такой сети — попросту невозможно. Для меня переход от сети 3х3 к 7х1000 — сравним с осознанием масштабов, если не вселенной, то галактики — относительно моего роста. Попросту говоря, у меня это не получится. Решение такой сети, загоревшийся выход одного из её нейронов — будет необъясним логикой. Это то, что в быту мы можем назвать “интуицией” (по крайней мере – “одно из..”). Непонятное желание системы или её подсказка.
Но, в отличие от нашего синтетического примера 3х3, где каждый нейрон скрытого слоя достаточно чётко формализован, в настоящей сети это не обязательно так. В хорошо настроенной сети, чей размер не избыточен для решения поставленной задачи — каждый нейрон будет детектировать какой-то признак, но это абсолютно не значит, что в нашем языке найдётся слово или предложение, которое сможет его описать. Если проецировать на человека, то это — какая-то его характеристика, которую ты чувствуешь, но словами объяснить не можешь.
Обучение.
Несколькими строчками ранее я обмолвился о хорошо настроенной сети, чем вероятно спровоцировал немой вопрос: “А как мы можем настроить сеть, состоящую из нескольких тысяч нейронов? Сколько “человеколет” и погубленных жизней нужно на это. Боюсь предположить ответ на последний вопрос. Куда лучше автоматизировать такой процесс настройки — заставить сеть саму настраивать себя. Такой процесс автоматизации называется обучением. И чтобы дать поверхностное о нём представление, я вернусь к изначальной метафоре об “очень важном вопросе”:
Мы появляемся в этом мире с чистым, невинным мозгом и нейронной сетью, абсолютно не настроенной относительно дам. Её необходимо как-то грамотно настроить, дабы счастье и радость пришли в наш дом. Для этого нам нужен некоторый опыт, и тут есть несколько путей по его добыче:
1) Обучение с учителем (для романтиков). Насмотреться на голливудские мелодрамы и начитаться слезливых романов. Или же насмотреться на своих родителей и/или друзей. После этого, в зависимости от выборки, отправиться проверять полученные знания. После неудачной попытки — повторить всё заново, начиная с романов.
2) Обучение без учителя (для отчаянных экспериментаторов). Попробовать методом “тыка” жениться на десятке-другом женщин. После каждой женитьбы, в недоумение чесать репу. Повторять, пока не поймёшь, что надоело, и ты “уже знаешь, как это бывает”.
3) Обучение без учителя, вариант 2 (путь отчаянных оптимистов). Забить на всё, что-то делать по жизни, и однажды обнаружить себя женатым. После этого, перенастроить свою сеть в соответствие с текущей реальностью, дабы всё устраивало.
Далее, по логике я должен расписать всё это подробно, но без математики это будет слишком философично. Потому считаю, что мне стоит на этом остановиться. Быть может в другой раз?
Всё вышесказанное справедливо для искусственной нейронной сети типа “персептрон”. Остальные сети похожи на нее по основным принципам, но имеют свою нюансы.
Хороших вам весов и отличных обучающих выборок! Ну а если это уже и не нужно, то расскажите об этом кому-нибудь ещё.
Нейросети: как искусственный интеллект помогает в бизнесе и жизни
Читайте оригинал статьи в Блоге 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 году, однако люди из шахмат никуда не делись, а именитые гроссмейстеры до сих пор попадают на обложки глянцевых журналов.
Кооперация с машинами принесет гораздо больше пользы, чем конфронтация. Поэтому мы собрали список материалов в открытом доступе, которые помогут вам продолжить знакомство с нейросетями: