Эта статья содержит около 5900 слов, и ее чтение занимает около 15 минут.
В последнее время я планирую систематически изучать и систематизировать знания о машинном обучении, я буду объединять конспекты курса Эндрю Нг, которые я читал ранее, и книгу «hands-on-ml-with-sklearn-and-tf», которую я прочитал недавно, и кратко подытожим машину.Обычно используемые алгоритмы обучения из-за ограниченных математических навыков не могут и временно не могут слишком углубляться в формулы и принципы алгоритмов, поэтому давайте сделаем вводный ряд.
Это первая статья в этой серии и первая половина обзора машинного обучения, основное содержание которой следующее:
1. Что такое машинное обучение? Снижение размерности 3.1.2.3 Обнаружение аномалий 3.1.2.4 Обучение правилам ассоциации 3.1.3 Обучение с полуучителем 3.1.4 Обучение с подкреплением 3.2 Пакетное и онлайн-обучение 3.2.1 Пакетное обучение 3.2.2 Онлайн-обучение 3.3 Сравнение экземпляров и моделей обучение на основе 3.3.1 обучение на основе примеров 3.3.2 обучение на основе моделей 4. резюме
1. Что такое машинное обучение
простое определение,Машинное обучение — это наука (и искусство) программирования компьютеров для обучения на основе данных..
Но есть еще два определения, более общее:
Машинное обучение — это способность компьютеров обучаться без явного программирования. - Артур Сэмюэл, 1959 г.
и инженерное определение:
Компьютерная программа изучает задачу T, используя опыт E, производительность равна P, и если производительность P для задачи T растет с опытом E, это называется машинным обучением. - Том Митчелл, 1997 г.
Простой и часто упоминаемый пример: спам-фильтры. Он может научиться помечать спам на основе спама (например, спама, отмеченного пользователями) и обычного (не спама, также известного как ветчина). Примеры, используемые для обучения, называются обучающим набором. Каждый обучающий пример называется обучающим экземпляром (или образцом). В этом примере задача T состоит в том, чтобы пометить новые электронные письма как спам, опыт E — это обучающие данные, а производительность P необходимо определить: например, можно использовать долю правильных классификаций. Этот показатель производительности называется точностью и часто используется в задачах классификации.
2. Зачем использовать машинное обучение
Зачем использовать методы машинного обучения?
Причины следующие:
-
Проблемы, которые требуют много ручной настройки или имеют длинный список правил для решения: алгоритмы машинного обучения часто могутУпростите код, улучшите производительность.
-
Проблемы сложны и их трудно решить традиционными методами: лучшие методы машинного обучения могут найти решения.
-
Окружающая среда изменчива: алгоритмы машинного обучения могутАдаптироваться к новым данным.
-
Получите представление о сложных проблемах и больших объемах данных
Некоторые примеры приложений машинного обучения:
-
сбор данных
-
Некоторые приложения, которые нельзя написать с помощью ручного программирования: например, обработка естественного языка, компьютерное зрение, распознавание речи и т. д.
-
Некоторые программы самообслуживания: например, рекомендательные системы и т. д.
-
Поймите, как люди учатся
3. Типы систем машинного обучения
Существуют различные типы машинного обучения, которые можно классифицировать по следующим правилам:
-
Тренироваться ли под наблюдением человека (контролируемое, неконтролируемое, полуконтролируемое и обучение с подкреплением)
-
Возможно ли динамическое инкрементное обучение (онлайн-обучение или пакетное обучение)
-
Они просто сравнивают новые точки данных с известными точками данных или выполняют распознавание образов в обучающих данных для построения прогностической модели, как это делают ученые (обучение на основе экземпляров или обучение на основе моделей)
3.1 Контролируемое/неконтролируемое обучение
Первый способ классификации машинного обучения заключается в том, что его можно классифицировать в зависимости от количества и типа контроля во время обучения. Существует четыре основных категории: контролируемое обучение, неконтролируемое обучение, частично контролируемое обучение и обучение с подкреплением.
3.1.1 Контролируемое обучение
Обучение с учителем, как следует из названия, является обучением с учителем, а надзор отражается в том факте, что все данные обучения помечены При обучении модели модель можно постоянно корректировать в соответствии с реальной меткой данных, чтобы получить модель с лучшими характеристиками.
В обучении с учителем есть две общие типичные задачи — классификация и регрессия.
3.1.1.1 Классификация
Проблема классификации — это в основном проблема прогнозирования категории новых данных. Например, упомянутый выше спам-фильтр — это проблема с двумя категориями, классифицирующая электронные письма как спам или обычные электронные письма, как показано на следующем рисунке.
3.1.1.2 Регрессия
Проблема регрессии в основном связана с прогнозированием целевого значения. Например, учитывая задачу прогнозирования цен на жилье, учитывая некоторые характеристики, такие как размер дома, количество комнат, географическое положение и т. д., а затем прогнозировать цену дома. Как показано ниже:
Обратите внимание, что некоторые алгоритмы регрессии также могут использоваться для классификации и наоборот. Например, для классификации часто используется логистическая регрессия, которая генерирует значение вероятности, принадлежащее каждому классу, а затем выбирает класс с наибольшей вероятностью в качестве прогнозируемого класса.
Обычно используемые контролируемые алгоритмы обучения:
-
Алгоритм K-ближайшего соседа
-
Линейная регрессия
-
логистическая регрессия
-
Метод опорных векторов (SVM)
-
Деревья решений и случайные леса
-
Нейронные сети
3.1.2 Обучение без учителя
В отличие от обучения с учителем, обучение без учителя использует немаркированные наборы данных.
Unsupervised в основном имеет четыре типичных задачи, а именно кластеризацию, уменьшение размерности, обнаружение аномалий и изучение правил ассоциации.
3.1.2.1 Кластеризация
Кластеризация — это разделение данных на несколько классов в соответствии с определенными правилами, обычно по сходству. Например, для кластеризации посетителей блога алгоритм кластеризации используется для обнаружения групп похожих посетителей, как показано на следующем рисунке. Алгоритму не нужно сообщать, к какой категории относится посетитель, он автоматически найдет отношения между собой по атрибутам посетителя, например, он может выяснить профессиональную принадлежность посетителя, и разделить посетителя на 40% офисные работники и 50% студенты., или для технических блогов, это может быть разделено на фронтенд, бэкенд, мобильную разработку, искусственный интеллект и т. д. в зависимости от направления развития. Даже при использовании алгоритма иерархического кластерного анализа вышеприведенная классификация может быть дополнительно разделена на более подробные. Такой подход может помочь блогерам узнать, кто составляет основную группу их блога, и лучше спланировать направление статей, публикуемых в их блоге.
Алгоритмы визуализации также являются отличными примерами обучения без учителя:Дайте алгоритму большое количество сложных и неразмеченных данных, и алгоритм выведет 2D- или 3D-изображение данных.. Как показано на рисунке ниже, алгоритм пытается сохранить структуру данных (т. е. пытается сохранить независимые кластеры входных данных, избегая перекрытия на изображении), чтобы можно было понять, как организованы данные, и, возможно, обнаружить скрытые узоры.
3.1.2.2 Уменьшение размерности
Целью уменьшения размерности является упрощение данных без потери большей части информации. Один из способов сделать это — объединить несколько связанных функций. Например, пробег автомобиля сильно коррелирует с возрастом автомобиля, и алгоритм уменьшения размерности объединит их в один, отражающий износ автомобиля. Это называется извлечением признаков.
Кроме того, при использовании алгоритмов машинного обучения для обучения обучающая выборка может быть уменьшена по размерности, что будет способствовать повышению скорости обучения, уменьшению занимаемого места на жестком диске и памяти, а иногда и повышению производительности алгоритма, но это необходимо. выбрать подходящий алгоритм уменьшения размерности, иначе производительность, скорее всего, ухудшится.
3.1.2.3 Обнаружение аномалий
Еще одна важная неконтролируемая задача — обнаружение аномалий. Например, обнаружение аномальных переводов кредитных карт для предотвращения мошенничества, обнаружение производственных дефектов или автоматическое удаление выбросов из набора обучающих данных перед обучением. Система обнаружения аномалий обучается с использованием нормальных значений, и когда она сталкивается с новым экземпляром, она может определить, похож ли новый экземпляр на нормальное значение или на выброс.
3.1.2.4 Изучение правил ассоциации
Наконец, еще одна распространенная неконтролируемая задача — изучение правил ассоциации, целью которой является анализ больших объемов данных для обнаружения интересных взаимосвязей между атрибутами. Например, допустим, вы владеете супермаркетом. Запустив ассоциативное правило в журнале продаж, можно обнаружить, что люди, купившие соус для барбекю и чипсы, также купили стейк. Таким образом, вы можете сложить эти предметы вместе.
Вот некоторые из наиболее важных алгоритмов обучения без учителя:
1. Кластеризация
-
К-означает
-
Иерархический кластерный анализ (HCA)
-
ожидаемый максимум
2. Визуализация и снижение размерности
-
Анализ главных компонентов (PCA)
-
Анализ основных компонентов ядра
-
Локально-линейное вложение (LLE)
-
t-распределенное стохастическое встраивание соседей (t-SNE)
3. Изучение правил ассоциации
-
Априорный алгоритм
-
Алгоритм Экла
3.1.3 Полуконтролируемое обучение
Некоторые алгоритмы могут обрабатывать часть размеченных обучающих данных, обычно большой объем неразмеченных данных плюс небольшую часть размеченных данных. Это называется обучением с полуучителем. Как показано на рисунке ниже, серые кружки на рисунке представляют данные без меток, и только несколько треугольников и квадратов представляют данные с метками.
Большинство полууправляемых алгоритмов обучения представляют собой комбинацию неуправляемых и контролируемых алгоритмов.. Например, сети глубокого убеждения основаны на неконтролируемых компонентах, известных как наложенные ограниченные машины Больцмана (RBM). RBM сначала обучается неконтролируемыми методами, а затем настраивается вся система с помощью контролируемых методов обучения.
Примеры частично контролируемого обучения, такие как некоторые службы хранения изображений, такие как Google Фото, являются хорошими примерами полуконтролируемого обучения. Как только вы загрузите все свои семейные фотографии, он может автоматически идентифицировать одного и того же человека А на фотографиях 1, 5, 11 и другого человека Б на фотографиях 2, 5, 7. Это неконтролируемая часть алгоритма (кластеризация). Теперь все, что нужно системе, это чтобы вы сказали, кто эти два человека. Просто дайте каждому человеку тег, и алгоритм сможет назвать каждого человека на каждой фотографии, что отлично подходит для поиска фотографий.
3.1.4 Обучение с подкреплением
Обучение с подкреплением сильно отличается от трех вышеупомянутых задач обучения. Система обучения называется здесьагент(агент), который может наблюдать за окружающей средой, выбирать и выполнять действия, получатьнаграда(Отрицательные награды — это наказания, см. изображение ниже). Затем он должен сам узнать, какой метод является лучшим (называемыйСтратегия, политика), чтобы получить самое длинное вознаграждение. Политика определяет действие, которое агент должен предпринять в данной ситуации.
В настоящее время применение обучения с подкреплением не очень широкое, особенно обучение с подкреплением в сочетании с глубоким обучением, которое в основном используется в робототехнике.Конечно, самым известным приложением является AlphaGo от DeepMind, которое учится, анализируя миллионы шахматных партий. стратегию, а потом сыграй в шахматы сам с собой. Обратите внимание, что во время соревнований машинное обучение отключено, AlphaGo просто использует изученную политику.
3.2 Пакетное и онлайн-обучение
Второй критерий классификации машинного обучения заключается в том, может ли оно непрерывно учиться на входящих потоках данных. То есть, если импортируется непрерывный поток данных, может ли алгоритм машинного обучения продолжать использовать новые данные для обучения обученной модели, и новая модель по-прежнему имеет хорошую производительность как на старых, так и на новых данных.
3.2.1 Пакетное обучение
В пакетном обучении,Система не способна к непрерывному обучению: ее необходимо обучать на всех доступных данных.. Обычно это занимает много времени и вычислительных ресурсов, поэтому обычно выполняется в автономном режиме. Сначала он обучается, затем развертывается в рабочей среде и прекращает обучение, он просто использует изученную политику. Это называется офлайн-обучением.
Для алгоритмов пакетного обучения при получении новых данных необходимо переобучить весь набор данных, а затем обновить модель.Если применяется система алгоритмов, это эквивалентно необходимости обновить систему и остановить старую версию системы. ., и перезапустите новую версию системы.
Конечно, весь процесс обучения, оценки и развертывания системы машинного обучения в целом можно автоматизировать, поэтому даже пакетное обучение может адаптироваться к изменениям. Данные можно легко обновлять для обучения новой версии, когда это необходимо. А для периода обновления вы можете выбрать обновление каждые 24 часа или раз в неделю.
Тем не менее, пакетное обучение по-прежнему имеет следующие недостатки:
-
Плохая производительность в реальном времени, то есть для систем, которым необходимо быстро адаптироваться к изменениям, таких как прогнозирование изменений запасов, рекомендательные системы электронной коммерции и т. д., алгоритмы пакетного обучения не подходят;
-
Он потребляет много вычислительных ресурсов, а обучение со всеми данными требует много вычислительных ресурсов (ЦП, объем памяти, дисковое пространство, дисковый ввод-вывод, сетевой ввод-вывод и т. д.), особенно когда обучающая выборка особенно велика. , что подчеркивает остроту этой проблемы пола;
-
Его нельзя применять к устройствам с ограниченными ресурсами, например к системам, которые должны обучаться автоматически, но со смартфонами очень нецелесообразно проводить переобучение с большими объемами обучающих данных в течение нескольких часов за раз.
3.2.2 Онлайн-обучение
Подводные камни и проблемы пакетного обучения можно решить, используя алгоритмы онлайн-обучения.
В онлайн-обучении обучение выполняется непрерывно с экземплярами данных, либо по одному, либо с несколькими экземплярами за раз (так называемые мини-пакеты). Каждый шаг обучения является быстрым и дешевым, поэтому система может динамически изучать новые данные по мере их поступления.
Хотя в названии онлайн-обучения есть слово «онлайн», его учебный процесс на самом деле происходит в автономном режиме, поэтому его следует называть непрерывным обучением или постепенным обучением.
Онлайн-обучение имеет ряд преимуществ:
-
Производительность в реальном времени хорошая. Алгоритмы онлайн-обучения очень подходят для получения непрерывных потоков данных и последующего автоматического обновления модели, что лучше в режиме реального времени, чем пакетное обучение;
-
Можно сэкономить много вычислительных ресурсов. После изучения новых данных алгоритм онлайн-обучения может выбросить обучающие данные, тем самым сэкономив много места для хранения; кроме того, в процессе обучения не требуется загружать все обучающие данные, а требования к таким ресурсам, как память и ЦП также значительно уменьшены;
-
Внедрение внепрофильного обучения. Когда памяти недостаточно для загрузки тренировочного набора, алгоритм онлайн-обучения можно использовать для многократного обучения, каждый раз, когда загружается часть тренировочного набора, то есть часть тренировочного набора непрерывно загружается как новые данные до тех пор, пока все данные обучены.
Онлайн-обучение также сопряжено с двумя проблемами:
-
Проблема скорости обучения. Скорость обучения является важным параметром онлайн-обучения, она отражает, насколько быстро алгоритм онлайн-обучения адаптируется к изменениям данных, необходимо выбрать соответствующую скорость обучения, поскольку скорость обучения слишком велика, система может быстро адаптироваться к новым данным, но это также легко Забудьте старые данные, такие как классификация изображений, после обучения классификатора 50 добавьте новые данные 10 классов, как только скорость обучения станет слишком высокой, система запомнит только новые 10 классов, забудьте предыдущие Данные 50 классов. И наоборот, если вы устанавливаете низкую скорость обучения, система становится более ленивой: то есть она обучается медленнее, но менее чувствительна к шуму в новых данных или к результатам из нерепрезентативных точек данных.
-
Влияние неверных данных. Если вы тренируетесь с неверными данными, это разрушит производительность системы. Чтобы снизить этот риск, необходимо интенсивно отслеживать и быстро отключать (или откатывать до предыдущего состояния) при обнаружении снижения производительности. Вы также можете отслеживать входные данные и реагировать на аномальные данные (например, используя алгоритмы обнаружения аномалий).
3.3 Обучение на основе экземпляров и обучение на основе моделей
Третий способ классификации машинного обучения — оценить, как они индуктивно обобщаются. Большинство задач машинного обучения связаны с прогнозированием. Это означает, что при наличии определенного количества обучающих выборок система должна иметь возможность обобщать выборки, которые она раньше не видела. Недостаточно иметь хорошую производительность в обучающем наборе данных, реальной целью является производительность при прогнозировании новых экземпляров.
Существует два основных метода индукции: обучение на основе примеров и обучение на основе моделей.
3.3.1 Обучение на основе конкретных случаев
Обучение на основе экземпляров — это когда система сначала использует память для изучения случая, а затем использует меру сходства для обобщения на новые примеры, как показано на следующем рисунке:
Можно сказать, что этот алгоритм обучения является самым простым алгоритмом в машинном обучении. Он фактически использует сохраненный набор данных для классификации или регрессии. Типичным алгоритмом является алгоритм KNN, то есть алгоритм K ближайших соседей. Сохраненные обучающие данные используют мера сходства (обычно евклидово расстояние) для получения ближайших K обучающих выборок и использует категорию с наибольшим количеством вхождений в K обучающих выборках в качестве результата прогнозирования.
Поэтому недостатки этого алгоритма более очевидны:
-
Во-первых, спрос на место для хранения большой, а место, которое необходимо занять, напрямую зависит от размера количества экземпляров;
-
Во-вторых, время работы относительно медленное, потому что его нужно сравнивать с известными экземплярами.
3.3.2 Обучение на основе моделей
Противоположностью обучения на основе примеров является обучение на основе моделей: создайте модель из этих примеров, а затем используйте эту модель для прогнозирования. Как показано ниже:
Алгоритм обучения на основе моделей обычно выглядит следующим образом:
-
данные исследований. Сначала проанализируйте данные, которые могут включать данные очистки, фильтрацию функций, комбинацию функций и т. д.
-
Выберите модель. Выберите правильную модель, от простой линейной регрессии, логистической регрессии до медленных сложных случайных лесов, ансамблевого обучения и даже моделей сверточных нейронных сетей с глубоким обучением и т. д.
-
Тренируйтесь с тренировочными данными. То есть найти наиболее подходящие параметры модели алгоритма, чтобы функция стоимости могла достигать минимального значения.
-
Используйте модель, чтобы делать прогнозы для новых случаев (это называется логическим выводом). Если результаты прогноза очень хорошие, то систему можно запускать, если нет, то необходимо провести анализ ошибок, в чем проблема, будь то проблема с данными или проблема с моделью, найти проблему и затем продолжайте повторять процесс.
4. Резюме
Наконец, резюмируя:
-
Машинное обучение — это способность машин лучше решать определенные проблемы путем изучения данных без необходимости использования определенных правил кода;
-
Применение машинного обучения очень широкое, включая изображения, обработку естественного языка, речь, рекомендательную систему и поиск и т. д. Для каждого аспекта существуют более конкретные и подробные направления применения;
-
Машинное обучение можно разделить на различные типы обучения в соответствии с различными критериями классификации, включая контролируемое и неконтролируемое обучение, пакетное и онлайн-обучение, обучение на основе экземпляров и обучение на основе моделей;
-
Наиболее распространенными задачами контролируемого обучения являются классификация и регрессия;
-
Распространенными задачами обучения без учителя являются кластеризация, уменьшение размерности, обнаружение выбросов и изучение правил ассоциации;
Вышеизложенное является основным содержанием и кратким изложением этой статьи, поскольку я не открывал функцию сообщения, поэтому приглашаю вас обратить внимание на мою общедоступную учетную запись WeChat - алгоритм пути технологического роста Вана или отсканируйте QR-код ниже, чтобы поделиться со мной своими предложениями. и Мнения, исправьте возможные ошибки в статье, давайте общаться, учиться и прогрессировать вместе!
Если вы считаете, что я пишу неплохо, вы можете поставить мне лайк!