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

Искусственный интеллект (Artificial Intelligence, AI) – это область науки, созданная на стыке многих академических наук. Терми бы введён в 1956 году, в эпоху попыток эмитировать работу человеческого мозга. Один из способов его достижения – машинное обучение (Machine Learning). Дисциплина машинное обучение (ML) строится на трёх составляющих: данных (разнородные данные), алгоритмах и признаках. Другие, смежные дисциплины, строятся на двух сущностях. Так, классическое программирование строится на алгоритмах, применяемых к конкретным признакам, Data Scienes – на данных и получаемых из них фичах, Data Mining – на обработке алгоритмах и данных. ML с помощью алгоритмов и фич предоставляет новые данных. Так, как ML использует фичи, которые подаются как основа для обучения, то он использует результаты Data Scienes. Для разработки самих сетей используются языки программирования.

Когда мы подаём нейронные сети данных, на их основе происходит обучение нахождению решений и выявление закономерностей и данных, ранее которых не было. Для обучения могут использоваться статистические алгоритмы, например, на языке R, поиск в глубину на языке Prolog или поиск в ширину на Refal, а также подстраивающиеся структуры – нейронные сети. Нейронные сети, в зависимости от задач, строятся по разным принципам, имеют структуру и по–разному обучаются. В последнее время наибольший прорыв получили нейронные сети представления данных (Representation learning), занимающиеся выявлением в информации закономерностей, так как саму информацию из–за её размеров они не могут запомнить. Большой эффект дают глубокие нейронные сети, имеющие множество уровней признаков, признаки на последующих уровнях строятся на основании признаков с предыдущих уровней, о них и пойдёт речь в этой главе.

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

Типы построения:

* Классическое обучение (экспертное);

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

Типы обучений:

* С учителем (регрессия, классификация, порождающие, seq2seq);

* Без учителя (кластеризация, поиск правил, обобщение, ассоциация).

По способу улучшения результата:

* Ансамбли нейронных сетей;

* Глубокие нейронные сети.

В эволюции нейронных сетей, обычно, выделяют три эпохи:

* Экспертные системы (rule based модели) – системы, основанные на правилах. Недостатком является слабая актуализируемость, если эксперт закончил работать, то система начинает устаревать;

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

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

Этапы эволюции нейронных сетей:

* 1950-е годы – исследование мозга и его имитирование;

* 1960-е годы – собеседник ELIZA (1956 год) на общие вопросы, генетические алгоритмы основанные на переборе всех возможных изменений и выбора лучшего;

* 1970-е годы – экспертные системы основанные на правилах и данных от экспертов, например MYCIN и DENDRAL;

* 1980-е годы – коммерческое внедрение экспертных систем;

* 2010-е годы – решение подготовленных задач нейронными сетями и статистическими алгоритмами;

* 2010-е годы – глубокое обучение в соревнованиях с человеком и реальном мире (автопилотах, переводчиках, ассистентах).

Последние годы:

* 1994 год – выигрыш Chinook в шашки у чемпиона мира,

* 1997 год – выигрыш Deep Blue в настольную игру шахматы у чемпиона мира,

* 2005 год – беспилотные автомобили на площадках (соревнование DARPA Grand Challenge),

* 2011 год – IBM Watson выиграла в телевизионной игре Jeopardy,

* 2012 год – Google X Lab распознаёт цветные изображения животных,

* 2016 год – Google Translate основан на нейронных сетях, выигрыш Google DeepMind AlphaGo у чемпиона мира по Go,

* 2017 год – выигрыш у чемпионов в коллективную 3D игру Dota2,

* 2018 год – беспилотные такси Alphabet Waymo на общих дорогах в Аризоне,

* 2019 год – победа Libratus чемпионов в покер,

* 2020 год – чат-бот на GPT-3 был не распознан собеседниками в социальной сети, видео-интерьвью с авотаром я не отличил от естественного,

* 2021 год – OpenAI Codex создаёт программы по детальному описанию задачи на естественном языке.

Достижения последнего времени:

* распознавание речи по движению губ;

* выигрыши в в 2D игры и 3D игры;

* выигрыши в настольные игры: шахматы, Go;

* синхронный перевод в Skype: разговор между людьми без знания языков друг друга;

* автопилот в автомобилях;

* FindFace распознаёт лица;

* описание изображение текстом и наоборот.

Достижения на 2019 год:

* чтение по губам лучше профессионала (DeepMind Lip Reading);

* изображения: фотореалистичная генерация изображений (Google bigGAN), трансформация видео (NVIDEA vid-to-vid), создание изображений по макетам (NVIDEA gauGAN), обучение беспилотников по виртуальным маршрутам (NVIDEA Drive);

