8 лучших ресурсов для самостоятельного изучения Machine Learning


Оглавление (нажмите, чтобы открыть):

С чего начать обучение машинному обучению / deep learning / data mining?

Добрый день!
С чего начать обучение машинному обучению, учитывая что опыта в данной сфере — 0?
Если данная область имеет много направлений, хотелось бы углубиться в AI.

Есть-ли какие-то блоги и книги (желательно на русском языке)?

Так же желательно, что-бы примеры в статях / книге были на одном из данных языков (в порядке убывания):
* JS
* Python
* Java
* Ruby
* C

R, Prolog и т.п. — не интересуют, так как это узконаправленные языки.

  • Вопрос задан более трёх лет назад
  • 27327 просмотров

sim3x: начал с поиска готовых библиотек на JS и изучением их кода, а так же прочел пару статей на хабре (из которых узнал что DL это круто, и по сути дела — все, так как материал был расчитан на уровень выше начального.)

https://github.com/harthur/brain — JS либа, была еще одна, но мне она показалось сложнее для начала.

Т. Сегаран — программируем коллективный разум. Там есть некоторые методы машинного обучения. Сама книжка смесь вэба и Data Mining. Python

В этих двух книгах теория:

Питер Норвиг. Искусственный интеллект: современный подход
Книга П.С. Романов. Основы искусственного интеллекта

Библиотека scikit-learn с реализованными алгоритмами из книг выше. Python

А также пригодится ( на более поздних этапах )
Козлов М.В., Прохоров А.В. Введение в математическую статистику. — М.: Изд-во МГУ, 1987.
Боровков А.А. Математическая статистика. Оценка параметров, проверка гипотез. — М.: Наука, 1984
Боровков А.А. Математическая статистика. Дополнительные главы. — М.: Наука, 1984.

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

15 книг по машинному обучению для начинающих

Data Science — оверхайповое направление IT. Мы сделали подборку книг по Machine Learning для тех, кто хочет разобраться, что да как.

IT стали толчком развития новых профессиональных областей: Data Mining, машинного обучения (Machine Learning) и других. Чтобы погрузиться в тему, читайте книги из нашей подборки.

Книги по машинному обучению на русском

Автор в сфере IT, digital, экономики и финансов. Ведет некоммерческий проект для начинающих писателей «ЛитЦех».

Владимир Вьюгин.
«Математические основы машинного обучения и прогнозирования»

Сначала изучите азы статистической теории машинного обучения, игр с предсказаниями и прогнозирования с применением экспертной стратегии. Их основы прекрасно объясняет автор книги, доктор физико-математических наук Владимир Вьюгин. Пособие рассчитано на студентов и аспирантов и в доступной форме излагает математические основы, необходимые для дальнейшей работы с машинным обучением.

Педро Домингос.
«Верховный алгоритм»

Книга, благодаря которой даже ничего не смыслящие в математике и статистике люди поймут, что такое алгоритмы машинного обучения и каково их применение в жизни. Профессор Педро Домингос рассказывает о пяти основных школах Machine Learning и о том, как они используют идеи из различных областей научного знания — нейробиологии, физики, статистики, биологии, — чтобы помогать людям решать сложные задачи и упрощать рутину с помощью алгоритмов.

Хенрик Бринк, Джозеф Ричардс, Марк Феверолф.
«Машинное обучение»

Эта книга 2020 года издания доступно рассказывает о Machine Learning — для тех, кто ничего не слышал об этих технологиях. В ней нет заумной статистики, математики или углубленного и подробного объяснения, как использовать тот или иной алгоритм. Авторы с легкостью объясняют, что такое машинное обучение и как его применять в повседневной жизни. Примеры в книге приводятся на языке программирования Python, который используется в том числе и в этой сфере.

Бастиан Шарден, Лука Массарон, Альберто Боскетти.
«Крупномасштабное машинное обучение вместе с Python»

Еще одна отличная книга для начинающих свой путь в программировании и анализе больших данных. Авторы утверждают, что благодаря ей читатель научится самостоятельно строить модели машинного обучения и развертывать крупномасштабные приложения для прогнозирования. В книге рассказывается о том, какие алгоритмы входят в семейство масштабируемых, что они из себя представляют и как с их помощью обрабатывать большие файлы. Также вы узнаете, что такое вычислительная парадигма MapReduce и как работать с машинными алгоритмами на платформах Hadoop и Spark на языке Python.

Себастьян Рашка.
«Python и машинное обучение»

Книга для новичков, осваивающих Python и машинное обучение. Издание содержит подробные мануалы даже по таким нюансам, как установка специализированного приложения Jupyter Notebook.

В книге рассматриваются основы Machine Learning, возможности самых мощных библиотек Python для анализа данных и дается ответ на вопрос, почему этот язык — один из лидеров в Data Science.

Георгий Кухарев, Екатерина Каменская, Юрий Матвеев, Надежда Щеголева.
«Методы обработки и распознавания изображений лиц в задачах биометрии»

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

Петер Флах.
«Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных»

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

16 бесплатных онлайн-курсов по машинному обучению

Популярная тенденция в сфере онлайн-образования — массовые открытые онлайн-курсы (Massive open online-courses, MOOC). Появились бесплатные курсы по машинному обучению и data science. Они доступны каждому и основаны на образовательных программах от ведущих университетов, например, МФТИ.

Большинство MOOC по машинному обучению доступны на английском языке и представлены на известных платформах онлайн-образования, таких как Coursera, Udacity, World Education University и edX.

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

Видео-материалы и лекции курса можно получить бесплатно, для этого на странице курса внизу нужно нажать кнопку «прослушать курс», как показано на картинке:

Как бесплатно прослушать курсы по машинному обучению

В этой статье собраны бесплатные курсы по машинному обучению и Data Science на русском языке или с русскими субтитрами.

Введение в машинное обучение

Авторы: ВШЭ и Яндекс
Платформа: Coursera
Язык: русский

На курсе Константина Воронцова Введение в машинное обучение рассматриваются популярные задачи, решаемые с помощью машинного обучения — классификация, регрессия, кластеризация. Слушателю нужно знать об основных понятиях математики: функциях, производных, векторах, матрицах, желательно иметь базовые навыки программирования и быть знакомым с python.

Продолжительность: 35 часов

Машинное обучение и анализ данных

Авторы: МФТИ и Яндекс
Платформа: Coursera
Язык: русский

Специализация Машинное обучение и анализ данных включает 6 курсов. Осваиваются основные инструменты, необходимые в работе с большим массивом данных: современные методы классификации и регрессии, поиск структуры в данных, проведение экспериментов, построение выводов, фундаментальная математика, основы программирования на python.

Продолжительность: 8 месяцев (7 часов в неделю)

Python для анализа данных

Авторы: МФТИ, ФРОО, Mail.ru Group
Платформа: Coursera
Язык: русский

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

Продолжительность: 25 часов

Введение в науку о данных

Автор: СПбГУ
Платформа: Coursera
Язык: русский

Курс Введение в науку о данных рассматривает постановку и решение типичных задач, с которыми может столкнуться в своей работе data scientist, подходы к сбору, анализу, обработке и визуализации массивов данных.

Продолжительность: 17 часов

Глубокое обучение в творчестве с TensorFlow

