Увага (машинне навчання)
У контексті нейронних мереж, ува́га (англ. attention) — це методика, що імітує когнітивну увагу. Це явище підсилює важливі частини даних входу, та пригнічує решту — вважається, що мережа повинна приділяти більше обчислювальної потужності цій маленькій, але важливій частині даних. Яка частина даних є важливішою за інші, залежить від контексту, й цього навчаються з тренувальних даних за допомогою градієнтного спуску.
Увагу використовують у різноманітних моделях машинного навчання, включно з обробкою природної мови та комп'ютерним баченням.[1][2]
Трансформерні мережі широко використовують механізми уваги для досягання своєї виразної потужності.[1] Отримувати вигоду від механізмів уваги можуть і системи комп'ютерного бачення на основі згорткових нейронних мереж.[джерело?] Модель Персівер використовує асиметричну увагу для застосування трансформерів безпосередньо до аудіовізуальних та просторових даних без застосування згорток, за обчислювальних витрат, що є субквадратичними відносно розмірності даних.[3][4]
Двома найпоширенішими методиками уваги є скалярнодо́буткова ува́га (англ. dot-product attention), що для визначання уваги використовує скалярний добуток векторів, і багатоголо́ва ува́га (англ. multi-head attention), яка для спрямування загальної уваги мережі або підмережі поєднує декілька різних механізмів уваги.
Приклад мовного перекладу
Щоби створити машину, яка перекладає з англійської українською (див. схему нижче), починають із кодувальника-декодувальника, та прищеплюють до нього вузол уваги (англ. attention unit). Вузол уваги — це повноз'єднана нейронна мережа, яка подає до декодувальника зважену комбінацію виходів кодувальника.
|
|
У цій таблиці наведено розрахунки на кожному часовому кроці. Для наочності в ній використано конкретні числові значення, та фігури замість літер. Вкладені фігури ілюструють узагальнювальну природу 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», тому вона пропонує «люблю».
Див. також
- Трансформер (модель машинного навчання) § Масштабована скалярнодобуткова увага
- Персівер § Складові стосовно уваги «запит-ключ-значення» (ЗКЗ, англ. query-key-value, QKV)
Примітки
- 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]. (англ.)
- 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]. (англ.)
- 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]. (англ.)
- 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. (англ.)
Посилання
- Алекс Ґрейвс (4 травня 2020 р.), Attention and Memory in Deep Learning (відеолекція), DeepMind / UCL, на YouTube (англ.)
- Rasa Algorithm Whiteboard — Attention на YouTube (англ.)