Reprezentacje grup cyklicznych w sieciach neuronowych
Abstract
Rozważamy zadanie dodawania modulo \( p \) jako punkt wyjścia do analizy, w jaki sposób sieci neuronowe kodują strukturę symetrii grupowej. Nawiązując do pracy Chughtai i in. [1], wyprowadzamy postać nierozkładalnych reprezentacji grupy cyklicznej \( \mathbb{Z}_p \) dwiema niezależnymi drogami: poprzez teorię charakterów oraz przez diagonalizację operatora przesunięcia cyklicznego. Na przykładzie grupy \( \operatorname{SO}(2) \) pokazujemy, że odwołanie się do liczb zespolonych jest tu koniecznością algebraiczną, nie kwestią notacyjnej wygody. Na tej podstawie odtwarzamy konstruktywny dowód Gromova [3], wiążąc jego wagi Fourierowskie z wyprowadzoną wcześniej przestrzenią niezmienniczą \( V_m \), i pokazujemy, że architektura jednowarstwowego perceptronu realizuje dodawanie jako przesunięcie fazowe w tej przestrzeni. Wyniki analityczne konfrontujemy z wagami rzeczywistej, wytrenowanej sieci.
Wstęp
Dodawanie modulo \( p \) stanowi zasadniczy problem analityczny w badaniu geometrii wewnętrznych reprezentacji sieci neuronowych. Choć sam problem może się wydawać elementarny, kryje on w sobie nietrywialną strukturę algebraiczną.
Schemat rozumowania podzielono na dwie główne części. W pierwszej analizujemy, jaką strukturę reprezentacji wymusza symetria operacji dodawania modulo. W drugiej sprawdzamy, czy i w jaki sposób sieć neuronowa do niej dąży podczas optymalizacji.
Dlaczego Liczby Zespolone
Zanim przejdziemy do formalnego dowodu, warto zapytać: czy do opisu tego zachowania liczby rzeczywiste w ogóle wystarczają? Rozważmy więc na początek grupę \( \operatorname{SO}(2) \) reprezentowaną przez macierz:
Geometryczną interpretacją tej macierzy jest obrót wektora o kąt \( \theta \). Znajdźmy teraz dla tej macierzy wartości własne. Z równania charakterystycznego \( \det(R(\theta) - \lambda I) = 0 \):
Licząc deltę:
Oznacza to, że równanie to ma rzeczywiste rozwiązania dla \( \lambda \) tylko przy warunku \( \cos^2\theta = 1 \), a więc dla parametru \( \theta = 0 \) (przekształcenie tożsamościowe) i \( \theta = \pi \) (obrót o \( 180^\circ \), symetria środkowa względem początku układu współrzędnych). Geometrycznie są to dokładnie te przypadki, w których wektor obrócony jest współliniowy z wektorem wyjściowym. Dla dowolnego innego kąta obrotu wektor obrócony nigdy nie jest równoległy do wektora wyjściowego, więc nie istnieje rzeczywista wartość własna. Macierz \( R(\theta) \) jest diagonalizowalna tylko nad \( \mathbb{C} \):
To pokazuje, że wprowadzenie liczb zespolonych w tym problemie nie jest kwestią wygody notacji, a koniecznością wynikającą z algebraicznej domkniętości \( \mathbb{C} \). Zbiór ten gwarantuje istnienie pełnego zestawu wartości własnych dla macierzy ortogonalnych.
Ustaw θ na 0° lub 180°, aby zobaczyć rzeczywisty wektor własny.
Zjawisko to nie jest specyficzne dla \( SO(2) \). Każdy operator realizujący cykliczne przesunięcie (a więc również działanie grupy \( \mathbb{Z}_p \) na przestrzeni funkcji, do którego dojdziemy w dalszej części) napotyka tę samą przeszkodę i wymaga analogicznego rozszerzenia do \( \mathbb{C} \).
Charaktery grupy cyklicznej
Rozważmy grupę cykliczną \( (\mathbb{Z}_p, +) \), czyli zbiór reszt z dzielenia przez \( p \) z działaniem dodawania modulo \( p \), gdzie \( p \) jest liczbą pierwszą.
W ogólnej teorii reprezentacji szukamy homomorfizmów \( \rho : G \rightarrow \operatorname{GL}(V) \), które przypisują elementom grupy \( G \) odwracalne macierze. Charakter takiej reprezentacji definiuje się formalnie jako ślad przypisanej macierzy, czyli \( \chi_\rho(g) = \operatorname{Tr}(\rho(g)) \). W przypadku grupy \( \mathbb{Z}_p \) zachodzi jednak kluczowe uproszczenie. Ponieważ dodawanie modulo \( p \) jest działaniem przemiennym, \( \mathbb{Z}_p \) jest grupą abelową. Z lematu Schura wynika, że nad ciałem liczb zespolonych wszystkie nierozkładalne reprezentacje grup abelowych są jednowymiarowe [2].
Oznacza to, że nasza przestrzeń wektorowa \( V \) sprowadza się do \( \mathbb{C}^1 \), a macierze z grupy \( \operatorname{GL}(V) \) redukują się do pojedynczych, niezerowych skalarów. Ponieważ ślad macierzy rozmiaru \( 1 \times 1 \) jest równy jej jedynemu elementowi, wielowymiarowa reprezentacja i jej charakter stają się tym samym obiektem matematycznym (\( \rho \equiv \chi_\rho \)). Dzięki temu możemy całkowicie pominąć aparat macierzowy i zdefiniować charakter bezpośrednio jako odwzorowanie w zbiór liczb zespolonych \( \mathbb{C}^* \).
Aby zrozumieć, jaką postać mogą przyjmować te reprezentacje w sieci neuronowej, rozpocznijmy od wyprowadzenia ich analitycznej formy. Ponieważ \( \rho \) jest homomorfizmem, \( \chi \) dziedziczy tę własność bezpośrednio:
Aby wyznaczyć postać takiej funkcji dla \( G = \mathbb{Z}_p \), zaobserwujmy najpierw jej podstawowe własności. Po pierwsze, każdy element \( k \in \mathbb{Z}_p \) można zapisać jako \( k \)-krotną sumę elementu \( 1 \), z własności homomorfizmu otrzymujemy:
Dodatkowo możemy zaobserwować, że skoro grupa \( \mathbb{Z}_p \) ma rząd \( p \), zachodzi \( p \cdot 1 \equiv 0 \pmod{p} \). Podstawiając \( k = p \) do \( (1) \) i korzystając z \( \chi(0) = 1 \) (co wynika wprost z warunku homomorfizmu dla \( g=h=0 \)), otrzymujemy
Oznaczając \( z := \chi(1) \), dochodzimy do warunku:
czyli \( \chi(1) \) musi być pierwiastkiem stopnia \( p \) z jedynki. Równanie \( z^p = 1 \) ma dokładnie \( p \) rozwiązań w dziedzinie liczb zespolonych. Korzystając ze wzoru Eulera, można je zapisać jako:
Każdy wybór \( m \) daje inną wartość \( \chi(1) \), a więc inny charakter, stąd oznaczenie \( \chi_m(1) := z_m =e^{2\pi i m/p} \). Podstawiając to do wzoru \( (1) \) z poprzedniego fragmentu, \( \chi(k) = \chi(1)^k \), otrzymujemy zupełną rodzinę charakterów grupy \( \mathbb{Z}_p \):
Wybierz m i k, aby zobaczyć wartość charakteru.
Podejście Algebry Liniowej
Analogicznie można podejść do problemu ze strony czystej algebry liniowej. Rozważmy przestrzeń funkcji \( V := \operatorname{Fun}(\mathbb{Z}_p, \mathbb{C}) \) oraz działanie elementu \( h \in \mathbb{Z}_p \) na funkcjach \( f: \mathbb{Z}_p \rightarrow \mathbb{C} \) przez przesunięcie argumentu \( f \mapsto f(\cdot - h) \). Dla dowolnego elementu \( h \in \mathbb{Z}_p \) definiujemy operator \( S_h \) jako \( (S_hf)(k) := f(k - h \pmod p) \).
Naszym celem jest znalezienie bazy przestrzeni \( V \), która będzie optymalna do reprezentowania działania tej grupy. W ujęciu algebry liniowej oznacza to poszukiwanie funkcji, które nie zmieniają swojej postaci pod wpływem przesunięcia, a jedynie skalują się o pewną wartość. Szukamy zatem wspólnych wektorów własnych dla całej rodziny operatorów \( S_h \).
Struktura grupy cyklicznej sprawia, że działanie całej rodziny operatorów \( S_h \) jest w całości zdeterminowane przez działanie generatora \( S_1 \).
Dowód
Wynika to z faktu, że działanie grupy \( \mathbb{Z}_p \) na przestrzeni funkcji to odwzorowanie \( \rho : \mathbb{Z}_p \rightarrow \operatorname{GL}(V) \), gdzie \( \rho(h):=S_h \). Analogicznie do \( \chi \), funkcja \( \rho \) spełnia własność homomorfizmu, co można zapisać w postaci:
Po wyborze bazy przestrzeni \( V \) złożenie operatorów \( \circ \) odpowiada zwykłemu mnożeniu macierzy, więc kontynuujemy dalej na notacji \( S_g \cdot S_h \). Bazując na analogicznych działaniach na charakterach, wyprowadzamy:
Oznacza to, że wystarczy zbadać własności samego operatora \( S_1 \). Jeśli \( f \) jest wektorem własnym \( S_1 \) z wartością własną \( \lambda \), to jest on automatycznie wektorem własnym każdego \( S_h \), z wartością własną \( \lambda^h \).
Wyznaczając wektory własne operatora \( S_1 \), formalnie szukamy takiego \( f \), że \( S_1f = \lambda f \), czyli \( f(k - 1) = \lambda f(k) \) dla wszystkich \( k \in \mathbb{Z}_p \). Operator \( S_1 \) odpowiada cyklicznej macierzy permutacji rozmiaru \( p \times p \). Z jej równania charakterystycznego \( \det(S_1 - \lambda I) = 0 \) otrzymujemy:
Oznacza to, analogicznie do warunku charakterystyki, że \( \lambda \) musi być pierwiastkiem \( p \)-tego stopnia z jedynki.
Konstrukcja rzeczywistej bazy reprezentacji
Mając do dyspozycji zupełną bazę, możemy zacząć nasze rozważania w kontekście reprezentacji w sieciach neuronowych. Po pierwsze warto zauważyć, że wartości, na jakich bazują modele sieci neuronowych, są rzeczywiste. Fakt ten wymusza przekształcenie reprezentacji zespolonej na jej rzeczywisty odpowiednik. Korzystając ze wzoru Eulera, charakter możemy zapisać jako:
Możemy teraz skorzystać z sumy charakteru \( \chi_m(k) \) i jego sprzężenia \( \overline{\chi_m(k)} \). Operacja ta jest dopuszczalna w obrębie naszej bazy, ponieważ sprzężenie charakteru to po prostu charakter z ujemnym indeksem: \( \overline{\chi_m(k)} = \overline{e^{2\pi i mk /p}} = e^{-2\pi i mk /p} = \chi_{-m}(k) \). Dodając te wyrażenia do siebie, otrzymujemy:
Dzieląc ten wynik przez \( 2 \), odzyskujemy czystą funkcję cosinus. Analogicznie postępujemy dla sinusa, odejmując sprzężenie:
Dzieląc wyrażenie \( \chi_m(k) - \overline{\chi_m(k)} \) przez stałą \( 2i \), otrzymujemy rzeczywistą reprezentację:
Para funkcji \( \left\{\cos\left(\frac{2\pi m k}{p}\right), \sin\left(\frac{2\pi m k}{p}\right)\right\} \) stanowi więc rzeczywistą bazę, rozpinającą dwuwymiarową przestrzeń \( V_m \), na której grupa \( \mathbb{Z}_p \) działa bez konieczności odwoływania się do liczb zespolonych.
Należy wspomnieć, że sam \( \cos(2\pi m k / p) \) nie wystarcza. Działanie operatora \( S_h \) nie skaluje po prostu wyrażenia, a przekształca je w kombinację liniową cosinusa i sinusa. Wynika to bezpośrednio z tożsamości trygonometrycznej \( \cos(\alpha - \beta) = \cos\alpha\cos\beta + \sin\alpha\sin\beta \):
Obserwacja ta implikuje fakt, że przestrzeń rozpięta przez sam cosinus nie jest niezmiennicza względem działania grupy \( S_h \), ponieważ przekształca on wynik do przestrzeni zawierającej także sinus. Dopiero para \( \left\{\cos\left(\frac{2\pi m k}{p}\right), \sin\left(\frac{2\pi m k}{p}\right)\right\} \) rozpina przestrzeń \( V_m \), która jest niezmiennicza, ponieważ dla dowolnego elementu \( h \in \mathbb{Z}_p \) i dowolnego elementu \( v \in V_m \) zachodzi \( S_h(v) \in V_m \).
Ustaw h = 0, aby zobaczyć, że tylko wtedy wynik jest czystym cosinusem.
Reprezentacja w Sieciach
Mając analitycznie wyprowadzoną reprezentację grup cyklicznych, możemy przejść do głównego problemu naszej analizy: czy sieci neuronowe samoistnie odkrywają i kodują te struktury w podobny sposób. Istotnych wniosków w tym zakresie dostarcza publikacja Andreya Gromova „Grokking modular arithmetic”[3], w której autor bada to zagadnienie w kontekście dynamiki opóźnionej generalizacji. W niniejszej pracy odtwarzamy jego konstrukcyjny argument dotyczący struktury rozwiązania, świadomie pomijając wątek grokkingu jako wykraczający poza zakres tego artykułu. Interesuje nas wyłącznie mechanika formowania się reprezentacji, nie tempo jej powstawania w czasie.
Rozważmy dwuwarstwowy perceptron bez obciążenia (biasu), zdefiniowany w parametryzacji średniego pola (ang. mean-field parametrization) jako:
gdzie:
- \( N \) jest szerokością warstwy ukrytej, a \( k \in \{1, \dots, N\} \) indeksuje jej poszczególne neurony,
- \( D \) oznacza wymiar wejścia,
- \( q \in \{0, \dots, p - 1\} \) indeksuje klasy wyjściowe (reszty modulo \( p \)),
- \( \phi \) jest nieliniową funkcją aktywacji.
Macierze wag inicjalizowane są standardowym rozkładem normalnym: \( W^{(1)}, W^{(2)} \sim \mathcal{N}(0, 1) \).
Autor bada dodawanie modulo \( p \) w kontekście zadania klasyfikacji. Przyjmuje ustaloną liczbę (niekoniecznie pierwszą) \( p \) oraz zbiór \( \mathbb{Z}_p = \{0, 1, \dots, p - 1\} \). Każda liczba wejściowa (\( a \) oraz \( b \)) jest kodowana w postaci wektora one-hot o długości \( p \). Oznacza to, że wejście modelu ma wymiar \( 2p \) (złożenie dwóch wektorów \( p \)-elementowych), a wyjście ma wymiar \( p \) z funkcją softmax.
W celach analitycznych przyjmujemy nieliniowość kwadratową \( \phi(u) = u^2 \). Wybór ten zachowuje nieliniowy charakter sieci, a jednocześnie pozwala na ścisłe, algebraiczne analizowanie interakcji między wagami bez konieczności aproksymacji szeregiem Taylora (co dla funkcji ReLU wymaga pośredniego przejścia przez jej gładką aproksymację, np. funkcję Swish \( x \cdot \sigma (\beta x) \), zbieżną do ReLU przy \( \beta \rightarrow \infty \) ). W takiej konfiguracji sieć można bardzo prosto przedstawić algebraicznie:
gdzie \( (\cdot)^{\odot 2} \) oznacza podniesienie każdego elementu wektora do kwadratu (kwadrat Hadamarda).
Analiza Warstwy \( W^{(1)} \)
Na wejściu sieci podajemy dwie liczby, \( a \) i \( b \), z których każda reprezentowana jest jako wektor typu one-hot. Oznacza to, że macierz wag pierwszej warstwy, \( W^{(1)} \), możemy naturalnie podzielić na dwa pionowe bloki: \( W_A^{(1)} \) odpowiadający za przetwarzanie wejścia \( a \) oraz \( W_B^{(1)} \) dla wejścia \( b \).
Przy takim podziale możemy łatwo zidentyfikować pojedyncze wagi: zmienna \( W_{A, k, a}^{(1)} \) to waga łącząca aktywny element \( a \)-tego wejścia z \( k \)-tym neuronem w warstwie ukrytej (analogicznie dla bloku \( B \)).
Ponieważ wektor one-hot działa jak selektor (wybiera jedną wartość, a resztę zeruje), możemy pominąć pełne mnożenie macierzowe. Stan \( k \)-tego neuronu przed aktywacją redukuje się do przeskalowanej sumy tych dwóch wybranych wag:
Dowód
Wektor wejściowy \( x \in \mathbb{R}^{2p} \) to konkatenacja dwóch wektorów one-hot dla liczb \( a, b \in \{0, \dots, p - 1 \} \):
gdzie \( e_a \in \mathbb{R}^p \) posiada wartość \( 1 \) na pozycji \( a \) i \( 0 \) na pozostałych (analogicznie \( e_b \)).
Macierz wag pierwszej warstwy \( W^{(1)} \in \mathbb{R}^{N \times 2p} \) składa się z 2 niezależnych bloków wielkości \( N \times p \):
Podstawiając ten podział do wzoru na aktywację liniową warstwy ukrytej, otrzymujemy:
Iloczyn macierzy z wektorem jednostkowym \( W_A^{(1)} e_a \) to operacja wybrania \( a \)-tej kolumny macierzy \( W_A^{(1)} \). Przechodząc z zapisu wektorowego do poziomu pojedynczego, \( k \)-tego neuronu, uzyskujemy bezpośrednio:
Stosując przyjętą funkcję aktywacji \( \phi(u) = u^2 \), wyjście \( k \)-tego neuronu przyjmuje postać:
Rozpisując powyższy kwadrat ze wzoru skróconego mnożenia:
Następnym krokiem jest podstawienie założenia o częstotliwościach Fouriera (\( W_{A,k,a} \propto \cos(\omega_m a + \phi_k) \) i \( W_{B,k,b} \propto \cos(\omega_m b + \psi_k) \)):
gdzie \( \omega_k = \frac{2\pi m_k}{p} \), a \( c_k \) jest amplitudą składowej.
Rozpisujemy kwadrat sumy:
Stosujemy tożsamości trygonometryczne:
- \( \cos^2(\alpha) = \dfrac{1 + \cos(2\alpha)}{2} \)
- \( 2\cos(\alpha)\cos(\beta) = \cos(\alpha + \beta) + \cos(\alpha - \beta) \)
Podstawiając je do wzoru:
Kluczowa jest tu implikacja tej nieliniowości. Podniesienie do kwadratu sumy sygnałów sprawiło, że w wyrazie mieszanym otrzymaliśmy \( \cos\big(\omega_k(a+b) + \phi_k + \psi_k\big) \), który w swoim argumencie fizycznie realizuje dodawanie wejściowych liczb \( a \) oraz \( b \).
Analiza Warstwy \( W^{(2)} \)
Pełna aktywacja wyjściowa \( q \)-tego logitu (dla przewidywanej klasy \( q \in \mathbb{Z}_p \)) ma postać:
Dla wyjścia odpowiadającego klasie \( q \in \{0, 1, \dots, p-1\} \), waga łącząca \( k \)-ty neuron z \( q \)-tym logitem charakteryzuje się niezależną, wyuczalną fazą, którą oznaczymy jako \( \xi_k \):
Podstawiając \( W_{q, k}^{(2)} \) oraz \( z_k^{(1)}(a, b) \), otrzymujemy:
Aby rozwinąć ten iloczyn na pojedyncze składowe uśredniane przez sieć, wymnażamy człon \( \cos(\omega_k q + \xi_k) \) przez każdy element w nawiasie kwadratowym, stosując tożsamość trygonometryczną:
Pełne rozwinięcie
W rozwiniętym równaniu interesuje nas głównie część z wyrażeniem
Aby pozbyć się fazy, przyjmujemy \( \xi_k = \psi_k + \phi_k \), otrzymując
Pełne rozwinięcie
Kolejną kwestią jest zbadanie, co dzieje się z pozostałymi wyrażeniami. Wszystkie te wyrazy mają w członie \( \cos \) przesunięcie fazowe \( \phi_k, \psi_k \). Fazy te są inicjalizowane losowo i zachowują się jak niezależne zmienne losowe.
W konsekwencji, przy sumowaniu po dużej szerokości warstwy ukrytej \( N \), wartości tych zmiennych ulegają interferencji destruktywnej. Zgodnie z Centralnym Twierdzeniem Granicznym (CTG) oraz mechaniką błądzenia losowego, suma takich wyrazów rośnie w tempie \( \mathcal{O}(\sqrt{N}) \). Ponieważ przed całym nawiasem znajduje się czynnik normalizujący zawierający \( 1/N \), ostateczny wkład tych ośmiu wyrazów do logitu skaluje się jako \( \mathcal{O}(1/\sqrt{N}) \) i statystycznie dąży do zera dla dużych sieci.
Jedynym składnikiem, który nie ulega wygaszeniu, jest wyraz całkowicie wolny od zmiennych losowych:
Dla każdego neuronu \( k \) nastrojonego na daną częstotliwość \( \omega_k \), sygnał ten jest deterministyczny i dodaje się konstruktywnie. Jego suma rośnie w tempie \( \mathcal{O}(N) \), co w połączeniu z normalizacją \( 1/N \) przed nawiasem daje stabilną wartość rzędu \( \mathcal{O}(1) \).
Po odrzuceniu wygasających członów szumowych, wynik uśredniania redukuje całe, wieloliniowe wyrażenie do pojedynczego sumowania. Włączając mnożnik \( \frac{1}{2} \) do stałej przed sumą (\( \frac{1}{2pN}\cdot\frac{1}{2} = \frac{1}{4pN} \)), otrzymujemy ostateczną postać aktywacji wyjściowej logitu:
Zakładając, że neurony grupują się w klastry nastrojone na wspólne częstotliwości \( \frac{c_k^2 d_k}{4p} \approx \gamma \):
Przejście od sumy po neuronach do sumy po częstotliwościach zakłada, że wiele neuronów \( k \) nastrojonych jest na tę samą częstotliwość \( \omega_k \). Ich wkłady zostały tu zagregowane we wspólną amplitudę \( \gamma \), przypisaną danej częstotliwości \( m \), zamiast pojedynczemu neuronowi. Prowadzi to do zbioru \( S_{\text{active}} \subset \{0, 1, \dots, p-1\} \) częstotliwości Fouriera, na które nastrojone są neurony sieci. Konstrukcja nie przesądza, ile ani które częstotliwości zostaną wyselekcjonowane w procesie uczenia. Zależy to od architektury, funkcji aktywacji i przebiegu optymalizacji (analizy mechanistyczne w pracy[4] wskazują na przypadki zbieżności do zaledwie kilku składowych).
Składnik \( \cos\left( \frac{2\pi m}{p} (a + b - q) \right) \), traktowany jako funkcja \( q \), należy do rzeczywistej przestrzeni \( V_m \) rozpiętej przez parę \( \{\cos, \sin\} \), która, jak pokazaliśmy w pierwszej części analizy, jest dla \( m \neq 0 \) podprzestrzenią niezmienniczą względem cyklicznych operatorów przesunięcia, nierozkładalną nad \( \mathbb{R} \). Dodawanie \( a+b \) jest w niej realizowane jako przesunięcie fazowe. Konstrukcja ta pokazuje więc, że architektura perceptronu jest w stanie zrealizować dodawanie modulo \( p \) w bazie nierozkładalnych reprezentacji grupy \( \mathbb{Z}_p \), z dokładnością do członów zanikających jak \( \mathcal{O}(1/\sqrt{N}) \). Nie rozstrzyga natomiast, czy optymalizacja prowadzi do takiego rozwiązania. To pytanie empiryczne, któremu poświęcona jest część 2 (w trakcie opracowania).
Wytrenowana Sieć
Poniżej znajduje się wizualizacja rzeczywistej, wytrenowanej sieci MLP (\( \operatorname{FN}_0 : \mathbb{R}^{2p} \to \mathbb{R}^{142} \), \( x^2 \), \( \operatorname{FN}_2 : \mathbb{R}^{142} \to \mathbb{R}^{p} \), bez wyrazów wolnych) rozwiązującej dodawanie modulo \( p = 71 \). Prezentowana sieć została wytrenowana z użyciem AdamW, współczynnikiem uczenia \( 10^{-3} \), bez regularyzacji L2, na \( 100\% \) wszystkich par \( (a, b) \), przez \( 4\,000 \) epok. Pełny zbiór danych, celowo bez podziału na trening i test, ponieważ interesuje nas wyłącznie struktura rozwiązania, a nie dynamika dochodzenia do niego (jak wspomniano wyżej, świadomie pomijamy tu wątek grokkingu).
Ładowanie wag modelu…
References
- Chughtai, B., Chan, L., & Nanda, N. (2023). A Toy Model of Universality: Reverse Engineering how Networks Learn Group Operations. ICML.
- Serre, J-P. (1977). Linear Representations of Finite Groups. Graduate Texts in Mathematics, vol. 42. Springer.
- Gromov, A. (2023). Grokking modular arithmetic. arXiv:2301.02679.
- Nanda, N., Chan, L., Lieberum, T., Smith, J., & Steinhardt, J. (2023). Progress measures for grokking via mechanistic interpretability. ICLR.