Векторне розкладання та підпростори: що читає та стирає матриця
Одним із найкорисніших способів перегляду вектора є комбінація складових векторів. Ця перспектива допомагає нам зрозуміти перетворення матриці. Замість того, щоб запитувати лише те, що матриця робить із усім вхідним вектором, ми можемо запитати, що вона робить із кожним компонентом. Оскільки перетворення є лінійним, перетворені компоненти дають такий самий результат, як і перетворення всього вектора. Деякі компоненти можуть сильно впливати на результат, деякі можуть бути ослаблені або перенаправлені, а деякі можуть бути повністю проігноровані.
Для нейронних мереж ця перспектива особливо корисна, оскільки вектори активації часто містять багато видів інформації одночасно. Конкретна вагова матриця не обов’язково використовує всю цю інформацію. Тому розуміння трансформації частково стає питанням визначення того, які напрямки в просторі активації мають значення для матриці, а які ні.
Одним із точних способів зробити це розрізнення є простір рядків і нульовий простір матриці. Вони розділяють вхідний простір на напрямки, які можуть впливати на вихід, і напрямки, які матриця повністю стирає. Це пояснює, як два різні вектори активації можуть дати абсолютно однаковий результат під однаковою ваговою матрицею.
У попередній статті ми досліджували, як вагові матриці перетворюють вектори та чому нейронним мережам потрібні нелінійні активації. У цій статті ми розробляємо лінійну алгебру, необхідну для більш детального вивчення цих перетворень.
Спочатку ми розглянемо, як вектори можна побудувати з інших векторів, чому той самий вектор можна розкласти в різних напрямках і як лінійні комбінації та скалярні добутки допомагають нам міркувати про перетворення. Потім ми вивчимо чотири фундаментальні підпростори матриці — її простір рядків, нульовий простір, простір стовпців і лівий нульовий простір — і використаємо їх, щоб зрозуміти, які вхідні компоненти визначають вихід, а які матриця стирає. Супутній експеримент застосовує цю основу на практиці, будуючи та перевіряючи проекцію.
Це забезпечує основу для майбутніх статей, зокрема наш експеримент MNIST: що читає навчений класифікатор. Там прихований шар створює вектор із 128 значень активації для кожного рукописного зображення цифри. Ми визначаємо 118 незалежних напрямків, які навчений вихідний рівень ігнорує, видаляємо відповідний компонент вектора активації та зберігаємо цифри класифікатора аж до числового округлення.
Побудова вектора з компонентів
Матриця визначає лінійне перетворення від вхідного простору до вихідного простору. Його форма визначає кількість координат у цих просторах; його записи визначають, куди йде кожен вхід. У нейронній мережі вхідний простір — це простір, у якому знаходяться вектори активації з попереднього рівня. Вихідний простір - це місце, де живуть лінійно перетворені вектори, до застосування будь-якої нелінійної активації.
Щоб зрозуміти вплив матриці на вектор, нам потрібно поглянути на компоненти вектора, на які її можна розкласти. Кожен компонент сам по собі є вектором у вхідному просторі, а вихідний вектор є їх сумою. За лінійністю матриця перетворює кожен компонент окремо, а результуючі вектори дають такий самий результат, як і пряме перетворення вихідного вектора. Деякі компоненти можуть бути розтягнуті, скорочені або спрямовані в іншому напрямку, тоді як інші можуть відобразитися на нуль і повністю зникнути.
Вектор має багато можливих розкладів за допомогою координатних осей або напрямків, які перетинають кілька осей. У механістичній інтерпретації та аналізі репрезентації такі методи, як PCA/SVD, лінійні зонди та розріджені автокодери, допомагають визначити корисні напрямки даних, розкриваючи структуру, розподілену між кількома записами вектора активації.
Давайте тепер розглянемо, як побудувати вектор із компонентів. Кожна опція у наведеному нижче віджеті створює той самий синій вектор за допомогою лінійної комбінації різних векторів-компонентів: кожна кольорова стрілка є вибраним вектором, масштабованим за коефіцієнтом, і ці вектори-компоненти в сумі дають . Перший варіант використовує три базисних вектора координат , і . Кожен вказує вздовж відповідної осі координат і масштабується відповідною координатою .
(5, 3, 2) = 5(1, 0, 0) + 3(0, 1, 0) + 2(0, 0, 1)
Давайте детальніше розглянемо параметр віджета, щоб розрізнити базисний вектор, його коефіцієнт і результуючу компоненту вектора. Базисний вектор є одиничним вектором, що представляє напрямок: він має довжину одиницю. Скаляр вказує нам, наскільки його масштабувати, а є фактичним векторним компонентом. Три компоненти вектора додають до наших вхідних даних:
Такі координати, як , часто називають скалярними компонентами. У цій статті векторний компонент означає весь масштабований вектор, наприклад .
На рівні нейронної мережі кожен нейрон створює одну з цих скалярних координат. Таким чином, коефіцієнти віджета , і можуть бути виходами трьох нейронів для одного входу. Кожна активація масштабує відповідний базисний вектор координат, даючи компонентний вектор уздовж цієї осі. Разом ці компонентні вектори утворюють вектор активації рівня , як показано нижче:
Наприклад, нейрон 2 видає скаляр . Ми представляємо його внесок у вектор шару як . Множення на і додавання компонентних векторів є нашим математичним описом складання координат; не потребує додаткового шару. Той самий є виходом цього шару та входом наступного шару.
Вагова матриця наступного шару перетворює ці вектори-компоненти, а результати підсумовуються до нового вектора: . Це лінійна частина обчислення наступного рівня перед додаванням будь-якого зміщення та застосуванням його функції активації.
Виходи нейронів забезпечують один із способів розкладання вектора активації шару. Значна частина аналізу репрезентації та механістичної інтерпретації шукає більш інформативну декомпозицію — напрямки або підпростори, які допомагають пояснити, що представляє мережа та як вона використовує цю інформацію. Математично можлива нескінченна кількість розкладів, тому нам потрібні критерії та експерименти, щоб визначити корисні.
Відокремлення напрямку від величини
Відокремлення напрямку від величини допомагає нам міркувати про підпростори та перетворення. Такі вектори, як і , охоплюють одну лінію, незважаючи на різну довжину. Представлення їхнього напрямку за допомогою одиничного вектора дає змогу скалярним добуткам безпосередньо вимірювати довжини проекцій зі знаком і дає змогу досліджувати, як матриця перетворює цей напрямок окремо від того, скільки його присутнього у вхідних даних.
Щоб зробити це поділ явним, ми записуємо компонент вектора як : є одиничним вектором, що представляє вибраний напрямок, а є скаляром зі знаком, який визначає, яку частину його потрібно включити. У нашому прикладі і . Оскільки довжина ніколи не буває від’ємною, ми використовуємо абсолютне значення для вираження довжини компонента. Знак мінус у означає, що компонент вказує в протилежному напрямку до .
Як ми виражаємо компонент як скаляр, помножений на одиничний вектор, коли ми знаємо лише його координати? Для будь-якого ненульового вектора обчисліть його довжину і поділіть кожну координату на цю довжину. Це нормалізація:
Вибір для вказівки в тому ж напрямку, що й , робить позитивним. Якщо натомість ми спочатку фіксуємо одиничний напрямок, компонент, що вказує протилежний йому, матиме від’ємний коефіцієнт.
Ми можемо продемонструвати нормалізацію за допомогою вектора, який уже є у віджеті. Одним із векторів у наборі є , який вказує на всі три осі координат. Спочатку його коефіцієнт дорівнює , тому зелений компонент дорівнює . Ці вектори мають різну довжину, але однаковий напрямок.
Щоб представити їх спільний напрямок за допомогою одиничного вектора, ми можемо використати нормалізацію L2. Нормалізація масштабує вектор до загальної довжини , зберігаючи його напрямок. Спочатку ми обчислюємо довжину , зводячи його координати в квадрат, додаючи їх і витягуючи квадратний корінь. Потім ми ділимо кожну координату на цю довжину. Масштабування всіх координат на однакову додатну величину зберігає напрямок:
Результуючий вектор має довжину . Таким чином ми можемо нормалізувати будь-який ненульовий вектор; нульовий вектор не має напрямку і не може бути розділений на свою довжину.
Множення на вихідну довжину відновлює базисний вектор: . Тому зелений компонент віджета можна записати так:
Коефіцієнт , коли ми масштабуємо , але , коли ми масштабуємо одиничний вектор . Сам компонент залишається незмінним. Переміщення першого повзунка масштабує цей компонент у тому ж напрямку; від’ємне значення змінює його.
Від складових векторів до підпросторів
Поки що ми вибрали коефіцієнти для побудови одного вектора. Зберігаючи вектори, які ми комбінуємо, фіксованими, ми можемо змінювати ці коефіцієнти для всіх дійсних чисел, щоб побудувати цілий набір векторів. Ця множина є їхньою оболонкою, і вона утворює підпростір.
У наведеному нижче віджеті фіксовані вектори і охоплюють площину. Зелена та рожева стрілки показують їх масштабовані компоненти, а синій вектор — їх суму. Коли ви змінюєте коефіцієнти, синій вектор переміщується в межах площини, показуючи різні члени одного підпростору. Він не додає незалежного напрямку, оскільки повністю побудований із двох фіксованих векторів.
Спробуйте змінити два коефіцієнти, позначені і , у віджеті вище. Синій вектор рухається в межах заштрихованої площини. Вектори поза цією площиною не можуть бути досягнуті шляхом поєднання наших двох фіксованих векторів, незалежно від того, які коефіцієнти ми виберемо. Виберіть , щоб побачити один із таких прикладів: помаранчевий маркер .
Заштрихована ділянка показує частину розмаху наших двох фіксованих векторів: нескінченну площину, що містить усі їхні можливі лінійні комбінації. Цілочисельні повзунки віджета показують лише деякі з цих комбінацій; дозволяючи і приймати будь-які дійсні значення, досягає кожного вектора на площині. Кожен результат має вигляд:
Загалом, для фіксованих векторів і ми пишемо:
Цей весь діапазон є підпростором , навколишнього тривимірного векторного простору. Одне розкладання вибирає певні коефіцієнти та створює один вектор; підпростір містить кожен вектор, який можуть побудувати наші фіксовані охоплюючі вектори. Він містить нульовий вектор, і масштабування або додавання векторів у ньому завжди дає інший вектор у тому самому наборі. У нашому прикладі вся площина є підпростором, а кожен синій вектор є одним із його членів.
Наші два незалежні вектори перетинають площину через початок координат. Вектор лежить у цій площині, тому що ми можемо побудувати його за допомогою . Але недосяжний: доведення перших двох координат до нуля змушує , що також робить третю нульовою. Щоб досягти кожного вектора в 3D, нам знадобиться третій вектор поза площиною. Кожен із попередніх віджетів і надає три незалежні вектори, тому їхні діапазони заповнюють увесь .
Один і той самий вектор може належати до різних підпросторів. Наприклад, можна побудувати як , компоненти якого охоплюють площину , або як , компоненти якого охоплюють площину . Нескінченно багато площин, що проходять через початок координат, містять цей самий вектор.
Отже, вектор не визначає унікальний більший підпростір. Проте, як тільки ми фіксуємо остовні вектори, їх проміжок визначається однозначно. У наведеному вище віджеті обидві площини містять вісь . Синій вектор і його кінцева точка лежать в обох площинах. Кожна заштрихована ділянка є частиною нескінченної площини.
Підпростори дають нам можливість вивчати структуру в представленнях нейронної мережі. Підпростір можна пов’язати з ознакою або групою пов’язаних ознак: його охоплюючі вектори забезпечують напрямки, уздовж яких представлення може змінюватися, а зміна їхніх коефіцієнтів створює компоненти, які можуть кодувати різні значення ознак. Проте вектори, які охоплюють підпростір, не обов’язково представляють окремі характеристики, такі як колір або форма. Нам потрібні експерименти, щоб з’ясувати, яку інформацію вони представляють, якщо така є.
Дослідники експериментально перевірили такі інтерпретації. Дослідження Отелло визначило напрямки, що кодують стан дошки, і змінило поведінку моделі, змінивши активації вздовж них. Інше дослідження виявило дні та місяці, розташовані приблизно колами в двовимірних підпросторах активації; втручання змінили прогнози щодо арифметичних завдань на день і місяць. Площина є підпростором, а положення навколо кола представляють значення ознак. Ці експерименти надають докази того, що моделі використовують визначені представлення, не маючи на увазі, що кожна точка в підпросторі має значущу інтерпретацію.
У наведених вище прикладах ми бачили, як два вектори охоплюють площину і як вектор поза цією площиною залишається недосяжним, незалежно від вибраних нами коефіцієнтів. Тепер цікаве питання полягає в тому, що визначає геометрію цього проміжку: чому площина, а не лінія чи весь тривимірний простір, і що визначає, яку площину ми отримаємо? Щоб відповісти на це питання, нам потрібно відрізнити кількість координат від кількості незалежних напрямків.
Три координати не потребують трьох незалежних напрямків
Якщо ми побудуємо вектор у шляхом додавання компонентних векторів, кожен компонент також матиме три координати. Наявність трьох координат говорить нам, що вектори живуть у тривимірному просторі; це не говорить нам про розмір підпростору, який вони охоплюють. Розмірність діапазону залежить від того, скільки з вибраних векторів є лінійно незалежними.
Розглянемо два незалежні вектори і . Їх комбінації мають вигляд . Оскільки третя координата завжди дорівнює нулю, ці вектори заповнюють площину . Вони можуть будувати , але не . Тепер замініть другий вектор на :
Проліт все ще є площиною, тепер нахиленою так, що . Наприклад, лежить у ньому. Двовимірний підпростір у тривимірному просторі не потребує, щоб одна координата дорівнювала нулю. Вектор може мати три ненульові координати та все ще лежати в цій площині: третя координата прив’язана до другої, залишаючи лише два незалежних вибору.
Порівняйте плоску та похилу площини нижче. Зміна коефіцієнтів переміщує сині вектори в їхніх площинах; жодна конструкція не може досягти позначеної червоною цілі.
Додавання третього вектора поза цією площиною, наприклад , дозволяє нам побудувати будь-який вектор у шляхом вибору відповідних коефіцієнтів:
Тепер ми можемо побудувати будь-який цільовий вектор . Наша комбінація створює , тому ми вибираємо і , щоб відповідати першим двом координатам, а потім , щоб відповідати третій. Наприклад, щоб створити , виберіть , і . Третій вектор, який уже є в площині, не додасть незалежного напрямку.
Наступний віджет показує це розширення, починаючи з плоскої площини: додавання дає правосторонній конструкції третій незалежний напрямок. З трьома вільно вибраними коефіцієнтами ця конструкція може досягти будь-якого вектора в . Початкові значення , і досягають цільового . Перемістіть , щоб змінити його третю координату, не змінюючи перших двох.
З точки зору аналізу представлень, спільний підпростір, у цьому випадку площина, може розповісти нам щось про колекцію представлень. Щоб підключити цю геометрію до нейронної мережі, подумайте, що відбувається, коли вона обробляє кілька різних вхідних даних. Ми можемо зібрати вектори активації з одного шару в матрицю активації з одним входом на рядок і одним нейроном на стовпець. Аналіз цієї матриці може виявити, чи лежать зібрані активації в спільному підпросторі меншої розмірності.
Припустимо, три зображення утворюють вектори активації , і . Усі три можуть бути побудовані з тих самих двох фіксованих векторів, і :
Тому всі три активації лежать в одній площині, незважаючи на те, що кожна має три координати. Охоплюючі вектори залишаються фіксованими; тільки їхні коефіцієнти змінюються від зображення до зображення.
Коли ми пропускаємо різні зображення через один і той же шар, кожне зображення створює свій власний вектор активації. Щоб перевірити, чи мають ці вектори спільну площину, ми запитуємо, чи можуть однакові два охоплюючі вектори побудувати кожен із них. Знаходження площини, яка містить вектор активації одного зображення, не говорить нам про те, чи лежать у ній також вектори активації з інших зображень.
Далі подивимося, що станеться, якщо ми організуємо наші будівельні вектори як стовпці матриці.
Лінійні комбінації: побудова виводу зі стовпців
Уявіть два набори можливих векторів. Ми називаємо їх вхідним простором і вихідним простором. Матриця визначає функцію відображення між ними: вона приймає вхідний вектор і створює вихідний вектор . Це відображення є лінійним перетворенням.
Якщо ми поглянемо на те, як будує вихідні дані, ми побачимо, як кожен стовпець вносить компонентний вектор. Кожен стовпець знаходиться у вихідному просторі та масштабується за відповідною координатою — вихід одного нейрона в попередньому шарі. Раніше ми бачили, як активації нейронів масштабують базові вектори координат для формування вектора активації шару. При переході до наступного рівня ті ж самі активації масштабують стовпці , які служать векторами, які ми об’єднуємо для створення результату. Сума цих масштабованих стовпців становить , що робить вихід лінійною комбінацією стовпців матриці.
Записуючи стовпці як і вхідні координати як , ми можемо представити цю конструкцію так:
У нейронній мережі — це вагова матриця шару, а — вектор активації, наданий попереднім шаром. Кожна координата масштабує відповідний стовпець , утворюючи компонентний вектор виходу.
Наведений нижче віджет дотримується цієї конструкції по одному стовпцю за раз. Кожна координата вхідного масштабує відповідний стовпець для створення компонентного вектора. Виберіть , щоб прослідкувати, як кожна вхідна координата масштабує свій стовпець. Відповідна стрілка підкреслює цей крок, тоді як усі три внески додають до трансформованого виходу .
Ці компоненти дозволяють відстежувати, як окремі вхідні координати впливають на результат. Щоб вивчити функцію, розподілену за декількома координатами, ми можемо замість цього розкласти вхідні дані за напрямками, пов’язаними з цією функцією, і дослідити, як перетворює ці компоненти.
Простір стовпців: які результати може охопити матриця?
Матриця не обов’язково досягає кожного вектора у вихідному просторі; він може відображати всі вхідні вектори в менший підпростір, такий як площина в тривимірному просторі. Раніше ми бачили, як фіксований набір векторів-компонентів може будувати лише вектори, що лежать у межах їхнього діапазону, який утворює підпростір. Для матриці цей підпростір досяжних виходів називається її простором стовпців.
Назва походить від того факту, що стовпці матриці є фіксованими векторами, що охоплюють підпростір можливих виходів.
У попередньому віджеті ми побудували той самий вектор , використовуючи три різні набори компонентних векторів. Давайте тепер розглянемо кожну конструкцію як матричне перетворення: вектори, які ми вибрали, стають стовпцями , їхні коефіцієнти стають вхідним вектором , а є вихідним .
Усі три конструкції дають із вибраними коефіцієнтами, але не всі вони можуть давати однаковий діапазон інших виходів. Зберігаючи кожну матрицю фіксованою та змінюючи її вхідні дані, ми можемо побачити, які вектори належать її простору стовпців.
Спочатку давайте почнемо з вектора під опцією . Ми створили як . Три вектори координат стають стовпцями , а масштабні коефіцієнти стають елементами :
Оскільки є одиничною матрицею, вона залишає вхідні дані без змін: .
Вхідний вектор має три координати, тому вхідним простором є . Кожна координата масштабує один стовпець . Ці три стовпці охоплюють весь , тому ця матриця може досягати кожного вектора у вихідному просторі.
Давайте тепер розглянемо варіант . Будуємо той самий вектор, що й . Тепер стовпці , і із вхідними коефіцієнтами :
Вхідний простір і вихідний простір все ще . Ці три стовпці також є незалежними, тому їх лінійні комбінації можуть створити кожен вихідний вектор. Ми змінили вектори побудови та вхідні коефіцієнти, але все ще можемо досягти всього .
Щось цікаве з’являється, коли ми пробуємо варіант . Той самий вектор тепер будується лише за допомогою двох векторів побудови: . Це означає, що наша матриця перетворення має лише два стовпці. Його вхідні дані містять два коефіцієнти :
Простір введення тепер , оскільки ми надаємо лише два коефіцієнти. Вихідний простір залишається , тому що кожен вихід все ще має три координати: . Однак є лише два незалежні варіанти, і , навіть якщо результат має три координати. Форма матриці обмежує досяжний підпростір у вихідному просторі щонайбільше двома вимірами.
Два вектори побудови, які ми обрали, і, отже, відповідні стовпці матриці, незалежні, тому вони охоплюють площину через початок координат, тоді як їхні значення визначають, яка це площина. У попередніх прикладах стовпці охоплювали весь тривимірний вихідний простір. У цьому випадку, маючи лише два вектори, ми все одно можемо досягти того самого вектора , але лише тому, що він лежить у площині, яку вони охоплюють — просторі стовпців матриці. Вектори поза цією площиною залишаються недосяжними.
У таблиці нижче порівнюються три конструкції: які вхідні вектори приймає кожна матриця та які вихідні вектори вона може створити. Усі три мають однаковий тривимірний вихідний простір, але лише деякі з матриць можуть створити кожен вектор у цьому просторі.
| Варіант віджета | Вхідний простір: коефіцієнти | Простір стовпців: доступні виходи |
|---|---|---|
| Координатний базис | Усі | |
| Інша основа | Усі | |
| Два вектори | Літак усередині |
Ми бачили, як наявність лише двох стовпців обмежує досяжні виходи щонайбільше площиною. Цікаво, що наявність трьох стовпців не гарантує, що матриця може охопити весь тривимірний вихідний простір. Стовпці також повинні бути лінійно незалежними.
У наведеній нижче матриці перші два стовпці ідентичні, тому другий стовпець не додає нового напрямку. Стовпці і є незалежними і утворюють основу для площини досяжних виходів:
Математично ми можемо зрозуміти, чому ці три стовпці дають результати лише у двох незалежних напрямках. Запишемо вхід як , а вихід як . Починаючи з , перші дві вхідні координати масштабують той самий вектор стовпця:
Якщо взяти і , кожен можливий вихід матиме вигляд:
Ми бачимо, що кожен вихід визначається двома значеннями, і , причому третя координата завжди дорівнює сумі перших двох. Усі вектори з цим відношенням утворюють площину, яка є простором стовпців матриці. Розмір залежить від кількості незалежних напрямків, а не від кількості стовпців.
Точкові добутки: побудова виводу по одному рядку за раз
У попередньому розділі ми бачили, як стовпці матриці будують свій вихід із масштабованих векторів. Давайте тепер подивимося на те саме перетворення через рядки матриці та розглянемо, як компонентні вектори вхідних даних впливають на кожну вихідну координату. Як пояснюється в як нейрони працюють разом, щоб трансформувати вектор, кожен рядок вагової матриці отримує скалярний добуток із усім вхідним вектором, утворюючи одну вихідну координату.
Віджет нижче виконує обчислення по одному рядку за раз. Виберіть кожен рядок, щоб побачити, що його ваги беруть скалярний добуток із усім вхідним , утворюючи одну координату вихідного .
Зупинимося на першому ряду. Його скалярний добуток із усіма вхідними даними дає скаляр :
Лінійність дозволяє нам виразити цей скалярний добуток як суму вкладів векторів компонентів вхідних даних. Щоб побачити, звідки походять , і , розділіть вхідні дані на компоненти координат:
Для першого рядка, , лінійність дає:
Кожен компонент надає один скалярний внесок у цю вихідну координату:
Їх додавання дає , точно такий же результат, як і безпосереднє обчислення .
Повторення цього обчислення для кожного рядка дає один скалярний результат на рядок. Збір цих результатів створює вихідний вектор . Для кожного рядка скалярний добуток із усіма вхідними даними дає той самий результат, що й додавання скалярних добутків із його компонентами.
Це працює для будь-якої декомпозиції вхідних даних: якщо , то , навіть якщо компоненти вказують в інших напрямках.
Геометрично ми можемо спроектувати кожен компонент на ту саму пряму — напрям вектор-рядка — і додати ці проекції зі знаком. Їх сума дорівнює проекції всього входу. Компонент, спрямований частково вздовж , робить позитивний внесок, компонент, спрямований частково проти нього, робить негативний внесок, а перпендикулярний компонент робить нульовий внесок.
Щоб чітко побачити ці проекції, наступний віджет використовує двовимірний приклад із одиничним рядком , спрямованим уздовж горизонтальної осі. Зелений вектор і рожевий вектор є двома складовими векторами. Синій вектор є об’єднаним вектором, який вони будують.
Пунктирні лінії з’єднують кінцеву точку кожного вектора з його проекцією на горизонтальну вісь. Кольорові стрілки уздовж цієї осі показують прогнозовані вектори: зелений для , рожевий для і синій для їх суми . Ці стрілки проекцій можуть перекриватися. Проекція, спрямована вправо, робить позитивний внесок, одна, що вказує вліво, негативно, а нульова проекція не дає нічого. Оскільки має довжину один, кожна довжина проекції зі знаком дорівнює відповідному скалярному добутку на .
Перетягніть кінцеву точку будь-якого компонента або змініть його координати, щоб побачити оновлення об’єднаного вектора та його проекцій. Спробуйте , і , щоб побачити негативні, нульові та скасовані внески.
Віджет використовував одиничний рядок, тому довжина проекції зі знаком кожного компонента була його внеском у результат. Рядок вагової матриці не повинен мати довжину один: його довжина масштабує кожен внесок. Щоб зрозуміти, який внесок має кожен компонент, ми повинні враховувати як його довжину, так і його вирівнювання з рядком.
Для одиничного напрямку рядка скалярний добуток є довжиною проекції зі знаком компонента . Використання самого множить цю довжину на :
де — кут між компонентом і напрямком рядка. Для нашого рядка , довжина якого :
- має довжину і вирівнювання , що дає внесок .
- має довжину і вирівнювання , що дає внесок .
- має довжину і вирівнювання , що дає внесок .
З цього ми бачимо, що третій компонент найбільш точно узгоджується з : він має найбільший косинус і, отже, найменший кут до напрямку рядка. Але перший компонент робить більше, оскільки він довший. Кожен вхідний компонент робить внесок відповідно до його довжини та вирівнювання з напрямком рядка, а лінійність дозволяє нам додати ці внески зі знаком, щоб отримати відповідь рядка на весь вхідний вектор.
Рядки та стовпці дають два способи обчислення того самого перетворення:
| Стовпці | Рядки | |
|---|---|---|
| Де живуть переносники | Вихідний простір | Пробіл для введення |
| Роль у множенні | Масштабуйте та додавайте, щоб створити результат | Кожен використовує скалярний добуток для обчислення однієї вихідної координати |
Пробіл у рядку та нульовий пробіл: що матриця читає та ігнорує
Почнемо з двох векторів і . Вони незалежні, а їх лінійні комбінації мають вигляд
Їхній розмах є площиною , усі її вектори мають форму , як показано у віджеті нижче.
Тепер уявіть, що ми маємо синій вектор і хочемо побачити, чи лежить він у цьому підпросторі. Один із способів розкласти його на зелений компонент і рожевий компонент .
Зверніть увагу, що зелений компонент лежить у площині, а рожевий компонент і синій вектор лежать поза нею. Зелений компонент лежить у площині, оскільки його можна побудувати з двох векторів і , які охоплюють його.
Тепер припустимо, що ми використовуємо два фіксовані вектори і як рядки матриці:
У цьому випадку кожен рядок надає вектор, який ми можемо використовувати в лінійній комбінації. Разом ці вектори охоплюють підпростір вхідного простору, відомий як простір рядків. Отже, площина у віджеті є простором рядків цієї матриці.
Давайте тепер спробуємо інше розкладання того самого синього вектора, використовуючи зелений компонент і рожевий компонент . Зелений все ще лежить у площині простору рядків, але рожевий тепер вказує перпендикулярно до нього, як показано у віджеті нижче.
Давайте розглядатимемо синій вектор як вхідні дані та перевіримо, як його компоненти впливають на вихідні дані кожного розкладання. Матриця дає однаковий результат в обох випадках, але компоненти в кожному розкладанні роблять різний внесок у нього.
У першому розкладанні ми можемо обчислити внесок кожного компонента, взявши його скалярний добуток на кожен рядок . Кожен результат дає одну координату внеску цього компонента у результат.
| Зелений компонент | Рожевий компонент | |
|---|---|---|
| Скалярний добуток з рядком 1 | ||
| Скалярний добуток з рядком 2 | ||
| Внесок у випуск |
Третя координата жодного компонента не впливає на результат, оскільки обидва рядки матриці мають нульову третю координату. Відповідно до лінійності, внески зеленого та рожевого додають до результату:
У другому розкладанні зелений дає весь вихід, тоді як рожевий не дає нічого:
| Зелений компонент | Рожевий компонент | |
|---|---|---|
| Скалярний добуток з рядком 1 | ||
| Скалярний добуток з рядком 2 | ||
| Внесок у випуск |
Як і в першому розкладанні, третя координата жодного компонента не впливає на результат, оскільки обидва рядки матриці мають нульову третю координату. Відповідно до лінійності, внески зеленого та рожевого додають до результату:
Зверніть увагу на різницю між двома декомпозиціями: перший рожевий компонент все ще сприяє виходу, тоді як другий не робить нічого. Це відбувається тому, що другий рожевий компонент перпендикулярний до обох рядків і, отже, до всього простору рядків. Ми можемо побачити це у віджетах і в обчисленнях скалярного добутку в таблицях. У першому випадку рожевий компонент має скалярний добуток і з двома рядками, тоді як у другому випадку обидва скалярні добутки дорівнюють нулю. Це показує, що розміщення поза простором рядка не означає, що вектор повністю ігнорується; бути перпендикулярним до кожного ряду.
Нульовий простір: вхідні дані, які нічого не вносять
Ми побачили, що другий рожевий компонент, , нічого не вносить, тому що він перпендикулярний до кожного рядка. Те саме стосується кожного вектора вздовж осі : зміна його довжини або реверсування напряму залишає обидва скалярні добутки нульовими.
Набір усіх вхідних векторів, які матриця відображає в нуль, називається її нульовим простором. Для матриці, яку ми використовували в попередніх розділах, цим набором є вся вісь . Перший рожевий компонент має частину в нульовому просторі; другий цілком лежить у ньому.
Компонент нульового простору вхідних даних є в обох випадках. Друге розкладання явно ізолює його, поміщаючи весь компонент простору рядків зеленим кольором. Вхід має багато можливих розкладів, але його поділ на компонент простору рядків і компонент нульового простору є унікальним.
Тож ми можемо взяти будь-яку матрицю та вхідні дані, які вона приймає, і визначити, яку частину вхідних даних матриця ігнорує, а яка впливає на вихідні дані. Існує лише один спосіб розділити вхідні дані так, щоб одна частина повністю лежала в просторі рядка, а інша повністю в нульовому просторі.
Для нашої матриці та вхідних даних це саме друге розкладання, показане у наших віджетах і таблицях:
Альтернативна декомпозиція будує той самий вхід, але його другий компонент не повністю в нульовому просторі. Розрахунок для цього прикладу простий; для загальної матриці такі методи, як SVD, дозволяють систематично обчислювати розподіл.
Вектор відображається в нуль, коли він перпендикулярний до кожного рядка — і, отже, до кожного вектора в просторі рядків. Нульовий простір — це перпендикулярне доповнення простору рядка, яке ми записуємо так:
Символ позначає всі вектори, які перпендикулярні кожному вектору в цьому просторі. Розбиття вхідних даних на ці дві частини дає:
Отже, показує, що лише компонент простору рядків впливає на результат. Матриця все ще може змінювати свою довжину та напрямок або відображати її у вихідний простір з іншою кількістю координат.
Лівий нульовий пробіл: перпендикулярно до кожного можливого виходу
Припустимо, що матриця ваг шару має третій рядок, що дорівнює сумі перших двох рядків. Це призводить до обмеження на вихід: третя координата завжди дорівнює сумі перших двох. Незалежно від того, який вхід ми йому надаємо, він не може створити , тому що перші дві координати вимагатимуть, щоб третя була . Нульовий простір зліва допомагає нам визначити такі обмеження на виході шару.
Як ми бачили раніше, простір стовпців містить усі можливі виходи. Лівий нульовий пробіл описує напрямки, перпендикулярні до них усіх. Подібно до того, як нульовий простір перпендикулярний простору рядка у вхідному просторі, лівий нульовий простір перпендикулярний простору стовпця у вихідному просторі.
У нашому попередньому прикладі простору стовпців кожен вивід має вигляд . Третя координата завжди дорівнює сумі перших двох. Вектор фіксує це обмеження:
Він лежить у лівому нульовому просторі, оскільки він перпендикулярний до всіх можливих вихідних даних. Така ціль, як , порушує це обмеження, тому жодні вхідні дані не можуть змусити цю матрицю створити його. Одна тільки зміна введення не може виправити цю невідповідність.
Це надає лівому нульовому простору практичну роль: воно виявляє обмеження щодо того, що може створити матриця фіксованої ваги. Для рівня лінійного прогнозування він може сказати нам, що деякі цільові виходи недоступні навіть до того, як ми спробуємо знайти вхідні дані, які їх створюють. Ці обмеження застосовуються до лінійного виходу ; додавання зміщення зміщує їх до для , а наступна нелінійна активація може змінити їх ще більше.
Важливо підкреслити, що лівий нульовий пробіл не є місцем, куди йдуть стерті введення; ці входи відображаються на початок координат. Він описує обмеження на стороні виводу.
Поєднання чотирьох підпросторів разом
Тепер ми можемо з’єднати чотири простори в одне зображення. Пробіл рядків і нульовий пробіл розділяють вхідні дані на перпендикулярні компоненти. Матриця надсилає компонент нульового простору до нуля та перетворює компонент простору рядка на вихід у просторі стовпця. Лівий нульовий простір перпендикулярний кожному вектору в цьому вихідному підпросторі.

