Нейронные сети это искусственный интеллект

Содержание

Нейросети: как искусственный интеллект помогает в бизнесе и жизни

Читайте оригинал статьи в Блоге DTI.
В работе Oxford Martin School 2013 года говорилось о том, что 47% всех рабочих мест может быть автоматизировано в течение следующих 20 лет. Основным драйвером этого процесса является применение искусственного интеллекта, работающего с большими данными, как более эффективной замены человеку.

Машины теперь способны решать все больше процессов, за которые раньше отвечали люди. Кроме того, делают это качественнее и во многих случаях дешевле. О том, что это значит для рынка труда, в июле этого года говорил Герман Греф, выступая перед студентами Балтийского федерального университета им. Канта:
“Мы перестаём брать на работу юристов, которые не знают, что делать с нейронной сетью. <…> Вы — студенты вчерашнего дня. Товарищи юристы, забудьте свою профессию. В прошлом году 450 юристов, которые у нас готовят иски, ушли в прошлое, были сокращены. У нас нейронная сетка готовит исковые заявления лучше, чем юристы, подготовленные Балтийским федеральным университетом. Их мы на работу точно не возьмем.”
Продолжая освещать #технобудущее, команда DTI подготовила все, что необходимо знать для первого погружения в нейронные сети: как они устроены, почему все больше компаний предпочитают нейросети живым сотрудникам и какой потенциал по оптимизации различных процессов несет эта технология.

Искусственный интеллект, машинное обучение и нейросети: в чем разница

Нейронная сеть – один из способов реализации искусственного интеллекта (ИИ).
В разработке ИИ существует обширная область — машинное обучение. Она изучает методы построения алгоритмов, способных самостоятельно обучаться. Это необходимо, если не существует четкого решения какой-либо задачи. В этом случае проще не искать правильное решение, а создать механизм, который сам придумает метод для его поиска.
#справка Во многих статьях можно встретить термин «глубокое» — или «глубинное» — обучение. Под ним понимают алгоритмы машинного обучения, использующие много вычислительных ресурсов. В большинстве случаев под ним можно понимать просто “нейронные сети”.
Чтобы не запутаться в понятиях «искусственный интеллект», «машинное обучение» и «глубокое обучение», предлагаем посмотреть на визуализацию их развития:

#интересное Существует два типа искусственного интеллекта (ИИ): слабый (узконаправленный) и сильный (общий). Слабый ИИ предназначен для выполнения узкого списка задач. Такими являются голосовые помощники 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 году, однако люди из шахмат никуда не делись, а именитые гроссмейстеры до сих пор попадают на обложки глянцевых журналов.
Кооперация с машинами принесет гораздо больше пользы, чем конфронтация. Поэтому мы собрали список материалов в открытом доступе, которые помогут вам продолжить знакомство с нейросетями:

Нейронные сети и языки программирования

