Чтобы овладеть навыком, мы собираем знания, тщательно практикуемся и следим за своей работой. В конце концов, мы становимся лучше в этой деятельности. Машинное обучение — это метод, который позволяет компьютерам делать тоже самое.
Могут ли компьютеры учиться
Определить интеллект сложно. Мы все знаем, что мы подразумеваем под интеллектом, когда говорим об этом, но описать это проблематично. Если оставить в стороне эмоции и самосознание, рабочим описанием может быть способность изучать новые навыки и усваивать знания, а также применять их в новых ситуациях для достижения желаемого результата.
Учитывая сложность определения интеллекта, определение искусственного интеллекта не будет проще. Если вычислительное устройство может делать что-то, что обычно требует человеческого разума и интеллекта, мы скажем, что оно использует искусственный интеллект.
Например, умные колонки, такие как Amazon Echo и Google Nest, могут слышать наши голосовые инструкции, интерпретировать звуки как слова, извлекать значение слов и затем пытаться выполнить наш запрос. Мы можем попросить включить музыку, ответить на вопрос или приглушить свет.
Во всех взаимодействиях, кроме самых тривиальных, Ваши голосовые команды передаются на мощные компьютеры в облаках производителей, где и происходит тяжелая работа искусственного интеллекта. Команда анализируется, значение извлекается, а ответ готовится и отправляется обратно в интеллектуальный динамик.
Машинное обучение лежит в основе большинства систем искусственного интеллекта, с которыми мы взаимодействуем. Некоторые из них находятся в Вашем доме, например, умные устройства, а другие являются частью услуг, которые Вы используем в Интернете. Рекомендации по видео на YouTube и Netflix и автоматические плейлисты на Spotify используют машинное обучение. Поисковые системы полагаются на машинное обучение, а интернет-магазины используют машинное обучение, чтобы предлагать Вам варианты покупки на основе Вашей истории просмотров и покупок.
Компьютеры могут получить доступ к огромным наборам данных. Итак, если обучение требует знаний, практики и обратной связи, компьютер должен быть идеальным кандидатом.
Это не означает, что компьютер действительно сможет мыслить в человеческом смысле или понимать и воспринимать так, как мы. Но он научится и станет лучше с практикой. Искусно запрограммированная система машинного обучения может произвести достойное впечатление об осведомленной и сознательной сущности.
Мы часто спрашивали: «Могут ли компьютеры учиться?» В конечном итоге это превратилось в более практический вопрос. Какие инженерные задачи мы должны преодолеть, чтобы компьютеры могли обучаться?
Нейронные сети и глубокие нейронные сети
Мозг животных содержит сети нейронов. Нейроны могут передавать сигналы через синапс другим нейронам. Это крошечное действие, повторяющееся миллионы раз, вызывает наши мыслительные процессы и воспоминания. Из множества простых строительных блоков природа создала сознательный разум и способность рассуждать и запоминать.
На основе биологических нейронных сетей были созданы искусственные нейронные сети, имитирующие некоторые характеристики своих органических аналогов. С 1940-х годов было разработано аппаратное и программное обеспечение, содержащее тысячи или миллионы узлов. Узлы, как и нейроны, получают сигналы от других узлов. Они также могут генерировать сигналы для подачи в другие узлы. Узлы могут принимать входные данные от многих узлов и посылать им сигналы одновременно.
Если животное решит, что летающие жёлто-чёрные насекомые всегда сильно кусает его, оно будет избегать всех летающих жёлто-чёрных насекомых. Журчалка этим пользуется. Она желтая и черная, как оса, но у нее нет жала. Животные, усвоившие болезненный урок с осами так же обходят журчалок стороной.
Важность летающих, жужжащих и желто-черных полос преобладает над всем остальным. Важность этих сигналов называется взвешиванием этой информации. Искусственные нейронные сети также могут использовать взвешивание. Узлу не обязательно считать все свои входы равными. Он может отдавать предпочтение одним сигналам перед другими.
Машинное обучение использует статистику для поиска закономерностей в наборах данных, на которых оно обучается. Набор данных может содержать слова, числа, изображения, действия пользователя, такие как клики на веб-сайте, или что-либо еще, что может быть записано и сохранено в цифровом виде. Системе необходимо охарактеризовать основные элементы запроса, а затем сопоставить их с шаблонами, обнаруженными в наборе данных.
Если он пытается идентифицировать цветок, ему необходимо знать длину стебля, размер и стиль листа, цвет и количество лепестков и т. д. На самом деле для этого потребуется гораздо больше фактов, но в нашем простом примере мы воспользуемся ими. Как только система узнает эти подробности о тестовом образце, она запускает процесс принятия решения, который производит совпадение на основе своего набора данных. Впечатляет то, что системы машинного обучения сами создают дерево решений.
Система машинного обучения учится на своих ошибках, обновляя свои алгоритмы, чтобы исправить ошибки в своих рассуждениях. Самые сложные нейронные сети — это глубокие нейронные сети. Концептуально они состоят из множества нейронных сетей, наложенных одна на другую. Это дает системе возможность обнаруживать и использовать даже крошечные шаблоны в процессах принятия решений.
Слои обычно используются для утяжеления. Так называемые скрытые слои могут действовать как «специальные» слои. Они предоставляют взвешенные сигналы об одной характеристике испытуемого. В нашем примере идентификации цветов, возможно, можно использовать скрытые слои, посвященные форме листьев, размеру бутонов или длине тычинок.
Различные типы обучения
Для обучения систем машинного обучения используются три основных метода: обучение с учителем, обучение без учителя и обучение с подкреплением.
Обучение с учителем
Обучение с учителем — наиболее часто используемая форма обучения. Это не потому, что она по своей сути превосходит другие методы. Это больше связано с пригодностью этого типа обучения для наборов данных, используемых в системах машинного обучения, которые пишутся сегодня.
При обучении с учителем данные помечаются и структурируются таким образом, чтобы критерии, используемые в процессе принятия решений, определялись для системы машинного обучения. Это тип обучения, который используется в системах машинного обучения, стоящих за предложениями плейлистов YouTube.
Обучение без учителя
Обучение без учителя не требует подготовки данных. Система сканирует данные, обнаруживает свои собственные шаблоны и выводит свои собственные критерии запуска.
Техники неконтролируемого обучения успешно применялись в кибербезопасности. Системы обнаружения злоумышленников, усовершенствованные за счет машинного обучения, могут обнаруживать несанкционированную сетевую активность злоумышленника, поскольку она не соответствует ранее наблюдаемым образцам поведения авторизованных пользователей.
Обучение с подкреплением
Обучение с подкреплением — новейшая из трех техник. Проще говоря, алгоритм обучения с подкреплением использует метод проб и ошибок и обратную связь, чтобы прийти к оптимальной модели поведения для достижения поставленной цели.
Это требует обратной связи от людей, которые «оценивают» усилия системы в зависимости от того, оказывает ли ее поведение положительное или отрицательное влияние на достижение поставленной цели.
Практическая сторона искусственного интеллекта
Поскольку машинное обучение настолько распространено и имеет очевидные реальные успехи, в том числе коммерческие, его называют «практической стороной искусственного интеллекта». Это крупный бизнес, и существует множество масштабируемых коммерческих фреймворков, которые позволяют включать машинное обучение в свои собственные разработки или продукты.
Если Вы заинтересованы в поиске системы машинного обучения с дружественным языком программирования, таким как Python, для этого также есть отличные бесплатные ресурсы. Фактически, они будут масштабироваться вместе с Вами, если у Вас возникнут новые интересы или бизнес-потребности.
Torch — это фреймворк машинного обучения с открытым исходным кодом, известный своей скоростью.
Scikit-Learn — это набор инструментов для машинного обучения, особенно для использования с Python.
Caffe — это среда глубокого обучения, способная обрабатывать изображения.
Keras — это фреймворк для глубокого обучения с интерфейсом Python.