Чернетка

Що стиснення зберігає в нейронній мережі

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

Але впливати на репрезентацію та бути відновленими з неї — це різні речі. Чи можемо ми прочитати всі три атрибути назад? Які відмінності зникають? І чи несе в собі корисну інформацію напрямок із дуже невеликими варіаціями?

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

Формула ціни, відповідь на яку ми знаємо

Ми використовуватимемо розмір, кімнати та вік як назви для трьох незалежних синтетичних оцінок функцій:

x=[xsizexroomsxage],y=2xsize+xrooms−0.2xage=β⊤x.x=\begin{bmatrix}x_{\text{size}}\\x_{\text{rooms}}\\x_{\text{age}}\end{bmatrix}, \qquad y=2x_{\text{size}}+x_{\text{rooms}}-0.2x_{\text{age}}=\beta^\top x.

Кожна оцінка рівномірно відбирається з [−3,3][-\sqrt3,\sqrt3], що дає середнє значення сукупності нуль і дисперсію один. Це безперервні стандартизовані бали: «кімнати» — це не ціла кількість кімнат, а yy — це оцінка ціни, а не доларів. Коефіцієнти обрані для експерименту, а не оцінені з ринку житла.

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

Модель обчислює:

h(1)=W1x,h(2)=W2h(1),y^=W3h(2),h^{(1)}=W_1x,\qquad h^{(2)}=W_2h^{(1)},\qquad \hat y=W_3h^{(2)},

з матричними формами 3×33\times3, k×3k\times3 і 1×k1\times k. Наш основний експеримент використовує k=2k=2; елементи керування використовують k=1k=1 і k=3k=3.

Усі шари є лінійними та не мають зміщень. Ціль має нульове перехоплення, тому упередження непотрібні. Ми надаємо вхідні атрибути безпосередньо, але не надаємо моделі жодних міток чи допоміжних втрат, які б повідомляли їй, що мають означати її приховані нейрони. Цей експеримент вивчає вивчені представлення відомих вхідних даних; він не виявляє атрибути будинку з необроблених зображень або тексту.

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

h1 = X @ W1.T
h2 = h1 @ W2.T
error = h2 @ W3.T - y       # y has shape (N, 1)
delta = 2 * error / len(X)

grad_W3 = delta.T @ h2
grad_W2 = (delta @ W3).T @ h1
grad_W1 = (delta @ W3 @ W2).T @ X

# Compute every gradient before changing any weight.
W1 -= 0.03 * grad_W1
W2 -= 0.03 * grad_W2
W3 -= 0.03 * grad_W3

Ми використовуємо 2048 навчальних прикладів і 4096 затриманих прикладів із фіксованим вихідним кодом даних. Для кожної ширини ми навчаємо п’ять ініціалізацій: початкові числа 7, 11, 23, 42 і 101. Початкові ваги є незалежними нормальними зразками зі стандартним відхиленням 0,4. Навчання припиняється, коли MSE навчання нижче 10−2010^{-20}, з максимумом 10 000 оновлень. Кожен запуск збирався в 123–214 оновленнях.

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

Одного виміру вже достатньо, щоб передбачити ціну

Оскільки шари є лінійними, їх композиція є лінійною:

y^=W3W2W1x.\hat y=W_3W_2W_1x.

Ціль залежить лише від однієї скалярної комбінації, β⊤x\beta^\top x. Вузьке місце з одним нейроном може зберегти це число та дозволити останньому шару повернути його. Таким чином, для точного прогнозування ціни не потрібно зберігати три вхідні дані окремо.

Усі 15 навчених мереж досягли утриманої ціни MSE нижче 10−2010^{-20}. Це легке, точно репрезентативне завдання; ці крихітні помилки є числовим узгодженням, а не доказом реалістичного прогнозування цін на житло.

Корисне питання полягає в тому, що ще вціліло на шляху до цієї відповіді.

Three features → three neurons → two neurons → price

These are trained weights. Move an input, inspect its hidden point, then move along the lost direction.

h₂[1]: ±2.87h₂[2]: ±3.16Blue = lower size; orange = higher. White = your input.

Axes scale independently to expose the thin second dimension. Displayed angles and aspect ratio are not the hidden space’s geometry. PC variance shares: 99.905% / 0.095%.

n = [-0.2971, 0.7197, 0.6275]. Changing t changes the features, but the hidden point and predicted price stay fixed.

FeatureOriginal xChanged x′Probe estimate from h₂Test R²
Size0.40000.40000.36770.914
Rooms-0.2000-0.2000-0.12180.499
Age0.30000.30000.36820.615
h₂ = [0.3003, -0.2823]Price prediction = 0.5400True price score = 0.5400Max activation change = 0.0e+0

