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

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

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

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

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

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

Кодувальник-декодувальник з механізмом уваги. В цій схемі використано конкретні значення, щоби полегшити і без того перенасичений вінегрет абетки позначень. Ліва частина (чорна) є кодувальником-декодувальником, середня частина (помаранчева) є вузлом уваги, а права частина (сіра й кольорова) є обчислюваними даними. Сірі області в матриці H та векторі w є нульовими значеннями. Нижні індекси є прикладами розмірів векторів, крім i-1, що позначує часовий крок.
Кодувальник-декодувальник з механізмом уваги. В цій схемі використано конкретні значення, щоби полегшити і без того перенасичений вінегрет абетки позначень. Ліва частина (чорна) є кодувальником-декодувальником, середня частина (помаранчева) є вузлом уваги, а права частина (сіра й кольорова) є обчислюваними даними. Сірі області в матриці H та векторі w є нульовими значеннями. Нижні індекси є прикладами розмірів векторів, крім i-1, що позначує часовий крок.
Умовні позначення
мітка опис
100 максимальна довжина речення
300 розмір вкладення (розмірність слова)
500 довжина прихованого вектора
10k розмір словника в 10 000 слів
x, y Десятитисячевимірний словниковий вектор унітарного кодування. x → x втілено як таблицю пошуку, а не векторне множення.
x, y 300-елементний вектор вкладення слів. Ці вектори зазвичай є заздалегідь обчисленими з інших проєктів, таких як GloVe чи Word2Vec.
h 500-елементний прихований вектор кодувальника. На кожному часовому кроці цей вектор узагальнює всі слова, що передували йому. Остаточний h можливо розглядати як вектор «речення» або вектор думки[en], як його називає Джефрі Гінтон.
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

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

Див. також

Примітки

  1. а б Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (5 грудня 2017). Attention Is All You Need. arXiv:1706.03762 [cs.CL]. (англ.)
  2. Ramachandran, Prajit; Parmar, Niki; Vaswani, Ashish; Bello, Irwan; Levskaya, Anselm; Shlens, Jonathon (13 червня 2019). 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 (22 червня 2021). 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. (англ.)

Посилання