Dane neuronowe: jak i dlaczego

Szorstki przewodnik po analizie danych na neuronach

Mózg robi naukę danych. Źródło: Brain autorstwa Matta Wassera z projektu rzeczownika

Cicho, ukradkiem kształtuje się nowy typ neurobiologa. Z niezliczonych szeregów teoretyków powstały zespoły neurobiologów, którzy zajmują się nauką na podstawie danych na temat aktywności neuronalnej, na rzadkich rozpryskach setek neuronów. Nie tworzenie metod analizy danych, choć wszyscy to robią. Nie gromadzenie tych danych, ponieważ wymaga innego, potężnego zestawu umiejętności. Ale neuronaukowcy wykorzystują całą gamę nowoczesnych technik obliczeniowych na tych danych, aby odpowiedzieć na pytania naukowe dotyczące mózgu. Pojawiła się nauka danych neuronowych.

Okazuje się, że jestem jednym z nich, tym klanem naukowców zajmujących się danymi neuronowymi. Przypadkowo. O ile wiem, tak powstają wszystkie dziedziny nauki: przypadkowo. Naukowcy podążają za nosem, zaczynają robić nowe rzeczy i nagle okazuje się, że na przyjęciach w kuchni jest ich niewielki tłum (ponieważ tam są napoje, w lodówce - naukowcy są sprytni). Oto mały manifest dotyczący nauki o danych neuronowych: dlaczego się pojawia i jak możemy to zrobić.

Powód jest taki sam, jak we wszystkich obszarach nauki, które wypluły naukę o danych: ilość danych wymyka się spod kontroli. Jeśli chodzi o naukę rejestrowania dużej liczby neuronów, ten potop danych ma swoje naukowe uzasadnienie. Mózgi działają poprzez przekazywanie wiadomości między neuronami. Większość z tych wiadomości ma postać drobnych impulsów elektryczności: nazywamy je skokami. Dlatego dla wielu wydaje się logiczne, że jeśli chcemy zrozumieć, jak działają mózgi (a kiedy one nie działają), musimy uchwycić wszystkie wiadomości przekazywane między wszystkimi neuronami. A to oznacza rejestrowanie jak największej liczby impulsów z tak wielu neuronów.

Mały mózg danio pręgowanego ma około 130 000 neuronów i co najmniej 1 milion połączeń między nimi; mózg trzmiela ma około miliona neuronów. Możesz zobaczyć, jak to wymknie się spod kontroli bardzo szybko. W tej chwili nagrywamy gdzieś od kilkudziesięciu do kilkuset neuronów jednocześnie ze standardowym zestawem. Na granicy są ludzie, którzy rejestrują kilka tysięcy, a nawet kilka dostają dziesiątki tysięcy (aczkolwiek te nagrania wychwytują aktywność neuronów z częstotliwościami znacznie wolniejszymi niż neurony wysyłają impulsy).

System szaleństwa nazywamy neuronauką: neuronauka do badań neuronów; systemy do odważnego nagrywania z więcej niż jednego neuronu na raz. A dane są niezwykle skomplikowane. To, co mamy, to dziesiątki tysięcy jednocześnie rejestrowanych szeregów czasowych, z których każdy jest strumieniem zdarzeń szczytowych (rzeczywistych szczytów lub ich pośrednich pomiarów) z jednego neuronu. Z definicji nie są stacjonarne, ich statystyki zmieniają się w czasie. Tempo ich działania rozłożyło się na wiele rzędów wielkości, od cichej kontemplacji mnicha po „zestaw perkusyjny w tunelu aerodynamicznym”. A ich wzorce aktywności wahają się od zegarowej regularności, przez jąkanie i bełkotanie, na przemian między atakami manii i atakami wyczerpania.