Зображення показує, як співвідносяться чотири підпростори, але його плоскі ділянки є схематичними: підпростір може бути лінією або площиною, залежно від матриці. Два наведені нижче віджети роблять ці стосунки конкретними. Ви можете змінити вхідні дані та побачити, як вони розбиваються на компоненти простору рядків і нульового простору, а також як кожен компонент впливає на вихід.
Давайте тепер дослідимо ці зв’язки у наведеному нижче віджеті. Він використовує вхідний вектор і матрицю:
Початковий вхід лежить за межами як площини простору рядка, так і лінії нульового простору. У кожному з них є компонент. Три повзунки керують вхідними координатами , і . Зміна їх змінює вектор, який перетворює матриця, тоді як сама матриця залишається фіксованою.
Input space · ℝ³
Row space is a plane, Null space is a line
Output space · ℝ³
Column space is a plane, Left null space is a line
Drag either plot to rotate; scroll to zoom. With a plot focused, use the arrow keys to rotate, + and − to zoom, or 0 to reset zoom.
Ось що визначає кожен із чотирьох підпросторів. Параметри , , , і можуть бути будь-якими дійсними числами.
| Підпростір | Форма | Вектори, які він містить | Що це означає |
|---|---|---|---|
| Простір рядка | Літак | Перші дві вхідні координати рівні (); третій необмежений. | |
| Нульовий простір | лінія | Перші дві вхідні координати скасовуються, а третя дорівнює нулю. Ці вектори відображаються в нуль. | |
| Простір колонки | Літак | Третя вихідна координата є сумою перших двох (). | |
| Залишений нульовий пробіл | лінія | Перші дві координати рівні, а третя їх від’ємна. Ці вектори перпендикулярні кожному вектору в просторі стовпців. |
Три картки показують весь вхідний сигнал і два його компоненти. Застосування до компонента простору рядків дає той самий результат, що й застосування до всього введення. Компонент нульового простору вносить нуль, тому його додавання або видалення залишає результат незмінним.
і зображення відповідають і віджета. Спочатку синій вхід розбивається на зелений і рожевий компоненти:
Стрілки, що перетинають зображення, означають застосування . У віджеті як увесь вхід, так і його зелений компонент створюють , тому їхні вихідні стрілки перекриваються в помаранчевій площині. Рожевий компонент відповідає нулю. Фіолетова лінія з лівим нульовим інтервалом перпендикулярна до вихідної площини; це не те, куди йдуть стерті входи.
Зміна вхідних даних залишає чотири підпростори фіксованими.
Давайте тепер використаємо той самий вхідний вектор із цією альтернативною матрицею:
Він має таку саму форму , але ранг 1: усі його рядки кратні . Проміжки рядків і стовпців є лініями, а обидва нульові проміжки є площинами. Початковий вхід лежить за межами лінії простору рядків і площини нульового простору, з компонентом у кожній. Повзунки змінюють вхідні дані, поки ця матриця залишається фіксованою.
Input space · ℝ³
Row space is a line, Null space is a plane
Output space · ℝ³
Column space is a line, Left null space is a plane
Drag either plot to rotate; scroll to zoom. With a plot focused, use the arrow keys to rotate, + and − to zoom, or 0 to reset zoom.
Для цієї матриці чотири підпростори містять наступні вектори. Знову ж таки, параметрами можуть бути будь-які дійсні числа.
| Підпростір | Форма | Вектори, які він містить | Що це означає |
|---|---|---|---|
| Простір рядка | лінія | Перші дві вхідні координати рівні, а третя дорівнює нулю. | |
| Нульовий простір | Літак | Перші дві введені координати скасовуються (); третій необмежений. Ці вектори відображаються в нуль. | |
| Простір колонки | лінія | Друга і третя вихідні координати вдвічі і втричі більше першої. | |
| Залишений нульовий пробіл | Літак | Координати задовольняють . Ці вектори перпендикулярні до напрямку простору стовпця . |
Тут зміна залишає результат незмінним: третій напрямок координат лежить у нульовому просторі. Лише компонент вздовж зеленої лінії простору рядка сприяє виведенню; кожен вихід лежить на помаранчевій лінії пробілу стовпця.
Ранг матриці та розмірність чотирьох підпросторів
Останнє поняття, яке нам потрібно розглянути, це ранг матриці. Ми бачили, що матриці однакової форми можуть мати різні розміри підпростору. Ранг говорить нам, скільки незалежних напрямків зберігає матриця, і разом із формою визначає розміри всіх чотирьох підпросторів.
Для матриці з рядками та стовпцями стовпці визначають вхідний простір , а рядки визначають вихідний простір . Це розміри повного вхідного та вихідного просторів, визначені формою матриці.
Кожна матриця має властивість під назвою ранг , яка визначає спільний розмір її просторів рядків і стовпців: скільки незалежних напрямків охоплюють рядки та стовпці. Ці два простори завжди мають однаковий розмір, навіть якщо повний вхідний і вихідний простори мають різні розміри.
Так само максимальна кількість лінійно незалежних рядків завжди дорівнює максимальній кількості лінійно незалежних стовпців. Ранг не може перевищувати ні кількість рядків, ні кількість стовпців, формально .
Розглянемо нашу попередню матрицю :
Його форма описує перетворення з трьох вхідних координат у дві вихідні координати: . Його два рядки є незалежними, тому його ранг дорівнює 2. Простір рядків — це -площина всередині , що складається з векторів . Простір стовпців - це весь , що складається з векторів .
Отже, простори рядків і стовпців мають один і той же розмір, хоча повні простори введення та виведення мають різні розміри. Простір рядків все ще містить трикоординатні вектори; тільки дві координати можуть змінюватися незалежно. У просторі стовпців ці дві незалежні координати заповнюють весь простір виводу.
Заштриховані площини мають однаковий розмір, але живуть у різних навколишніх просторах. Мітки позначають рядки у вхідному просторі ; позначає стовпці у вихідному просторі , з у початку координат. Затінення показує частину кожної нескінченної площини.
У таблиці порівнюються повні простори введення та виведення з просторами рядків і стовпців для цієї матриці:
| космос | Де живе | Його розмір |
|---|---|---|
| Пробіл для введення | 3 | |
| Простір рядка | Площина всередині : вектори | 2 |
| Вихідний простір | 2 | |
| Простір колонки | Усі : вектори | 2 |
Ця матриця зберігає перші дві координати та відкидає третю:
Ми можемо записати це як , використовуючи кортеж як скорочення для вектора-стовпця. Наприклад, і , і відображаються на . Компонент простору рядків відображається на , тоді як компонент нульового простору відображається на нуль.
Це залишає один напрямок нульового простору у вхідних даних: третю вісь координат. На стороні виводу простір стовпця вже заповнює весь , тому його перпендикулярне доповнення — лівий нульовий простір — містить лише нульовий вектор і має нульову розмірність.
Той самий облік розмірності працює для будь-якої матриці рангу : простори рядків і стовпців мають розмірність , нульовий простір має розмірність , а лівий нульовий простір має розмірність .
Форма встановлює межу; записи визначають ранг. Інша матриця може мати ранг 1. Її повні простори введення та виведення все одно будуть та , але простори рядків і стовпців будуть рядками. Тоді його нульовий простір матиме розмір , а лівий нульовий простір матиме розмір .