Интересную тему Вы затронули. Такую, на которую в двух словах и не ответишь. Но попробуем.
4. Начнем с конца.
В последнее время на русском книг по НС что-то не припомню. Классикой жанра считается книга
«Хайкин. Нейронные сети полный курс.» — но вышла она давненько, поэтому новомодных подходов там нет, зато азы можно понять.
Еще -https://www.intuit.ru/studies/courses/607/463/info
На английском можно порекомендовать базовый курс http://www.deeplearningbook.org/
На русском — для совсем «нулевого» уровня:
-https://habrahabr.ru/post/312450/
-https://habrahabr.ru/post/340792/
-https://habrahabr.ru/company/oleg-bunin/blog/340184/
Есть на русском неплохой курс от Stepik — https://stepik.org/course/401/
есть https://www.asozykin.ru/courses/nnpython
есть и другие — найти не сложно.
1. Теперь про то, почему и на каких языках пишутся сети.
Аксиома #0 — написать сеть можно на любом языке. Для подтверждения — можна порыться в сети и накопать книг по машинному обучению и deep learning с реализациями на Java, C#, JavaScript (!!), Go, R, Erlang, Julia, Haskell и далее по списку.
Возьмем две крайности С++ и Python. (Остальные языки — где-то посредине между ними).
С++ обладает несомненным преимуществом в скорости выполнения (только Go еще хоть как-то приближается к этому уровню). Просто даже по тому, что это язык максимально приближенный к «железу», максимально использующий все особенности архитектуры процессора, памяти и т.д (Ближе и быстрее в выполнении — только Ассемблер). Одновременно, это язык, на котором сложнее всего и дольше всего собственно писать код. Иногда 5 строк на Python эквивалентны 20-40 строкам на С++. Получается все логично. Надо быстро (относительно) выполнить исследование, построить модель, протестировать ее — выбираем Python. Надо что-бы процесс принятия решения (расчеты) были максимально быстрыми — выбираем С++. Говорят так: «день программирования и десять секунд исполнения -> С++, 10 минут написания кода и 5 минут его выполнение -> Python». В некоторых областях — например — распознавании визуальных образов, отслеживание работоспособности оборудования, киберсекьюрити, распознавание голоса, даже в «быстрой» торговле на биржах — скорость критична. В других — той-же медицинской диагностике, маркетинге, экономическом анализе, распознавании текстов, сентиментном анализе, агротехнических применениях и пр. скорость значения не имеет.
Обратите внимание, что очень большое количество библиотек того-же Python’a, как и сам его интерпретатор (по-крайней мере, основная реализация — СPython) написаны на С++. Иначе выполнение кода занимало бы еще больше времени. Примерно так-же обстоят дела и с другими языками программирования.
2. Есть-ли смысл использовать сторонние библиотеки.
Это зависит от того, какую цель вы перед собой ставите. Стороння библиотека — это многократно и всесторонне проверенный набор программ, которые оптимизированы (!!), отлажены (!!!), задокументированы и использованы. В них реализовано примерно 99.9% того, что потребуется начинающему «строителю сетей». Считаете, что сможете какой-то из алгоритмов реализовать лучше — дерзайте. Только помните, что одно дело написать учебную программку для себя(типа вот такого — https://habrahabr.ru/post/271563/) , другое дело — отдать ее в продакшн. Где любой сбой, отказ или ошибка могут стоить пользователю больших денег.
Кстати, серьезные сети никто сам не реализовывает — берут тот-же TensorFlow, PyBrian и вперед.(еще одна книга — Bonnin R. Building Machine Learning Projects with TensorFlow).
Таким образом, на этапе обучения полезно именно самому писать коды (чем многие, кстати пренебрегают, и очень зря) , что-бы лучше понять, как алгоритмы работают, их ограничения, сильные и слабые стороны и т.д. А для реальной работы — пользоваться готовыми пакетами, не изобретая велосипед, экономя время на отладку и интеллектуальную часть процедуры анализа (а она всегда будет в реальном исследовании). А вот когда дозреете до того, что придумаете свой супералгоритм (ну или просто такой, который нужен для решения именно вашей задачи, которую до вас никто никогда не решал) или найдете способ улучшить существующий — вот тогда и будете писать все «с нуля».
3. Замечание про «нормальная сеть на 100-300 строчек кода». Сегодня стало модно говорить о нейронных сетях везде и повсюду, даже там, где они ни к чему. Конечно, гораздо пафоснее сказать «я занимаюсь глубинным обучением нейронных сетей», чем сказать «я строю линейную регрессионную модель». Модель на 100 строчек кода (на С++, Python, Java — не суть важно) это на самом деле действительно либо регрессионная, либо классификационная, либо кластеризационная, либо дискрименационная задача, которая вполне спокойно решается без всякого нагнетания тумана в виде «нейронных сетей». Если вдуматься и проанализировать, то все задачи машинного обучения — это в конечном итоге задачи оптимизации. А настоящие нейронные сети начинаются там, где применение аналитических или близких к ним методов оптимизации становятся столь сложными, что не поддаются решению и единственным методом поиском оптимума остается тот самый градиентный спуск. (Т.е. — типы задач все те же, меняется только инструмент). И вот там уже 100 строчками кода не отделаешься. И вообще-то говоря нейронные сети и глубокое обучение — это часть науки, которая называется Data Science. И свое «вхождение» в эту науку следует начинать не с задач «компьютерного зрения», «как выиграть на форексе/криптобирже» или «построения универсального игрока», а с освоения базовых, фундаментальных вещей — статистики и методов проверки гипотез, машинного обучения, языков программирования, методов алгоритмизации, визуализации, баз данных и т.д.
Добавлено через 4 часа 27 минут
Пока писал — вспомнил еще одну неплохую и свежую книгу по нейросетям (2017). И к тому же — на Python:
«Рашид, Тарик-Создаем нейронную сеть»

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

«Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред» — первый закон робототехники Айзека Азимова, наверное, знаком даже тем, кто не очень любит научную фантастику. Тем более что фантастика уже становится реальностью, а искусственный интеллект (ИИ) постепенно занимает все более заметное место в разных областях жизни человека. Пока он не настолько развит, чтобы бросить вызов человечеству, но уже вполне способен прийти на помощь там, где человеческий интеллект не справляется

Зарождение разума

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

Близкие современным представления о задачах искусственного интеллекта сформировались в XIX столетии. В 1830-е годы английский математик Чарлз Бэббидж придумал концепцию аналитической машины, которая, как утверждал разработчик, могла бы рассчитывать ходы для игры в шахматы. Менее чем через столетие — в 1914 году — концепция претворилась в жизнь: директор одного из испанских технических институтов Леонардо Торрес де Кеведо изготовил электромеханическое устройство, способное разыгрывать простейшие шахматные эндшпили.

Впрочем, периодом рождения понятия «искусственный интеллект» принято считать 1930-е годы, а его создателем — английского математика Алана Тьюринга. Предложенная им в 1936 году абстрактная вычислительная машина Тьюринга позволила формализовать понятие алгоритма, которое до сих пор используется во множестве теоретических и практических исследований. Позднее — в 1950 году — Тьюринг предложил считать интеллектуальной такую машину, которую испытатель в процессе общения с ней не сможет отличить от человека, и разработал для оценки машинного интеллекта специальный тест.

Сам термин «искусственный интеллект» (artificial intelligence, AI) появился уже после смерти Тьюринга — в 1956 году в ходе конференции в Университете Дартмута (США), собравшей ведущих ученых, работающих в этом направлении, а его непосредственным автором считается Джон МакКарти, основоположник функционального программирования и изобретатель языка Lisp.

Вопросами искусственного интеллекта в России стали заниматься в середине 1950-х годов, когда в МГУ начал работу семинар «Автоматы и мышление» под руководством профессора А. А. Ляпунова. Среди наиболее значимых достижений отечественных ученых того времени — разработка алгоритма «Кора», моделирующего деятельность мозга при распознавании образов.

В 1965 году Джозеф Вайценбаум из Массачусетского технологического института создал компьютерную программу «Элиза», которая могла вести несложные диалоги. Можно сказать, это был первый чат-бот, прообраз современной Siri. Робот Фредди, разработанный в 1973-м исследователями из Эдинбургского университета, использовал зрение для поиска и сборки моделей. А в 1979-м появилась «Стэнфордская тележка» — первый контролируемый компьютером автономный автомобиль, подобие современных беспилотников. После некоторого спада новый всплеск интереса к ИИ произошел в середине 1990-х. Пожалуй, самым известным успехом этого периода можно считать победу, которую в 1997 году суперкомпьютер IBM Deep Blue одержал над чемпионом мира по шахматам Гарри Каспаровым.

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

Учиться, учиться и учиться…

Концепция, предполагающая обучение искусственного разума как маленького ребенка, а не создание сразу «умного взрослого робота», родилась еще во времена Тьюринга. Машинное обучение (machine learning, ML) призвано сформировать у компьютера способности обнаруживать нечто иное, не входящее в использованный при обучении набор примеров, но обладающее теми же свойствами. Одна из ключевых технологий, позволяющих успешно применять методы машинного обучения, — искусственные нейронные сети.

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

Когнитивные технологии в нефтегазе

Геологоразведка

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

Бурение скважин

Современные нефтяные скважины — чрезвычайно сложные и капиталоемкие сооружения. В некоторых случаях горизонтальный ствол скважины может тянуться на 2–3 километра сквозь нефтеносный слой, толщина которого составляет всего лишь несколько метров. Цена ошибок — когда бур выходит за пределы продуктивного пласта и нужно возвращать его на правильный путь — может быть очень высокой. «Газпром нефть» предполагает использовать возможности искусственного интеллекта при бурении сложных скважин. В режиме реального времени компьютер будет оценивать изменения условий бурения, анализируя такие параметры, как нагрузка на буровом инструменте, сопротивление, температура, вибрация, скорость проходки, и сообщать о риске выхода из продуктивного пласта. В будущем математическая модель бурения позволит по косвенным данным прогнозировать возможные нештатные ситуации, устанавливать оптимальные режимы работы оборудования и даже в реальном времени определять продуктивность пласта, оценивая экономическую эффективность разбуривания конкретного горизонта.

Переработка

Машинное обучение используется и при создании так называемых цифровых двойников технологических установок на нефтеперерабатывающих заводах. Цифровой двойник — это точная виртуальная копия установки, технологического процесса или даже целой цепочки процессов (см. стр. 20). В нем учтены технические параметры железа, химия и физика происходящих процессов. С помощью двойника можно просчитать характеристики получаемой продукции, предсказать и своевременно скорректировать параметры технологического процесса в зависимости от качества сырья и многое другое. Создание двойника — сложнейшая математическая задача, которая с использованием искусственного интеллекта решается намного быстрее и эффективнее. Способная к самообучению система будет постоянно обновлять цифровую модель, все время приближая ее к реальному объекту и учитывая влияние всевозможных внешних факторов. С использованием нейросетей и искусственного интеллекта в «Газпром нефти» уже успешно созданы цифровые модели двух технологических установок Омского НПЗ. В планах компании — оцифровать всю цепочку создания стоимости в сегменте downstream — от транспортировки сырья на НПЗ до продажи готового топлива на АЗС.

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

В 1957 году известный американский ученый в области психологии и нейрофизиологии Фрэнк Розенблатт разработал перцептрон — модель восприятия информации мозгом на основе обучающейся нейронной сети. Спустя пару лет он создал действующую машину «Марк-1», первый нейрокомпьютер. Он был способен распознавать некоторые из букв, написанных на карточках, которые подносили к его глазам-камерам.

Однако развитие этого направления уперлось в несовершенство компьютеров, не обладавших на тот момент необходимой вычислительной мощностью. Фактически всю вторую половину XX века машинное обучение оставалось математической дисциплиной, которой занимались академические ученые. Стремительный переход к практике случился лишь в начале XXI века. У этого было три причины. Первая — возрастающее в геометрической прогрессии количество данных. С одной стороны, их нужно анализировать, с другой — они сами являются материалом для обучения нейросетей. Вторая — снижение стоимости масштабных вычислений и памяти. Наконец, третья причина состояла в том, что были разработаны новые алгоритмы машинного обучения, развивающие идею перцептрона.

Как работает нейронная сеть

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

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

Перцептрон — кибернетическая модель восприятия информации мозгом — состоит из трех типов элементов. Датчики (рецепторы) принимают сигналы из внешней среды. Ассоциативные элементы активируются, получая сигналы от определенного набора рецепторов. Реагирующий элемент формирует ответ на основе сигналов от ассоциативных элементов.

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

Процесс обучения нейросети

Темы для размышлений

Искусственный интеллект уже умеет многое, с его работой мы сталкиваемся ежедневно. Чат-боты широко используются на сайтах для продажи товаров и услуг. Многие с удовольствием пользуются голосовыми помощниками: Siri от Apple, ОК Google, «Алиса» от «Яндекса». Пока это трудно назвать полноценным общением — впрочем, эти системы быстро совершенствуются. Причем делают это уже сами: учатся в процессе общения с людьми.

Инженерам лаборатории Facebook по исследованию искусственного интеллекта удалось создать бота-переговорщика, который умеет врать и торговаться. Для обучения системы использовали более 5,8 тыс. реальных человеческих диалогов, записанных в ходе переговоров. Любопытно, что программа сама выработала навыки вранья, стремясь достичь поставленных целей.

Компания «Яндекс» сегодня пытается изменить алгоритмы поиска в интернете на основе нейронных сетей. В конечном счете результат поиска может не иметь ни одного общего слова с запросом, но будет соответствовать ему по смыслу.

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

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

А вот интересный пример из пищевой промышленности. Знаменитый датский производитель пива Carlsberg планирует использовать высокотехнологичные сенсоры для точной калибровки оттенков вкуса напитка, а искусственный интеллект — для отбора пивоваренных дрожжей. Сходным образом работает искусственный интеллект на Магнитогорском металлургическом комбинате: выдает оператору рекомендации о количестве присадок, необходимых для получения стали с заданными параметрами, учитывая исходный состав сырья.

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

Искусственный интеллект: факты, цифры, деньги

Аналитики консалтинговой компании Gartner прогнозируют, что к 2020 году технологии искусственного интеллекта и машинного обучения будут присутствовать практически во всех новых программных продуктах и сервисах. Их коллеги из IDC (International Data Corporation) подсчитали, что к 2021 году ИИ позволит бизнесу получить дополнительную выручку в размере $1,1 трлн за счет внедрения алгоритмов искусственного интеллекта в системы управления взаимоотношениями с клиентами (CRM). По оценкам исследовательской компании Tractica, объем рынка программного обеспечения для ИИ вырастет с $8,1 млрд в 2018 году до $105,8 млрд к 2025 году. PwC в своем исследовании «Искусственный интеллект: не упустить выгоду» решила заглянуть еще дальше и подсчитала, что к 2030 искусственный интеллект обеспечит рост глобального ВВП на 14%, или $15,7 трлн.

Россию пока сложно отнести к числу лидеров процесса развития систем искусственного интеллекта. Однако аналитический центр TAdviser и компания «Инфосистемы Джет» считают, что отечественный рынок ИИ и машинного обучения, не дотягивающий сегодня и до 1 млрд рублей, к 2020 году вырастет до 28 млрд. Драйверами роста останутся финансовый сектор и ретейл, однако к ним присоединится и промышленность.

Возможно ли восстание машин?

Роботы, восстающие против людей, — излюбленный сюжет фантастов. Сегодня в связи с прогрессом технологий искусственного интеллекта все чаще задаются вопросом, возможно ли такое развитие событий в реальности. По мнению Стивена Хокинга (1942–2018), британского физика-теоретика, одного из самых известных современных ученых и популяризаторов науки, создание искусственного интеллекта, который превзойдет своего создателя и начнет самосовершенствоваться со все возрастающей скоростью, может представлять для человечества угрозу. О вероятности того, что искусственный интеллект в какой-то момент выйдет из-под контроля и решит, что человек ему больше не нужен, говорят и другие исследователи. Впрочем, пока люди используют ограниченный ИИ, который развивается и решает задачи лишь в узкой области и под контролем человека. Реальная опасность выхода искусственного интеллекта из-под контроля с возможными печальными последствиями возникнет, когда будет создан общий искусственный интеллект — компьютерное подобие универсального человеческого разума. По оценкам ученых, компьютер сравняется по своим интеллектуальным возможностям с человеком к 2040-м годам, после чего начнется стремительное формирование суперинтеллекта.

Далее будет представлено максимально простое объяснение того, как работают нейронные сети, а также показаны способы их реализации в Python. Приятная новость для новичков – нейронные сети не такие уж и сложные. Термин нейронные сети зачастую используют в разговоре, ссылаясь на какой-то чрезвычайно запутанный концепт. На деле же все намного проще.

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

Создание нейронных блоков

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

Здесь происходят три вещи. Во-первых, каждый вход умножается на вес (на схеме обозначен красным):

Затем все взвешенные входы складываются вместе со смещением b (на схеме обозначен зеленым):

Наконец, сумма передается через функцию активации (на схеме обозначена желтым):

Функция активации используется для подключения несвязанных входных данных с выводом, у которого простая и предсказуемая форма. Как правило, в качестве используемой функцией активации берется функция сигмоида:

Функция сигмоида выводит только числа в диапазоне (0, 1). Вы можете воспринимать это как компрессию от (−∞, +∞) до (0, 1). Крупные отрицательные числа становятся ~0, а крупные положительные числа становятся ~1.

Простой пример работы с нейронами в Python

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

w = — это просто один из способов написания w1 = 0, w2 = 1 в векторной форме. Присвоим нейрону вход со значением x = . Для более компактного представления будет использовано скалярное произведение.

С учетом, что вход был x = , вывод будет равен 0.999. Вот и все. Такой процесс передачи входных данных для получения вывода называется прямым распространением, или feedforward.

Создание нейрона с нуля в Python

Приступим к имплементации нейрона. Для этого потребуется использовать NumPy. Это мощная вычислительная библиотека Python, которая задействует математические операции:

Python

Узнаете числа? Это тот же пример, который рассматривался ранее. Ответ полученный на этот раз также равен 0.999.

Пример сбор нейронов в нейросеть

Нейронная сеть по сути представляет собой группу связанных между собой нейронов. Простая нейронная сеть выглядит следующим образом:

На вводном слое сети два входа – x1 и x2. На скрытом слое два нейтрона — h1 и h2. На слое вывода находится один нейрон – о1. Обратите внимание на то, что входные данные для о1 являются результатами вывода h1 и h2. Таким образом и строится нейросеть.

Скрытым слоем называется любой слой между вводным слоем и слоем вывода, что являются первым и последним слоями соответственно. Скрытых слоев может быть несколько.

Пример прямого распространения FeedForward

Давайте используем продемонстрированную выше сеть и представим, что все нейроны имеют одинаковый вес w = , одинаковое смещение b = 0 и ту же самую функцию активации сигмоида. Пусть h1, h2 и o1 сами отметят результаты вывода представленных ими нейронов.

Что случится, если в качестве ввода будет использовано значение х = ?

Результат вывода нейронной сети для входного значения х = составляет 0.7216. Все очень просто.

Нейронная сеть может иметь любое количество слоев с любым количеством нейронов в этих слоях.

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

Создание нейронной сети прямое распространение FeedForward

Далее будет показано, как реализовать прямое распространение feedforward в отношении нейронной сети. В качестве опорной точки будет использована следующая схема нейронной сети:

Python

Мы вновь получили 0.7216. Похоже, все работает.

Пример тренировки нейронной сети — минимизация потерь, Часть 1

Предположим, у нас есть следующие параметры:

Имя/Name Вес/Weight (фунты) Рост/Height (дюймы) Пол/Gender
Alice 133 65 F
Bob 160 72 M
Charlie 152 70 M
Diana 120 60 F

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

Мужчины Male будут представлены как 0, а женщины Female как 1. Для простоты представления данные также будут несколько смещены.

Имя/Name Вес/Weight (минус 135) Рост/Height (минус 66) Пол/Gender
Alice -2 -1 1
Bob 25 6 0
Charlie 17 4 0
Diana -15 -6 1

Для оптимизации здесь произведены произвольные смещения 135 и 66. Однако, обычно для смещения выбираются средние показатели.

Потери

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

В данном случае будет использоваться среднеквадратическая ошибка (MSE) потери:

Давайте разберемся:

  • n – число рассматриваемых объектов, которое в данном случае равно 4. Это Alice, Bob, Charlie и Diana;
  • y – переменные, которые будут предсказаны. В данном случае это пол человека;
  • ytrue – истинное значение переменной, то есть так называемый правильный ответ. Например, для Alice значение ytrue будет 1, то есть Female;
  • ypred – предполагаемое значение переменной. Это результат вывода сети.

(ytrue — ypred)2 называют квадратичной ошибкой (MSE). Здесь функция потери просто берет среднее значение по всем квадратичным ошибкам. Отсюда и название ошибки. Чем лучше предсказания, тем ниже потери.

Лучшие предсказания = Меньшие потери.

Тренировка нейронной сети = стремление к минимизации ее потерь.

Пример подсчета потерь в тренировки нейронной сети

Скажем, наша сеть всегда выдает 0. Другими словами, она уверена, что все люди — Мужчины. Какой будет потеря?

Имя/Name ytrue ypred (ytrue — ypred)2
Alice 1 0 1
Bob 0 0 0
Charlie 0 0 0
Diana 1 0 1

Python код среднеквадратической ошибки (MSE)

Ниже представлен код для подсчета потерь:

Python

При возникновении сложностей с пониманием работы кода стоит ознакомиться с quickstart в NumPy для операций с массивами.

Тренировка нейронной сети — многовариантные исчисления, Часть 2

Текущая цель понятна – это минимизация потерь нейронной сети. Теперь стало ясно, что повлиять на предсказания сети можно при помощи изменения ее веса и смещения. Однако, как минимизировать потери?

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

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

Имя/Name Вес/Weight (минус 135) Рост/Height (минус 66) Пол/Gender
Alice -2 -1 1

Затем потеря среднеквадратической ошибки будет просто квадратической ошибкой для Alice:

Еще один способ понимания потери – представление ее как функции веса и смещения. Давайте обозначим каждый вес и смещение в рассматриваемой сети:

Затем можно прописать потерю как многовариантную функцию:

Представим, что нам нужно немного отредактировать w1. В таком случае, как изменится потеря L после внесения поправок в w1?

На этот вопрос может ответить частная производная . Как же ее вычислить?

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

Для начала, давайте перепишем частную производную в контексте :

Данные вычисления возможны благодаря дифференцированию сложной функции.

Подсчитать можно благодаря вычисленной выше L = (1 — ypred)2:

Теперь, давайте определим, что делать с . Как и ранее, позволим h1, h2, o1 стать результатами вывода нейронов, которые они представляют. Дальнейшие вычисления:

Как было указано ранее, здесь f является функцией активации сигмоида.

Так как w1 влияет только на h1, а не на h2, можно записать:

Использование дифференцирования сложной функции.

Те же самые действия проводятся для :

Еще одно использование дифференцирования сложной функции.

В данном случае х1 — вес, а х2 — рост. Здесь f′(x) как производная функции сигмоида встречается во второй раз. Попробуем вывести ее:

Функция f'(x) в таком виде будет использована несколько позже.

Вот и все. Теперь разбита на несколько частей, которые будут оптимальны для подсчета:

Эта система подсчета частных производных при работе в обратном порядке известна, как метод обратного распространения ошибки, или backprop.

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

Пример подсчета частных производных

В данном примере также будет задействована только Alice:

Имя/Name Вес/Weight (минус 135) Рост/Height (минус 66) Пол/Gender
Alice -2 -1 1

Здесь вес будет представлен как 1, а смещение как 0. Если выполним прямое распространение (feedforward) через сеть, получим:

Выдачи нейронной сети ypred = 0.524. Это дает нам слабое представление о том, рассматривается мужчина Male (0), или женщина Female (1). Давайте подсчитаем :

Напоминание: мы вывели f ‘(x) = f (x) * (1 — f (x)) ранее для нашей функции активации сигмоида.

У нас получилось! Результат говорит о том, что если мы собираемся увеличить w1, L немного увеличивается в результате.

Тренировка нейронной сети: Стохастический градиентный спуск

У нас есть все необходимые инструменты для тренировки нейронной сети. Мы используем алгоритм оптимизации под названием стохастический градиентный спуск (SGD), который говорит нам, как именно поменять вес и смещения для минимизации потерь. По сути, это отражается в следующем уравнении:

η является константой под названием оценка обучения, что контролирует скорость обучения. Все что мы делаем, так это вычитаем из w1:

  • Если положительная, w1 уменьшится, что приведет к уменьшению L.
  • Если отрицательная, w1 увеличится, что приведет к уменьшению L.

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

Наш процесс тренировки будет выглядеть следующим образом:

  1. Выбираем один пункт из нашего набора данных. Это то, что делает его стохастическим градиентным спуском. Мы обрабатываем только один пункт за раз;
  2. Подсчитываем все частные производные потери по весу или смещению. Это может быть , и так далее;
  3. Используем уравнение обновления для обновления каждого веса и смещения;
  4. Возвращаемся к первому пункту.

Давайте посмотрим, как это работает на практике.

Создание нейронной сети с нуля на Python

Наконец, мы реализуем готовую нейронную сеть:

Имя/Name Вес/Weight (минус 135) Рост/Height (минус 66) Пол/Gender
Alice -2 -1 1
Bob 25 6 0
Charlie 17 4 0
Diana -15 -6 1

Python

Вы можете поэкспериментировать с этим кодом самостоятельно. Он также доступен на Github.

Наши потери постоянно уменьшаются по мере того, как учится нейронная сеть:

Теперь мы можем использовать нейронную сеть для предсказания полов:

Python

Что теперь?

У вас все получилось. Вспомним, как мы это делали:

  • Узнали, что такое нейроны, как создать блоки нейронных сетей;
  • Использовали функцию активации сигмоида в отношении нейронов;
  • Увидели, что по сути нейронные сети — это просто набор нейронов, связанных между собой;
  • Создали набор данных с параметрами вес и рост в качестве входных данных (или функций), а также использовали пол в качестве вывода (или маркера);
  • Узнали о функциях потерь и среднеквадратичной ошибке (MSE);
  • Узнали, что тренировка нейронной сети — это минимизация ее потерь;
  • Использовали обратное распространение для вычисления частных производных;
  • Использовали стохастический градиентный спуск (SGD) для тренировки нейронной сети.

Подробнее о построении нейронной сети прямого распросранения Feedforward можно ознакомиться в одной из предыдущих публикаций.

Спасибо за внимание!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *