Найкраще

10 найкращих алгоритмів машинного навчання

mm
Додайте Unite.AI до бажаних джерел у Google

Хоча ми живемо в час надзвичайної інновації в галузі машинного навчання, що прискорюється графічними процесорами, останні дослідження часто (і помітно) представляють алгоритми, яким десятки, а іноді й 70 років.

Дехто може стверджувати, що багато цих старих методів належать до категорії “статистичного аналізу”, а не машинного навчання, і віддають перевагу датуванню початку галузі лише 1957 роком, з винайденням перцептрона.

Враховуючи ступінь, у якій ці старші алгоритми підтримують і переплетені з останніми трендами та сенсаційними розробками в машинному навчанні, це спірне твердження. Тому давайте розглянемо деякі “класичні” будівельні блоки, що лежать в основі останніх інновацій, а також деякі нові учасники, які вже роблять ранню заявку на славу в залі слави штучного інтелекту.

1: Трансформери

У 2017 році дослідницька група Google очолила дослідження, що завершилося статтею Увага – все, що вам потрібно. Робота описала нову архітектуру, яка просувала механізми уваги від “пайпінгу” в моделях кодувача/декодувача та рекурентних нейронних мережах до центральної трансформаційної технології самої по собі.

Підхід був названий Трансформер, і з тих пір став революційною методологією в обробці природної мови (NLP), що живить, серед іншого, автoregresивну мовну модель і штучний інтелект GPT-3.

Трансформери елегантно вирішили проблему послідовної трансдукції, також званої “трансформацією”, яка займається обробкою вхідних послідовностей у вихідні послідовності. Трансформер також приймає та керує даними безперервним чином, а не послідовними пачками, що дозволяє “тривалості пам’яті”, якої архітектури RNN не призначені для отримання. Для більш детального огляду трансформерів дивіться нашу статті.

На відміну від рекурентних нейронних мереж (RNN), які почали домінувати в дослідженнях машинного навчання в епоху CUDA, архітектура трансформера могла бути легко паралелізована, відкриваючи шлях до продуктивного звернення до набагато більшої корпусу даних, ніж RNN.

Популярне використання

Трансформери захопили публічну уяву в 2020 році з випуском GPT-3 від OpenAI, який мав тоді рекордні 175 мільярдів параметрів. Це, здавалося б, вражаюче досягнення було згодом затіняно пізнішими проєктами, такими як випуск у 2021 році Microsoft’s Megatron-Turing NLG 530B, який (як випливає з назви) має понад 530 мільярдів параметрів.

Хронологія гіпермасштабних проєктів NLP-трансформерів. Джерело: Microsoft

Хронологія гіпермасштабних проєктів NLP-трансформерів. Джерело: Microsoft

Архітектура трансформера також перейшла від NLP до комп’ютерного зору, живлячи нове покоління кадрів синтезу зображень, таких як OpenAI’s CLIP і DALL-E, які використовують відображення тексту>зображення для завершення незавершених зображень і синтезу нових зображень з навчених доменів, серед інших застосувань.

DALL-E намагається завершити часткове зображення бюста Платона. Джерело: https://openai.com/blog/dall-e/

DALL-E намагається завершити часткове зображення бюста Платона. Джерело: https://openai.com/blog/dall-e/

2: Генеративні суперницькі мережі (GAN)

Хоча трансформери отримали надзвичайну медійну увагу через випуск і прийняття GPT-3, Генеративна суперницька мережа (GAN) стала впізнаваним брендом сама по собі, і може врешті-решт приєднатися до deepfake як дієслово.

Перша пропозиція у 2014 році і в основному використовувалася для синтезу зображень, архітектура Генеративної суперницької мережі архітектури складається з Генератора і Дискримінатора. Генератор проходить через тисячі зображень у наборі даних, ітеративно намагаючись їх реконструювати. Для кожного спроби Дискримінатор оцінює роботу Генератора і повертає Генератор назад, щоб зробити краще, але без жодного розуміння того, як попередня реконструкція помилилася.

Джерело: https://developers.google.com/machine-learning/gan/gan_structure

Джерело: https://developers.google.com/machine-learning/gan/gan_structure