* текст: GPT, BERT, BART, T5, ELMo и другие архитектуры развиваются, расширяют свою сферу применения, эволюционируют;

* звук: умные колонки, с умением автоответчика вести разговор;

* соревнования: AlphaZero обыграла чемпионов в Go и шахматы, другие сети обыграли в StartCraft, Dota-2, покер;

* медицина: визуализация снимков;

* автоматизация: AliBaba автоматизировала Ханджоу (светофоры, инфраструктура), Google автоматизировал охлаждение своих Data центров, автопилоты и другие Edge AI;

* доступность: дообучение готовых моделей в Cloud.

Достижения на 2020 год:

* Intel создал нейроморфную машину Loihi с 1024 нейронами и IBM TrueNorth с миллионом нейронов;

* модель MuZero сама учится играть в неизвестные ей игры (Atari + Go + шахматы + японские шахматы) без начальных знаний, обучающих партий людей и программ и выигрывает у узкоспециализированной AlphaZero, традиционных программ Stockfish и людей в шахматы;

* модель mT5 обучена на более 100 языках для переводов;

* GPT-3 и ruGPT умеют писать программы;

* Модель GPT-3 написала передовицу для газеты Гардиан;

* Модель NVidia StyleGAN2 генерирует правдоподобные лица людей.

Достижения на 2021 год:

* создание ML с несколькими навыками, таких как GPT-3;

* генерация изображения по текстовому описанию: нейронная сеть OpenAI DALL-E (GPT-3 13 + автоинкодер) от OpenAI;

* генераторы музыки: Pod Music Transformet (нотная модель), OpenAI Jukebox (звуковая модель: голос и музыка);

* нейронная сеть создаёт Atari игры по образцу;

* OpenAI Codex создаёт программы по детальному описанию задачи на естественном языке.

Но, в 2021 году более интересны проекты, которые имеют применение нейронных сетей в бизнесе:

* генерация генотипа человека для обхода закона о запрете экспериментов над необезличенным генотипом;

* Яндекс выпустил беспилотных доставляющих роботов;

* одна из нейронных сетей одержала победу над реальным пилотом истребителя и бедет внедряться в боевые беспилотники;

* Яндекс продемонстрировал работу беспилотного такси Yandex Self-Driving Car на дрогах общего пользования города после снегопада;

* чат-бот от Microsoft имитирующий старшеклассница Tay долгое время оставался нераспознанным к бот;

* генерация изображения по текстовому описанию: нейронная сеть Николай Иронов от студии дизайна Студии Артемия Лебедева генерит коммерческие логотипы.

* внедрены системы управления бизнес процессами на основе обучения с подкреплением (игрового принципа обучения);

* многие страны создали стратегии развития AI на государственном уровне, так в России принята стратегия указом №490 "О развитии искусственного интеллекта в Российской Федерации";

* на законодательном уровне формируется экосистема для AI: в России принят закон посвящённых AI (Закон об искусственном интеллекте 123-ФЗ).

* обучение на малых датасетах: копирование голоса по записи длительностью в 4 часа как SaaS продукт.

* виртуальная ведущая Елена от Сбербанка эмулирует мимику во время разговора, но не очень естественно, на мой взгляд.

Достижение на 2022 год:

* Кроме OpenAI Codex (Copilot, модель GPT3 обученная на коде), есть DeepMind AlphaCode, TabNine и многие другие уже встроенные в популярные среды разработки кода.

* Голосовой собеседник LaMDA признан достаточно правдоподобным в диалоге.

Но не стоит забывать про стандартные задачи:

* Intelligent document processing – извлечение структурированных данных из неструктурированных бумажных документов;

* Process Mining – описание реальных процессов по цифровым следам, определение узких мест и зацикливаний и возможных решений.

Достижения это хорошо, но это демонстрация потенциальных возможностей. Давайте посмотрим, что добились нейронные сети в индустрии на основании отчёт об искусственном интеллекте Artificial Intelligence Index Report 2021.

Посмотрим на качественный прогресс в IMAGENET Calange. Это соревнование по распознаванию картинок нейронными сетями. Создана очень большая база изображений (датасет). В этот датасет входят разные изображения по 200 категориям. В категории TOP-1 accuracy нейронная сеть должна с одной попытки угадать категорию, например, это самолёт или туфли. В категории TOP-5 accuracy нейронная сеть должна с пятью попыток угадать категорию. Как мы увидим, прогресс постепенно выходит на плато:

год – TOP-1 – TOP-5 2013 – 65% – 85% 2014 – 74% – 87% 2015 – 79% – 92% 2016 – 83% – 95% 2017 – 84% – 97% 2018 – 85% – 97.5% 2019 – 86% – 97.6% 2020 – 86% – 97.7% 2021 – 86.5% – 97.9%

Давайте посмотрим другие показатели. Так до 2017 года дополнительные данные не давали преимущества, а лишь ухудшали результат. В 2017 году результаты сравнялись, а после с дополнительными данными результаты линейно обгоняют простого обучения на датасете. Сейчас TOP-1 = 90.2%, TOP-5 = 98.8. Возможно, именно в них и будет прогресс.

Также скорость обучения выросла: 2018 – 6.2…10 минуты, 2019 – 1.3…9 минуты, 2020 – 47 секунд до 1 минуты. Время всё же снижается кратно, хоть и по убывающей, а ресурсы увеличиваются экспоненциально, но и сложность нейронных сетей возрастает, чтобы показывать результаты более высокие. Но, хоть и ресурсов требуется гораздо больше, но в реальности нас интересует стоимость, а она постоянно снижается: 2018 – 500$, 2019 – 10$, 2020 – 8$, хоть и затухающе.

Может быть ситуация связан с утиханием интереса среди учёных к искусственному интеллекту? Но, нет, доля публикаций в AI со времени прорыва в распознавании изображений относительно всех публикаций экспоненциально растёт:

год – % 2011 – 1.4 2012 – 1.2 2013 – 1.2 2014 – 1.3 2015 – 1.5 2016 – 1.8 2017 – 2.0 2018 – 2.5 2019 – 3.8

Общее число публикаций тоже растёт, причём экспоненциально:

2011 – 0.1 тысяч 2012 – 0.2 тысяч 2013 – 0.3 тысяч 2014 – 0.5 тысяч 2015 – 1.1 тысяч 2016 – 1.9 тысяч 2017 – 3.0 тысяч 2018 – 3.5 тысяч 2019 – 5.8 тысяч 2020 – 6.5 тысяч

Рассмотрим США, так как она занимает лидирующее место по публикациям (36,3%) в AI от других стран в совокупи, что не удивительно, ведь доля PHD полученных в США от всех стран в совокупи в AI составляет 81,8%. PHD по компьютерным наукам специализация на ML/AI лидирует с долей 25% от всех направлений по компьютерным наукам, отрываясь от Теории алгоритмов с долей 8%. При этом скорость роста популярности за год у ML/AI самая высокая: 9%. А подробнее про рост с 2019 по 2020 (остальные показывают снижение популярности):

Artificial Intelligence/Machine Learning 9% Robotics/Vision 2.6% Human-Computer Interaction 2% Security/Information Assurance 2% Computing Education 1.4% Databases/Information Retrieval < 1% High Performance Computing < 1% Theory and Algorithms < 1% Information Science < 1% Social Computing/Social Informatics/CSCW < 1%

При этом с каждым годом, получившие степень PhD (Doctor of Philosophy) в США, всё больше находят работу в частных компаниях, что подтверждает, что компании оценивают потенциал AI, который они смогут применить.:

год % 2010 – 44 2011 – 41 2012 – 50 2013 – 50 2014 – 58 2015 – 58 2016 – 60 2017 – 58 2018 – 61 2019 – 65

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

год Китай США 2010 – 0,2 тысяч 0,7 тысяч 2011 – 0,2 тысяч 0,7 тысяч 2012 – 0,2 тысяч 0,8 тысяч 2013 – 0,3 тысяч 0,9 тысяч 2014 – 0,3 тысяч 1,0 тысяч 2015 – 0,4 тысяч 1,3 тысяч 2016 – 0,5 тысяч 1,5 тысяч 2017 – 0,7 тысяч 2,0 тысяч 2018 – 1,1 тысяч 2,7 тысяч 2019 – 1,6 тысяч 3,6 тысяч

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

год – тысяч патентов 2009 – 39 2010 – 42 2011 – 49 2012 – 56 2013 – 60 2014 – 60 2015 – 60 2016 – 57 2017 – 61 2018 – 78 2019 – 102

Ориентируясь на сегментацию AI публикаций на сайте arXiv можно косвенно провести с общей ситуацией по росту направлений в AI. В приведённой ниже статистике они все показывают рост и при том линейный. Наибольший рост показали Computer Vision (31% от общего) и нейронные сети (32% от общего):

область AI публикаций Нейронный Machine Learning 11.098 Computer Vision 11.001 Языки 5.573 Robotics 2.571 Общий AI 1.923 Статистический ML 1.818