Five runs, the same training and test data. Seed 7: test price MSE 9.87e-21. Feature scores are synthetic, continuous, and standardized; “rooms” is not an integer room count.

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

Три нейрони можуть зберігати три функції, не називаючи їх

У нашому основному циклі, початковому етапі 7, перший прихований шар дізнався приблизно:

W1=[−0.48410.0375−0.12930.0642−0.0260−0.39681.08770.6739−0.1444].W_1=\begin{bmatrix} -0.4841 & 0.0375 & -0.1293\\ 0.0642 & -0.0260 & -0.3968\\ 1.0877 & 0.6739 & -0.1444 \end{bmatrix}.

Кожен рядок описує один нейрон. Перший нейрон реагує на всі три атрибути; це не виділена координата розміру. Інші ряди теж суміші.

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

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

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

Три напрямки функцій мають два виміри

Об’єднайте перші два шари в B=W2W1B=W_2W_1. Тоді h(2)=Bxh^{(2)}=Bx. Для насіння 7:

B≈[1.05420.4983−0.0724−1.0959−0.57300.1383].B\approx\begin{bmatrix} 1.0542 & 0.4983 & -0.0724\\ -1.0959 & -0.5730 & 0.1383 \end{bmatrix}.

Три стовпці описують, як зміна кожного входу змінює прихований вектор:

vsize=Be1,vrooms=Be2,vage=Be3.v_{\text{size}}=Be_1,\qquad v_{\text{rooms}}=Be_2,\qquad v_{\text{age}}=Be_3.

Прихований вектор є сумою їхніх внесків:

h(2)=xsizevsize+xroomsvrooms+xagevage.h^{(2)}=x_{\text{size}}v_{\text{size}} +x_{\text{rooms}}v_{\text{rooms}} +x_{\text{age}}v_{\text{age}}.

Усі три стовпці ненульові: усі три ознаки впливають на представлення. Мережа представляє три вхідні елементи за допомогою напрямків у двовимірному просторі. Кожна функція може впливати на представлення, але їх ефекти не можна розрізняти окремо.

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

Ми зробимо цю неоднозначність конкретною, знайшовши комбінацію вхідних змін, які втрачає вузьке місце.

Оскільки BB має другий ранг, існує ненульовий напрямок введення nn з Bn=0Bn=0. SVD карти ваги знаходить це:

_, _, Vt = np.linalg.svd(B, full_matrices=True)
n = Vt[-1]  # Third right singular vector, in the 3D INPUT space.

Тут має значення full_matrices=True: зменшений SVD цієї матриці 2×32\times3 повертає лише два праві сингулярні вектори та пропускає нульовий напрямок. Ознаки СВД довільні; ми вибираємо знак, який робить запис найбільшої величини позитивним.

Наш втрачений напрямок приблизно такий:

n=[−0.29710.71970.6275].n=\begin{bmatrix}-0.2971\\0.7197\\0.6275\end{bmatrix}.

Тепер порівняйте два входи xx і x+tnx+tn:

B(x+tn)=Bx+tBn=Bx.B(x+tn)=Bx+tBn=Bx.

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

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

Жоден декодер, лінійний чи нелінійний, не може відновити кожен початковий вхідний сигнал з ідентичних прихованих векторів. Інформація була відкинута. SVD не може його відновити.

SVD активацій відповідає на інше запитання

Тепер зберіть активації вузьких місць для навчальних прикладів у H∈RN×2H\in\mathbb R^{N\times2}. Відцентруйте їх і обчисліть:

Hc=H−1hˉ⊤=UΣV⊤.H_c=H-\mathbf1\bar h^\top=U\Sigma V^\top.

Цього разу праві сингулярні вектори живуть у двовимірному прихованому просторі. Вони дають напрямки головних компонентів: перпендикулярні осі, впорядковані дисперсією активації вздовж них.

mean = H_train.mean(axis=0)
_, singular_values, Vt = np.linalg.svd(H_train - mean, full_matrices=False)
scores_test = (H_test - mean) @ Vt.T
variance_share = singular_values**2 / np.sum(singular_values**2)

Документація NumPy SVD описує повернуті множники. Для цих дійсних матриць рядки Vt є осями, на які ми проектуємо.

У вихідному коді 7 сингулярні значення вузького місця становлять приблизно 79,249 і 2,446. ПК 1 становить 99,905% дисперсії активації навчання; ПК 2 становить 0,095%. Хмара - це майже лінія, але її другий вимір не дорівнює нулю.

Ми знаємо позначки функцій, тож можемо виміряти кореляцію між утримуваними балами PCA та кожною функцією:

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

Для вузького місця:

компонентСпіввідношення розмірівСпіввідношення кімнатВікове співвідношення
ПК 1−0.890−0.4570.072
ПК 20.334−0.5470.783

