Сейчас мир вычислений пестрит модными словами: искусственный интеллект, суперкомпьютеры, машинное обучение, облако, квантовые вычисления и многое другое. В вычислениях же используется, в частности, одно слово – алгоритм.
В самом общем смысле алгоритм – это серия инструкций, сообщающих компьютеру, как преобразовать набор фактов о мире в полезную информацию. Факты – это данные, а полезная информация – это знания для людей, инструкции для машин или вводные данные для еще одного алгоритма. Существует множество распространенных примеров алгоритмов, от сортировки наборов чисел до поиска маршрутов по картам и отображения информации на экране.
Чтобы понять концепцию алгоритмов, подумайте о том, как вы одеваетесь утром. Мало кто задумывается об этом. Но как бы вы записали свой процесс или рассказали 5-летнему ребенку о своем подходе? Подробный ответ на эти вопросы дает алгоритм.
Входные данные
Для компьютера ввод – это информация, необходимая для принятия решений.
Какая информация вам нужна, когда вы одеваетесь утром? Прежде всего, вам нужно знать, какая одежда есть в вашем гардеробе. Затем вы можете подумать о температуре, прогнозе погоды на день, сезоне и, возможно, о некоторых личных предпочтениях.
Все это можно представить в виде данных, которые по сути представляют собой простые наборы чисел или слов. Например, температура – это число, а прогноз погоды может быть «дождливым» или «солнечным».
Трансформация
Далее следует самое сердце алгоритма – вычисления. Вычисления включают арифметику, принятие решений и повторение.
Итак, как это применимо к процессу выбора одежды? Вы принимаете решение, вычисляя эти входные величины. Например, от температуры воздуха зависит, наденете ли вы куртку. А то, какую куртку вы выберете, уже будет зависеть от прогноза погоды. Для компьютера часть нашего алгоритма выглядела бы так: «если температура ниже 50 градусов и идет дождь, выберите дождевик и рубашку с длинными рукавами».
После того, как вы подобрали одежду, вам нужно ее надеть. Это ключевая часть нашего алгоритма. Для компьютера повторение можно выразить как «наденьте каждый предмет одежды».
Вывод результата
Наконец, выводится последний шаг алгоритма – выражение ответа. Для компьютера вывод – это обычно больше данных, чем на ввод. Это позволяет компьютерам объединять алгоритмы в сложную структуру для создания большего количества алгоритмов. Однако вывод может также включать представление информации, например, вывод слов на экран, формирование слуховых сигналов или какую-либо другую форму коммуникации.
Итак, одевшись, вы выходите в мир, готовый к стихиям и взглядам окружающих вас людей. Может быть, вы даже сделаете селфи и разместите его в Instagram, чтобы выставить напоказ свои фотографии.
Машинное обучение
Иногда слишком сложно описать процесс принятия решения. Алгоритмы машинного обучения пытаются «учиться» на основе набора прошлых примеров принятия решений. Машинное обучение – обычное дело для таких вещей, как рекомендации, прогнозы и поиск информации.
В нашем примере с одеванием алгоритм машинного обучения будет эквивалентен тому, что вы вспомните прошлые решения о том, что надеть, зная, насколько комфортно вы себя чувствуете при ношении каждого предмета, и, возможно, какие селфи получили больше всего лайков, и используете эту информацию для улучшения выбора.
Итак, алгоритм – это процесс, который компьютер использует для преобразования входных данных в выходные данные. Простая концепция, но каждая технология, к которой вы прикасаетесь, включает в себя множество алгоритмов.