«Алгоритм» - это слово, которое часто используют. Но о чем мы на самом деле говорим, когда строим разговоры вокруг алгоритмов YouTube или Facebook? Что такое алгоритмы и почему люди так на них жалуются?
Алгоритмы - это инструкции по решению проблем
Мы живем в мире, где о компьютерах мало что известно, хотя они пронизывают каждый момент нашей жизни. Но есть одна область информатики, где каждый может понять основы происходящего. Эта область информатики называется программированием.
Программирование - это не гламурная работа, но это основа всего компьютерного программного обеспечения, от Microsoft Office до роботы . И даже если ваши познания в программировании основаны исключительно на плохих фильмах 90-х и необычных новостных репортажах, вам, вероятно, не нужно никого объяснять вам, чем занимается программист. Программист пишет код для компьютера, и компьютер следует инструкциям этого кода для выполнения задач или решения проблем.
Что ж, в мире информатики алгоритм - это просто модное слово для обозначения кода. Любой набор инструкций, которые говорят компьютеру, как решать проблемы, является алгоритмом, даже если задача очень проста. Когда вы включаете компьютер, он следует набору инструкций «как включить». Это алгоритм в действии. Когда компьютер НАСА использует необработанные данные радиоволн для визуализации фотографии космического пространства, это тоже алгоритм.
Слово «алгоритм» можно использовать для описания любого набора инструкций, даже вне области вычислений. Например, ваш метод сортировки столового серебра в ящике - это алгоритм, как и ваш метод мытья рук после посещения туалета.
Но вот в чем дело: в наши дни слово «алгоритм», как правило, используется для очень конкретных технических разговоров. Вы не слышите, чтобы люди говорили об алгоритмах «базовой математики» или алгоритмах «инструмента для граффити MS Paint». Вместо этого вы слышите, как пользователи Instagram жалуются на алгоритмы предложения друзей или группы конфиденциальности, критикующие алгоритмы сбора данных Facebook.
Если «алгоритм» - это общий термин для вычислительных инструкций, то почему мы используем его почти исключительно для описания сбивающих с толку, магических и злых аспектов цифрового мира?
Большинство людей используют термины «алгоритмы» и «машинное обучение» как синонимы
В прошлом программисты и представители популярной культуры называли большинство вычислительных инструкций «кодом». Это по большей части остается верным и сегодня. Машинное обучение это большая облачная область вычислений, где мы склонны использовать слово «алгоритм» вместо «код». Понятно, что это способствовало путанице и беспокойству вокруг слова «алгоритм».
Машинное обучение существует уже давно, но в последние 15 лет оно стало значительной частью цифрового мира. Хотя машинное обучение кажется сложной идеей, его довольно легко понять. Программисты не могут писать и тестировать конкретный код для каждой ситуации, поэтому они пишут код, который может писать сам.
Думайте об этом как о более практичной форме искусственного интеллекта. Если вы классифицируете достаточно писем своего босса как спам, то ваш почтовый клиент начнет автоматически помещать все письма вашего босса в папку для спама. Точно так же Google использует машинное обучение, чтобы гарантировать, что результаты поиска на YouTube остаются актуальными, а Amazon использует машинное обучение, чтобы предлагать продукты, которые вам следует купить.
Конечно, машинное обучение - это еще не все. Название «машинное обучение» звучит достаточно жутко, чтобы некоторым людям было неудобно, а некоторые из популярных применений машинного обучения сомнительны с этической точки зрения. Алгоритмы, которые Facebook использует для майнинга данных или пользователей в Интернете, являются нелестным примером машинного обучения.
В прессе вы услышите об «алгоритме Google» для ранжирования результатов поиска, «алгоритме YouTube» для рекомендации видео и «алгоритме Facebook» для определения того, какие сообщения вы видите в своей хронике. Все это предмет споров и споров.
СВЯЗАННЫЕ С: Проблема с ИИ: машины учатся, но не могут их понять
Почему алгоритмы спорны
Деление в столбик - это знакомый (среди многих других) алгоритм деления чисел. Просто это делают школьники, а не компьютеры. Ваш процессор Intel использует совершенно другой алгоритм при делении чисел, но результаты те же.
Для преобразования речи в текст обычно используется машинное обучение, но никто не говорит об «алгоритме» преобразования речи в текст, потому что существует объективно правильный ответ, который каждый человек может мгновенно распознать. Никого не волнует, «как» компьютер понимает, что вы сказали, и является ли это машинным обучением или нет. Нам просто важно, получила ли машина правильный ответ.
Но в других приложениях машинного обучения нет «правильного» ответа. Вот почему алгоритмы стали постоянным предметом обсуждения в СМИ.
Алгоритм сортировки списка по алфавиту - это просто способ выполнения определенной задачи. Но алгоритм вроде Google для того, чтобы каким-то образом «ранжировать лучшие веб-сайты для поиска» или YouTube для «рекомендации лучшего видео», гораздо более расплывчатый и не решает поставленной задачи. Люди могут спорить о том, дает ли этот алгоритм желаемые результаты, и у людей будут разные мнения по этому поводу. Но с нашим примером сортировки по алфавиту каждый может согласиться с тем, что в конечном итоге список отсортирован в алфавитном порядке, как и следует. Нет разногласий.
Как нам использовать слово «алгоритм»?
Алгоритмы - основа всего программного обеспечения. Без алгоритмов у вас не было бы телефона или компьютера, и вы, вероятно, читали бы эту статью на листе бумаги (на самом деле, вы бы вообще ее не читали).
Но широкая публика не использует слово «алгоритм» в качестве общего термина для компьютерного кода. Фактически, большинство людей предполагают, что есть разница между компьютерным кодом и алгоритмом, но нет. Из-за ассоциации слова «алгоритм» с машинным обучением его значение стало расплывчатым, но его использование стало более конкретным.
Стоит ли использовать слово «алгоритм» для описания даже самых тривиальных частей компьютерного кода? Наверное, нет, потому что не все поймут, о чем вы. Язык всегда меняется, и всегда по уважительной причине. Людям нужно слово, чтобы описать запутанный, непрозрачный, а иногда и сомнительный мир машинного обучения, и «алгоритм» сейчас становится этим словом.
При этом хорошо иметь в виду, что алгоритм (и машинное обучение) по своей сути представляет собой набор кода, который написан для решения задач. Нет никакого волшебного трюка; это просто более сложная итерация программного обеспечения, с которым мы уже знакомы.