Перший компонент тісно пов’язаний з розміром, але також і з кімнатами. Другий сильно пов’язаний з віком, але все одно є сумішшю. СВД постачає статистичні осі; мітки дозволяють нам досліджувати їх значення пізніше.

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

Зонд вимірює те, що може відновити все представлення

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

(P∗,c∗)=arg⁡min⁡P,c∥HP+1c⊤−X∥F2.(P^*,c^*)=\arg\min_{P,c}\|HP+\mathbf1c^\top-X\|_F^2.

Це зонд лінійної регресії. Мережа залишається замороженою; позначки функцій контролюють лише діагностичне зчитування. Робота Алена та Бенджіо над зондами лінійного класифікатора використовує те саме поділ між навченим представленням і незалежно навченими діагностичними класифікаторами. Тут наші цілі безперервні.

design = np.column_stack((H_train, np.ones(len(H_train))))
probe = np.linalg.lstsq(design, X_train, rcond=None)[0]
recovered = np.column_stack((H_test, np.ones(len(H_test)))) @ probe

Ми повідомляємо про відкладений R2R^2: 1 означає точне відновлення; 0 відповідає похибці прогнозування середнього значення ознаки утримання. Оцінки можуть бути негативними. Це прогнозні оцінки, а не відсотки інформації чи доказ того, що оригінальна модель використовує функцію певним чином.

Ширина горлечка, насіння 7Розмір R²Кімнати R²Вік R²Ціна R²
10.7920.2090.002≈1
20.9140.4990.615≈1
31.0001.0001.000≈1

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

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

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

Також є точна перевірка населення. Наші вхідні дані мають коваріацію II, тому оптимальною лінійною реконструкцією з BxBx є його проекція на простір рядків BB. Якщо Π=B+B\Pi=B^+B, де B+B^+ — псевдоінверсія, тоді:

Rj2=Πjj,∑j=13Rj2=rank⁡(B).R_j^2=\Pi_{jj},\qquad \sum_{j=1}^{3}R_j^2=\operatorname{rank}(B).

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

Змініть геометрію без зміни прогнозів

Втрата ціни однозначно не визначає приховані координати. Візьміть будь-яку оборотну матрицю 2×22\times2 AA і замініть:

B′=AB,W3′=W3A−1.B'=AB,\qquad W_3'=W_3A^{-1}.

Тоді W3′B′x=W3BxW_3'B'x=W_3Bx для кожного входу. Обернена зміна зберігає інформацію, доступну для переобладнаного лінійного датчика, але неортогональна зміна може змінити кути, довжини та частку дисперсії PCA.

Експеримент застосовується:

A=[1200.3].A=\begin{bmatrix}1&2\\0&0.3\end{bmatrix}.

Для початкового числа 7 частка дисперсії першого компонента змінюється приблизно з 99,905% до 99,980%. Прогнози та зонд R² залишаються незмінними в межах числового допуску. Перемикач Змінити приховану основу; зберегти прогнози, щоб перевірити це перетворення. Він повторно виражає заморожену мережу; це не перенавчає його.

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

Змініть прихований напрямок і перевірте його ефект

Оскільки ми контролюємо вхідні дані, ми можемо визначити точне приховане втручання, яке відповідає збільшенню однієї функції. Тримаючи початковий вхід фіксованим, додайте δvj=δBej\delta v_j=\delta Be_j до його активації вузького місця:

h′=h+δBej,y^′−y^=δW3Bej≈δβj.h'=h+\delta Be_j, \qquad \hat y'-\hat y=\delta W_3Be_j\approx\delta\beta_j.

Сценарій перевіряє ці втручання на представлених прикладах. Для δ=0.25\delta=0.25 додавання напрямку розміру змінює прогнозовану ціну на 0,50; напрямок кімнат змінює його на 0,25; віковий напрямок змінює його на −0,05.

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

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

Це суперпозиція?

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

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

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

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

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

Що це говорить нам про векторні простори LLM

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

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

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

Відтворюйте та перевіряйте кожне вимірювання

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

python3 -m venv .venv
source .venv/bin/activate
python -m pip install numpy==2.2.6
python house_representation_experiment.py

У сховищі каталог directions-sparse-features-and-how-sparse-autoencoders-find-them/experiment/ першої статті також містить README та закріплені прямі залежності для регенерації двох фігур SVG. Запустіть там python experiment.py --export --figures після встановлення requirements.txt. Згенеровані шляхи відносяться до розташування сценарію, а не до робочого каталогу; використовувати макет сховища під час регенерації ресурсів статті.

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

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

Перегляд зображення

Змінюйте масштаб жестом щипка або клавішами + / −. Переміщуйте зображення перетягуванням або стрілками. Esc — закрити.