Połącz to z zachowaniem zwierzęcia, z którego zarejestrowałeś neurony. To zachowanie to setki prób wyborów; lub ruchy ramion; lub trasy prowadzone przez środowisko. Lub ruch narządu zmysłu lub cała postawa muskulatury. Powtórz dla wielu zwierząt. Prawdopodobnie wiele obszarów mózgu. A czasem całe mózgi.

Nie mamy podstawowej prawdy. Nie ma właściwej odpowiedzi; nie ma etykiet szkoleniowych dla danych, z wyjątkiem zachowania. Nie wiemy, jak mózg koduje zachowanie. Możemy więc robić rzeczy z etykietami behawioralnymi, ale prawie zawsze wiemy, że to nie jest odpowiedź. Są tylko wskazówkami do „odpowiedzi”.

System neuronauki jest więc bogatym placem zabaw dla tych, którzy mogą połączyć swoją wiedzę z zakresu neuronauki ze swoim know-how w zakresie analizy danych. Powstaje nauka o danych neuronowych.

Jak to jest - lub może być - zrobione? Oto szorstki przewodnik. Podstawą naukowca zajmującego się danymi neuronowymi jest zadawanie naukowych pytań o dane z neuronauki systemowej; zapytać: w jaki sposób wszystkie te neurony współpracują ze sobą, aby wykonywać swoje zadania?

Istnieją około trzy sposoby, aby odpowiedzieć na to pytanie. Możemy zobaczyć te trzy sposoby, patrząc na zgodność między ustalonymi klasami problemów w uczeniu maszynowym a wyzwaniami obliczeniowymi w neuronauce systemowej. Zacznijmy od przyjrzenia się temu, z czym musimy pracować.

