Получите правильную терминологию для самой захватывающей области

Проклятие знаний

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

Посмотрите и на меня, болтающего о машинном обучении, не объясняя, что это вообще такое.

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

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

Одно из первых определений машинного обучения появилось в конце 60-х годов:

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

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

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

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

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

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

Напротив, спам-фильтр, основанный на машинном обучении, обнаруживает необычно часто встречающиеся слова в спаме по сравнению с обычными электронными письмами (также называемыми «ветчиной») и начинает автоматически их отмечать.

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

Эта способность программ на основе машинного обучения упрощает их кодирование и сопровождение.

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

Особенность и цель

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

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

Напротив, все функции - это атрибуты, которые помогают предсказать целевую переменную. Если вы пытаетесь предсказать стоимость дома, целью является цена дома, а его характеристиками могут быть количество комнат, площадь участка, количество ванных комнат, близость к остановкам общественного транспорта и т. Д.

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

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

Например, для прогнозирования цен на жилье используется Регрессия, а для прогнозирования типа электронной почты - Классификация.

Что такое модель?

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

Алгоритм ML - это просто сложная математика и статистика, объединенная вместе. Без данных и мощности компьютера он ничего не может сделать. Вы не можете использовать это для предсказания.

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

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

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

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

Поезд / Тестовый набор

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

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

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

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

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

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

Управляемые / неконтролируемые учебные задачи

Модели машинного обучения делятся на две группы в зависимости от данных обучения.

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

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

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

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

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

Заключение

Само собой разумеется, что машинное обучение - это гораздо больше, чем то, что здесь обсуждается. Это увлекательная и очень интересная сфера, привлекающая миллионы профессионалов. Я надеюсь, что этот пост стал хорошим введением в машинное обучение, и у вас есть базовые знания для понимания более сложных тем машинного обучения. Кроме того, всякий раз, когда вы сталкиваетесь с каким-нибудь причудливым термином в мире машинного обучения, я рекомендую Глоссарий машинного обучения, созданный разработчиками Google. Увидимся!