...

Ml программа что это

Руководство по машинному обучению для новичков

Простое объяснение с примерами из математики, программирования и реальной жизни.

Published in

NOP::Nuances of Programming

5 min read
Apr 22, 2019

Для кого это руководство?

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

Почему именно машинное обучение?

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

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

Подготовка к изучению машинного обучения

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

  • Углубленные знания начального уровня алгебры: Вы должны разбираться в таких понятиях, как переменные, коэффициенты, линейные уравнения, исчисления, а также графики.
  • Владение основами программирования, а также опыт написания кода на Python: Опыт в машинном обучении не требуется, однако вы должны уметь читать и писать код Python с базовыми конструкциями, такими как определения функций, списки, словари, циклы и условные выражения.
  • Базовые знания следующих библиотек Python:
  1. NumPy
  2. Pandas
  3. SciKit-Learn
  4. SciPy
  5. Matplotlib (и/или Seaborn)

Семантическое дерево:

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

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

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

Артур Сэмюэл описывает машинное обучение как: “Область науки, благодаря которой компьютеры могут обучаться без явного программирования.” Это старое и неформальное определение, которое на данный момент почти потеряло смысл.

Том Митчелл дает более современное определение: “Компьютерная программа обучается на основе опыта E по отношению к некоторому классу задач T и меры качества P, если качество решения задач из T, измеренное на основе P, улучшается с приобретением опыта E.”

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

Алгоритмы машинного обучения относятся к следующим категориям: обучение с учителем (Supervised Learning), обучение без учителя (Unsupervised Learning) и обучение с подкреплением (Reinforcement Learning).

  • Supervised Learning: Алгоритм обучения с учителем принимает маркированные данные и создает модель, которая выполняет предсказания, предоставляя новые данные. Это могут быть как задачи классификации, так и задачи регрессии.
  • Unsupervised Learning: При обучении без учителя предоставляются непомеченные и неклассифицированные данные, в которых нужно найти закономерности и создать структуру данных для получения значения. Формы обучения без учителя: кластеризация (clustering) и уменьшение размерности (dimensionality reduction).
  • Reinforcement Learning: Обучение с подкреплением использует систему поощрений и метод проб и ошибок в целях максимизации долгосрочного поощрения.

Roadmap для начала изучения машинного обучения:

  1. Начать стоит с изучения/повторения линейной алгебры. MIT предоставляет отличный open course по линейной алгебре, с помощью которого можно ознакомиться с ключевыми концепциями. Особое внимание следует уделить изучению векторов, умножению матриц, детерминантам и спектральному разложению матрицы — они играют важную роль в работе алгоритмов машинного обучения.
  2. Затем уделите внимание высшей математике. Изучите производные и способы их использования для оптимизации. Обязательно разберите все темы в Single Variable Calculus и (как минимум) первые два раздела Multivariable Calculus.
  3. Изучите библиотеки Python, используемые в машинном обучении, такие как Numpy, Pandas, Matplotlib и SKLearn. Разобраться в машинном обучении без этих ‘инструментов’ будет довольно сложно.
  4. Начните программировать! Советую реализовать все алгоритмы из scratch в Python, прежде чем использовать готовые модели в SciKit — Learn, чтобы разобраться, как все это работает. Я делал алгоритмы в следующем порядке по возрастанию сложности:
  • Линейная регрессия (Linear Regression)
  • Логистическая регрессия (Logistic Regression)
  • Наивный байесовский классификатор (Naive Bayes Classifier)
  • Метод k-ближайших соседей (K — Nearest Neighbors — KNN)
  • Метод k-средних (K — Means)
  • Метод опорных векторов (Support Vector Machine — SVM)
  • Дерево принятия решений (Decision Trees)
  • Random Forests
  • Gradient Boosting

Roadmap для реализации алгоритма:

  1. Соберите данные для работы. В интернете доступны миллионы наборов данных, удовлетворяющих даже самым причудливым потребностям. Kaggle и UCI — отличные ресурсы для просмотра наборов данных. Вы также можете сгенерировать собственные данные.
  2. Выберите алгоритм(ы). После сбора данных можно начать работу над алгоритмами. На изображении показан приблизительный ориентир. (Из документации SKLearn)

На этой стадии следует пройтись по краткой теории каждого алгоритма, которые я разместил на Github с каждой реализацией.

3. Визуализируйте данные! В Python есть множество библиотек, таких как Matplotlib и Seaborn, с помощью которых можно выстроить данные в график и получить финальный результат. Таким образом, вам будет легче разобраться в данных и в том, какие действия они выполняют. (и конечно, сделать крутую модель!)

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