Mamy pewne dane z n neuronów, które zebraliśmy w czasie. Zlepimy je w matrycę, którą nazwiemy X - tyle kolumn, ile neuronów, i tyle wierszy, ile zarejestrowanych punktów czasowych (gdzie od nas zależy, jak długo potrwa „punkt czasowy”: możemy zrób to krótko i po prostu każ każdemu wpisowi zapisać 1 dla wartości szczytowej, a w przeciwnym razie 0. 0. Możemy też zrobić to długo, a każdy wpis rejestruje liczbę wartości szczytowych w tym czasie. W tym czasie na świecie dzieją się rzeczy - w tym także to, co robi ciało. Połączmy to wszystko w macierz, którą nazwiemy S - tyle kolumn, ile jest elementów w świecie, na którym nam zależy, i tyle wierszy, ile punktów czasowych, które zarejestrowaliśmy dla tych funkcji.

Tradycyjnie uczenie maszynowe polega na budowaniu trzech klas modeli o stanie świata i dostępnych danych: generatywnej, dyskryminacyjnej i gęstości. Jako przybliżony przewodnik, ta tabela pokazuje, w jaki sposób każda klasa odpowiada fundamentalnym pytaniom w neuronauce systemowej:

1 / Modele gęstości P (X): czy w szczytach jest struktura? Brzmi nudno. Ale w rzeczywistości jest to klucz do wielkich badań neuronauki, w których chcemy poznać wpływ czegoś (leku, zachowania, snu) na mózg; w którym pytamy: jak zmieniła się struktura aktywności neuronowej?

Nagrywając kilka neuronów, możemy odpowiedzieć na to na trzy sposoby.

Po pierwsze, możemy kwantyfikować ciąg szczytowy każdego neuronu, mierząc statystyki każdej kolumny X, na przykład szybkość wzrostu. A potem zapytaj: jaki jest model P (X) dla tych statystyk? Możemy grupować te statystyki, aby znaleźć „typy” neuronu; lub po prostu dopasuj modele do całej ich wspólnej dystrybucji. Tak czy inaczej, mamy jakiś model struktury danych przy ziarnistości pojedynczych neuronów.

Po drugie, możemy tworzyć generatywne modele aktywności całej populacji, używając rzędów X - wektorów chwilowej aktywności całej populacji. Takie modele zazwyczaj mają na celu zrozumienie, ile części struktury X można odtworzyć na podstawie zaledwie kilku ograniczeń, niezależnie od tego, czy są one rozkładem liczby wektorów posiadających liczbę szczytów; lub korelacje parami między neuronami; lub ich kombinacje. Są one szczególnie przydatne do ćwiczenia, jeśli w aktywności populacji występuje jakiś specjalny sos, jeśli jest to coś więcej niż zbiorowa aktywność zestawu niezależnych lub nudnych prostych neuronów.

Po trzecie, możemy przyjąć stanowisko, że aktywność neuronowa w X jest jakąś wysokowymiarową realizacją przestrzeni o małych wymiarach, gdzie liczba wymiarów D << n. Zazwyczaj rozumiemy przez to: niektóre neurony w X są skorelowane, więc nie musimy używać całego X do zrozumienia populacji - zamiast tego możemy zastąpić je znacznie prostszą reprezentacją. Możemy grupować szeregi czasowe bezpośrednio, więc rozkładając X na zbiór N mniejszych macierzy od X_1 do X_N, z których każda ma (względnie) silne korelacje, a zatem można je traktować niezależnie. Lub możemy użyć pewnego rodzaju podejścia do redukcji wymiarów, takiego jak Analiza głównych składników, aby uzyskać mały zestaw szeregów czasowych, z których każdy opisuje jedną dominującą formę zmienności aktywności populacji w czasie.

Możemy zrobić więcej niż to. Powyższe zakłada, że ​​chcemy zastosować redukcję wymiarów do zwinięcia neuronów - że zastosujemy redukcję do kolumn X. Ale równie łatwo moglibyśmy zwinąć czas, stosując redukcję wymiarów do rzędów X. Zamiast pytać, czy aktywność neuronów jest zbędna , to pytanie, czy różne momenty w czasie mają podobne wzorce aktywności neuronalnej. Jeśli jest ich tylko kilka, wyraźnie widać, że dynamika zarejestrowanych neuronów jest bardzo prosta.

Możemy tu również wprowadzać podejścia dynamiczne. Tutaj staramy się dopasowywać proste modele do zmian X w czasie (tj. Mapowanie z jednego wiersza do następnego) i używamy tych modeli do kwantyfikacji rodzajów dynamiki X - używając terminów takich jak „atraktor”, „separatrix”, „ węzeł siodłowy ”,„ rozwidlenie widłami ”i„ zawalenie się arsenału ”(tylko jeden z nich nie jest prawdziwy). Można słusznie argumentować, że tak dopasowane modele dynamiczne to wszystkie modele gęstości P (X), ponieważ opisują one strukturę danych.

Do diabła, moglibyśmy nawet spróbować dopasować cały dynamiczny model obwodu neuronowego, wiązkę równań różniczkowych opisujących każdy neuron do X, tak aby nasz model P (X) był następnie próbkowany za każdym razem, gdy uruchamiamy model z różnych warunków początkowych .

Za pomocą tych modeli gęstości możemy dopasować je osobno do aktywności neuronowej zarejestrowanej w szeregu różnych stanów (S1, S2,…, Sm) i odpowiedzieć na pytania: jak zmienia się struktura populacji neuronów między snem a budzisz się? Lub podczas rozwoju zwierzęcia? Lub w trakcie uczenia się zadania (gdzie S1 może być próbą 1, a S2 próbą 2; lub S1 to sesja 1 i S2 sesja 2 lub wiele ich kombinacji). Możemy również zapytać: ile wymiarów obejmuje aktywność neuronu? Czy wymiary różnią się między poszczególnymi regionami kory? I czy ktoś widział moje klucze?

2 / Modele generacyjne P (X | S): co powoduje skok? Teraz rozmawiamy. Rzeczy takie jak modele liniowo-nieliniowe lub uogólnione modele liniowe. Zazwyczaj modele te są stosowane do pojedynczych neuronów, do każdej kolumny X. Za ich pomocą dopasowujemy model, który wykorzystuje stan świata S jako dane wejściowe i wydziela serię neuronowych aktywności, która możliwie ściśle odpowiada aktywności neuronu. Następnie sprawdzając wagę przypisaną każdej funkcji S w odtwarzaniu aktywności neuronu, możemy ustalić, o co ten neuron wydaje się cholernie dbać.

Możemy chcieć wybrać model, który ma pewną elastyczność w tym, co liczy się jako „stan świata”. Możemy uwzględnić własną aktywność neuronu jako cechę i sprawdzić, czy zależy mu na tym, co robił w przeszłości. W przypadku niektórych rodzajów neuronów odpowiedź brzmi „tak”. Rozerwanie może wiele zabrać z neuronu i musi się położyć na chwilę odpoczynku, zanim znów zacznie działać. Możemy również myśleć szerzej i uwzględnić resztę populacji - resztę X - jako część stanu świata S, gdy neuron strzela. W końcu neurony czasami wpływają na strzelanie do siebie nawzajem, a przynajmniej tak mi się wydaje. Istnieje więc niewielka szansa, że ​​odpowiedź neuronu w korze wzrokowej jest nie tylko napędzana przez orientację krawędzi w świecie zewnętrznym, ale może również zależeć od tego, co robią 10000 neuronów korowych łączących się z nim. Następnie uczymy się najbardziej wpływowych neuronów w populacji.

Nie musimy stosować tych modeli generatywnych do pojedynczych neuronów. Możemy w równym stopniu zastosować je do naszych modeli gęstości; możemy zapytać, co każdy klaster lub wymiar koduje w świecie. Lub, jak niektórzy tutaj zrobili, możemy użyć samego modelu gęstości jako stanu świata i zapytać, jakie cechy tego modelu neurony za cholerą go obchodzą.

Rodzaje pytań, na które możemy odpowiedzieć za pomocą tych modeli generatywnych, są dość oczywiste: jaka kombinacja cech najlepiej przewiduje odpowiedź neuronu? Czy neurony są selektywne tylko dla jednej rzeczy? Jak neurony wpływają na siebie?

3 / Modele dyskryminujące P (S | X): jakie informacje niesie skok? Jest to kluczowe pytanie w neuronauce systemowej, ponieważ jest to wyzwanie, przed którym stoją wszystkie neurony znajdujące się poniżej naszej zarejestrowanej populacji - wszystkie neurony, które otrzymują dane wejściowe z neuronów, które zarejestrowaliśmy i wypełnione w naszej macierzy X. Dla tych neuronów niższych muszą wywnioskować, co muszą wiedzieć o świecie zewnętrznym opartym wyłącznie na skokach.

Tutaj możemy użyć standardowych klasyfikatorów, które mapują dane wejściowe na etykiety. Możemy użyć wierszy X jako danych wejściowych, z których każdy jest migawką aktywności populacji, i spróbować przewidzieć jedną, kilka lub wszystkie cechy w odpowiednich wierszach S. Być może z pewnym opóźnieniem, więc używamy wiersza X_t do przewidzieć stan S_t-n, który był n krokami w przeszłości, jeśli jesteśmy zainteresowani tym, jak populacje kodują stany, które są wprowadzane do mózgu; lub możemy użyć wiersza X_t, aby przewidzieć stan S_t + n, który jest n krokami w przyszłości, jeśli jesteśmy zainteresowani tym, jak populacje kodują pewien wpływ mózgu na świat. Podobnie jak aktywność w korze ruchowej, która ma miejsce przed wpisaniem teraz każdej litery.

Tak czy inaczej, bierzemy niektóre (ale nie wszystkie, ponieważ nie przeciążamy) wiersze X i trenujemy klasyfikator, aby znaleźć najlepsze możliwe odwzorowanie X na odpowiedni fragment S. Następnie testujemy klasyfikator pod kątem tego, jak dobrze potrafi przewidzieć resztę S z odpowiedniej reszty X. Jeśli masz wyjątkowo szczęście, twoje X i S mogą być tak długie, że będziesz w stanie podzielić je na pociąg, przetestować i zweryfikować zestawy. Ostatni przechowuj w zamkniętym pudełku.

Możemy oczywiście użyć tak potężnego klasyfikatora, jak tylko chcemy. Od regresji logistycznej, poprzez metody bayesowskie, po stosowanie 23-warstwowej sieci neuronowej. Zależy to raczej od tego, czego chcesz od odpowiedzi, i kompromisu między interpretowalnością a mocą, z którą czujesz się komfortowo. Moje pisma gdzie indziej wyjaśniły, którą stronę tego kompromisu preferuję. Ale cieszę się, że udowodniono mi błąd.

Modele neuronów kodujących są wnikliwe, ale dotykają niektórych starych i głębokich filozoficznych problemów. Testowanie kodowania przy użyciu modelu dyskryminacyjnego zakłada, że ​​coś w dalszym ciągu próbuje dekodować S z aktywności neuronowej. Są z tym dwa problemy. Neurony nie dekodują; neurony przyjmują impulsy jako dane wejściowe i wyjściowe własne impulsy. Raczej ponownie kodują, z jednego zestawu skoków na inny zestaw skoków: być może mniej lub wolniej; może więcej lub szybciej; może ze stałego strumienia w oscylację. Modele dyskryminujące dokładniej pytają, jakie informacje przekodowują nasze neurony. Ale nawet jeśli weźmiemy ten pogląd, istnieje głębszy problem.

Z nielicznymi wyjątkami nie ma czegoś takiego jak „neuron dolny”. Neurony, które zarejestrowaliśmy w X, są częścią misternie okablowanego mózgu, pełnego niekończących się pętli; ich wynik wpływa na ich własny wkład. Co gorsza, niektóre neurony w X znajdują się poniżej innych: niektóre z nich wprowadzają bezpośrednio do innych. Ponieważ, jak wspomniano powyżej, neurony wpływają na siebie.

Zgrubny, być może przydatny, manifest nauki o danych neuronowych. Jest niekompletny; bez wątpienia coś powyżej jest nie tak (odpowiedzi na pocztówce na zwykły adres). Powyżej jest próbą zsyntetyzowania pracy grupy laboratoriów o bardzo różnych zainteresowaniach, ale wspólnym dążeniem do korzystania z tego rodzaju modeli na dużych zestawach danych neuronowych w celu odpowiedzi na głębokie pytania dotyczące pracy mózgu. Wiele z nich to laboratoria danych, zespoły, które analizują dane eksperymentalne, aby odpowiedzieć na własne pytania; wymienić tylko kilka - Johnathan Pillow; Christian Machens; Konrad Kording; Kanaka Rajan; John Cunningham; Adrienne Fairhall; Philip Berens; Cian O'Donnell; Il Memming Park; Jakob Macke; Gasper Tkacik; Oliver Marre. Um, ja. Inne to eksperymentalne laboratoria o silnych skłonnościach do analizy danych: Anne Churchland; Mark Churchland; Nicole Rust; Krishna Shenoy; Carlos Brody; wielu innych przepraszam za brak nazewnictwa.

Są konferencje, na których ten rodzaj pracy jest mile widziany, a nawet zachęcany. Czasopismo dotyczące nauki o danych neuronowych jest w drodze. Coś się buduje. Wejdź, dane są piękne *.

* tak, musiałem odnieść się do danych jako liczby pojedynczej, aby ten gówniany żart zadziałał. Fakt, że piszę ten przypis, aby to wyjaśnić, da ci pewne pojęcie o skrupulatnej dbałości o szczegóły, których oczekują naukowcy od danych neuronowych.

Chcieć więcej? Dołącz do nas w The Spike

Twitter: @markdhumphries