Равиль Ильгизович Мухамедиев "Введение в машинное обучение"

Учебник поможет студентам различных специальностей освоить современные технологии машинного обучения и практически использовать их в работе и научных проектах. В настоящем пособии даются весьма краткие теоретические и относительно подробные практические сведения о применении отдельных алгоритмов классификации и регрессии. Для практического освоения материала достаточно базовых навыков работы с языком Python. При этом освоение возможностей основных библиотек, таких как matplotlib, numpy, pandas, sklearn происходит в процессе решения задач. Используя полученные знания и навыки, студенты смогут решать широкий круг задач классификации, регрессии, анализировать влияние отдельных признаков на работу классификаторов и регрессионных моделей, снижать размерность данных, визуализировать результаты и оценивать качество моделей машинного обучения. Издание рекомендовано УМО РУМС.

date_range Год издания :

foundation Издательство :Автор

person Автор :

workspaces ISBN :

child_care Возрастное ограничение : 16

update Дата обновления : 17.01.2024

Введение в машинное обучение
Едилхан Несипханович Амиргалиев

Равиль Ильгизович Мухамедиев

Учебник поможет студентам различных специальностей освоить современные технологии машинного обучения и практически использовать их в работе и научных проектах. В настоящем пособии даются весьма краткие теоретические и относительно подробные практические сведения о применении отдельных алгоритмов классификации и регрессии. Для практического освоения материала достаточно базовых навыков работы с языком Python. При этом освоение возможностей основных библиотек, таких как matplotlib, numpy, pandas, sklearn происходит в процессе решения задач. Используя полученные знания и навыки, студенты смогут решать широкий круг задач классификации, регрессии, анализировать влияние отдельных признаков на работу классификаторов и регрессионных моделей, снижать размерность данных, визуализировать результаты и оценивать качество моделей машинного обучения. Издание рекомендовано УМО РУМС.

Едилхан Амиргалиев, Равиль Мухамедиев

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




Министерство образования и науки Республики Казахстан

Рекомендован к изданию УМО РУМС

Рецензенты:

Барахнин В. Б., д.т.н., профессор, НГУ, Россия, Новосибирск

Никульчев Е. В., д.т.н., профессор, МИРЭА, Россия, Москва

Маткаримов Б. Т., , д.т.н., профессор, Назарбаев университет, Казахстан, Нурсултан

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

    Равиль Ильгизович Мухамедиев,
    Едилхан Несипханович Амиргалиев

Предисловие

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

Машинное обучение наиболее быстро развивающая часть науки о данных. Новые, успешные модели появляются ежегодно, а их модификации и примеры приложений практически ежедневно. Поэтому написание какого-нибудь подробного пособия сопряжено с трудностями выбора такого содержания, которое с одной стороны не будет слишком поверхностным изложением самых последних достижений, а с другой стороны не погрузиться в разбор моделей, которые на практике используются уже не столь часто. Авторы постарались следовать от простого к сложному, уделив особое внимание аппарату искусственных нейронных сетей, поскольку последние достижения в области искусственного интеллекта связаны с моделями глубоких нейронных сетей. Вместе с тем разбор особенностей различных моделей хоть и полезен, но не достаточен для практических применений. Поэтому авторы включили специальные разделы, описывающие оценку качества моделей, предобработку данных и оценку параметров, которые в той или иной мере присутствуют в каждом приложении машинного обучения. На наш взгляд имеющийся набор сведений достаточен для успешного старта на пути применения машинного обучения на практике. Учебник обогащен материалами на основе опыта преподавания авторами предметов по искусственному интеллекту, распознаванию образов и классификации, компьютерному зрению, обработке естественного языка и машинному обучению в ведущих вузах Республики Казахстан: КазНУ имени аль-Фараби, КазНИТУ имени К. Сатпаева, Международном университете информационных технологий, Университете имени Сулеймана Демиреля, Казахстанско-Британском Техническом университете, а также материалами и результатами, полученными в рамках научных исследований по выполненным научным проектам грантового и программно-целевого финансирования в течение последних 10 лет.

Любая книга – это большой и часто длительный труд, который не мог бы состояться без помощи многих людей. Авторы выражают искреннюю признательность рецензентам В. Б. Барахнину, Е. В. Никульчеву и Б. Т. Маткаримову, потратившим драгоценное время для улучшения качества текста и давшим ценные советы по содержанию учебника. Большую работу по коррекции текста и тестированию примеров книги проделали Адилхан Сымагулов, Марина Елис, Ян Кучин. Ян Кучин оказал большую помощь в рамках проекта по созданию классификатора литологических типов урановых скважин РК. Рустам Мусабаев представил результаты эксперимента, посвященные высокопроизводительным вычислениям.

