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

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

отношения

Чтобы изменить способ функционирования компьютерной программы, она должна изменить способ рассмотрения взаимосвязей между своими внутренними, а также внешними переменными. Один из простейших способов начать это учитывать - это проанализировать, как разные переменные движутся вместе. По-настоящему положительная корреляция происходит, когда переменные движутся совершенно параллельно друг другу. Хотя это не обязательно часто происходит за пределами математики, приблизительные «положительные» корреляции возникают постоянно. Закон спроса и предложения поддерживает одну такую ​​корреляцию: если предположить, что предложение продукта остается неизменным, то по мере увеличения спроса на него будет расти и его цена. Отрицательная корреляция - полная противоположность. Возьмем тот же пример спроса и предложения: если предположить, что на этот раз спрос останется неизменным, то уменьшение предложения приведет к увеличению цены продукта.

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

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

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

классификации алгоритмов

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

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

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

что это может делать?

Машинное обучение имеет невероятно разнообразные приложения, стимулируя исследования в различных областях - от сельского хозяйства до рекламы. Медицинские диагнозы, поставленные машинами, становятся все более и более точными с каждым днем ​​на основе данных, которые получают их алгоритмы обучения. Такие компании, как Facebook и Warby Parker, используют распознавание лиц, чтобы делать теги к фотографиям и виртуально примерять очки лучше и быстрее. Многие другие компании также используют машинное обучение, чтобы делать свои продукты более удобными.

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

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

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

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

По мере того, как алгоритмы машинного обучения учатся писать сами, независимо от того, участвует ли человек или нет, они становятся все более и более эффективными в использовании данных, а также в вычислительной мощности. Сети машинного обучения также становятся более масштабируемыми, расширяемыми и простыми в использовании, не говоря уже о более точных. Эта точность была замечена в AlphaGo от Google DeepMind. До 2015 года Go было невероятно сложной задачей, которую можно было решить с помощью компьютера. На полноразмерной доске 19x19 количество разрешенных ходов за ход обычно составляет от 150 до 200, что означает, что количество прогнозов, которые следует учитывать в течение следующих четырех ходов в данной игре, составляет около 320 миллиардов. Вычислительная мощность, необходимая для того, чтобы сделать это за один ход, требовала около четырех часов на самом мощном на то время суперкомпьютере.

Хотя на тот момент программное обеспечение могло достичь только любительского уровня на полноразмерной плате, AlphaGo за несколько лет эволюционировала от первого победа над профессионалом Go в 2015 году до своей новейшей версии AlphaZero, которая в настоящее время является считается не только лучшим игроком в го в мире, но и лучшим шахматистом в мире.

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

Спасибо за чтение! Если вам понравилось, не стесняйтесь аплодировать и подписывайтесь на меня в твиттере @ jmgindi1