Машинное обучение — неотъемлемая часть современной жизни. Это уникальная технология, которая меняет не только мир вокруг, но и саму себя. Люди научились адаптировать мир под себя. А машинное обучение — следующий этап эволюции, когда мир предугадывает наши желания и меняется соответствующим образом. Пока машинное обучение далеко не совершенно: алгоритмы ошибаются в расчетах и не умеют считывать или интерпретировать всю информацию. Но это лишь начало пути.
Поисковая система знает, какие результаты показать нам, а какие — соседу или начальнику. Amazon и Netflix подбирают книги и фильмы, которые будут по душе конкретному человеку, а Facebook выстраивает ленту новостей в соответствии с нашими интересами. Все эти ресурсы не программируются под каждого пользователя — невозможно к каждому человеку приставить персонального программиста. Встроенный алгоритм самостоятельно анализирует обновляющиеся данные и вносит изменения в свои настройки.
Современные смартфоны уже стали не просто средствами связи, а самообучающимися персональными ассистентами. Они предугадывают следующее действие владельца и сообщают, что встреча, запланированная на 10:00, переносится на два часа — именно на это время задерживается рейс заказчика.
Мы отправляем резюме и удивляемся, что работодатель его даже не открыл. Все просто: специальный алгоритм беспристрастно отсортировал 10 резюме, наиболее соответствующих требованиям, описанным в вакансии. На сайте знакомств мы в первую очередь видим людей, отвечающих нашим запросам.
«Верховный алгоритм» — путеводитель в мире машинного обучения. Автор считает, что каждый человек, живущий в наше время, должен иметь хотя бы базовое представление об обучающих алгоритмах, просто чтобы понимать, в каком мире он живет. Новые алгоритмы возникают каждый день, но все они базируются на фундаментальных идеях, описанных в книге.
Педро Домингос уверен, что высшей стадией развития машинного обучения станет создание верховного алгоритма, который сумеет объединить всю информацию прошлого, настоящего и будущего и эффективно решить любую проблему. С его появлением человечество решит все сложные проблемы: от создания универсальных домашних помощников до победы над раком.
1. Век алгоритмов
Наша жизнь — переплетение алгоритмов. Они есть не только в смартфонах и компьютерах, но и в автомобилях, бытовой технике и даже игрушках. Алгоритмы управляют самолетами, производством, снабжением и ведут бухгалтерию. Если все эти алгоритмы неожиданно перестанут работать — без преувеличения, наступит конец света.
1.1. Базовые алгоритмы
Самый простой алгоритм — включение и выключение. Положение «один» — транзистор включен, и «ноль» — выключен. Единица в компьютерных базах банка показывает, превысили ли вы лимит по карте, а единица в управлении социального обеспечения сообщает, что вы живы.
Другой простейший алгоритм — «соедини два бита». Он включает три логических рассуждения:
• Транзистор A включается, только если включены транзисторы B и C.
• A включается, когда включен либо B, либо C.
• A включается всегда, когда выключен B, и наоборот.
Даже самый сложный алгоритм сводится к трем операциям: И, ИЛИ и НЕ. Соединяя множество простых операций, можно составлять сложные цепочки логических рассуждений и создавать программы.
1.2. Нарастающая сложность
Написать алгоритм непросто: предположения программиста вполне могут оказаться ошибочными, и тогда ему придется искать другой подход. Кроме того, алгоритм надо выразить на понятном компьютеру языке (например, Java), потом отладить так, чтобы любой пользователь мог с ним работать.
Для создания сложных программ одни алгоритмы соединяются с другими. Но чем сложнее и объемнее программы, тем труднее их использовать.
• Если алгоритму нужно больше памяти, чем есть у компьютера, он бесполезен, и его приходится отбрасывать.
• Сложные алгоритмы долго выполняются.
• Когда алгоритм становится слишком запутанным и объемным, а связи между элементами — слишком многочисленными, в нем появляются ошибки. Человеку сложно их найти и исправить в миллионах строк кода.
Незначительная ошибка в алгоритме, и ракета стоимостью миллиард долларов взрывается, город остается без электричества и обрушивается фондовый рынок.
1.3. Машинное обучение VS программирование
Машинное обучение называют по-разному: распознавание паттернов, статистическое моделирование, извлечение данных, предсказательная аналитика, адаптивные и самоорганизующиеся системы. Неверно ставить знак равенства между машинным обучением и искусственным интеллектом. Изначально машинное обучение было разделом науки об искусственном интеллекте, однако сегодня машинное обучение — самостоятельная область, более востребованная, чем искусственный интеллект. Цель искусственного интеллекта — научить машины делать то, что люди умеют делать лучше, а умение самостоятельно обучаться — ключевой навык, без которого компьютеры не смогут развиваться.
Машинное обучение — это программирование наоборот. У любого алгоритма есть вход и выход: данные поступают в компьютер, алгоритм делает с ними то, что нужно, и выдает результат. Машинное обучение, имея в своем распоряжении данные и желаемый результат, создает алгоритм, который превращает одно в другое. Обучающиеся алгоритмы создают другие алгоритмы, обученные на основе имеющихся данных. С помощью машинного обучения компьютеры сами пишут для себя программы.
Алгоритмы машинного обучения на удивление просты. Обычно они состоят из нескольких сотен строк кода. В то же время программы, которые они заменяют, включают сотни тысяч или миллионы строк.
Первые 7 дней доступа — бесплатно.