1. Век алгоритмов

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

1.1. Базовые алгоритмы

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

Другой простейший алгоритм – «соедини два бита». Он включает три логических рассуждения:

• Транзистор A включается, только если включены транзисторы B и C.

• A включается, когда включен либо B, либо C.

• A включается всегда, когда выключен B, и наоборот.

Даже самый сложный алгоритм сводится к трем операциям: И, ИЛИ и НЕ.

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

1.2. Нарастающая сложность

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

Для создания сложных программ одни алгоритмы соединяются с другими.

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

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

• Сложные алгоритмы долго выполняются.

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

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

1.3. Машинное обучение VS программирование

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

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

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

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

Загрузка...