Це змушує Генератор досліджувати безліч шляхів, а не слідувати потенційним сліпим аллей, які б виникли, якщо б Дискримінатор сказав йому, де він помилився (див. #8 нижче). До кінця навчання Генератор має детальну і всебічну карту відносин між точками у наборі даних.

Виписка з супровідного відео дослідників (див. вкладення в кінці статті). Примітка: користувач маніпулює трансформаціями за допомогою курсору

З статті Поліпшення рівноваги GAN за рахунок підвищення просторової уваги: нова структура проходить через іноді загадкове латентне простір GAN, забезпечуючи реактивну інструментальність для архітектури синтезу зображень. Джерело: https://genforce.github.io/eqgan/

За аналогією, це різниця між навчанням однієї нудної поїздки до центрального Лондона або ретельним придбанням Знання.

Результатом є високорівневий набір функцій у латентному просторі навченої моделі. Семантичний індикатор для високорівневої функції міг би бути “людина”, тоді як спуск у специфіку щодо функції міг би виявити інші вивчені характеристики, такі як “чоловік” і “жінка”. На нижчих рівнях підфункції можуть розбиватися на “блондинку”, “каucasian”, тощо.

Переплетіння є помітною проблемою у латентному просторі GAN і рамок кодувача/декодувача: чи є усмішка на зображенні GAN-генерованої жінки переплетеною функцією її “ідентичності” у латентному просторі, або це паралельна гілка?

GAN-генеровані обличчя з thispersondoesnotexist. Джерело: https://this-person-does-not-exist.com/en

GAN-генеровані обличчя з thispersondoesnotexist. Джерело: https://this-person-does-not-exist.com/en

За останні пару років з’явилося все більше нових дослідницьких ініціатив у цьому відношенні, можливо, прокладаючи шлях для редакторських функцій рівня Photoshop для латентного простору GAN, але зараз багато трансформацій є фактично “усе або нічого” пакетами. Зокрема, випуск EditGAN від NVIDIA наприкінці 2021 року досягає високого рівня інтерпретації у латентному просторі за допомогою семантичних сегментаційних масок.

Популярне використання

Поряд з їхнім (фактично досить обмеженим) залученням до популярних відео deepfake, GAN, орієнтовані на зображення/відео, розрослися за останні чотири роки, заворожуючи дослідників і публіку. Залишатися в курсі дезорієнтуючої швидкості та частоти нових випусків – це виклик, хоча репозиторій GitHub Awesome GAN Applications намагається надати повний список.

Генеративні суперницькі мережі теоретично можуть виводити функції з будь-якого добре сформульованого домену, включаючи текст.

3: Машини опорних векторів

Починаючи з 1963 року, Машина опорних векторів (SVM) – це базовий алгоритм, який часто з’являється в нових дослідженнях. Під SVM вектори відображають відносну диспозицію точок даних у наборі даних, тоді як опорні вектори виносять межі між різними групами, функціями чи атрибутами.

Опорні вектори визначають межі між групами. Джерело: https://www.kdnuggets.com/2016/07/support-vector-machines-simple-explanation.html

Опорні вектори визначають межі між групами. Джерело: https://www.kdnuggets.com/2016/07/support-vector-machines-simple-explanation.html

Виведена межа називається гіперплощиною.

На низькому рівні функцій SVM є двовимірним (зображення вище), але коли є вище визнана кількість груп або типів, вона стає тривимірною.

Більш глибокий масив точок і груп вимагає тривимірної SVM. Джерело: https://cml.rhul.ac.uk/svm.html

Більш глибокий масив точок і груп вимагає тривимірної SVM. Джерело: https://cml.rhul.ac.uk/svm.html

Популярне використання

Оскільки машини опорних векторів можуть ефективно і агностично звертатися до високовимірних даних багатьох видів, вони з’являються широко по всім секторам машинного навчання, включаючи виявлення deepfake, класифікацію зображень, класифікацію ворожої мови, аналіз ДНК і передбачення структури населення, серед інших.

4: Кластеризація K-Меans

Кластеризація загалом є несупервізованним підходом до навчання, який намагається категоризувати точки даних шляхом оцінки щільності, створюючи карту розподілу даних, які вивчаються.

Кластеризація K-Меans визначає сегменти, групи та спільноти в даних. Джерело: https://aws.amazon.com/blogs/machine-learning/k-means-clustering-with-amazon-sagemaker/

Кластеризація K-Меans визначає сегменти, групи та спільноти в даних. Джерело: https://aws.amazon.com/blogs/machine-learning/k-means-clustering-with-amazon-sagemaker/

Кластеризація K-Меans стала найбільш популярною реалізацією цього підходу, керуючи точками даних у відмінні “K-групи”, які можуть вказувати на демографічні сектори, онлайн-спільноти або будь-яку іншу можливу секретну агрегацію, що чекають на відкриття в сирих статистичних даних.

Кластери утворюються в аналізі K-Меans. Джерело: https://www.geeksforgeeks.org/ml-determine-the-optimal-value-of-k-in-k-means-clustering/

Кластери утворюються в аналізі K-Меans. Джерело: https://www.geeksforgeeks.org/ml-determine-the-optimal-value-of-k-in-k-means-clustering/

Саме значення K є визначальним фактором у корисності процесу, і в установленні оптимального значення для кластера. Спочатку значення K присвоюється випадково, і його функції та векторні характеристики порівнюються з його сусідами. Ті сусіди, які найбільш нагадують дані точку з випадково присвоєним значенням, присвоюються до його кластера ітеративно, поки дані не видають усі групи, які процес дозволяє.

Графік для квадратичної помилки, або “вартості” різних значень серед кластерів, розкриє точку ліктя для даних:

Точка ліктя в графіку кластера. Джерело: https://www.scikit-yb.org/en/latest/api/cluster/elbow.html

Точка ліктя в графіку кластера. Джерело: https://www.scikit-yb.org/en/latest/api/cluster/elbow.html

Точка ліктя аналогічна концепції того, як втрати сплющуються до зменшення доходів у кінці навчальної сесії для набору даних. Вона представляє точку, в якій жодна подальша відмінність між групами не стане очевидною, вказуючи момент перейти до наступних фаз даних або повідомити про результати.

Популярне використання

Кластеризація K-Меans, через очевидні причини, є основною технологією в аналізі клієнтів, оскільки вона пропонує ясний і пояснюваний метод перекладу великих кількостей комерційних записів у демографічні знання та “ліди”.

Поза цією застосуванням кластеризація K-Меans також використовується для передбачення зсувів, сегментації медичних зображень, синтезу зображень з GAN, класифікації документів і міського планування, серед інших потенційних і фактичних застосувань.

5: Случайний ліс

Случайний ліс – це ансамблевий метод навчання, який平均нює результат з масиву дерев’яних рішень, щоб встановити загальне передбачення результату.

Джерело: https://www.tutorialandexample.com/wp-content/uploads/2019/10/Decision-Trees-Root-Node.png

Джерело: https://www.tutorialandexample.com/wp-content/uploads/2019/10/Decision-Trees-Root-Node.png

Якщо ви дослідили це навіть на рівні перегляду трилогії “Назад у майбутнє”, дерево рішень досить легко уявити: перед вами лежить ряд шляхів, і кожен шлях розгалужується до нового результату, який у свою чергу містить подальші можливі шляхи.

У посиленому навчанні ви можете відступити від шляху і знову почати з попередньої позиції, тоді як дерева рішень зобов’язані своїми шляхами.

Отже, алгоритм Случайного лісу по суті є розподілом рішень. Алгоритм називається “случайним”, оскільки він робить ад hoc вибір і спостереження, щоб зрозуміти медіану суму результатів з масиву дерев рішень.

Оскільки він враховує безліч факторів, підхід Случайного лісу може бути більш складним для перетворення у значущі графіки, ніж дерево рішень, але, ймовірно, буде значно продуктивнішим.

Дерева рішень підлягають переобученню, коли результати, отримані, є специфічними для даних і не ймовірно узагальнюються. Випадковий вибір даних Случайного лісу бореться з цією тенденцією, просуваючись до значущих і корисних тенденцій у даних.

Регресія дерева рішень. Джерело: https://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html

Регресія дерева рішень. Джерело: https://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html

Популярне використання

Як і багато алгоритмів у цьому списку, Случайний ліс зазвичай працює як “ранній” сортувальник і фільтр даних, і, як такий, постійно з’являється в нових дослідницьких статтях. Наприклад, використання Случайного лісу включає синтез магнітно-резонансних зображень, передбачення ціни на біткойни, сегментацію перепису населення США, класифікацію тексту і виявлення шахрайства з кредитними картками.

Оскільки Случайний ліс є низькорівневим алгоритмом у архітектурах машинного навчання, він також може сприяти продуктивності інших низькорівневих методів, а також алгоритмів візуалізації, включаючи індуктивне кластеризування, трансформацію функцій, класифікацію текстових документів за допомогою розріджених функцій і відображення конвеєрів.

6: Наївний Баєс

У поєднанні з оцінкою щільності (див. 4 вище), класифікатор наївного Баєса – це потужний, але відносно легкий алгоритм, здатний оцінювати ймовірності на основі розрахованих функцій даних.

Відносини функцій у класифікаторі наївного Баєса. Джерело: https://www.sciencedirect.com/topics/computer-science/naive-bayes-model

Відносини функцій у класифікаторі наївного Баєса. Джерело: https://www.sciencedirect.com/topics/computer-science/naive-bayes-model

Термін “наївний” відноситься до припущення в теоремі Баєса, що функції не пов’язані, відоме як умовна незалежність. Якщо ви приймете цю позицію, ходіння і говоріння як качка недостатньо, щоб встановити, що ми маємо справу з качкою, і жодних “очевидних” припущень не приймаються заздалегідь.

Цей рівень академічної та дослідницької суворості був би надмірним, якщо б був доступний “здоровий глузд”, але це цінний стандарт, коли ви рухаєтеся через численні двозначності та потенційно не пов’язані кореляції, які можуть існувати в наборі даних машинного навчання.

У оригінальній баєсівській мережі функції підлягають функціям оцінювання, включаючи мінімальну довжину опису і баєсівське оцінювання, які можуть накладати обмеження на дані щодо оцінених зв’язків, знайдених між точками даних, і напрямку, в якому ці зв’язки течуть.

Класифікатор наївного Баєса, навпаки, працює, припускаючи, що функції даного об’єкта незалежні, а потім використовує теорему Баєса для розрахунку ймовірності даного об’єкта на основі його функцій.

Популярне використання

Фільтри наївного Баєса добре представлені в передбаченні захворювань і категоризації документів, фільтрації спаму, класифікації настрою, системах рекомендацій і виявленні шахрайства, серед інших застосувань.

7: K-Ближчі Сусіди (KNN)

Перша пропозиція у 1951 році і маючи пристосуватися до стану техніки середини 20-го століття, K-Ближчі Сусіди (KNN) – це лаконічний алгоритм, який досі займає видне місце в академічних статтях і приватних дослідницьких ініціативах машинного навчання.

KNN називають “ленівим учнем”, оскільки він вичерпно сканує набір даних, щоб оцінити відносини між точками даних, а не вимагає навчання повноцінної моделі машинного навчання.

Група KNN. Джерело: https://scikit-learn.org/stable/modules/neighbors.html

Група KNN. Джерело: https://scikit-learn.org/stable/modules/neighbors.html

Хоча KNN архітектурно стрункий, його систематичний підхід ставить помітне навантаження на операції читання/запису, і його використання у дуже великих наборах даних може бути проблематичним без допоміжних технологій, таких як головний компонентний аналіз (PCA), який може перетворити складні і великовимірні набори даних у представницькі групи, які KNN може пройти з меншими зусиллями.

Недавнє дослідження оцінило ефективність і економію кількох алгоритмів, призначених для передбачення, чи покине працівник компанію, і виявило, що KNN, якому понад 70 років, залишався кращим за сучасніші конкуренти за точністю і передбачуваною ефективністю.

Популярне використання

Для всіх своїх популярних простот і виконання KNN не застряг у 1950-х роках – його адаптували до більш орієнтованого на ГМ підходу в пропозиції 2018 року університету штату Пенсільванія, і залишається центральним раннім процесом (або інструментом постоброботки) у багатьох складних рамках машинного навчання.

У різних конфігураціях KNN використовувався або для верифікації онлайн-підпису, класифікації зображень, видобутку тексту, передбачення врожаю і розпізнавання обличчя, серед інших застосувань і включень.

Система розпізнавання обличчя на основі KNN у процесі навчання. Джерело: https://pdfs.semanticscholar.org/6f3d/d4c5ffeb3ce74bf57342861686944490f513.pdf

Система розпізнавання обличчя на основі KNN у процесі навчання. Джерело: https://pdfs.semanticscholar.org/6f3d/d4c5ffeb3ce74bf57342861686944490f513.pdf

8: Процес прийняття рішень Маркова

Математична структура, введена американським математиком Річардом Беллманом у 1957 році, Процес прийняття рішень Маркова (MDP) – це одна з найбільш базових блоків архітектур підкріпленого навчання. Концептуальний алгоритм сам по собі, він був адаптований у велику кількість інших алгоритмів і часто повторюється в поточному поколінні досліджень штучного інтелекту/машинного навчання.

MDP досліджує середовище даних, використовуючи свою оцінку свого поточного стану (тобто “де” воно знаходиться у даних), щоб вирішити, яку вузол даних дослідити далі.

Джерело: https://www.sciencedirect.com/science/article/abs/pii/S0888613X18304420

Джерело: https://www.sciencedirect.com/science/article/abs/pii/S0888613X18304420

Базовий Процес прийняття рішень Маркова пріоритезує близьку вигоду над більш бажаними довгостроковими цілями. Через це його зазвичай вкладають у контекст більш загальної архітектури політики підкріпленого навчання, і часто піддають обмежуючим факторам, таким як дисконтована винагорода, і інші модифікуючі екологічні змінні, які запобігають йому поспішному переходу до негайної мети без урахування ширшого бажаного результату.

Популярне використання

Низькорівнева концепція MDP поширена як у дослідженнях, так і в активних розгортаннях машинного навчання. Його було запропоновано для систем оборони IoT, риболовства і передбачення ринку.

Окрім його очевидної застосовності до шахів і інших суворо послідовних ігор, MDP є природним претендентом на процедурне навчання систем робототехніки, як ми бачимо у відео нижче.

 

9: Терм-Частота-Інверсна Частота Документу

Терм-Частота (TF) ділить кількість разів, коли слово з’являється у документі, на загальну кількість слів у тому документі. Таким чином, слово тюлень, яке з’являється один раз у статті з тисячою слів, має терм-частоту 0,001. Сам по собі TF майже безкорисний як індикатор важливості терміну, через те, що безсенсові статті (такі як а, і, те і це) домінують.

Щоб отримати значуще значення терміну, Інверсна Частота Документу (IDF) розраховуємо TF слова через кілька документів у наборі даних, присвоюючи низький рейтинг дуже частим стоп-словам, таких як статті. Результатні вектори функцій нормалізовані до цілих значень, причому кожне слово присвоюється відповідний ваговий коефіцієнт.

TF-IDF вагомить актуальність термінів на основі частоти через кілька документів, з рідкою появою як індикатором значимості. Джерело: https://moz.com/blog/inverse-document-frequency-and-the-importance-of-uniqueness

TF-IDF вагомить актуальність термінів на основі частоти через кілька документів, з рідкою появою як індикатором значимості. Джерело: https://moz.com/blog/inverse-document-frequency-and-the-importance-of-uniqueness

Хоча цей підхід запобігає втраті семантично важливих слів як відхилень, інверсія частоти не означає, що низькочастотний термін не є відхилом, оскільки деякі речі рідкі і безцінні. Тому низькочастотний термін повинен довести свою цінність у ширшому архітектурному контексті, з’явившись (навіть на низькій частоті за документ) у кількох документах у наборі даних.

Незважаючи на свій вік, TF-IDF залишається потужним і популярним методом для початкових фільтраційних проходів у рамках NLP.

Популярне використання

Оскільки TF-IDF зіграв принаймні деяку роль у розвитку алгоритму PageRank від Google за останні двадцять років, він став дуже широко прийнятий як маніпулятивна тактика SEO, незважаючи на відмову Джона Мюллера від його важливості для результатів пошуку у 2019 році.

Через секретність навколо PageRank немає явних доказів того, що TF-IDF не зараз є ефективною тактикою для підвищення у рейтингу Google. Палке обговорення серед ІТ-фахівців останнім часом свідчить про популярне розуміння, правильне чи ні, що зловживання термінами все ще може привести до покращення позиціонування SEO (хоча додаткові обвинувачення в зловживанні монополією і надмірна реклама розмивають межі цієї теорії).

10: Стохастичний Градієнтний Спуск

Стохастичний Градієнтний Спуск (SGD) – це все більш популярний метод оптимізації навчання моделей машинного навчання.

Сам Градієнтний Спуск – це метод оптимізації та подальшої кількісної оцінки покращення, яке модель робить під час навчання.

У цьому сенсі “градієнт” вказує на схил вниз (а не кольорову градацію, див. зображення нижче), де найвища точка “гори”, зліва, представляє початок процесу навчання. На цій стадії модель ще не бачила всієї сукупності даних навіть один раз, і не навчилося достатньо про відносини між даними, щоб виробити ефективні трансформації.

Градієнтний спуск на сесії навчання FaceSwap. Ми бачимо, що навчання плато за певний час у другій половині, але врешті-решт відновлює свій шлях вниз по градієнту до прийнятної збіжності.

Градієнтний спуск на сесії навчання FaceSwap. Ми бачимо, що навчання плато за певний час у другій половині, але врешті-решт відновлює свій шлях вниз по градієнту до прийнятної збіжності.

Найнижча точка, справа, представляє збіжність (точку, в якій модель є такою ефективною, як вона коли-небудь буде під накладеними обмеженнями і налаштуваннями).

Градієнт діє як запис і передбачувач прогресу, а також розриву між швидкістю помилки (як точно модель зараз відображає відносини між даними) і вагами (налаштування, які впливають на те, як модель буде навчатися).

Цей запис прогресу можна використовувати для інформування графіка швидкості навчання, автоматичного процесу, який повідомляє архітектуру про те, щоб стати більш деталізованим і точним, коли ранні розпливчаті деталі перетворюються на ясні відносини та відображення. По суті, градієнтна втрата надає карту того, куди повинно йти навчання, і як воно повинно продовжуватися.

Інновацією Стохастичного Градієнтного Спуску є те, що він оновлює параметри моделі на кожному навчальному прикладі за ітерацію, що загалом прискорює шлях до збіжності. Через появу гіпермасштабних наборів даних за останні роки SGD став популярним останнім часом як один із можливих методів для вирішення логістичних проблем.

З іншого боку, SGD має негативні наслідки для масштабування функцій, і може потребувати більшої кількості ітерацій, щоб досягти одного й того ж результату, що вимагає додаткового планування і додаткових параметрів, у порівнянні з регулярним Градієнтним Спуском.

Популярне використання

Через свою конфігурованість і незважаючи на свої недоліки SGD став найпопулярнішим алгоритмом оптимізації для підгонки нейронних мереж. Одна конфігурація SGD, яка стає домінантною в нових дослідженнях штучного інтелекту/машинного навчання, – це вибір оптимізатора Адаптивного оцінювання моменту (ADAM), введеного у 2015 році.

ADAM адаптує швидкість навчання для кожного параметра динамічно (“адаптивна швидкість навчання”), а також включає результати попередніх оновлень у наступну конфігурацію (“імпульс”). Крім того, його можна конфігурувати для використання пізніших інновацій, таких як імпульс Нестерова.

Однак деякі стверджують, що використання імпульсу також може прискорити ADAM (і подібні алгоритми) до субоптимального висновку. Як і більшість передових досліджень штучного інтелекту/машинного навчання, SGD – це робота в процесі.

 

Перша публікація 10 лютого 2022 року. Виправлено 10 лютого 20:05 EET – форматування.

Письменник про машинне навчання, спеціаліст у галузі синтезу людських зображень. Колишній керівник дослідницького контенту в Metaphysic.ai, до його розформування в DNEG's Brahma.ai.
Портфоліо сайт: martinanderson.ai
Контакт: martin@martinanderson.ai