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

  • Сбор данных (обычно в больших количествах).
  • Установление цели, гипотезы для проверки и сроков для достижения.
  • Проверка на наличие аномалий или выбросов.
  • Поиск недостающих данных.
  • Очистка данных на основе ограничений, целей и тестирования гипотез.
  • Выполнение статистического анализа и начальной визуализации.
  • Масштабирование, регуляризация, нормализация, разработка функций, случайная выборка и проверка данных для подготовки модели.
  • Обучение и тестирование данных.
  • Создание моделей на основе показателей классификации/регрессии для обучения с учителем или без него.
  • Установление базовой точности и проверка точности текущей модели на данных для обучения и тестирования.
  • Повторная проверка решения проблемы и полученных результатов.
  • Подготовка модели для развертывания и поставки продукта (AWS, Docker, Buckets, App, веб-сайт, ПО, Flask и т. д.).

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

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

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

Подходы

Ниже приведены подходы к выбору модели для решения задач машинного обучения/глубокого обучения:

  1. Несбалансированные данные достаточно распространены.

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

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

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

2. Мы можем создавать новые функции с помощью метода главных компонент.

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

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

4. Нам необходимо устранить проблему «черного ящика».

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

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

5. Понимание алгоритмов, не восприимчивых к выбросам.

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

Модели машинного обучения

  1. Первый подход к предсказанию постоянных значений: линейная регрессия — наиболее распространенный выбор, например, при предсказании стоимости жилья.
  2. Подходы бинарной классификации обычно схожи с моделями логистической регрессии. При возникновении проблемы классификации с двумя классами методы опорных векторов (SVM) — отличный способ получения наилучшего результата!
  3. Мультиклассовая классификация: случайные леса — предпочтительный выбор, однако SVM обладают схожими преимуществами. Случайные леса больше предназначены для мультикласса!
Пример случайного леса

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

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

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

Пример дерева решений

5. Для соревнований Kaggle предпочтительны случайный лес и XGBoost!

Пример усиления градиента

Модели глубокого обучения

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

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

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

Пример нейронной сети

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

Пример набора данных MNIST CNN

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

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

Текстовый пример с RNN

Читайте также:


Перевод статьи Aakash Sharma: Choosing a Machine Learning Model

Предыдущая статьяФункциональное программирование в JavaScript: руководство с практическими примерами
Следующая статьяКак загружать изображения в RAILS API и возвращать их обратно