Automatyczne różniczkowanie, czyli technika, która zrewolucjonizowała rozwój modeli uczenia maszynowego, pozwoliła na eliminację skomplikowanych obliczeń gradientów, które wcześniej były uzależnione od konkretnej aplikacji. Dzięki temu podejściu możliwe stało się obliczanie produktów macierzy Jakobian-wektor oraz wektor-Jakobian, bez konieczności tworzenia pełnej macierzy Jakobiana. Jest to kluczowe dla optymalizacji modeli naukowych oraz probabilistycznych w uczeniu maszynowym, które w przeciwnym razie wymagałyby kolumny dla każdego parametru w sieci neuronowej. Obecnie, dzięki tej metodzie, każdy może tworzyć algorytmy, które operują na macierzach o dużych rozmiarach, bez konieczności przechowywania pełnych macierzy. Mimo to, różniczkowanie na potrzeby algebry liniowej, szczególnie pod kątem produktów Jakobian-wektor, pozostaje stosunkowo mało zbadane, a tradycyjne metody mają pewne ograniczenia.
Wyzwania współczesnych metod
Obecnie stosowane techniki oceny funkcji związanych z dużymi macierzami opierają się głównie na iteracjach Lanczosa i Arnoldiego, które wymagają dużej mocy obliczeniowej i nie są zoptymalizowane pod kątem różniczkowania. Modele generatywne zazwyczaj opierają się na wzorze zmiany zmiennych, w którym kluczową rolę odgrywa logarytmiczny wyznacznik macierzy Jakobiana sieci neuronowej. Dla efektywnej optymalizacji parametrów modeli w procesach Gaussa konieczne jest obliczanie gradientów funkcji log-probabilistycznych, które obejmują wiele dużych macierzy kowariancji. Zastosowanie metod, które łączą estymację losowych śladów z iteracją Lanczosa, pomaga przyspieszyć proces konwergencji. Część z najnowszych prac łączy estymację śladu ze stochastycznymi iteracjami Lanczosa, co pozwala uzyskać zgodność z gradientami logarytmów wyznaczników. Jednakże w odróżnieniu od procesów Gaussa, wcześniejsze badania nad aproksymacją Laplace’a dążyły do uproszczenia macierzy Gaussa-Newtona (GGN) poprzez zastosowanie tylko wybranych grup wag sieci lub technik algebraicznych, takich jak przybliżenia diagonalne lub niskorzędowe. Te metody ułatwiają automatyczne obliczanie wyznaczników logarytmicznych, tracą jednak istotne informacje o korelacjach między wagami.
Nowe podejście do różniczkowania funkcji macierzy
Aby zniwelować te wyzwania i jako krok w kierunku rozwijania różniczkowania algebry liniowej, grupa badaczy zaproponowała nową metodę, która umożliwia automatyczne różniczkowanie funkcji macierzy w sposób „bezmacierzowy”. Zamiast przechowywać pełne macierze, proponowana metoda operuje poprzez iloczyny macierzy i wektorów, co znacząco zmniejsza zapotrzebowanie na pamięć.
Badacze z Politechniki Duńskiej (Technical University of Denmark) oraz z Kongens Lyngby przeprowadzili szczegółowe badania nad nowymi systemami sprzężonymi dla iteracji Lanczosa i Arnoldiego. Następnie zaimplementowali te algorytmy w popularnym frameworku JAX, co pozwoliło na porównanie ich wydajności z innymi nowoczesnymi narzędziami, takimi jak Diffrax do różniczkowania równań różniczkowych oraz GPyTorch do selekcji modeli Gaussian Processes. Nowa metoda przewyższa tradycyjne techniki faktoryzacji przy kalibracji sieci neuronowych w podejściu bayesowskim.
Zastosowanie metod bezmacierzowych
Nowa metoda opiera się na algorytmach wykorzystujących iteracje Lanczosa i Arnoldiego, które umożliwiają dekompozycję macierzy w sposób bezmacierzowy, co prowadzi do powstawania mniejszych, bardziej uporządkowanych macierzy, które są przybliżeniami dla większych struktur. Dzięki temu łatwiejsze staje się ewaluowanie funkcji macierzy, a także obliczanie pochodnych funkcji związanych z dużymi macierzami, bez konieczności tworzenia pełnych macierzy Jakobiana.
Implementacja w JAX zapewnia wysoką wydajność i skalowalność, co czyni tę metodę szczególnie przydatną przy pracy z modelami uczenia maszynowego na dużą skalę. Metoda ta jest porównywalna do metody sprzężonej, a nowy algorytm okazuje się szybszy niż tradycyjna metoda backpropagacji, oferując jednocześnie podobne korzyści pod względem stabilności obliczeń.
Praktyczne testy na trzech problemach z uczenia maszynowego
Kod oparty na tej metodzie został przetestowany na trzech złożonych problemach w obszarze uczenia maszynowego, aby porównać jego wyniki z obecnie stosowanymi metodami. Testy objęły modele Gaussian Processes, rozwiązania równań różniczkowych oraz bayesowskie sieci neuronowe. Wyniki badań pokazują, że integracja iteracji Lanczosa i metod Arnoldiego znacząco zwiększa efektywność i dokładność w modelowaniu uczenia maszynowego. Nowe podejście otwiera też nowe możliwości w zakresie trenowania, testowania i kalibracji modeli, co jednocześnie podkreśla, jak kluczowe są zaawansowane techniki matematyczne dla poprawy funkcjonowania modeli uczenia maszynowego w różnorodnych dziedzinach.
Podsumowanie i perspektywy na przyszłość
Proponowane rozwiązanie rozwiązuje problemy, przed którymi stają tradycyjne metody, eliminując konieczność tworzenia dużych macierzy w celu obliczania różnic funkcji. Nowa metoda poprawia również efektywność i dokładność modeli probabilistycznych, jednocześnie eliminując trudności obliczeniowe związane z dotychczasowymi technikami. Mimo wielu zalet, metoda ta nadal ma pewne ograniczenia, takie jak trudności z różniczkowaniem w trybie „forward” oraz założenie, że zortogonalizowana macierz zmieści się w pamięci.
Przyszłe prace mogą rozszerzyć ten system poprzez adresowanie tych ograniczeń oraz eksplorowanie zastosowań w różnych dziedzinach, zwłaszcza tych, które wymagają adaptacji do macierzy o wartościach zespolonych.