Также косвенно можно посмотреть по распределению конференций:

International Conference on Intelligent Robots and Systems (IROS) 25,719 Conference and Workshop on Neural Information Processing Systems (NIPS) 22,011 International Conference on Machine Learning (ICML) 10,800 The Conference on Computer Vision and Pattern Recognition (CVPR) 7,500 Association for the Advancement of Artificial Intelligence (AAAI) 4,884 International Joint Conference on Artificial Intelligence (IJCAI) 3,015

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

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

* генерация изображений лиц людей: Fréchet Inception Distance (DID) – c 01/2018 по 07/2020 уменьшился с 40 до 25.4;

* распознавание фейковых изображений, которые могут использоваться при фильтрации в социальных сетях и новостях: Deepfake Detection Challenge, Логистическая функция ошибки с 0.7 до 0.19 за 4 месяца;

* распознавание расположения ключевых точек и суставов на изображении человека, которые могут использоваться в кинематографе и магазинах без касс, таких как Amazon.Go: Keypoint Detection Challenge в Common Objects in Context (COCO) – увеличение с 62% до 80.8% за 4 года;

* альтернативная задача по распознаванию контуров человека – DensePose Challenge в Common Objects in Context (COCO) с 55% до 72% за полтора года;

* сегментация изображения по областям (выделение объектов: дорога, человек, здание, пешеходная зона), которое может применяться для автопилотов, для создания коллажей, смена фона в кинематографе, дополненной реальности: PIXEL-LEVEL SEMANTIC LABELING TASK в CITYSCAPES CHALLENGE с 63% до 85% за 5 лет;

* распознавание типа действия на видео, которое може использоваться полицией или службами безопасности: Temporal Action Localization Task в датасете ActivityNet с вероятностью угадывания с 18% до 42.8% за 4 года;

* распознавание объектов на фото, которое может использоваться в автопилотах: MEAN AVERAGE PRECISION в датасете You Only Look Once (YOLO);

* распознавание людей по лицам, которые используется авторизации по лицу (банки, магазины, метро): Face Recognition Vendor Test (FRVT) в National Institute of Standards and Technology (NIST) с ошибкой до 0.22% за 3 года;

* понимание текста в датасете Stanford Question Answering Dataset (SQuAD) с 45% до 90.3% за полтора года (лучше человека);

* опрос по картинке на соревновании Visual Question Answering (VQA) Challenge в задаче Visual Commonsense Reasoning (VCR) Task с 68% до 95.4% для версии SQuAD v1.1 (лучше человека);

* рассуждения по тексту или картинке на соревновании Visual Question Answering (VQA) Challenge за 4.5 года с точностью с 55% до 76.4%;

* распознавание речи по датасету LibriSpeech в задаче Transcribe Speech – количество ошибок уменьшилось за четыре года без шумов 5.3%..1.4%, а с шумами 13.3%..2.6%;

* распознавание какому человеку принадлежит реч: 0,6% ошибок;

* предсказание структуры белка с 2016 года обогнала физически модели с точностью 40% и на 2020 год достигли точности 84%;

* решение проблем и доказательство теорем: с 2017 года имеет линейный тренд без прорывов;

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

Сейчас с Microsoft в непосредственной области ML и AI, и интеграции этих наработок в продукты работают более 7000 специалистов. На примере продуктов компании Microsoft посмотрим на внедрение ИИ в больших компаниях:

* 1995 – Помощник MS BOB;

* 1996 – Ассистент MS Office Clippy и корректор грамматики;

* 2002 – Распознавание рукописного ввода Windows XP;

* 2011 – Классификатор снимков в Windows Live Photo Gallery;

* 2013 – Помощник Contana;

* 2014 – Синхронный перевод в Skype;

* 2015 – Аутентификация с помощью видеокамеры Windows Hello;

* 2016 – Чат-боты и распознавание образов статистически лучше человека;

* 2017 – Распознавание речи статистически лучше человека;

* 2018 – Выполнение тестов статистически лучше человека.

Сама компания развивает AI в областях: консалтинг, образование, программные сервисы (SaaS), фреймворки, инструменты для разработчиков, программная (облака) и аппаратная (процессоры) инфраструктура.

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

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

Посмотрим на рост глобальных инвестиций корпораций и стартапов в AI:

2015 – 12 и 8 Mil.$ 2016 – 17 и 12 Mil.$ 2017 – 44 и 22 Mil.$ 2018 – 43 и 37 Mil.$ 2019 – 49 и 39 Mil.$ 2020 – 67 и 42 Mil.$

