“Алгоритм” - це слово, яке дуже часто розкидають. Але коли ми будуємо розмови навколо алгоритмів YouTube або Facebook, про що ми насправді говоримо? Що таке алгоритми, і чому люди так сильно на них скаржаться?
Алгоритми - це вказівки для вирішення проблем
Ми живемо у світі, де комп’ютери зрозумілі лише неясно, хоча вони пронизують кожну мить нашого життя. Але є одна область інформатики, де кожен може зрозуміти основи того, що відбувається. Ця область інформатики називається програмуванням.
Програмування - це не гламурна робота, але це основа всього комп’ютерного програмного забезпечення, починаючи від Microsoft Office і закінчуючи цим robocallers . І навіть якщо ваші знання програмування випливають виключно з поганих фільмів 90-х та новинних звітів, вам, мабуть, не потрібно, щоб хтось пояснював вам, що робить програміст. Програміст пише код для комп’ютера, і комп’ютер виконує вказівки цього коду для виконання завдань або вирішення проблем.
Що ж, у світі інформатики алгоритм - це просто вигадливе слово для коду. Будь-який набір інструкцій, який говорить комп’ютеру, як вирішувати проблеми, є алгоритмом, навіть якщо завдання надзвичайно просто. Коли ви вмикаєте комп’ютер, він дотримується набору інструкцій “як увімкнути”. Це алгоритм на роботі. Коли комп’ютер NASA використовує необроблені дані радіохвиль, щоб зробити фотографію космічного простору, це також діє алгоритм.
Слово «алгоритм» може бути використано для опису будь-якого набору інструкцій, навіть поза сферою обчислень. Наприклад, ваш спосіб сортування срібного посуду в шухляді є алгоритмом, як і ваш спосіб миття рук після користування ванною.
Але ось у чому річ: у наші дні слово «алгоритм», як правило, зарезервовано для деяких цілком конкретних технічних бесід. Ви не чуєте, як люди говорять про алгоритми "базової математики" або алгоритми "Інструмент графіті MS Paint". Натомість ви чуєте, як користувачі Instagram скаржаться на алгоритми пропозицій друзів або групи конфіденційності, які обманюють алгоритми збору даних Facebook.
Якщо «алгоритм» є загальноприйнятим терміном для обчислювальних інструкцій, то чому ми використовуємо його майже виключно для опису заплутаних, магічних і злих аспектів цифрового світу?
Більшість людей взаємозамінно використовують «алгоритми» та «машинне навчання»
У минулому програмісти та поп-культура називали більшість обчислювальних інструкцій "кодом". Здебільшого це залишається справедливим. Машинне навчання це велика, похмура область обчислень, де ми схильні використовувати слово «алгоритм» замість «код». Зрозуміло, це спричинило плутанину та неспокій навколо слова "алгоритм".
Машинне навчання існує вже давно, але воно стало великою частиною цифрового світу лише за останні 15 років. Хоча машинне навчання звучить як складна ідея, зрозуміти це досить просто. Програмісти не можуть писати та тестувати конкретний код для будь-якої ситуації, тому вони пишуть код, який може писати сам.
Подумайте про це як про більш практичну форму штучного інтелекту. Якщо ви класифікуєте достатньо електронних листів свого начальника як спам, ваш поштовий клієнт почне автоматично записувати всі електронні листи вашого начальника в папку зі спамом. Подібним чином Google використовує машинне навчання, щоб переконатися, що результати пошуку на YouTube залишаються актуальними, а Amazon використовує машинне навчання, щоб запропонувати, які продукти слід купувати.
Звичайно, машинне навчання - це не все чудово і непогано. Назва “машинне навчання” звучить досить моторошно, щоб деяким людям було незручно, а деякі популярні способи машинного навчання є етично сумнівними. Алгоритми, які Facebook використовує для видобутку даних або користувачів в Інтернеті, є невтішним прикладом машинного навчання.
У пресі ви почуєте про "алгоритм Google" для ранжування результатів пошуку, "алгоритм YouTube" для рекомендації відео та "алгоритм Facebook" для вирішення, які публікації ви бачите у своїй хронології. Це все суперечки та дискусії.
ПОВ'ЯЗАНІ: Проблема зі штучним інтелектом: машини вивчають речі, але не можуть їх зрозуміти
Чому алгоритми суперечливі
Довге ділення - це звичний алгоритм (серед багатьох інших) ділення чисел. Просто це проводять школярі замість комп’ютерів. Ваш процесор Intel використовує інший алгоритм, коли ділить числа, але результати однакові.
Мова до тексту, як правило, використовує машинне навчання, але ніхто не говорить про “алгоритм” перетворення тексту до тексту, оскільки існує об’єктивно правильна відповідь, яку кожна людина може миттєво розпізнати. Нікого не цікавить, як комп’ютер з’ясовує, що ви сказали, чи це машинне навчання чи ні. Нам просто важливо, чи машина отримала правильну відповідь.
Але інші програми машинного навчання не мають переваг, коли мають правильну відповідь. Ось чому алгоритми стали постійною темою розмов у ЗМІ.
Алгоритм сортування списку за алфавітом - це лише спосіб виконання визначеного завдання. Але такий алгоритм, як Google, якимось чином "класифікує найкращі веб-сайти для пошуку" або YouTube для "рекомендування найкращого відео", є набагато туманнішим і не виконує визначеного завдання. Люди можуть обговорювати, чи дає цей алгоритм результати, якими він повинен, і люди матимуть різні думки щодо цього. Але на нашому прикладі алфавітного сортування кожен може погодитися з тим, що список закінчується сортуванням за алфавітом, як слід. Тут немає суперечок.
Як слід використовувати слово «Алгоритм?»
Алгоритми є основою всього програмного забезпечення. Без алгоритмів у вас не було б телефону чи комп’ютера, і ви, мабуть, читали б цю статтю на аркуші паперу (насправді, ви б не читали її зовсім).
Але широка громадськість не використовує слово "алгоритм" як загальний термін для комп'ютерного коду. Насправді більшість людей припускають, що між комп’ютерним кодом та алгоритмом є різниця, але такої немає. Через асоціацію слова "алгоритм" з машинним навчанням його значення стало туманним, проте його використання стало більш конкретним.
Чи варто вам починати використовувати слово "алгоритм" для опису навіть найтривіальніших частин комп'ютерного коду? Можливо, ні, оскільки не всі зрозуміють, що ви маєте на увазі. Мова завжди змінюється, і вона завжди змінюється з поважної причини. Людям потрібне слово, щоб описати заплутаний, непрозорий, а часом і сумнівний світ машинного навчання, і "алгоритм" стає цим словом - поки що.
З огляду на це, добре пам’ятати, що алгоритм (і машинне навчання) - це по суті купа програм, написаних для вирішення завдань. Немає магічного фокусу; це просто більш складна ітерація програмного забезпечення, з яким ми вже знайомі.
Джерела: Шифер , Вікіпедія , GeeksforGeeks