5. Оцените модель. Библиотека Python SKLearn предоставляет множество инструментов для анализа модели и проверки показателей, таких как правильность, показатель f1, точность и т. д.

Примечания:

  • Ознакомившись с несколькими алгоритмами и концепциями, попробуйте выполнить один или несколько простых и краткосрочных проектов (для начала).
  • Не бойтесь совершать ошибки. По-началу вы будете тратить большую часть времени на попытки разобраться в математике и причинах возникновения ошибок. Однако терпение — ключ к успеху.
  • Маленькие модели — основа для изучения чего-то большего. Пробуйте все подряд и тогда у вас получится создать лучшую модель.
  • Наилучший способ изучить библиотеки Python — пройти Datacamp courses или начать с изучения документации.

Все вышеописанное можно найти на Github в репозитории Machine-Learning. Все алгоритмы систематизированы, как с реализациями из scratch, так и с использованием SciKit-Learn. Также представлены используемые наборы данных и краткая теория о работе алгоритмов вместе с примерами из реальной жизни.

Что такое модель машинного обучения?

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

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

Схема потока модели Машинного обучения Windows

Когда использовать Машинное обучение

Продуманные сценарии машинного обучения обычно имеют следующие общие свойства:

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

Windows Machine Learning использует для своих моделей формат ONNX (Open Neural Network Exchange). Вы можете скачать предварительно обученную модель или обучить собственную. Дополнительные сведения о получении моделей ONNX для Windows ML см. в этой статье.

Начало работы

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

Используйте следующие ресурсы для получения справки по машинному обучению в Windows:

  • Чтобы задать технические вопросы о машинном обучении в Windows или ответить на них, используйте тег windows-machine-learning в Stack Overflow.
  • Сообщить об ошибке можно в нашем репозитории GitHub.

Чем алгоритм машинного обучения отличается от традиционного алгоритма?

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

Разница между алгоритмом ML и традиционным алгоритмом:

Алгоритм машинного обучения:

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

Традиционный алгоритм:

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

Чем они отличаются друг от друга?

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

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

Традиционный алгоритм в иллюстративном виде:

Однако, если взять простой пример, 358+287. Большинство людей огорчены ответом слева направо 13.05.15.

Это связано с тем, что Традиционный Алгоритм обрабатывает числа справа налево, сначала взгляните на 8+7.

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

Теперь при добавлении (5+8) было дано 13 точек.

И это приводит к еще одному взрыву.

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

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

Основы алгоритма ML:

Алгоритмы машинного обучения — это математические и логические программы, которые всякий раз, когда им предоставляется больше данных, автоматически настраиваются, чтобы работать лучше. В основном это набор методов, который объединяет как входные, так и выходные данные, что приводит к программе. ML фокусируется на процветании компьютерных программ, которые могут получать доступ к данным и использовать их, чтобы реализовать себя. Эта способность прогнозирования помогает машинному обучению более эффективно и точно справляться с бизнес-ситуациями. Если программирование — это автоматизация, то машинное обучение ускорит процесс автоматизации.
Для полного понимания алгоритма машинного обучения необходимы три ключевых компонента.
1) Представление: как проиллюстрировать знания. Например, набор правил, графические модели, машины опорных векторов и деревья решений.
2) Оценка: способ оценки программ-кандидатов. Например, точность, квадрат ошибки, правдоподобие, вероятность, маржа и стоимость.
3) Оптимизация: процесс создания программ-кандидатов, известный как процесс поиска. Например, выпуклая оптимизация, комбинационная оптимизация и оптимизация с ограничениями.

Таким образом, алгоритм ML = модель + алгоритм обучения.

МЛ Против. Традиционный алгоритм:

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

Простая структура:

Менеджер по продукту может использовать структуру, чтобы понять продолжение бизнеса, где у вас есть входные и выходные данные:
1) Укажите бизнес-вопрос, который вы хотите задать.
2) Определите входные данные.
3) Определите выполненный вывод.
Теперь, если вы видите демографические данные и счета в качестве входных данных, а оплату с опозданием или нет в качестве выходных данных, ваше машинное обучение, таким образом, создает всю модель.

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

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

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

При подготовке материала использовались источники:
https://medium.com/nuances-of-programming/%D1%80%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE-%D0%BF%D0%BE-%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%BC%D1%83-%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8E-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%BE%D0%B2-172547492990
https://learn.microsoft.com/ru-ru/windows/ai/windows-ml/what-is-a-machine-learning-model
https://skine.ru/articles/260652/

Оцените статью