Посмотрим частный пример, на рост индустрии на примеров увеличения количества сервисов машинного перевода:

2017 – 7 2018 – 10 2019 – 21 2020 – 24

Теперь, собственно, настало поговорить о вакансиях. Количество вакансий с 2016 по 2020 год выросла 1.3..2.7 раз, при этом число вакансий от общего числа составляют от 0.2% до 2.4%:

США – 210% Канада – 270% Австралия – 210% Сингапур – 250% Германия – 220% Италия – 170% Франция – 160% Китай – 130%

В курсах по AI доля Machine Learning составляет 42%.

Если же говорить об рабочих местах и о смещении на технологические рабочие места. Часто, компании, которые автоматизируют рабочие места, заявляют, что сотрудники которые их занимали могут переквалифицироваться и начать управлять этими автоматизированными системами. Обычно, люди со стороны относятся к этому с недоверием, так как непонятно, зачем автоматизировать и потом оставляют тоже количество людей, ведь автоматизация подразумевает в их понятие автономность. Но, это не так, так как автоматизация подразумевает наличие огромного количества людей, разрабатывающих и обслуживающих эти системы. Так, в одной из крупнейших компаний России есть план, который подразумевает освобождение нескольких тысяч мест продавцов, кассиров и других операторов, но вместе с тем запланирован найм большего количества тысяч рабочих мест специалистов обслуживающих системы AI. Ожидается качественный и масштабируемый прирост показателей услуг, предоставляемых компанией, а большей степени отрытие новых ниш развития компании. Количество в среднем останется таким же, так как большой набор проектный (единичный), а отток – плановый (ежегодный). Но, конечно, продавцы и кассиры маловероятно, что переквалифицируются в разработчиков, аналитиков и учёных с сфере ИИ. Хотя, большими компаниями делаются попытки в этом направлении – создаются курсы и очное обучение на несколько месяцев для переквалификации сотрудников. Обычно, люди с умирающих профессий переквалифицируются в другие умирающие профессии, у которых умирание произойдёт с небольшим запозданием. Это связано с тем, что люди бегут с простых работ на работы чуть сложнее, чем были до этого, ожидая быструю и разовую переквалификацию. Например, продавцы могут переквалифицироваться в таксистов, где требуется чуть больше технических навыков, чем их прежняя работа, и автоматизация, чуть сложнее и чуть менее эффективна. Такая ситуация была всегда, и связана она с любой автоматизацией, не только компьютерной. Общей чертой профессий, подлежащих автоматизации является рентабельность, то есть они достаточно массовы и легко автоматизируются, чтобы это стало выгодным. Популярность профессии для перехода с умирающей и является, что она скоро станет массовой, а лёгкость переквалификации связана со стандартизацией. Так, курсы по переквалификации уже говорят, что есть алгоритм и он будет применён многократно, пока только на этапе переквалификации, а не на этапе постоянной работы. Отсюда вытекает следствия, что столь популярная профессия как Web программист с понятными навыками, понятными заданиями может быть автоматизирована. Не секрет, что в разработке формализован стиль кода, фреймворки, подходы, постановка задач. И действительно, современные готовые (предобученные) нейронные сети могут генерировать работающий программный код, но об этом позже в этой книге. Но, программисты, гораздо ближе к эффективной переквалификации, если он если они не занимаются простым кодированием. Но, только 2020, нейронные сети могут формировать только простой код на языке программирования, а насколько – в соответствующем разделе. Поэтому программисты разделяются на два лагеря – программисты пишущие типовой код, которым сложно адаптироваться, но которых это коснётся и программистов, которых могут переквалифицироваться, который понемногу будут вытеснять первая группа программистов, и которым, скорее всего интереснее и перспективнее это будет сделать. Правда тут не всё так однозначно, так с 2018 года, нейронные сети уже умеют проектировать другие специализированные нейронные сети с помощью технологии AutoML.

Что, касается самой профессии Data scines – это аналитик данных, который на основе понимания предметной области может с помощью статистических методов используя инструменты (языки, системы) получить предсказания. Более подробно о навыках:

* математическая статистика и теория вероятностей, чтобы мог выбрать статистические методы, где ML не нужен;

* алгоритмы ML: регрессия, классификация, кластеризация, порождения (генерации), сопоставление;

* программирование: аналитика на R, написание моделей на Python и подключение данных из Java+SQL (Hadoop, Hive, Spark, Pig), управление жизненным циклом модели (DevOps, SRE);

* мягки навыки: понимание предметной области (ориентация на бизнес результат), проектное управление (коммуникация для построения запуска модели), аналитика для проверки гипотез.

Загрузка...