Дорожная карта

Цель:

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

Если я не достигну этой цели, ПОЖАЛУЙСТА, оставьте комментарий, чтобы я мог ответить на любые вопросы по этой теме!

Итак, давайте погрузимся в ...

Откуда взялось машинное обучение?

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

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

Что означают все эти модные словечки?

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

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

Это не случайно! Основа ИИ уходит корнями в нечто, называемое нейронной сетью. Нейронные сети - это математическая модель, используемая для перевода первых принципов человеческого мышления (нейронов) в математику, а затем в компьютерную интерпретацию этой математики. Посмотрите на визуализацию ниже, но пока не беспокойтесь о ее понимании.

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

  • Наука о данных - дает аналитическую информацию.
  • Машинное обучение - производит прогнозы (на основе статистики и вероятности).
  • Искусственный интеллект - производит действия.

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

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

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

Как люди учатся?

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

Например, дети учатся избегать горячих предметов, таких как утюг, при первом прикосновении к нему и ощущении жжения и боли. Затем они плачут (обычно), и это помогает им понять, что это решение, которое им НЕ следует принимать в будущем, если они не хотят так себя чувствовать. Это также известно как обучающая обратная связь.

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

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

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

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

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

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

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

В математике этот метод проб и ошибок известен как градиентный спуск, к которому мы скоро вернемся!

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

Как компьютеры учатся?

Современные компьютеры отличаются от людей, поскольку они обрабатывают двоичные данные, и для работы им нужно сообщить очень конкретный набор инструкций, тогда как при рождении ребенка им не дают инструкций двигаться, есть или плакать. Они запрограммированы на то, чтобы делать это самостоятельно. Компьютер просто не компьютер без базового набора инструкций. Рассуждая по аналогии, то же поведение вне утробы, которое имеют младенцы, похоже на компьютерный BIOS, или самый простой набор инструкций по жизни (в случае включения компьютера). Единственная разница в том, что BIOS должен был быть написан кем-то другим, и мы, люди, не на 100% уверены в том, откуда мы пришли заранее запрограммированными, но это совсем другой момент.

Проще говоря, три способа обучения компьютеров с помощью машинного обучения: (i) модель (ii) параметры (iii) учащийся.

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

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

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

Затем наша модель машинного обучения (машинного обучения) создает математическую формулу для моделирования взаимосвязи в этих данных.

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

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

σ (% difference) = [100 (actual score ) - 90 (realized score) / 100 (actual score)] * 100 (to get a %) => +10% margin of error

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

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

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

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

На этот раз мы получаем довольно хорошую точность:

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

Как и в случае с ребенком на велосипеде, этот метод градиентного спуска буквально составляет все в машинном обучении! Довольно круто, да ?!

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

Что такое обучение с учителем и как оно работает?

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

  • Классификация: группировка похожих объектов на основе определенной характеристики.
  • Регрессия: зависимые переменные, связанные с независимыми переменными.

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

Как работает машинное обучение с учителем?

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

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

Подготовка данных:

Хороший инженер оценивает три основных аспекта своего набора данных: перекос, распределение и среднее / медиана / режим набора данных.

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

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

Обучение:

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

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

Недостаток:

  • низкая дисперсия / высокая систематическая ошибка

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

Переоборудование:

  • высокая дисперсия / низкая систематическая ошибка

Это происходит, когда наши данные плохие. Легко и просто. У нас нет разнообразных данных, и он искажен. Однако модель не слишком «тупая», и это больше проблема набора данных, который мы выбрали для обучения нашего алгоритма. Это наиболее частый результат контролируемых алгоритмов машинного обучения.

Вот и все, машинное обучение с учителем на сверхвысоком уровне.

Что такое обучение без учителя и как оно работает?

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

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

Давайте посмотрим на самый популярный алгоритм, используемый для этого - кластеризация k-средних:

Раньше, когда мы рассматривали кластеризацию, мы видели этот пример, когда у нас была классификация и мы группировали объекты в зависимости от того, имеют ли они одну и ту же форму, а НЕ от того, являются ли они допустимой формой или неправильной формой.

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

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

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

Insights - это то, к чему стремятся компании, использующие эти модели, потому что именно по этому конечному результату они могут сделать вывод, какие новые продукты предложить покупателю.

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

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

Как работает кластеризация k-средних?

Шаг 1. Разделите данные на кластеры в соответствии с произвольным показателем (в нашем случае мы будем использовать потраченные в месяц в какой-то компании в качестве наша метрика кластеризации). Количество групп, которые у нас есть, будет количественным числом, обозначенным буквой «K». Отсюда и название кластеризация k-средств.

Шаг 2. Выберите k-точек в середине этих k-кластеров, то есть в центре этих кластеров.

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

dist((x, y), (a, b)) = √(x - a)² + (y - b)²

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

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

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

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

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

Помните, как я сказал, что вначале мы выбираем k-точек в качестве основы для начала?

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

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

Так почему компании платят инженерам за выполнение этих алгоритмов?

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

В этом кластере у нас может быть такой вывод, например:

  • Дэвид, 26-летний мужчина, живет в Сан-Франциско и работает в Uber. Он тратит 100 долларов в месяц на одежду и обычно покупает кожаные ботинки Clarks.
  • Мелани - 19-летняя женщина, которая живет в Нью-Йорке и работает в некоммерческой организации. Она тратит 150 долларов в месяц на одежду и обычно покупает джинсы AG.
  • Маркус - 40-летний мужчина, который живет в Остине, штат Техас, и работает в Exxon Mobile. Он тратит 50 долларов в месяц на одежду и обычно покупает футболки Carhart.
  • Сьюзан - 25-летняя женщина, которая живет в Сиэтле, штат Вашингтон, и работает на Amazon. Она тратит 200 долларов в месяц на одежду и обычно покупает джинсовую ткань Frame.

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

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

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

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

Вот почему компаниям имеет смысл использовать модели обучения без учителя, такие как k-means!

Куда мне идти дальше?

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

Некоторые другие интересные темы машинного обучения, представленные на этом изображении, такие как NLP (обработка естественного языка), как Amazon Alexa обрабатывает то, что вы говорите, CV (компьютерное зрение) именно так аэропорты сканируют людей, когда они проходят проверку безопасности, чтобы узнать, включены ли они в какие-либо списки наблюдения и многое другое.

Если вы действительно хотите погрузиться в какой-либо из этих предметов, вам следует серьезно изучить MOOC (массовый открытый онлайн-курс), такой как Udacity, Udemy и Coursera.

Если вы нашли эту статью полезной, хлопните в ладоши, нажав кнопку хлопка (удерживая нажатой), и следуйте за мной! Спасибо за чтение!

-Коннор