Автор: Google Magenta
Платформа: Kadenze
Язык: английский, русские субтитры

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

Продолжительность: 60 часов

Data Science

Автор: Johns Hopkins University
Платформа: Courserа
Язык: английский, русские субтитры

В специализацию Data Science университета John Hopkins входят 10 курсов, включая сбор и сортировку данных, программирование на языке R, регрессионные модели, разработку продуктов для обработки данных и другие.

Продолжительность: 8 месяцев (5 часов в неделю)

Data science для руководителей

Автор: Johns Hopkins University
Платформа: Courserа
Язык: английский, русские субтитры

Data Science для руководителей — это ускоренная обучающая программа — 5 курсов, которые дают базовое понимание о том, что такое data science и как работать с проектами в этой сфере, собирать и развивать команду и даже лидерские качества.

Продолжительность: 40 часов

Нейронные сети

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

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

Продолжительность: 33 часа

Программирование на Python

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

На курсе Программирование на Python представлены базовые понятия программирования на python и большое количество практических задач. Решения будут проверяться автоматической системой.

Продолжительность: 22 часа

Алгоритмы: теория и практика. Методы

Автор: Computer Science Center
Платформа: Stepic
Язык: русский

Рассматриваются теоретические основы создания алгоритмов и особенности реализации на языках C++, Java и Python.

Продолжительность: 35 часов

Основы программирования на R

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

На курсе Основы программирования на R изучаются основные типы данных и семантические правила, анализ и обработка данных.

Продолжительность: 19 часов

Анализ данных в R

Автор: Институт биоинформатики
Платформа: Stepic
Язык: русский

На курсе рассматриваются этапы статистического анализа на R — предварительная обработка данных, применение статистических методов анализа и визуализация данных.

Продолжительность: 21 час

Базы данных

Автор: СПбГУ
Платформа: Coursera
Язык: русский

В основе курса Базы данных изучение и применение языка SQL для создания, модификации объектов и управления данными в реляционных базах данных. Рассматриваются сферы применения NoSQL баз данных и современные подходы к обработке big data.

Продолжительность: 20 часов

От Excel до MySQL: способы анализа бизнес-данных

Автор: Duke University
Платформа: Coursera
Язык: английский, русские субтитры

В специализацию входят 5 курсов, которые демонстрируют, как использовать Excel, Tableau и MySQL для анализа данных, прогнозирования, создания моделей и визуализации данных для решения задач и улучшения бизнес-процессов.

Продолжительность: 8 месяцев (5 часов в неделю)

Линейная регрессия

Автор: СПбГУ
Платформа: Coursera
Язык: русский

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

Продолжительность: 22 часа

Анализ данных

Автор: НГУ
Платформа: Coursera
Язык: русский

В специализацию Анализ данных Новосибирского государственного Университета входят 4 курса. Курсы содержат материалы по основам теории вероятностей и математической статистики, исследованию связей между признаками, построению прогнозов на основе регрессионных моделей, кластерному и статистическому анализу. Курсы разработаны совместно с 2GIS.

Продолжительность: 4 месяца (3 часа в неделю)

Data Science и Machine Learning — 6 лучших онлайн-курсов в рунете

Data Science, Machine Learning, Big Data, нейросети и искусственный интеллект — всё это слова, связанные с самым растущим направлением бизнеса — анализом больших данных. Об этом уже выпущено много бесплатных англоязычных курсов на Coursera и EdX. Это статья про 6 лучших онлайн-курсов для начинающих обучение «науке о данных» с нуля до первых стажировок и трудоустройства.

Почему это направление такое растущее? Потому что современные системы аналитики собирают огромное количество данных о бизнесе, на основе которых принимаются судьбоносные решения о развитии отдельных направлений и всего бизнеса. Специалисты, которые умеют работать с данными: собирать, обрабатывать и интерпретировать ценятся на вес золота и спрос на них только растёт, поэтому есть смысл внимательнее присмотреться к получению профессии Data Scientist.

1. Онлайн-курс практический Machine Learning

SkillFactory – один из самых заметных игроков на рынке русскоязычных курсов по машинному обучению. Преподаватели-практики с опытом в Data Science готовы сделать из вас специалиста по данным за 11 недель. За это время вы изучите основные модели машинного обучения, научитесь оценивать качество алгоритмов, разберётесь в глубоком обучении с помощью нейросетей, изучите Feature Engineering, рекомендательные системы, кластеризацию, распознавание изображений и текстов с помощью нейросетей, а также сами большие данные. В конце курса вас ждёт хакатон – командное соревнование практических решений на основе полученных знаний.

Выпускники получают сертификаты и помощь со стажировкой или трудоустройством. Обучение на курсе доступно из любой точки мира. Стоимость от 35900 до 51900. В зависимости от даты брони места на курсе и количества свободных мест. Как читатель блога igaryoh.ru вы можете получить 10% скидку на курс, сообщив менеджеру кодовое слово igaryoh после регистрации. Полную программу курса, а также подробный план развития в Data Science вы можете получить по этой ссылке .

2. Специализация Data Sciense

Вы пройдете полный цикл обучения, начиная с изучения языка Python для анализа данных, классического машинного обучения, самого востребованного направления в области машинного обучения — нейросетей и deep learning, и заканчивая основами data engineering и применением data science на практике. Для прохождения этого курса вам не потребуется специальных знаний, выходящих за рамки школьной программы по математике.

Выпускники получат сертификаты и помощь со стажировкой или трудоустройством. Обучение на курсе доступно из любой точки мира. Стоимость обучения от 120 000 до 150 000. В зависимости от даты брони места на курсе и количества свободных мест. Подробности и программа по ссылке.

3. Python для анализа данных

Тем, кто решил прокачаться в анализе больших данных, необходимо уметь использовать язык программирования Питон. SkillFactory вместе с Константином Башевым, программистом-аналитиком Яндекс.Маркета готовы научить вас применять этот язык по назначению с нуля за 6 недель.

Это стартовая база, для тех кто хочет понять что такое машинное обучение. Курс хорош для всех кто работает с данными — от бизнес-аналитиков и финансистов, до маркетологов и продуктовых аналитиков. Он заточен для тех, кто не умеет программировать. Здесь вас научат не программировать, а использовать язык Питон и библиотеку Pandas для анализа данных. 13 модулей, экзамен в конце курса, тусовка с полезными знакомствами, сертификат, а также помощь со стажировкой и трудоустройством.

Стоимость от 29900 до 37900 в зависимости от даты брони места на курсе и количества свободных мест. Получите 10% скидку, сообщив менеджеру кодовое слово igaryoh после оформления заявки. Читайте подробности о программе и записывайтесь на курс по этой ссылке.

4. Профессия Data Scientist от Skillbox

Масштабная программа обучения Data Science с гарантией трудоустройства. Здесь вы будете последовательно идти от изучения основ анализа данных к наиболее интересным лично вам специализациям. Вы погрузитесь в профессию и даем задачи, которые приближены к жизненным ситуациям. Так вы получите опыт, близкий к работе в IT-компании, пройдёте путь с нуля до специалиста по Data Science middle-уровня. Узнайте подробности и записывайтесь на курс по этой ссылке.

