Машинное обучение и язык программирования Python | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 января, печатный экземпляр отправим 8 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №10 (352) март 2021 г.

Дата публикации: 06.03.2021

Статья просмотрена: 606 раз

Библиографическое описание:

Титов, М. А. Машинное обучение и язык программирования Python / М. А. Титов. — Текст : непосредственный // Молодой ученый. — 2021. — № 10 (352). — С. 27-29. — URL: https://moluch.ru/archive/352/79029/ (дата обращения: 22.12.2024).



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

Ключевые слова: машинное обучение, искусственные нейронные сети, Python, Scikit-learn, TensorFlow.

Машинное обучение — основной способ демонстрации науки о данных широкой общественности. В машинном обучении вычислительные и алгоритмические возможности науки о данных соединяются со статистическим образом мышления, в результате возникает набор подходов к исследованию данных, связанных в основном с эффективностью и теорией о вычислении. Термин «машинное обучение» иногда рассматривают как некоторую «волшебную таблетку», которая решает все проблемы с данными, однако в реальности это не так. Хотя возможности этих методов огромны, для их эффективного использования необходимо хорошо разбираться в сильных и слабых сторонах каждого метода, как и в общих понятиях, таких как «систематическая ошибка» (bayes), «дисперсия» (varience), «переобучение» (overfitting), недообучение (underfitting) и т. д.

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

На базовом уровне машинное обучение можно разделить на два основных вида:

— машинное обучение с учителем (supervised learning);

— машинное обучение без учителя (unsupervised learning).

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

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

Кроме того существует так называемый метод частичного обучения, который сочетает в себе достоинства и недостатки первых двух способов [1].

Язык Python, появившийся в 1991 году быстро набрал популярность и стал общепринятым языком для машинного обучения. Он сочетает в себе мощь высокоуровневых языков программирования и простоту использования предметно-ориентированных скриптовых языков программирования. Python имеет библиотеки для загрузки и визуализации данных, статистических вычислений, обработки изображений и многого другого. Самые популярные библиотеки для машинного обучения на языке Python: Scikit-learn, PyTorch, Caffe, TensorFlow, OpenCV. Подробнее рассмотрим библиотеки Scikit-learn и TensorFlow [2].

Scikit-learn — одна из самых старых и некогда популярных библиотек для обучения нейронных сетей. Она была создана в 2007 году и до сих пор является надежным инструментом в таких областях, как: классификация, регрессия, кластеризация, моделирование.

Основные принципы API статистического оценивания библиотеки Scikit-learn:

— единообразие (интерфейс всех объектов идентичен и основан на ограниченном наборе методов);

— контроль (видимость всех задаваемых значений параметров как открытых атрибутов);

— ограниченная иерархия объектов (классы языка Python используются только для алгоритмов, наборы данных представлены в стандартных форматах);

— объединение (многие задачи машинного обучения можно выразить в виде последовательности алгоритмов более низкого уровня);

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

На практике эти принципы очень облегчают изучение библиотеки Scikit-learn.

Чаще всего использование API статистического оценивания библиотеки Scikit-learn включает следующие шаги:

  1. выбор класса модели с помощью импорта соответствующего класса-оценивателя из библиотеки Scikit-learn;
  2. выбор гиперпараметров модели путем создания экземпляра этого класса с соответствующими значениями;
  3. компоновка данных в матрицу признаков и целевой вектор;
  4. обучение модели на своих данных;
  5. применение модели к новым данным [1].

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

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

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

Название «TensorFlow» происходит от вычислений, которые искусственная нейронная сеть производит с многомерными данными и тензорами, буквально — «поток тензоров». Тензоры являются основными объектами в TensorFlow и реализованы как n-мерные массивы данных, которые позволяют представлять данные в сложных измерениях. Каждое измерение можно рассматривать как отдельный признак.

В заключение следует сказать, что машинное обучение стало неотъемлемой частью нашей жизни, начиная от постановки медицинского диагноза c последующим лечением и заканчивая поиском друзей в социальных сетях. Одним из самых популярных инструментов для машинного обучения является язык Python, который сочетает в себе мощь и простоту использования. Он позволяет работать с множеством библиотек для машинного обучения, например Scikit-learn, PyTorch, Caffe, TensorFlow, OpenCV.

Литература:

  1. Лекция 6. Python и Машинное обучение [Электронный ресурс] — Режим доступа: https://www.youtube.com/watch?v=CqNf4mfd4Hw&feature=emb_logo (дата обращения: 03.03.2021).
  2. Балабанов, Н. Р. Обзор библиотек обучения нейронных сетей на языке Python / Н. Р. Балабанов. — Текст: непосредственный // Молодой ученый. — 2020. — № 46 (336). — С. 6–8. — URL: https://moluch.ru/archive/336/75084/ (дата обращения: 03.03.2021).
  3. Краткое руководство по Tensorflow [Электронный ресурс] — Режим доступа: https://pythonist.ru/kratkoe-rukovodstvo-po-tensorflow/ (дата обращения: 03.03.2021).
Основные термины (генерируются автоматически): машинное обучение, данные, API, библиотека, вычисление, модель, простота использования, сеть, статистическое оценивание библиотеки, язык.


Похожие статьи

Обзор библиотек обучения нейронных сетей на языке Python

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

Анализ средств для реализации нейронных сетей на языке программирования Java

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

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

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

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

Язык программирования Python. Библиотеки Python

Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...

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

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

Использование программного обеспечения AnyLogic в имитационном моделировании

В статье рассматриваются возможности и применение среды программного обеспечения AnyLogic для использования в имитационном моделировании.

Современные программные продукты для анализа данных

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

Формализация требований для средств разработки и обучения нейронных сетей

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

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

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

Похожие статьи

Обзор библиотек обучения нейронных сетей на языке Python

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

Анализ средств для реализации нейронных сетей на языке программирования Java

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

Многопоточность в языке Swift

В статье рассмотрим основной способ выполнять код асинхронно, который используется в iOS приложениях. Подробно разобран основной функционал Grand Central Dispatch (GCD) и сценарии, в которых можно реализовать многопоточность с его помощью.

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

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

Язык программирования Python. Библиотеки Python

Язык программирования Python — это высокоуровневый и интерпретируемый язык программирования, который был создан Гвидо Ван Россумом в 1989 году и выпущен в 1991 году, которые «автоматизируют скучные вещи» (как выразилась одна популярная книга по изуче...

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

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

Использование программного обеспечения AnyLogic в имитационном моделировании

В статье рассматриваются возможности и применение среды программного обеспечения AnyLogic для использования в имитационном моделировании.

Современные программные продукты для анализа данных

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

Формализация требований для средств разработки и обучения нейронных сетей

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

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

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

Задать вопрос