Jak wyglądałaby nowa „zróżnicowalny komputer neuronowy” Deepminda?

12

Deepmind właśnie opublikował artykuł o „różniczkowalnym komputerze neuronowym” , który zasadniczo łączy sieć neuronową z pamięcią .

Chodzi o to, aby nauczyć sieć neuronową tworzenia i przywoływania użytecznych, wyraźnych wspomnień dla określonego zadania. Uzupełnia to możliwości sieci neuronowej, ponieważ sieci NN przechowują wiedzę niejawnie tylko w wagach, a informacje używane do pracy nad jednym zadaniem są przechowywane tylko podczas aktywacji sieci i szybko się pogarszają wraz z dodawaniem kolejnych informacji. ( LSTM to jedna z prób spowolnienia degradacji pamięci krótkoterminowych, ale nadal tak się dzieje).

Teraz, zamiast utrzymywać niezbędne informacje w aktywacji, prawdopodobnie przechowują adresy gniazd pamięci dla określonych informacji w aktywacji, więc powinny one również podlegać degradacji. Moje pytanie brzmi: dlaczego to podejście powinno być skalowane. Czy nieco większa liczba informacji specyficznych dla zadania nie powinna ponownie przytłaczać zdolności sieci do utrzymywania adresów wszystkich odpowiednich gniazd pamięci podczas aktywacji?

BlindKungFuMaster
źródło

Odpowiedzi:

3

Badanie architektury DNC rzeczywiście wykazuje wiele podobieństw do LSTM . Zastanów się nad diagramem w artykule DeepMind, do którego masz link:

Architektura DeepMind DNC

Porównaj to z architekturą LSTM (podziękowania dla ananth na SlideShare):

wprowadź opis zdjęcia tutaj

Istnieje kilka bliskich analogów tutaj:

  • Podobnie jak w LSTM, DNC wystąpi pewna przemiana od wejścia do ustalonych wielkości wektorów stan ( h i c w LSTM)
  • Podobnie DNC wykona pewną konwersję z tych wektorów stanu o stałej wielkości do potencjalnie dowolnie wydłużonego wyjścia (w LSTM wielokrotnie próbkujemy z naszego modelu, dopóki nie jesteśmy zadowoleni / model wskazuje, że skończyliśmy)
  • Zapomnieć i wejściowe bramy LSTM reprezentacji zapisu operacji w DNC ( „zapominając” jest w zasadzie tylko zerowanie lub częściowo zerowanie pamięci)
  • Wyjście brama LSTM reprezentuje odczytu operację w DNC

Jednak DNC jest zdecydowanie czymś więcej niż LSTM. Najwyraźniej wykorzystuje większy stan, który jest dyskretyzowany (adresowalny) na części; pozwala to uczynić zapomnianą bramę LSTM bardziej binarną. Rozumiem przez to, że stan niekoniecznie ulega erozji przez jakąś frakcję na każdym etapie, podczas gdy w LSTM (z funkcją aktywacji sigmoidalnej) jest to koniecznie. Może to zmniejszyć problem katastroficznego zapominania, o którym wspomniałeś, a zatem lepiej skalować.

DNC jest także nowatorski w łączach, które wykorzystuje między pamięcią. Jednak może to być bardziej marginalna poprawa dla LSTM, niż się wydaje, jeśli ponownie wyobrażamy sobie LSTM z kompletnymi sieciami neuronowymi dla każdej bramy zamiast tylko jednej warstwy z funkcją aktywacji (nazwij to super-LSTM); w tym przypadku możemy właściwie nauczyć się jakiejkolwiek relacji między dwoma gniazdami w pamięci z wystarczająco silną siecią. Chociaż nie znam specyfiki linków sugerowanych przez DeepMind, sugerują one w artykule, że uczą się wszystkiego po prostu propagując gradienty jak zwykła sieć neuronowa. Dlatego dowolna relacja, którą kodują w swoich łączach, powinna teoretycznie być możliwa do nauczenia przez sieć neuronową, a zatem wystarczająco silna „super-LSTM” powinna być w stanie ją uchwycić.

Biorąc to wszystko pod uwagę , często w głębokim uczeniu się często zdarza się, że dwa modele o tej samej teoretycznej zdolności ekspresji działają w praktyce zupełnie inaczej. Weźmy na przykład pod uwagę, że sieć rekurencyjna może być reprezentowana jako ogromna sieć przesyłania zwrotnego, jeśli ją po prostu rozwiniemy. Podobnie sieć splotowa nie jest lepsza niż waniliowa sieć neuronowa, ponieważ ma dodatkową zdolność do wyrażania; w rzeczywistości to ograniczenia nałożone na jego wagi sprawiają, że jest bardziej skuteczny. Zatem porównanie ekspresyjności dwóch modeli niekoniecznie jest uczciwym porównaniem ich wydajności w praktyce, ani dokładną prognozą tego, jak dobrze będą się skalować.

Jedno pytanie dotyczące DNC dotyczy tego, co się stanie, gdy zabraknie pamięci. Kiedy w klasycznym komputerze zabraknie pamięci i zostanie zażądany kolejny blok pamięci, programy zaczną się zawieszać (w najlepszym wypadku). Jestem ciekawy, jak DeepMind planuje rozwiązać ten problem. Zakładam, że będzie on polegał na pewnej inteligentnej kanibalizacji pamięci, która jest obecnie w użyciu. W pewnym sensie komputery robią to obecnie, gdy system operacyjny żąda, aby aplikacje zwolniły pamięć niekrytyczną, jeśli ciśnienie pamięci osiągnie określony próg.

eric.mitchell
źródło