5. Data Scientist с нуля до PRO

После прохождения базового курса вы сможете выбрать специализацию: аналитика или машинное обучение. Домашние задания содержат настоящие данные, то есть после курса вы фактически будете иметь за плечами год практики. Возможность стажировки в топовых компаниях России, а также помощь в трудоустройстве и прохождении собеседований. Преподаватели из Facebook, IVI.ru, Skillbox и Высшей школы экономики. Регистрация здесь.

6. Профессия Data Scientist от Нетологии

Онлайн-университет «Нетология» запустила, пожалуй, самый масштабный в России курс по науке о данных. Лучшие эксперты по Data Science сначала в онлайне, а затем в кампусе Нетологии (в Москве) будут вести вас от первых шагов в данных до собственной Machine-Learning-разработки и хакатона (конкурса практических решений). Преподаватели: ivi, Яндекс, Сбербанк, ВШЭ и др. Участники курса получают гарантированную стажировку или трудоустройство. Подробности и регистрация по этой ссылке.

Автор: Игорь Селезнёв, интернет-предприниматель, основатель проекта «RELANCE».

Развиваю онлайн-бизнес и себя, путешествую, кайфую от жизни и исполняю мечты, помогаю строить удалённую карьеру. 🙂

Подпишись на наше сообщество во ВКонтакте и канал в Телеграме и строй удалённую карьеру вместе с нами! 🙂

Что такое Machine Learning и каким оно бывает

Что такое машинное обучение

Machine Learning (ML, с английского – машинное обучение) — это методики анализа данных, которые позволяют аналитической системе обучаться в ходе решения множества сходных задач. Машинное обучение базируется на идее о том, что аналитические системы могут учиться выявлять закономерности и принимать решения с минимальным участием человека.

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

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

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

Большая часть программ с искусственным интеллектом на самом деле состоит из условных конструкций

Машинное обучение же позволяет дать программе возможность самостоятельно строить причинно-следственные связи. ИИ получает задачу и сам учится ее решать. То есть компьютер может проанализировать показатели за несколько месяцев или даже лет, чтобы определить, какие факторы оказывали влияние на изменение погоды.

Вот хороший пример от гугловского DeepMind:

Программа получала информацию от виртуальных рецепторов, а ее целью было перевести модель из точки А в точку Б. Никаких инструкций по этому поводу не было – разработчики лишь создали алгоритм, по которому программа обучалась. В результате она смогла самостоятельно выполнить задачу.

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

Для чего используется машинное обучение

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

Но до этого пройдет еще несколько лет или даже десятилетий. А что же сейчас? Разве машинное обучение еще не начали использовать для решения практических задач? Начали, технология широко используется в области data science (науки о данных). И чаще всего эти задачи маркетинговые.

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

Похожую систему использует Google, чтобы подбирать релевантную рекламу, и у него такие же проблемы – стоит поискать информацию о том, какие виды велосипедов бывают, как Google тут же решит, что пользователь хочет погрузиться в эту тему с головой. Тем же самым занимается и «Яндекс» в своем сервисе «Дзен» – там МО используется для формирования ленты, точно так же, как и в Twitter, Instagram, Facebook, «ВКонтакте» и других социальных сетях.

Вы также могли работать с голосовыми помощниками вроде Siri – они используют системы распознавания речи, основанные на ML. В будущем они могут заменить секретарей и операторов кол-центров. Если вы загорелись этой идеей, можете попробовать сервис аудиоаналитики Sounds от Mail.Ru.

Есть и другие примеры использования систем с машинным обучением:

То есть применение МО может быть самым разным. И даже вы можете использовать его в своих приложениях – для этого понадобится приобрести, настроить и поддерживать инфраструктуру обучения машинных моделей. Альтернатива — воспользоваться готовыми средствами машинного обучения на платформе Mail.Ru Cloud Solutions.

Каким бывает машинное обучение?

Всего есть 3 вида машинного обучения:

  1. С учителем (Supervised machine learning).
  2. Без учителя (Unsupervised machine learning).
  3. Глубокое обучение (Deep learning).

С учителем (Supervised machine learning)

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

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

Имя ученика Класс IQ Пол Склад ума Возраст Предмет с самой высокой успеваемостью
Олег 8 120 Мужской Техничес­кий 15 Геомет­рия
Виктория 8 100 Женский Творчес­кий 15 Литера­тура
Иван 8 110 Мужской Гуманитар­ный 14 История
Игорь 8 105 Мужской Техничес­кий 15 Физика
Мария 8 120 Женский Гуманитар­ный 14 Литера­тура

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

То есть учитель дает компьютеру dataset: вводную информацию (пол, возраст, IQ, склад ума, класс), а затем сразу же дает ему данные о результатах учебы, задавая вопрос «вот данные, они влияют на будущую профессию, как думаешь, почему?». И чем больше будет вводных, тем точнее будет анализ.

Так, например, программы учат распознавать объекты на фотографиях – программа просматривает миллионы изображений с описанием того, что на них изображено (дерево или облако). Она находит общие черты и уже сама учится давать описания изображениям. Учитель показывает изображение без описания, а программа спрашивает «это дерево?». Если человек отвечает утвердительно, программа понимает, что сделала правильные выводы. Хороший пример такой системы – облачный сервис для встраивания в приложения машинного зрения Vision на платформе Mail.Ru Cloud Solutions.

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

Без учителя (Unsupervised machine learning)

В начале статьи был ролик о том, как ИИ научился ходить. Эта программа получила задание от разработчика – добраться до точки Б. Но она не знала, как это сделать – ей даже не показали, как выглядит ходьба, но это не помешало ИИ выполнить задачу.

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

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

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

Также нейросети могут обучаться не самостоятельно, а в паре. Так работает генеративно-состязательная сеть (GAN). Она состоит из сетей G и D – первая на основе реальных изображений генерирует образцы, а вторая пытается отличить подлинные образцы от неправильных.

Технология используется для того, чтобы создавать фотографии, неотличимые от реальных, а также восстанавливать поврежденные или нечеткие изображения. Одна из компаний, которая использует GAN, –Facebook.

Глубокое обучение (Deep learning)

Глубокое обучение может быть как с учителем, так и без, но оно подразумевает под собой анализ Big Data – настолько большой информации, что одного компьютера будет недостаточно. Поэтому Deep Learning использует для работы нейронные сети.

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

Это можно рассмотреть на примере систем распознавания объектов:

  1. получение изображения;
  2. выявление всех точек;
  3. нахождение линий, построенных из точек;
  4. построение простых фигур с помощью линий;
  5. составление сложных фигур из простых и так далее.

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

Я нейросеть, я так вижу

Deep learning может использоваться для самых неожиданных целей. Например, существует искусственный интеллект по имени Норман, его отправили изучать разделы с «жестью» на Reddit – кадры с расчлененными людьми, фотографии с мест преступлений, жуткие истории и так далее.

Затем Норману предложили пройти тест Роршаха, чтобы сравнить его ответы с ответами других ИИ – где одни видели цветы, животных и зонты, Норман видел мертвых мужчин и женщин, убитых самыми разными способами.

Работа с ним показывает, насколько важна информация, которую получает программа на первых этапах работы. Сейчас разработчики проводят исследования, которые помогут «вылечить» Нормана.

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

