Верховный алгоритм
Как машинное обучение изменит наш мир
Для кого эта книга?
Доступным, легким языком Педро Домингос объясняет, что такое алгоритмы, машинное обучение и большие данные. Для этого он использует наглядные примеры и переводит разговор о сложных информационных технологиях в бытовую, понятную каждому, плоскость. Из книги «Верховный алгоритм» вы узнаете, как работает машинное обучение и почему данные – это «новая нефть». И если это правда, то главный, верховный алгоритм – это не просто ценнейшее из будущих достижений человечества. Это ключ от всех дверей. Он позволит выявить решение таких проблем, над которыми люди бьются веками.
Наш обзор не заменит вам прочтение книги «Верховный алгоритм» в полном объёме. Однако, мы готовы разжечь ваше любопытство и побудить к её самостоятельному изучению. Начнём?
Узнайте, как алгоритмы меняют мир.
Одна из величайших загадок мира заключается в том, как всего фунт серого вещества в голове новорожденного может в конечном итоге породить поток сознания, способного воспринимать мир и взаимодействовать с ним. И уж куда более поразительным является то, как мало учится мозг, пока он претерпевает эту трансформацию.
Ни одна машина в истории человечества не обладает способностью к обучению, сравнимой с человеческим мозгом. Но все меняется. Наша способность создавать все более сложные технологии означает, что в будущем они смогут бросить вызов человеческому мозгу.
Машины могут даже превзойти человеческие способности к обучению. Они способны изучать огромный объем данных, с которыми мы сталкиваемся и который игнорируем каждый день. Так что давайте серьезно об этом задумаемся и исследуем увлекательный мир алгоритмов и машинного обучения.
Из этого обзора вы узнаете:
- как в будущем машины смогут учиться без инструкций;
- почему иногда очень сложно увидеть закономерности;
- как алгоритм выигрыша в «Тетрис» может оптимизировать ваш путь до работы.
Машинное обучение может решить важные проблемы, находя после просмотра данных алгоритм их объяснения.
Вас когда-нибудь выводили из себя рецепты с неточными инструкциями, например, «готовить на среднем огне 15-20 минут»? Если да, то вы тот, кто предпочитает четкий алгоритм действий.
В отличие от подобных рецептов, алгоритмы – это последовательности точных инструкций, которые каждый раз дают один и тот же результат.
Хотя вы можете и не знать об их существовании, алгоритмы используются повсюду. Они планируют рейсы, отправляют посылки и обеспечивают бесперебойную работу заводов.
Эти стандартные алгоритмы предназначены для приема информации в качестве входных данных, затем для выполнения задачи и получения результата.
Допустим, задача алгоритма – задать направление. Если вы введете две точки, машина выдаст вам самый короткий маршрут между этими двумя точками.
Но алгоритмы машинного обучения (МО), на один шаг более абстрактны: это алгоритмы, которые выводят другие алгоритмы! С учетом множества примеров пар «ввод-вывод», на которых нужно учиться, они изобретают алгоритм, который преобразует вводные данные в нужный результат.
Это удобно при разработке алгоритмов для задач, которые программист не может точно описать, например, чтение чьего-то почерка. Подобно езде на велосипеде, расшифровка почерка – это то, что мы делаем бессознательно. Нам было бы трудно выразить этот процесс словами, не говоря уже об алгоритме.
Благодаря машинному обучению, нам не приходится этого делать. Мы просто даем алгоритму машинного обучения множество примеров рукописного текста в качестве вводных данных и значение текста в качестве желаемого результата. В результате получится алгоритм, который сможет преобразовать одно в другое.
После проведения данного процесса обучения мы сможем использовать полученный алгоритм всякий раз, когда захотим автоматически расшифровать почерк. И, действительно, именно так в почтовом отделении считывают почтовый индекс, который вы пишете на своих посылках.
Примечательно то, что алгоритмы машинного обучения, подобные этому, можно использовать для множества различных задач, а решение возникающих проблем – это только вопрос сбора достаточного количества данных.
Это означает, что исходный алгоритм часто один и тот же и не требует никаких корректировок для решения, казалось бы, несвязанных между собой проблем.
Например, можно подумать, что для постановки медицинского диагноза, фильтрации спама из электронной почты и определения лучшего шахматного хода могут потребоваться совершенно разные алгоритмы. Но, на самом деле, с помощью одного алгоритма МО и правильных данных можно решить все эти проблемы.
Чтобы избежать сбоев, алгоритмы обучения должны быть ограничены и проверены на достоверность.
Видеть галлюцинации – это видеть то, чего на самом деле нет. Интересно, что «галлюцинации» – центральная проблема в мире алгоритмов. В 1998 году в бестселлере «Библейский код» утверждалось, что Библия содержит скрытые предсказания, которые обнаруживаются выборочным пропуском определенных строк и букв.
Однако критики опровергли это утверждение, продемонстрировав, что подобные «закономерности» можно найти в «Моби Дике» и даже в постановлениях Верховного суда.
Это хороший пример «галлюцинаций», которые на языке МО являются результатом переобучения. Переобучение происходит, когда алгоритм настолько мощный, что может «выучить» что угодно. Дело в том, что когда вы бросаете достаточно вычислительной мощности на такой набор данных, как Библия, вы всегда найдете некоторые закономерности, потому что компьютер может выводить все более сложные закономерности до тех пор, пока некоторые из них не сработают. Но полученная закономерность не будет работать ни с какими другими данными.
Поэтому, чтобы взять под контроль алгоритмы, их мощность должна быть ограничена путем уменьшения их сложности.
Чтобы вывести правильную степень ограничений, вы должны убедиться, что область применения вашего алгоритма не слишком обширна, и гарантировать, что результаты будут достоверными и последовательными. Если алгоритм слишком универсален, он может привести к таким же данным, как и в «Библейском коде» и найти закономерности в любом тексте или наборе данных.
Но что, если ваш алгоритм обнаруживает несколько закономерностей, которые объясняют ваши данные, но не согласуются с новыми данными? Какому результату вы должны верить? И как вы можете быть уверены на 100% в том, что ваши результаты – это не просто случайность?
Тогда на помощь приходят тестовые данные.
Когда вы готовите исходный набор данных для обучения алгоритма, важно разделить его на тренировочный набор, который алгоритм использует для обучения, и тестовый набор данных, с помощью которого его можно перепроверить.