Примечание редактора: в мире технологий, если вы не понимаете, что такое машинное обучение, вы выбыли. Когда другие люди говорят о машинном обучении, вы в недоумении, что же делать? В чате с коллегами вы можете только часто кивать головой, но не можете вставить слово, что делать? Давайте внесем некоторые изменения!Adam GeitgeyНаписал простую и понятную информацию на тему «Машинное обучение, неограниченное удовольствие», которая разделена на 5 частей, в основном для всех друзей, которые интересуются «машинным обучением», но страдают от того, что не знают, с чего начать, надеюсь. Это может позволить большему количеству людей узнать о «машинном обучении» и стимулировать их интерес к «машинному обучению».
Я полагаю, что многие люди устали от длинных страниц в Википедии и очень надеюсь, что кто-то может дать более точное объяснение на более высоком уровне. Это именно то, что «машинное обучение» сделает для вас!
Что такое «машинное обучение»?
Машинное обучение означает, что вам больше не нужно писать эти сложные и специфические традиционные коды, и машина может рассказать вам интересные вещи о наборе данных, используя набор общих алгоритмов — универсальных алгоритмов. Нет необходимости писать код или программу, пока данные передаются общему алгоритму, он может автоматически установить логику данных.
Например: общий алгоритм классификации может классифицировать набор данных по категориям, а общий алгоритм классификации для распознавания рукописных цифр также может различать спам и не спам без изменения кода. Оба используют один и тот же общий алгоритм, но поскольку входные данные различны, логика классификации вывода отличается.
Этот тип алгоритма машинного обучения действует как черный ящик и может решать множество проблем, связанных с классификацией.
«Машинное обучение» — это зонтичная структура, которая охватывает множество других общих алгоритмов в дополнение к алгоритмам классификации.
Два типа алгоритмов машинного обучения
На мгновение вы можете представить себе алгоритмы машинного обучения как системы, которые имеют две основные ветви — обучение с учителем и обучение без учителя. Разница между ними очевидна, с присмотром или без, но ее важность нельзя игнорировать.
① Контролируемое обучение
Допустим, вы агент по недвижимости, и ваш бизнес продолжает расти, поэтому вам нужно нанять группу новых агентов-стажеров, чтобы помочь. Теперь проблема заключается в следующем: вы можете с первого взгляда определить приблизительную стоимость дома, но вы не можете нанять агента-стажера, он не так опытен, как вы, и не может относительно точно оценить стоимость дома. дом.
Таким образом, чтобы помочь вашему агенту-стажеру (и, конечно же, дать себе отпуск), вы можете написать приложение, которое может выполнять работу по оценке имущества, находить похожие дома в зависимости от размера дома, окружающей среды и т. д. а затем сделать оценку стоимости.
Поэтому вам необходимо зафиксировать информацию о сделках с недвижимостью в вашем городе в течение трех месяцев. Для каждой сделки вам необходимо записать ряд деталей, таких как: количество комнат, размер дома, прилегающая территория и т. д. Самое главное – записать окончательную цену сделки.
Выше приведены данные, которые мы собрали, профессионально называемые «данными для обучения», и мы надеемся использовать эти данные для создания программы, которая поможет нам оценить другие дома в нашем районе. Конечно, мы также надеемся использовать эти данные для оценки цен на другие дома за пределами этого района.
Этот режим называется «обучение с учителем».
Вы знаете цену каждого дома с самого начала, другими словами, вы уже знаете ответ на проблему, и вы можете вернуться и переосмыслить проблему, тем самым установив образ мышления и логику для решения проблемы.
Затем, чтобы создать приложение, которое может оценивать цены на жилье, вам необходимо ввести данные о каждом доме — «данные для обучения» — в ваш алгоритм машинного обучения, и алгоритм предложит метод для решения этих взаимосвязей данных. формулы.
Это немного похоже на лист ответов на тест по математике, на котором все арифметические символы закрашены, как на картинке ниже.
Мой Бог! Какой-то непослушный ученик закрасил арифметические символы на бланке ответов учителя! В настоящее время вам должно быть трудно понять, какую математическую задачу решает этот экзамен: сложение или вычитание?
Таким образом, чтобы решить задачу на сложение или вычитание, вам нужно выполнить некоторую «вычислительную обработку» чисел слева и справа, чтобы выяснить взаимосвязь между ними.
Благодаря этому «обучению с учителем» вы можете позволить компьютеру выполнить за вас ряд задач «вычислительной обработки». Когда вы выясните математическое соотношение между левой и правой частями уравнения, вы будете знать, как решить эту математическую задачу, и тогда будут решаться подобные задачи!
② Обучение без учителя
Вернемся к упомянутому ранее примеру с агентом по недвижимости. Что, если даже вы, агент по недвижимости, не уверены в цене каждого дома?
Если все, что вы знаете, это размер и расположение дома, ничего страшного, вы можете изменить ситуацию с помощью «обучения без присмотра», о котором я расскажу далее.
Машинное обучение позволяет вам делать что-то, не имея решающей числовой информации (в данном случае, цены дома).
Это похоже на то, как кто-то вручает вам лист бумаги с цепочкой цифр (в данном случае, кроме цен на жилье) и говорит: «Я тоже не знаю, что означает эта цепочка цифр. в состоянии получить некоторую неявную информацию из него, удачной работы и удачи!"
Что мы можем сделать с этой строкой цифровых данных? Для новичка вы можете использовать алгоритм для автоматического определения сегментов рынка в ваших данных. Вы можете обнаружить, что некоторые покупатели в районе рядом с университетом, как правило, покупают дом с большим количеством комнат и небольшой площадью, в то время как покупатели в пригороде предпочитают большую площадь и не нуждаются в таком многокомнатном (вероятно, только трех) доме. Понимание различных потребностей разных клиентов может во многом направить ваши маркетинговые усилия.
Кроме того, что вы можете сделать, так это автоматически идентифицировать те изолированные дома, которые отличаются от других выбросов.Возможно, эти изолированные дома являются высотными зданиями, поэтому вы можете целенаправленно сосредоточить основной отдел продаж на этом районе.
В оставшейся части этого поста мы больше сосредоточимся на «обучении с учителем», но это не означает, что «обучение без учителя» бесполезно. На самом деле, по мере того, как алгоритм продолжает совершенствоваться, «обучение без учителя» становится все более и более важным, поскольку его также можно использовать при условии, что данные не помечены правильным ответом.
Примечание для ученых: действительно существует множество различных типов универсальных алгоритмов машинного обучения, но новичкам лучше начать с этих двух типов алгоритмов.
Круто использовать «машинное обучение» для оценки дома, но действительно ли это обучение?
Как человек, ваш мозг может справляться с широким спектром чрезвычайных ситуаций, а также может научиться справляться с ними без явных инструкций. Если вы занимаетесь продажей жилья в течение длительного времени, у вас будет инстинктивная реакция на правильную оценку дома, маркетинговую стратегию дома, потенциальных покупателей дома и т. д. Цель мощных исследований ИИ — воспроизвести на компьютере способность генерировать этот инстинктивный ответ. Но пока алгоритмы машинного обучения не достигли такого высокого уровня, и пока он подходит только для некоторых конкретных и ограниченных задач. Поэтому в данном случае, возможно, более уместно определить «обучение» как «вывод формулы для решения конкретной задачи на основе данных примера». Но ясно, что определение «машины используют формулы, полученные из примеров данных, для решения конкретных задач» не является хорошим названием, поэтому мы просто называем это «машинным обучением».
Конечно, лет через 50 ИИ будет настолько мощным, что в этом посте, который я написал, он покажется вам немного странным. Если это так, пожалуйста, оставьте этот пост и позвольте вашей роботизированной няне сделать вам бутерброд и насладиться удобством и комфортом искусственного интеллекта.
Без дальнейших церемоний, давайте попробуем запрограммировать эту программу оценки дома!
Как же нам написать программу, которая может оценить дом? Прежде чем читать дальше, пожалуйста, подумайте об этом мысленно.
Предполагая, что вы ничего не знаете о «машинном обучении» прямо сейчас, вы, вероятно, собираетесь написать некоторые основные правила и положения, связанные с оценкой дома, верно? нравится:
Если у вас хватит терпения изучить приведенный выше код, возможно, вы напишете приличную программу оценки. Однако этот процесс оценки не идеален, и когда цены колеблются, ваш процесс оценки может не применяться.
Не лучше ли было бы, если бы компьютер мог вывести для вас относительно точную функцию оценки? Пока оценки, выдаваемые функцией, совпадают с ценами в исходных данных, никого не волнует, как возникла функция.
Еще один способ понять проблему: если конечную цену дома сравнить с тарелкой супа, а ингредиенты в супе - необходимую информацию, такую как "количество комнат", "размер дома", "окружение" . Если вы знаете, как каждый ингредиент (информация, необходимая для оценки имущества) влияет на суп (оценочную цену) в отдельности, у вас должно быть относительно точное «соотношение ингредиентов супа», которое также можно использовать для оценки дома.
Вы обнаружите, что приведенные выше допущения, хотя и неуместные и немного нереалистичные, упростят вашу исходную сложную функцию до следующей степени:
Обратите внимание на следующие наборы цифр, выделенные жирным шрифтом: 841231951398213, 1231,1231231, 2,3242341421 и 201,23432095. Это числа индикаторов, которые мы используем для расчета компромисса, и если мы сможем рассчитать идеальный индикатор, применимый ко всем домам, тогда программа сможет оценить цену дома.
Самый глупый способ вычислить эту идеальную метрику будет примерно таким:
первый шаг:
Установите каждый индикатор на 1,0
Шаг 2:
Протестируйте свою программу, используя всю известную вам информацию о ценах на недвижимость, и проверьте, насколько выходные данные вашей функции отличаются от фактической цены дома.
Используйте найденную функцию, чтобы оценить стоимость каждого дома.
Например, предположим, что первый дом фактически был продан за 250 000 долларов, но результат вашей функции оценил цену в 178 000 долларов, тогда отклонение в оценке цены этого дома программой составит 72 000 долларов.
Теперь добавьте квадраты значений всех отклонений цен за дом в вашей базе данных.
Предположим, в вашей базе данных имеется 500 продаж домов, и общее расчетное отклонение вашей функции от тестирования этих транзакций составляет 86 123 373 доллара США, что представляет собой текущее общее отклонение вашей функции. Теперь разделите это общее отклонение на 500, чтобы получить среднее значение предполагаемых отклонений для каждого дома, и назовем это среднее значение «стоимостью» функции. Если вы можете снизить «стоимость» до нуля, играя с компромиссами, то ваша программа идеальна. Это означает, что на основе входных данных ваша программа может оценить стоимость дома с относительной точностью.
третий шаг:
Повторите шаг 2 со всеми возможными комбинациями индикаторов. Найдите такое сочетание показателей, которое минимизирует «стоимость» вашей функции до нуля, и ваша проблема решена.
Три шага легко! Теперь давайте посмотрим, что мы сделали до сих пор: во-первых, вы берете некоторые данные и применяете их к трем очень простым, общим шагам, и в итоге вы получаете ценник на недвижимость в вашем районе. .
«Машинное обучение» настолько мощно, что Zillow (веб-сайт по оценке недвижимости в США) должен быть осторожен!
Однако следующие вопросы могут вас обеспокоить.
1. За последние 40 лет опросы в самых разных областях, таких как лингвистика, переводоведение и т. д., показали, что эти алгоритмы общего назначения варили котелок «тушеных данных» (новые слова, созданные на примере тушеное мясо только что) быстрее, чем люди. Набор правил, которые вы придумали самостоятельно, настолько полезнее, что даже самые тупые инструменты машинного обучения превосходят опытного человека.
2. Функция, которую вы наконец разработали, ничего не знает о «размере и площади комнаты» или «количестве комнат», она умеет только вычислять наиболее правильный оценочный ответ на основе известных введенных данных.
3. Очень вероятно, что вы совершенно не представляете, как набор данных индикатора предсказывает значение свойства, а значит, вы получаете функцию, в которой вы не до конца понимаете, как она работает, а только то, что она может помочь вам оценить цена недвижимости.
4. Представьте, если только что разработанная вами функция для оценки стоимости недвижимости представляет собой не коэффициентные переменные «площадь недвижимости» и «количество комнат», а большой ряд чисел, и каждое из этих чисел значение яркости пикселя фотографии снято камерой на крыше вашего автомобиля. В настоящее время представляется неуместным называть выходной оценочный результат «ценой недвижимости», а правильнее называть его «градусом руля руля». На данный момент вы разработали функцию, которая позволяет машине управлять собой. Удивительно, правда?
А как насчет «использовать все возможные индикаторы», упомянутого в третьем шаге выше?
Конечно, вы не сможете найти идеальную комбинацию, перепробовав каждый возможный индикатор один за другим, потому что вам понадобится целая жизнь, чтобы перепробовать бесконечные числа.
В попытке преодолеть эту неэффективность математики разработали множество более простых и эффективных методов. Вот один из них:
Во-первых, напишите простое соотношение уравнения, основанное на информации о данных на шаге 2, упомянутом выше:
Это ваша «функция затрат».
Теперь попробуйте переписать это уравнение в математических терминах машинного обучения.
θ представляет ваше текущее количество индикаторов, а J(θ) представляет вашу стоимость при текущем количестве индикаторов. Это уравнение показывает, насколько наша функция предсказания текущего значения отличается от фактической.
Если мы добавим эту функцию стоимости ко всем возможным метрическим данным, представленным графиком кривой, мы получим такой график:
Наше изображение графика функции стоимости представляет форму чаши, а ордината представляет собой стоимость. Нижняя точка синего цвета на этом изображении — это наименьшее значение нашей стоимости, что означает, что наша функция имеет наименьшее значение отклонения. Наоборот, высшая точка — это когда отклонение нашей функции достигает максимального значения. Итак, проблема решена, когда мы находим значение индекса, которое приведет это изображение в низшую точку.
Поэтому нам приходится постоянно корректировать наши значения индекса, чтобы приблизиться к самой нижней точке изображения, как если бы мы спускались с горы. Пока мы можем приблизиться к самой нижней точке изображения при постоянной настройке, мы наконец можем найти наиболее подходящее уравнение функции, не перебирая числа одно за другим.
Если вы помните некоторые знания в области исчисления, вы должны помнить, что если вы берете производную функции, вы знаете наклон тангенса функции в различных точках. Другими словами, зная, какой направленный угол заставляет нас двигаться вниз по изображению, мы можем использовать это знание, чтобы приблизиться к самой нижней точке изображения.
Если мы можем взять частную производную функции затрат-затрат, используя каждое значение метрики, то мы можем соответственно уменьшить значение каждой метрики, и мы можем сделать шаг ближе к «дну горы», что в конечном итоге приведет к достижению самая низкая точка, найти лучшее значение индикатора. (Если ничего из вышеперечисленного не работает, не волнуйтесь, читайте дальше.)
Вышеприведенное представляет собой краткое изложение одного из методов поиска наилучшего значения индикатора для функции, который мы называем «градиентным спуском». Если вам интересны эти детали, вы можете копнуть немного глубже.
Когда вы используете библиотеку программных инструментов машинного обучения для решения практической задачи, вам не нужно беспокоиться о вышеуказанной работе. Но также необходимо понимать его фактический рабочий процесс.
Какие еще удобства принесло вам машинное обучение?
С профессиональной точки зрения упомянутый выше трехэтапный общий алгоритм также называют «множественной линейной регрессией». Мы пытаемся разработать уравнение, которое можно применить ко всей информации о жилье, а затем использовать это уравнение для оценки стоимости дома, который вы никогда не видели. Удивительно иметь возможность использовать это, казалось бы, виртуальное уравнение для решения реальной проблемы.
Тем не менее, метод, который я описал ранее, работает в некоторых простых случаях, но он не является надежным. Одна из причин кроется в нелинейных характеристиках цен на жилье, что означает, что цены на жилье не подчиняются определенным правилам.
К счастью, у нас есть много способов преодолеть неопределенность цен на жилье. Существует много других алгоритмов машинного обучения, которые могут решать нелинейные данные, такие как нейронные сети или машины опорных векторов ядра и т. д., и существует множество методов линейной регрессии для сложных линейных задач. Короче говоря, неважно, каким методом найти лучшее значение индикатора.
Однако, как и большинство людей, я игнорировал проблему переобучения. На раннем этапе легко найти набор значений индикатора, который соответствует вашей исходной базе данных свойств, но эти значения индикатора применяются только к вашим исходным данным и не будут работать для новых данных свойств за пределами исходной базы данных. Для этой проблемы у нас также есть методы для решения, такие как регуляризация или использование наборов данных перекрестной проверки. Знание того, как справляться с этими проблемами, является ключом к освоению машинного обучения.
Другими словами, несмотря на то, что основные концепции просты, требуются определенные навыки и опыт, чтобы действительно освоить машинное обучение и получить результаты. К счастью, этим навыкам и опыту может научиться каждый разработчик.
В чем магия машинного обучения?
Как только вы увидите, как легко использовать методы машинного обучения для выполнения, казалось бы, очень сложной задачи (например, распознавания рукописного текста), вы поймете, что при наличии достаточного количества данных машинное обучение можно использовать для решения многих сложных задач. Вы просто вводите информацию о данных и ждете, пока компьютер выведет уравнение, применимое к вашим данным.
Но вы должны понимать, что машинное обучение может решить только проблемы с данными, поэтому вам нужно убедиться, что вводимые вами данные помогают решить проблему.
Например, если вы строите модель оценки стоимости дома, и эта модель основана на типах горшечных растений в доме, очевидно, что эта модель оценки не может оценить стоимость имущества. Поскольку тип горшечных растений не имеет ничего общего с ценой дома, компьютер не может установить взаимосвязь между ними.
Вы можете моделировать только те отношения, которые действительно существуют. Так что помните, если эксперт не может использовать эти данные для решения проблемы вручную, то и компьютер не сможет. Не говорите, что раз люди могут решать проблемы, то какая польза от машин, мы должны сосредоточиться на том, сколько времени машины экономят людям при решении проблем.
Как я могу узнать больше о машинном обучении?
На мой взгляд, самая большая проблема современного машинного обучения заключается в том, что его использование ограничено некоторыми академическими и коммерческими исследованиями, и его популярность нуждается в повышении. Однако эти проблемы постепенно решаются человеком.
Бесплатный курс по машинному обучению на Coursera от Эндрю Нг весьма ценен, и я настоятельно рекомендую начать с этого курса, чтобы узнать о машинном обучении. Это легче понять тем, у кого есть степень в области компьютерных наук и немного базовых математических основ.
вы можете скачать и установитьSciKit-Learn, инфраструктура Python, которая охватывает все стандартные алгоритмы, которые вы можете использовать для экспериментов с различными алгоритмами машинного обучения.
Примечание. Эта статья составлена «Tupu Technology». Вы можете следить за общедоступной учетной записью WeChat tuputech, чтобы получать самую свежую и лучшую информацию об искусственном интеллекте.