Примечательно: Как уже говорилось выше, многие выдают за ИИ обычные программы. Яркий пример – Deep Blue, суперкомпьютер, который обыграл Гарри Каспарова 11 мая 1997 года. На самом деле шахматная система перебирала позиции из двух дебютных книг, сравнивала их с текущей партией и выбирала оптимальный вариант.

Однако шахматный искусственный интеллект все же существует – программа AlphaZero, запущенная в декабре 2020 года. Всего за 24 часа нейросеть научилась играть в шахматы на таком уровне, что смогла обыграть одну из лучших шахматных программ – Stockfish – с разгромным счетом (+28 – 0 = 72). А в декабре 2020 г. в новом матче из 1000 партий нейросеть выиграла 155 партий, проиграла 6 и свела вничью 839. Тесты показали, что Stockfish сумел лидировать в счете, только когда ему дали в 30 раз больше времени, чем нейросети.

Как начать разбираться в машинном обучении

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

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

Также необходимо знать какой-нибудь язык программирования (любой, но предпочтительнее Python) и базы данных – это лишь инструменты, поэтому они не играют первую скрипку.

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

Машинное обучение. Технический пост: с чего начинать и на что обратить внимание.

Всем привет! Меня довольно часто спрашивали в комментариях к научным постам, откуда лучше стартовать в машинном обучении и анализе данных. Ну что же. Попробуем собрать воедино мой опыт и посвятить пост техническим вопросам.

0. Как вообще изучать

1. Тематические ресурсы.

2. Техническая часть.

Как вообще изучать это дело?

Любая наука двигается людьми. Каждый учёный имеет свою область интересов, поэтому надо в первую очередь определиться, что тебе интересно. Вообще, в России самый-самый главный по машинному обучению — это Воронцов Константин Вячеславович. Он написал ряд лекций, каждая из которых от «А» до «Я» всё объясняет.

Лучше всего начать с этих лекций. Здесь затрагиваются основы основ, линейные методы классификации, немного про нейронные сети, кластеризация и регрессия. Вообще, у него есть общие лекции, на манер тех, что я привёл в пример, а есть лекции, специально посвящённые какому-то либо разделу. Например, тематическое моделирование (вопросы моделирования текстов), ансамбли алгоритмов (помогает понять, что такое случайный лес или градиентый бустинг). Эти знания помогут вам понять, что скрывается под копотом у ваших алгоритмов. Но есть и чисто научные вопросы, которые без. определённой доли усидчивости и знаний не понять.

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

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

Я походу своей деятельности занимался компьютерной лингвистикой. В компьютерной лингвистике правит бал сейчас модель word2vec. Поэтому, берём работы Tomasa Mikolova и гуглим его труды. Это даст вам необходимый минимум.

Вообще, литературы по этому делу в интернете масса. Однако,что редкость, в русскоязычном сегменте есть весьма достойный сайт. Там можно найти почти всё! Вообще, такие сайты большая редкость. Думаю, что многие вспомнят хабр. Ну там. Там больше технические моменты описываются. С точки зрения программиста, хабр вещь незаменимая, но с научной. Мне попадались там действительно удачные циклы научпопа про тематическое моделирование. Если вам надо постараться смоделировать поведение пользователя, опираясь на тематики, то рекомендую их блог. На пальцах объясняют как это сделать и почему это будет работать. Результаты экспериментов прилагаются.

В последнее время, детище Грефа стало проявлять интерес к машинному обучению. Второй год подряд проводят конкурсы с очень неплохими призовыми, а результаты публикуют здесь. Также могу порекомендовать неплохую конфу «АИСТ». ВНИМАНИЕ, её результаты идут в Scopus. То есть — неплохая возможность получить публикацию в зарубежном журнале. Примите к сведению. Помимо чисто практических интересов (публикация) там проскакивают весьма и весьма интересные работы.

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

ШАД — это бренд. Я не знаю, что там проходят точно, но я уверен, что там круто. Очень круто. Поступление бесплатное, но очень трудное. Подробнее с задачами можно ознакомиться здесь. Из онлайн курсов я бы порекомендовал мониторить stepic. Там можно выцепить весьма любопытные курсы. Между прочим, с сертификатами, что весьма приятно. И бесплатно.

Ну, тут всё просто. Идём и смотрим на hh/linkedin/stackoverflow что интересует потенциального работодателя.

2. Стэк: Big Data: Hadoop, Hive, Spark (для инженеров)

3. Python — просто маст хэв. Особенно его библиотеки для машинного обучения.

4. Желательно java

Если интересно для себя, то:

1. h20. Интуитивно просто и понятно. Я всегда использую для разных конкурсов 🙂

2. MS Azure. Детище майкрософта. Интерфейсом напоминает RapidMiner, раньше была платной, как сейчас — хз. Есть всё. В сети довольно много уроков, которые рассказывают, как этим пользоваться.

3. RapidMIner. Штука прикольная. Интерфейс довольно простой и дружелюбный. Из минусов: в бесплатной версии всего 1 гиг оперативки можно использовать, что довольно печально.


Ну вот вы натренировались, выучили всё, что можно и вам не терпится попробовать свои силы? Ну тогда вам

1. Kaggle. Самая-самая платформа для конкурсов по машинному обучению. Для сильных духом. Вообще, помимо конкурсов, можно почитать форумы, посмотреть тестовые проекты и поискать работу.

2. Гугл наш друг. Вбиваем machine learning contest и смотрим, что есть.

8 лучших ресурсов для самостоятельного изучения Machine Learning

С 2012 по 2020 годы количество вакансий специалистов по Data Science и машинного обучения выросло в 20 раз. Прямо сейчас стажеров и профессионалов ищут Яндекс, Mail.ru, Сбербанк, Райффайзенбанк, Росбанк, МТС, Tele2, ЦИАН, М-Видео, Северсталь и другие крупные компании.

Совместно с профи из российских Data Science компаний мы разработали курс Machine Learning, ориентированный на практику. Вы изучите принципы математических алгоритмов, современные библиотеки, feature engineering и оценку моделей. В конце обучения на курсе примените все изученные методы на финальном проекте и сможете собрать Git-репозиторий с решенными кейсами.

Deep
Learning

Data
Engineering

Стоимость обучения
Если курс не подойдет, мы вернем вам деньги
currentPrice basePrice
priceComment

Можно в рассрочку на 12 месяцев
installmentPrice в месяц
Подробнее

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

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

С помощью обучающих алгоритмов можно научить программы делать что угодно:

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

2. Предсказывать события в клиентской базе. Таким образом можно заранее предпринять меры, которые сократят расходы или увеличат прибыль. Возьмем к примеру страховую компанию, которая предоставляет услуги ДМС. Если она научит программу предсказывать, кто из клиентов в ближайшее время обратится за дорогостоящей медицинской услугой, то сможет предпринять меры, чтобы сократить расходы по ДМС. Например, позвонить клиенту и предложить ему проконсультироваться с хорошим врачом, чтобы не допустить развитие болезни.

3. Формировать заказы на поставку для магазинов сети с учетом динамики продаж, сезона, прогноза погоды и других параметров. Таким образом не допускать, чтобы в торговых точках было затоваривание или нехватка товара.

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

