Увага (машинне навчання)

У контексті нейронних мереж, ува́га (англ. attention) — це методика, що імітує когнітивну увагу. Це явище підсилює важливі частини даних входу, та пригнічує решту — вважається, що мережа повинна приділяти більше обчислювальної потужності цій маленькій, але важливій частині даних. Яка частина даних є важливішою за інші, залежить від контексту, й цього навчаються з тренувальних даних за допомогою градієнтного спуску.

Увагу використовують у різноманітних моделях машинного навчання, включно з обробкою природної мови та комп'ютерним баченням.[1][2]

Трансформерні мережі широко використовують механізми уваги для досягання своєї виразної потужності.[1] Отримувати вигоду від механізмів уваги можуть і системи комп'ютерного бачення на основі згорткових нейронних мереж.[джерело?] Модель Персівер використовує асиметричну увагу для застосування трансформерів безпосередньо до аудіовізуальних та просторових даних без застосування згорток, за обчислювальних витрат, що є субквадратичними відносно розмірності даних.[3][4]

Двома найпоширенішими методиками уваги є скалярнодо́буткова ува́га (англ. dot-product attention), що для визначання уваги використовує скалярний добуток векторів, і багатоголо́ва ува́га (англ. multi-head attention), яка для спрямування загальної уваги мережі або підмережі поєднує декілька різних механізмів уваги.

Приклад мовного перекладу

Щоби створити машину, яка перекладає з англійської українською (див. схему нижче), починають із кодувальника-декодувальника, та прищеплюють до нього вузол уваги (англ. attention unit). Вузол уваги — це повноз'єднана нейронна мережа, яка подає до декодувальника зважену комбінацію виходів кодувальника.

Кодувальник-декодувальник з механізмом уваги. В цій схемі використано конкретні значення, щоби полегшити і без того перенасичений вінегрет абетки позначень. Ліва частина (чорна) є кодувальником-декодувальником, середня частина (помаранчева) є вузлом уваги, а права частина (сіра й кольорова) є обчислюваними даними. Сірі області в матриці H та векторі w є нульовими значеннями. Нижні індекси є прикладами розмірів векторів, крім i-1, що позначує часовий крок.
Умовні позначення
мітка опис
100 максимальна довжина речення
300 розмір вкладення (розмірність слова)
500 довжина прихованого вектора
10k розмір словника в 10 000 слів
x, y Десятитисячевимірний словниковий вектор унітарного кодування. x → x втілено як таблицю пошуку, а не векторне множення.
x, y 300-елементний вектор вкладення слів. Ці вектори зазвичай є заздалегідь обчисленими з інших проєктів, таких як GloVe чи Word2Vec.
h 500-елементний прихований вектор кодувальника. На кожному часовому кроці цей вектор узагальнює всі слова, що передували йому. Остаточний h можливо розглядати як вектор «речення» або вектор думки, як його називає Джефрі Гінтон.
s 500-елементний декодувальників прихований нейронний РНМ-кодувальник.[прояснити]
E 500-нейронний РНМ-кодувальник. 300 + 300 входів, 500 виходів.
D Двошаровий декодувальник. 1 шар із 500 нейронами, інший — із 300.
score 100-елементна оцінка відповідності положення (англ. alignment score)
w 100-елементний вектор ваг уваги. Це — «м'які» ваги, що змінюються під час прямого проходження, на противагу до «жорстких» нейронних ваг, що змінюються під час фази навчання.
А Модуль уваги — повноз'єднана мережа, виходом якої є 100-елементна оцінка.
H 500×100. 100 прихованих векторів h, об'єднаних у матрицю
c 500-елементний вектор контексту = H * w. c — лінійна комбінація векторів h, зважених w.

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

крок x h, H = вихід кодувальника
це вектори 500×1, подані як фігури
yi-1 = вхід від декодувальника до уваги оцінка відповідності положення w = вага уваги
= softmax (оцінка)
c = вектор контексту = H*w y = вихід декодувальника
1 I = векторне кодування «I» - - - - -
2 love = векторне кодування «I love» - - - - -
3 you = векторне кодування «I love you» - - - - -
4 - - y1 ще не існує, тож натомість ми використовуємо це

[0,63 -3,2 -2,5 0,5 0,5 … ] [0,94 0,02 0,04 0 0 … ] 0,94 * + 0,02 * + 0,04 * Я
5 - - y1 [-1,5 -3,9 0,57 0,5 0,5 … ] [0,11 0,01 0,88 0 0 … ] 0,11 * + 0,01 * + 0,88 * тебе
6 - - y2 [-2,8 0,64 -3,2 0,5 0,5 … ] [0,03 0,95 0,02 0 0 … ] 0,03 * + 0,95 * + 0,02 * люблю

Розглянуті у вигляді матриці, ваги уваги показують, як мережа підлаштовує своє зосередження відповідно до контексту.

I love you
Я .94 .02 .04
тебе .11 .01 .88
люблю .03 .95 .02

Такий погляд на ваги уваги слугує розв'язанню проблеми «пояснюваності», за яку критикують нейромережі. Мережі, що виконують дослівний переклад незалежно від порядку слів, якби їх можливо було аналізувати в цих термінах, мали би матрицю, в якій домінувала би діагональ. Домінування поза діагоналлю показує, що механізм уваги є точнішим. Під час першого проходження через декодувальник 94 % ваги уваги припадає на перше англійське слово «I», тому мережа пропонує слово «Я». На другому проході декодувальника 88 % ваги уваги припадає на третє англійське слово «you», тому вона пропонує «тебе». На останньому проході 95 % ваги уваги припадає на друге англійське слово «love», тому вона пропонує «люблю».

Див. також

Примітки

  1. Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (2017-12-05). «Attention Is All You Need». arXiv:1706.03762 [cs.CL]. (англ.)
  2. Ramachandran, Prajit; Parmar, Niki; Vaswani, Ashish; Bello, Irwan; Levskaya, Anselm; Shlens, Jonathon (2019-06-13). «Stand-Alone Self-Attention in Vision Models». arXiv:1906.05909 [cs.CV]. (англ.)
  3. Jaegle, Andrew; Gimeno, Felix; Brock, Andrew; Zisserman, Andrew; Vinyals, Oriol; Carreira, Joao (2021-06-22). «Perceiver: General Perception with Iterative Attention». arXiv:2103.03206 [cs.CV]. (англ.)
  4. Ray, Tiernan. Google's Supermodel: DeepMind Perceiver is a step on the road to an AI machine that could process anything and everything. ZDNet (англ.). Процитовано 19 серпня 2021. (англ.)

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.