Не претендуя на полноту изложения всех возможностей методов машинного обучения, авторы в данной книге необходимый материал подали в двух частях, как введение в теорию и введение в практику машинного обучения. Практическая часть насыщена лабораторными занятиями и разборами кодов примеров, что поможет читателям поглубже освоить методы применения машинного обучения. Архив с примерами программ читатели могут скопировать по адресу: https://www.dropbox.com/s/xtxicveo5lwmu8z/ML_book_ExamplesLabs_v.1.0.zip?dl=0 (https://www.dropbox.com/s/xtxicveo5lwmu8z/ML_book_ExamplesLabs_v.1.0.zip?dl=0).

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

За все ошибки и неточности, которые заинтересованный читатель увидит в тексте, несут ответственность только авторы. Мы будем признательны за конструктивные замечания и уточнения, которые читатели могут направить на адреса электронной почты: mukhamediev.ravil@gmail.com (mailto:mukhamediev.ravil@gmail.com), amir_ed@mail.ru. Дополнительный материал авторы планируют размещать на сайте geoml.info.

Введение

Машинное обучение (Machine Learning – ML) – направление науки, относящееся к большой области, называемой искусственным интеллектом. Это направление исследований развивается уже несколько десятков лет. Оно обеспечивает потребности практики в тех ситуациях, когда строгая математическая модель задачи отсутствует или является неприемлемо сложной. В рамках этого направления рассматривают алгоритмы, которые способны обучаться, то есть, по существу, находить закономерности в данных. ML как научное направление изучает методы кластеризации, классификации и регрессии. В результате для специалистов по разработке программного обеспечения предлагаются методы обработки данных, которые реализуют часть интеллектуальных способностей, присущих человеку. К их числу относится способность обучаться, переобучаться, классифицировать объекты реального мира, предсказывать на основе накопленного опыта. В настоящее время именно с ML связано наибольшее количество ожиданий по реализации «умных» программ и сервисов (Smart Services). Например, по оценкам Gartner в 2017 году (рисунок 1.1), ML порождает наибольшие ожидания в развитии технологий. Более того, значительная часть новых технологий связана с ML.