5. По факту, области применения машинного обучения практически безграничны: от контроля качества товаров до диагностики оборудования на производстве, от продаж до аналитики, от повышения персонализации до аудита. Вы сможете использовать возможности алгоритмов практически в любой сфере.

38 полезных ресурсов для обучения чему-то новому

Сохраните в закладки, и всегда сможете утолить жажду знаний.

Иностранные языки

1. Duolingo

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

2. Memrise

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

3. Busuu

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

4. LinguaLeo

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

5. Babbel

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

6. FluentU

FluentU помещает пользователя в языковую среду, предлагая ему тысячи видео на выбранном языке. У каждого ролика есть субтитры, на которые можно кликать, чтобы узнать перевод. Первые две недели можно заниматься бесплатно, а потом — за 30 долларов в месяц.

7. MosaLingua

Главное назначение MosaLingua — помочь вам выучить слова и фразы. Сайт использует для этого особый метод, созданный на основе научных исследований. Новые единицы языка запоминаются быстро, но надолго. Также в сервис встроена специальная система, которая просчитывает, насколько часто вам нужно повторять выученное и в каком объёме.

8. The Mixxer

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

9. Italki

Italki позволяет найти преподавателя для персональных уроков иностранного языка или самому стать им. На сайте тысячи тьюторов — любого уровня и стоимости. Обучение оплачивается поурочно, и для него нужны лишь микрофон и веб-камера.

10. Speaky

Социальная сеть для поиска носителей языка и общения с ними. Можно как писать в текстовый чат, так и созваниваться по аудио- или видеосвязи. Сайт устроен очень просто: на нём есть только список профилей и мессенджер.

Музыка

11. Learning Music

Интерактивный учебник от компании Ableton, производящей программы, плагины и аппаратуру для создания и воспроизведения музыки. Подойдёт тем, кто хочет научиться создавать музыку на компьютере, но не знает, с чего начать. Сайт объясняет основы построения мелодий и ритмов и структурирования треков.

12. Lightnote

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

13. MusicTheory

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

Программирование

Русскоязычные

14. GeekBrains

На этом портале есть практически всё, что может потребоваться начинающему программисту. Онлайн-уроки, курсы, вебинары, форум, тесты для проверки знаний и даже список вакансий. Сайт охватывает такие темы, как веб-разработка, создание мобильных приложений и игр, программирование на Python, Java и других языках.

15. Hexlet

Сайт с курсами для изучения разных языков программирования. Бесплатно вы получаете доступ к 13 из них и сообществу, а за деньги можно получить ещё 50 курсов и поддержку ментора. Hexlet позволяет научиться программировать на Ruby, Python, PHP, JavaScript, Java, Shell (Utils), HTML & CSS и Racket.

16. Яндекс.Практикум

Онлайн-школа от «Яндекса», в которой можно освоить профессии фронтенд- и бэкенд-разработчика, специалиста по Data Science, веб-разработчика и аналитика данных. Ученики получают прикладные навыки и поддержку наставников, а также практикуются, создавая программы и сайты. Первые 20 часов можно заниматься бесплатно, а полный курс стоит от 60 до 90 тысяч рублей.

Англоязычные

17. The Odin Project

Сайт для обучения веб-программированию. Здесь вы найдёте несколько курсов — от начального уровня до продвинутого — и мощное комьюнити, готовое помогать новичкам. Можно освоить Ruby on Rails, Node.js, HTML и CSS, Javascript, базы данных и узнать, как правильно искать работу в сфере IT.

18. SoloLearn

На этом портале есть сотни уроков для изучения разных языков (Ruby, Python, C++, Java, Javascript, PHP, Swift и других), а также специальный форум, на котором участники делятся созданными программами.

Карта мира машинного обучения

Лень читать лонгрид — повтыкайте хотя бы в картинку, будет полезно.

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

И да. Классифицировать алгоритмы можно десятком способов. Я выбрал этот, потому что он мне кажется самым удобным для повествования. Надо понимать, что не бывает так, чтобы задачу решал только один метод. Я буду упоминать известные примеры применений, но держите в уме, что «сын маминой подруги» всё это может решить нейросетями.

Начну с базового обзора. Сегодня в машинном обучении есть всего четыре основных направления.

Часть 1. Классическое обучение

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

Сегодня на классических алгоритмах держится добрая половина интернета. Когда вы встречаете блок «Рекомендованные статьи» на сайте, или банк блокирует все ваши деньги на карточке после первой же покупки кофе за границей — это почти всегда дело рук одного из этих алгоритмов.

Да, крупные корпорации любят решать все проблемы нейросетями. Потому что лишние 2% точности для них легко конвертируются в дополнительные 2 миллиарда прибыли. Остальным же стоит включать голову. Когда задача решаема классическими методами, дешевле реализовать сколько-нибудь полезную для бизнеса систему на них, а потом думать об улучшениях. А если вы не решили задачу, то не решить её на 2% лучше вам не особо поможет.

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

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

Классификация

«Разделяет объекты по заранее известному признаку. Носки по цветам, документы по языкам, музыку по жанрам»

Сегодня используют для:

  • Спам-фильтры
  • Определение языка
  • Поиск похожих документов
  • Анализ тональности
  • Распознавание рукописных букв и цифр
  • Определение подозрительных транзакций

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

Классификация вещей — самая популярная задача во всём машинном обучении. Машина в ней как ребёнок, который учится раскладывать игрушки: роботов в один ящик, танки в другой. Опа, а если это робот-танк? Штош, время расплакаться и выпасть в ошибку.

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

Раньше все спам-фильтры работали на алгоритме Наивного Байеса. Машина считала сколько раз слово «виагра» встречается в спаме, а сколько раз в нормальных письмах. Перемножала эти две вероятности по формуле Байеса, складывала результаты всех слов и бац, всем лежать, у нас машинное обучение!

Позже спамеры научились обходить фильтр Байеса, просто вставляя в конец письма много слов с «хорошими» рейтингами. Метод получил ироничное название Отравление Байеса, а фильтровать спам стали другими алгоритмами. Но метод навсегда остался в учебниках как самый простой, красивый и один из первых практически полезных.

Возьмем другой пример полезной классификации. Вот берёте вы кредит в банке. Как банку удостовериться, вернёте вы его или нет? Точно никак, но у банка есть тысячи профилей других людей, которые уже брали кредит до вас. Там указан их возраст, образование, должность, уровень зарплаты и главное — кто из них вернул кредит, а с кем возникли проблемы.

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

Для этой задачи придумали Деревья Решений. Машина автоматически разделяет все данные по вопросам, ответы на которые «да» или «нет». Вопросы могут быть не совсем адекватными с точки зрения человека, например «зарплата заёмщика больше, чем 25934 рубля?», но машина придумывает их так, чтобы на каждом шаге разбиение было самым точным.

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

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

Два самых популярных алгоритма построения деревьев — CART и C4.5.

В чистом виде деревья сегодня используют редко, но вот их ансамбли (о которых будет ниже) лежат в основе крупных систем и зачастую уделывают даже нейросети. Например, когда вы задаете вопрос Яндексу, именно толпа глупых деревьев бежит ранжировать вам результаты.

Но самым популярным методом классической классификации заслуженно является Метод Опорных Векторов (SVM). Им классифицировали уже всё: виды растений, лица на фотографиях, документы по тематикам, даже странных Playboy-моделей. Много лет он был главным ответом на вопрос «какой бы мне взять классификатор».

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

У классификации есть полезная обратная сторона — поиск аномалий. Когда какой-то признак объекта сильно не вписывается в наши классы, мы ярко подсвечиваем его на экране. Сейчас так делают в медицине: компьютер подсвечивает врачу все подозрительные области МРТ или выделяет отклонения в анализах. На биржах таким же образом определяют нестандартных игроков, которые скорее всего являются инсайдерами. Научив компьютер «как правильно», мы автоматически получаем и обратный классификатор — как неправильно.

Сегодня для классификации всё чаще используют нейросети, ведь по сути их для этого и изобрели.

Правило буравчика такое: сложнее данные — сложнее алгоритм. Для текста, цифр, табличек я бы начинал с классики. Там модели меньше, обучаются быстрее и работают понятнее. Для картинок, видео и другой непонятной бигдаты — сразу смотрел бы в сторону нейросетей.

Лет пять назад еще можно было встретить классификатор лиц на SVM, но сегодня под эту задачу сотня готовых сеток по интернету валяются, чо бы их не взять. А вот спам-фильтры как на SVM писали, так и не вижу смысла останавливаться.

Регрессия

«Нарисуй линию вдоль моих точек. Да, это машинное обучение»

Сегодня используют для:

  • Прогноз стоимости ценных бумаг
  • Анализ спроса, объема продаж
  • Медицинские диагнозы
  • Любые зависимости числа от времени

Регрессия — та же классификация, только вместо категории мы предсказываем число. Стоимость автомобиля по его пробегу, количество пробок по времени суток, объем спроса на товар от роста компании и.т.д. На регрессию идеально ложатся любые задачи, где есть зависимость от времени.

Регрессию очень любят финансисты и аналитики, она встроена даже в Excel. Внутри всё работает, опять же, банально: машина тупо пытается нарисовать линию, которая в среднем отражает зависимость. Правда, в отличии от человека с фломастером и вайтбордом, делает она это математически точно — считая среднее расстояние до каждой точки и пытаясь всем угодить.

Когда регрессия рисует прямую линию, её называют линейной, когда кривую — полиномиальной. Это два основных вида регрессии, дальше уже начинаются редкоземельные методы. Но так как в семье не без урода, есть Логистическая Регрессия, которая на самом деле не регрессия, а метод классификации, от чего у всех постоянно путаница. Не делайте так.

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

Для желающих понять это глубже, но тоже простыми словами, рекомендую цикл статей Machine Learning for Humans

Обучение без учителя

Обучение без учителя (Unsupervised Learning) было изобретено позже, аж в 90-е, и на практике используется реже. Но бывают задачи, где у нас просто нет выбора.

Размеченные данные, как я сказал, дорогая редкость. Но что делать если я хочу, например, написать классификатор автобусов — идти на улицу руками фотографировать миллион сраных икарусов и подписывать где какой? Так и жизнь вся пройдёт, а у меня еще игры в стиме не пройдены.

Когда нет разметки, есть надежда на капитализм, социальное расслоение и миллион китайцев из сервисов типа Яндекс.Толока, которые готовы делать для вас что угодно за пять центов. Так обычно и поступают на практике. А вы думали где Яндекс берёт все свои крутые датасеты?

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

Обучение без учителя, всё же, чаще используют как метод анализа данных, а не как основной алгоритм. Специальный кожаный мешок с дипломом МГУ вбрасывает туда кучу мусора и наблюдает. Кластеры есть? Зависимости появились? Нет? Ну штош, продолжай, труд освобождает. Тыж хотел работать в датасаенсе.

Кластеризация

«Разделяет объекты по неизвестному признаку. Машина сама решает как лучше»

Сегодня используют для:

  • Сегментация рынка (типов покупателей, лояльности)
  • Объединение близких точек на карте
  • Сжатие изображений
  • Анализ и разметки новых данных
  • Детекторы аномального поведения

m.neumann/sp2020/cse517/lecturenotes/images/c22kmeans/TimoKmeans.png Всего у нас получается 256 * 256 * 256 = 16 777 216 возможных точек, где может оказаться каждый пиксель изображения, и столько же уникальных цветов(!). А нам-то нужно всего 32. 1. Мы рандомно закидываем в это 3D-пространство 32 центроида (пока еще не обладающие цветовым кодом. Пока что они нужны нам только для первичной кластеризации «3D-взвеси») 2. Далее смотрим, к какому из центроидов каждый пиксель нашей «взвеси» находится ближе. То есть тупо по трем дименшенам. Получаем кластеры первого порядка 3. Далее перемещаем центроиды внутри наших получившихся 32 кластеров первого порядка. Перемещаем так, чтобы центроиды реально были центроидами и были равноудалены от каждой точки в кластере 4. Смотрим, не изменили ли некоторые пиксели принадлежность к кластеру. Ведь в предыдущем шаге 32 центроида переместлись. Наверняка некоторые пиксели оказались теперь ближе к другому центроиду. Границы кластеров чуть-чуть изменились после этого шага за счет смены некоторыми пикселями принадлежности к кластеру 5. Повторяются шаги 3-4 до тех пор, пока не окажется, что центроиды уже не двигаются на шаге 3. То есть они и так уже равноудалены. Когда центроиды окончательно останавливаются, пункт 4 уже неактуален, т.к. изменений нет. Переходим к пункту 6 6. Прекращение перемещения центроидов означает, что у нас есть хорошие сбитые математически выверенные кластеры, сформированные вокруг них. 7. Теперь мы просто смотрим координаты каждого из 32 центроидов. Например (38, 228, 238). И все пиксели, которые у нас были «скластеризованы» вокруг него, перекрашиваем в данный RGB-цвет. 8. Возвращаем все пиксели на место. Готово. У вас 32-цветовое изображение. Вы великолепны! Если где-то ошибся, пардон. Исправьте, если не прав. PS Кстати, нашел ссылку на изображение, содержащее все 16 777 216 RGB-цветов: http://davidnaylor.org/temp/all16777216rgb-diagonal.png

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

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

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

Правда для начала им приходится найти эти самые «характерные черты», а это уже только с учителем.

Сжатие изображений — еще одна популярная проблема. Сохраняя картинку в PNG, вы можете установить палитру, скажем, в 32 цвета. Тогда кластеризация найдёт все «примерно красные» пиксели изображения, высчитает из них «средний красный по больнице» и заменит все красные на него. Меньше цветов — меньше файл.

Проблема только, как быть с цветами типа Cyan ◼︎ — вот он ближе к зеленому или синему? Тут нам поможет популярный алгоритм кластеризации — Метод К-средних (K-Means). Мы случайным образом бросаем на палитру цветов наши 32 точки, обзывая их центроидами. Все остальные точки относим к ближайшему центроиду от них — получаются как бы созвездия из самых близких цветов. Затем двигаем центроид в центр своего созвездия и повторяем пока центроиды не перестанут двигаться. Кластеры обнаружены, стабильны и их ровно 32 как и надо было.

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