Рисунок 1.1. Инновационные триггеры, ожидания, разочарования и продуктивность технологий [[1 - http://www.gartner.com/newsroom/id/3412017 (http://www.gartner.com/newsroom/id/3412017)]]

Организациям и исследователям, занимающимся разработкой наукоемких технологий, рекомендуется рассматривать следующие научные области: Smart Dust, Machine Learning, Virtual Personal Assistants, Cognitive Expert Advisors, Smart Data Discovery, Smart Workspace, Conversational User Interfaces, Smart Robots, Commercial UAVs (Drones), Autonomous Vehicles, Natural-Language Question Answering, Personal Analytics, Enterprise Taxonomy and Ontology Management, Data Broker PaaS (dbrPaaS) и Context Brokering.

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

В настоящее время существует несколько программных систем и библиотек программ, реализующих алгоритмы машинного обучения с той или иной степенью гибкости. Например, система RapidMiner [[2 - https://rapidminer.com/ (https://rapidminer.com/)]], один из лучших интегрированных пакетов, обеспечивает подготовку данных, создание моделей и тем самым интеграцию их в бизнес-процессы организации. Matlab, широко известный пакет прикладных программ и язык программирования компании MathWorks, предоставляет несколько сотен функций для анализа данных – от дифференциальных уравнений и линейной алгебры до математической статистики и рядов Фурье. GNU Octave использует совместимый с Matlab язык высокого уровня и в целом имеет высокую совместимость с Matlab. Это позволяет использовать и его для прототипирования систем машинного обучения. Функции Octave доступны онлайн [[3 - Octave online. – https://octave-online.net/ (https://octave-online.net/) (2017-04-01).]], загрузить систему можно по ссылке [[4 - Octave download. – https://www.gnu.org/software/octave/download.html (https://www.gnu.org/software/octave/download.html) (2017-04-01).]]. Отметим, что Octave содержит несколько предустановленных библиотек, список которых можно просмотреть по ссылке https://octave.sourceforge.io/packages.php (https://octave.sourceforge.io/packages.php).

Однако наиболее часто упоминается язык программирования Python и ряд библиотек, использующих его для реализации алгоритмов машинного обучения. Например, развитые библиотеки программ по машинному обучению могут быть вызваны из среды Anaconda (https://www.anaconda.com/ (https://www.anaconda.com/)), основой которой является язык Python. Библиотеки numpy, matplotlib, pandas, sklearn, предустановленные в Anaconda, используются в данном пособии в качестве практической основы для решения задач классификации и регрессионного анализа.

Настоящая книга состоит из двух основных частей.

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

В первой главе машинное обучение рассматривается в контексте дисциплин искусственного интеллекта (ИИ). Несложная классификация дисциплин ИИ дает понимание места и роли ML в задачах обработки данных.

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

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

Четвертая глава посвящена методам и средствам предобработки табличных данных.

Пятая глава кратко описывает специфические задачи обработки больших объемов данных.

Шестая глава содержит введение в модели глубокого обучения.

Седьмая глава посвящена еще до конца не решенному вопросу объяснения результатов работы моделей ML.

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

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

Часть I. Математические модели и прикладные методы машинного обучения

1. Искусственный интеллект и машинное обучение. Составные части искусственного интеллекта

Искусственный интеллект (ИИ) – это любые программно-аппаратные методы, которые имитируют поведение и мышление человека. ИИ включает машинное обучение, обработку естественного языка (Natural Language Processing – NLP), синтез текста и речи, компьютерное зрение, робототехнику, планирование и экспертные системы [[5 - The Artificial Intelligence (AI) White Paper. – https://www.iata.org/contentassets/b90753e0f52e48a58b28c51df023c6fb/ai-white-paper.pdf (https://www.iata.org/contentassets/b90753e0f52e48a58b28c51df023c6fb/ai-white-paper.pdf) (2021-02-23).]]. Схематично компоненты ИИ показаны на рисунке 1.1.

Рисунок 1.1. Подразделы искусственного интеллекта

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

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

В результате обеспечиваются новые функции систем и программ. Согласно определениям, приведенным в [[6 - Nguyen G. et al. Machine Learning and Deep Learning frameworks and libraries for large-scale data mining: A survey // Artificial Intelligence Review. – 2019. – Т. 52. – № 1. – С. 77–124.]]:

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

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

– Глубокое обучение (Deep Learning -DL) – это подмножество NN, которое обеспечивает расчеты для многослойной NN. Типичными архитектурами DL являются глубокие нейронные сети, сверточные нейронные сети (CNN), рекуррентные нейронные сети (RNN), порождающие состязательные сети (GAN), и многое другое.

Перечисленные компоненты ИИ показаны на рисунке 1.2.

Рисунок 1.2. Искусственный интеллект и машинное обучение

Сегодня машинное обучение успешно применяется для решения задач в медицине [[7 - Joseph A. Cruz and David S. Wishart. Applications of Machine Learning in Cancer Prediction and Prognosis // Cancer Informatics. – 2006. – Vol. 2. – P. 59–77.], [8 - Miotto R. et al. Deep learning for healthcare: Review, opportunities and challenges // Briefings in Bioinformatics. – 2017. – Т. 19. – № 6. – С. 1236–1246.]], биологии [[9 - Ballester, Pedro J. and John BO Mitchell. A machine learning approach to predicting protein–ligand binding affinity with applications to molecular docking // Bioinformatics. – 2010. – Vol. 26. – № 9. – P. 1169–1175.]], робототехнике, городском хозяйстве [[10 - Mahdavinejad, Mohammad Saeid, Mohammadreza Rezvan, Mohammadamin Barekatain, Peyman Adibi, Payam Barnaghi, and Amit P. Sheth. Machine learning for Internet of Things data analysis: A survey // Digital Communications and Networks. – 2018. – Vol. 4. – Issue 3. – P. 161–175.]] и промышленности [[11 - Farrar, Charles R. and Keith Worden. Structural health monitoring: A machine learning perspective. – John Wiley & Sons, 2012. – 66 p.], [12 - Lai J. et al. Prediction of soil deformation in tunnelling using artificial neural networks // Computational Intelligence and Neuroscience. – 2016. – Т. 2016. – С. 33.]], сельском хозяйстве [[13 - Liakos, Konstantinos et al. Machine learning in agriculture: A review // Sensors. – 2018. – 18(8). – P. 2674.]], моделировании экологических [[14 - Friedrich Recknagel. Application of Machine Learning to Ecological Modelling // Ecological Modelling. – 2001. – Vol. 146. – P. 303–310.]] и геоэкологических процессов [[15 - Татаринов В. Н., Маневич А. И., Лосев И. В. Системный подход к геодинамическому районированию на основе искусственных нейронных сетей // Горные науки и технологии. – 2018. – № 3. – С. 14–25.]], при создании системы связи нового типа [[16 - Clancy, Charles, Joe Hecker, Erich Stuntebeck, and Tim O?Shea. Applications of machine learning to cognitive radio networks // Wireless Communications, IEEE. – 2007. – Vol. 14. – Issue 4. – P. 47–52.]], в астрономии [[17 - Ball, Nicholas M. and Robert J. Brunner. Data mining and machine learning in astronomy // Journal of Modern Physics D. – 2010. – Vol. 19. – № 7. – P. 1049–1106.]], петрографических исследованиях [[18 - R. Muhamediyev, E. Amirgaliev, S. Iskakov, Y. Kuchin, E. Muhamedyeva. Integration of Results of Recognition Algorithms at the Uranium Deposits // Journal of ACIII. – 2014. – Vol. 18. – № 3. – P. 347–352.], [19 - Амиргалиев Е. Н., Искаков С. Х., Кучин Я. В., Мухамедиев Р. И. Методы машинного обучения в задачах распознавания пород на урановых месторождениях // Известия НАН РК. – 2013. – № 3. – С. 82–88.]], геологоразведке [[20 - Chen Y., Wu W. Application of one-class support vector machine to quickly identify multivariate anomalies from geochemical exploration data // Geochemistry: Exploration, Environment, Analysis. – 2017. – Т. 17. – № 3. – С. 231–238.]], обработке естественного языка [[21 - Hirschberg J., Manning C. D. Advances in natural language processing // Science. – 2015. – Т. 349. – № 6245. – С. 261–266.], [22 - Goldberg Y. A primer on neural network models for natural language processing // Journal of Artificial Intelligence Research. – 2016. – Т. 57. – С. 345–420.]] и т.д.

1.1. Машинное обучение в задачах обработки данных

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

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

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

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

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

В случаях, когда нет строгих формальных методов для решения задач регрессии, классификации и кластеризации, используются методы ML [[23 - Под методом машинного обучения мы будем понимать реализацию алгоритма или некоторой модели вычислений, которая решает задачу классификации, регрессии или кластеризации с использованием «обучающихся» алгоритмов.]].

В настоящее время методы МL делят на пять классов [[24 - Taiwo Oladipupo Ayodele. Types of Machine Learning Algorithms // New Advances in Machine Learning. – 2010. – P. 19–48.], [25 - Hamza Awad Hamza Ibrahim et al. Taxonomy of Machine Learning Algorithms to classify realtime Interactive applications // International Journal of Computer Networks and Wireless Communications. – 2012. – Vol. 2. – № 1. – P. 69–73.], [26 - Muhamedyev R. Machine learning methods: An overview // CMNT. – 2015. – 19(6). – P. 14–29.], [27 - Goodfellow I. et al. Deep learning. – Cambridge: MIT press, 2016. – Т. 1. – № 2.], [28 - Nassif A. B. et al. Speech recognition using deep neural networks: A systematic review // IEEE Access. – 2019. – Т. 7. – С. 19143–19165.]]: обучение без учителя (Unsupervised Learning – UL) [[29 - Hastie T., Tibshirani R., Friedman J. Unsupervised learning. – New York: Springer, 2009. – P. 485–585.]] или кластерный анализ, обучение с учителем (Supervised Learning – SL) [[30 - Kotsiantis, Sotiris B., I. Zaharakis, and P. Pintelas. Supervised machine learning: A review of classification techniques // Emerging Artificial Intelligence Applications in Computer Engineering. – IOS Press, 2007. – P. 3–24.]], полууправляемое обучение, включая самообучение (Semi-supervised Learning – SSL), обучение с подкреплением (Reinforcement Learning – RL) и глубокое обучение (Deep Learning). Методы машинного обучения решают задачи регрессии, классификации, кластеризации и снижения размерности данных (рисунок 1.3).

Все книги на сайте предоставены для ознакомления и защищены авторским правом