Хитрым задачам — хитрые методы. DBSCAN, например. Он сам находит скопления точек и строит вокруг кластеры. Его легко понять, если представить, что точки — это люди на площади. Находим трёх любых близко стоящих человека и говорим им взяться за руки. Затем они начинают брать за руку тех, до кого могут дотянуться. Так по цепочке, пока никто больше не сможет взять кого-то за руку — это и будет первый кластер. Повторяем, пока не поделим всех. Те, кому вообще некого брать за руку — это выбросы, аномалии. В динамике выглядит довольно красиво:

Как и классификация, кластеризация тоже может использоваться как детектор аномалий. Поведение пользователя после регистрации резко отличается от нормального? Заблокировать его и создать тикет саппорту, чтобы проверили бот это или нет. При этом нам даже не надо знать, что есть «нормальное поведение» — мы просто выгружаем все действия пользователей в модель, и пусть машина сама разбирается кто тут нормальный.

Работает такой подход, по сравнению с классификацией, не очень. Но за спрос не бьют, вдруг получится.

Уменьшение Размерности (Обобщение)

«Собирает конкретные признаки в абстракции более высокого уровня»

Сегодня используют для:

  • Рекомендательные Системы (★)
  • Красивые визуализации
  • Определение тематики и поиска похожих документов
  • Анализ фейковых изображений
  • Риск-менеджмент

Изначально это были методы хардкорных Data Scientist’ов, которым сгружали две фуры цифр и говорили найти там что-нибудь интересное. Когда просто строить графики в экселе уже не помогало, они придумали напрячь машины искать закономерности вместо них. Так у них появились методы, которые назвали Dimension Reduction или Feature Learning.

Проецируем 2D-данные на прямую (PCA)

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

Инструмент на удивление хорошо подошел для определения тематик текстов (Topic Modelling). Мы смогли абстрагироваться от конкретных слов до уровня смыслов даже без привлечения учителя со списком категорий. Алгоритм назвали Латентно-семантический анализ (LSA), и его идея была в том, что частота появления слова в тексте зависит от его тематики: в научных статьях больше технических терминов, в новостях о политике — имён политиков. Да, мы могли бы просто взять все слова из статей и кластеризовать, как мы делали с ларьками выше, но тогда мы бы потеряли все полезные связи между словами, например, что батарейка и аккумулятор, означают одно и то же в разных документах.

Точность такой системы — полное дно, даже не пытайтесь.

Нужно как-то объединить слова и документы в один признак, чтобы не терять эти скрытые (латентные) связи. Отсюда и появилось название метода. Оказалось, что Сингулярное разложение (SVD) легко справляется с этой задачей, выявляя для нас полезные тематические кластеры из слов, которые встречаются вместе.

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

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

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

На эту тему есть неплохая лекция Яндекса — Как работают рекомендательные системы

Поиск правил (ассоциация)

«Ищет закономерности в потоке заказов»

Сегодня используют для:

  • Прогноз акций и распродаж
  • Анализ товаров, покупаемых вместе
  • Расстановка товаров на полках
  • Анализ паттернов поведения на веб-сайтах

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

Предположим, покупатель берёт в дальнем углу магазина пиво и идёт на кассу. Стоит ли ставить на его пути орешки? Часто ли люди берут их вместе? Орешки с пивом, наверное да, но какие ещё товары покупают вместе? Когда вы владелец сети гипермаркетов, ответ для вас не всегда очевиден, но одно тактическое улучшение в расстановке товаров может принести хорошую прибыль.

То же касается интернет-магазинов, где задача еще интереснее — за каким товаром покупатель вернётся в следующий раз?

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

В реальности каждый крупный ритейлер пилит свой велосипед, и никаких особых прорывов в этой области я не встречал. Максимальный уровень технологий здесь — запилить систему рекомендаций, как в пункте выше. Хотя может я просто далёк от этой области, расскажите в комментах, кто шарит?

Часть 2. Обучение с подкреплением

«Брось робота в лабиринт и пусть ищет выход»

Сегодня используют для:

  • Самоуправляемых автомобилей
  • Роботов пылесосов
  • Игр
  • Автоматической торговли
  • Управления ресурсами предприятий

Наконец мы дошли до вещей, которые, вроде, выглядят как настоящий искусственный интеллект. Многие авторы почему-то ставят обучение с подкреплением где-то между обучением с учителем и без, но я не понимаю чем они похожи. Названием?

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

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

Знания об окружающем мире такому роботу могут быть полезны, но чисто для справки. Не важно сколько данных он соберёт, у него всё равно не получится предусмотреть все ситуации. Потому его цель — минимизировать ошибки, а не рассчитать все ходы. Робот учится выживать в пространстве с максимальной выгодой: собранными монетками в Марио, временем поездки в Тесле или количеством убитых кожаных мешков хихихих.

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

Умные модели роботов-пылесосов и самоуправляемые автомобили обучаются именно так: им создают виртуальный город (часто на основе карт настоящих городов), населяют случайными пешеходами и отправляют учиться никого там не убивать. Когда робот начинает хорошо себя чувствовать в искусственном GTA, его выпускают тестировать на реальные улицы.

Запоминать сам город машине не нужно — такой подход называется Model-Free. Конечно, тут есть и классический Model-Based, но в нём нашей машине пришлось бы запоминать модель всей планеты, всех возможных ситуаций на всех перекрёстках мира. Такое просто не работает. В обучении с подкреплением машина не запоминает каждое движение, а пытается обобщить ситуации, чтобы выходить из них с максимальной выгодой.

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

Эта идея лежит в основе алгоритма Q-learning и его производных (SARSA и DQN). Буква Q в названии означает слово Quality, то есть робот учится поступать наиболее качественно в любой ситуации, а все ситуации он запоминает как простой марковский процесс.

Машина прогоняет миллионы симуляций в среде, запоминая все сложившиеся ситуации и выходы из них, которые принесли максимальное вознаграждение. Но как понять, когда у нас сложилась известная ситуация, а когда абсолютно новая? Вот самоуправляемый автомобиль стоит у перекрестка и загорается зелёный — значит можно ехать? А если справа мчит скорая помощь с мигалками?

Ответ — хрен знает, никак, магии не бывает, исследователи постоянно этим занимаются, изобретая свои костыли. Одни прописывают все ситуации руками, что позволяет им обрабатывать исключительные случаи типа проблемы вагонетки. Другие идут глубже и отдают эту работу нейросетям, пусть сами всё найдут. Так вместо Q-learning’а у нас появляется Deep Q-Network (DQN).

Reinforcement Learning для простого обывателя выглядит как настоящий интеллект. Потому что ух ты, машина сама принимает решения в реальных ситуациях! Он сейчас на хайпе, быстро прёт вперёд и активно пытается в нейросети, чтобы стать еще точнее (а не стукаться о ножку стула по двадцать раз).

Потому если вы любите наблюдать результаты своих трудов и хотите популярности — смело прыгайте в методы обучения с подкреплением (до чего ужасный русский термин, каждый раз передёргивает) и заводите канал на ютюбе! Даже я бы смотрел.

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

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

Человечеству еще не удалось придумать задачу, где они были бы реально эффективнее других. Зато отлично заходят как студенческие эксперименты и позволяют кадрить научруков «достижениями» особо не заморачиваясь. На ютюбе тоже зайдёт.

Проблемы применения машинного обучения для решения реальных задач

Машинное обучение (ML), Искусственный Интеллект (AI), нейронные сети (NN) — эти термины в последнее время время не сходят с новостных заголовков и этот шум даже не думает умолкать.
Большие данные, вычислительные мощности графических карт (GPU) и огромное количество научных исследований — позволили глубокому обучению стать технологией меняющей мир.

Доступность фреймворков машинного обучения в виде открытого программного обеспечения, от ведущих исследовательских групп (от крупных компаний: TensorFlow от Google, PyTorch от Facebook, CNTK от Microsoft) позволяют сейчас быстро начать самостоятельно экспериментировать с глубокими нейронными сетями.

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

1. Ценность данных и предварительной подготовки
2. Неравномерность распределения классов в реальных задачах
3. Интерпретация модели

1. Ценность данных и предварительной подготовки

В области машинного обучения, около 80% времени уходит на подготовку данных.
Если в научных статьях берётся готовый набор данных (dataset), на котором демонстрируется, что ваш новый алгоритм работает на 1% лучше, по сравнению со старым методом, то в жизни, обычно, речь идёт о создании надёжной системы, которая с достаточной точностью решает поставленную задачу.
Это означает, что для любой системы машинного обучения, потребуется подготовка и маркировка обучающей выборки, на которой алгоритмы смогут обучаться.
При этом, нужно учитывать, что для многих реальных задач, сам процесс получения и подготовки данных — может обходиться весьма дорого.

Отчасти, здесь может помочь использование предварительного обучения (Transfer Learning).
Основная идея предварительного обучения заключается в том, что, в начале, нейронная сеть (или другой алгоритм машинного обучения) тренируется на дешёвом и большом наборе данных из схожей или той же области применения или даже на зашумлённых данных.

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

Например, очень часто берут предобученную сеть на таком наборе данных, как ImageNet, с выходом на 1000 классов.

Затем — настраивают выход сети на нужное количество классов и проводят переобучение сети на целевых данных задачи.
Это работает, так как такие наборы данных, как ImageNet позволяют использовать предварительно обученную нейронную сеть, для извлечения признаков (feature extractor), которые затем можно использовать для решения какой-либо другой проблемы компьютерного зрения.

Источники данных для предварительного обучения:
1. Предобученные модели — так называемый Зоопарк Моделей (Model Zoos). Например, для keras — deep-learning-models.

2. Открытые наборы данных (Public datasets). Множество самых разных наборов данных доступны в интернете. Поэтому, прежде чем тратить свой время на сбор данных самостоятельно — лучше предварительно поискать готовые наборы данных, которые могут помочь решить проблему, над которой вы работаете.
Начать можно с этих ресурсов:
CV Datasets on the web
awesome-public-datasets
Center for Machine Learning and Intelligent Systems: Data Sets
Kaggle Datasets
Datasets for Data Mining and Data Science
AWS Public Datasets
Deep Learning Datasets

3. Сбор данных с сайтов (Web Scraping). Можно реализовать свой парсер сайта (или сайтов), который автоматически соберёт с них нужные данные, что позволит вам создать свой новый набор данных.

В задаче написания своего парсера сайта, может помочь статья: Web Scraping с помощью python.
И всего две библиотеки:

4. Слабо размеченные данные. Для предварительного обучения модели, можно использовать, так называемые, слабо размеченные данные. Под этим понимаются данные, метки которых не всегда правильные (90% меток могут быть правильными, а 10% — ошибочными). Преимущество состоит в том, что такие данные могут быть получены автоматическим способом — без участия человека в разметке.

2. Неравномерность распределения классов в реальных задачах

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

В существующих академических наборах данных, эти данные, зачастую, хорошо сбалансированы. Это означает, что, например, для задачи классификации, подобрано одинаково много образцов для каждого класса.
Например: MNIST — очень известный набор данных рукописных цифр, содержащих одинаковое количество выборок каждой цифры размером 28×28 пикселей.

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

Решения проблемы неравномерного распеделения классов:
1. Получить больше данных. Попытаться собрать больше данных из редких классов. Делать это нужно с осторожностью, так как увеличив количество редких классов в своём обучающем наборе, мы получим модель которая может чаще предсказывать редкие классы.

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

3. Отбор данных. Если нет возможностей получить больше данных или изменить классы — значит, нужно работать с исходными данными. Чтобы обучить модель работе на редких классах, можно изменить способ, которым алгоритм получает примеры для обучения.
Возможны следующие варианты:
Игнорирование — выборочно игнорировать более часто встречающиеся классы (самый простой метод).
Это позволяет выровнять количество образцов из каждого класса.

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

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

4. Взвешивание потерь. Во время обучения модели, можно увеличить вес функции потерь для образцов из редких классов, чтобы научить модель уделять им больше внимания.

3. Интерпретация модели

В отличие от научных статей, в которых ваша модель должна продемонстрировать лучший результат работы, чем текущее state-of-the-art решение, при решении реальных задач, к модели предъявляются дополнительные требования:
* понимание почему и как модель может давать неправильные прогнозы,
* понимание почему модель работает лучше, чем предыдущее решение,
* уверенность, что модель не может быть обманута.

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

Линейные модели — линейные классификаторы или регрессоры — обеспечивают прямую связь между параметрами и прогнозом. Это делает относительно простым рассуждение о механизме принятия решения.

Деревья принятия решений (Decision trees) — можно отследить путь принятия решения по ветвям дерева, чтобы понять, как было принято решение. Как правило, верхние узлы охватывают самые важные параметры. Разумеется, всё становится сложнее, когда речь идет о случайных лесах принятия решений (Random forest).

К сожалению, понять как принимает решение нейронная сеть — гораздо сложнее. Они нелинейны и могут иметь миллионы параметров.

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

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

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

1. Частичное перекрытие (Partial occlusion) — часть изображения скрывается и проверяется как изменяется отклик классификатора.
2. Карта полезности (Saliency map) — вычисляются производные входного изображения относительно предсказаний класса.

Похоже, скоро нам всем придётся смириться с идеей ИИ, как «чёрного ящика».
Особенно, когда применение ИИ демонстрирует измеримые результаты, которые бизнес может выразить в денежной прибыли.
И вместо вопроса о том «Как ИИ приняло это решение?» — начать задавать другие вопросы.
Например: «Как можно обеспечить безопасность решений ИИ?»

Заключение

Применяя машинное обучение для решения реальных задач — необходимо прагматично и реалистично смотреть на возможные результаты работы.

Мы пока далеки от Сильного ИИ (AGI — Artificial general intelligence) и поэтому текущие разработки ИИ следует воспринимать, как исполнительного рабочего, которого как и любого сотрудника следует обучать, контролировать и проверять. В некоторых областях, где есть достаточное количество хорошо подготовленных данных — ИИ может достичь хороших результатов, работая быстрее и точнее, человека.
К преимуществам ИИ, следует отнести исключение пресловутого человеческого фактора и способность находить скрытые корреляции в большом количестве признаков.

Мастер Йода рекомендует:  Визуальный редактор для вашего сайта (TinyMCE) Javascript
Добавить комментарий