Biologia a informatyka
Witam serdecznie wszystkich Czytelników z nowej dla mnie pozycji autora, a nie tylko komentatora na tym blogu.
Temat: biologia a informatyka, ale nie na poziomie technicznym, gdzie współpraca kwitnie, tylko na ogólno-filozoficznym, gdzie obie nauki czasem mijają się w pełnym pędzie, zmierzając w przeciwnych kierunkach.
Skojarzenie, o którym chcę napisać, przyszło mi do głowy, gdy przeczytałem w programie tegorocznego warszawskiego Festiwalu Nauki zapowiedź debaty „Biologia syntetyczna osądzona”. Nie chodzi tu mi o osąd, tylko o samą biologię syntetyczną, która, jak ją rozumiem, dąży do tworzenia nowych, dotąd nieistniejących organizmów w sposób w pełni kontrolowany przez badacza. Spodziewam się, że największym marzeniem jest zrobić komórkę z jak najmniejszej liczby komponentów, tak aby w pełni móc ogarnąć wszystkie ich interakcje. Poczuć się jej jak ongiś zegarmistrz, który przypatrywał się finezyjnej współpracy kółek zębatych w zegarku, wiedząc wszystko o wszystkich. To widać też w całym potężnym nurcie biologii molekularnej, w którym chodzi o identyfikowanie tych kółek zębatych, ich funkcji i wzajemnych zazębień.
Z drugiej strony informatyka, gdzie stworzenie prostego programu, nad którym ma się pełną kontrolę, nie jest wielkim wyzwaniem – uczymy tego studentów na pierwszym roku. Jednak w miarę wzrostu zapotrzebowań i skali problemów do rozwiązania, w naszym fachu jest silna potrzeba i tendencja do rezygnacji z postawy zegarmistrza. Coraz częściej (a w zastosowaniach praktycznych już prawie zawsze) informatyk tworząc program rezygnuje z pełnej wiedzy i kontroli nad nim.
W najprostszej wersji jest to absolutnie powszechne, praktycznie wszystkie kompilatory języków programowania dokonują różnych optymalizacji, tak że powstały kod wykonywalny nie do końca odpowiada temu, co programista napisał, choć ma dokładnie identyczną funkcjonalność.
Dalej idą deklaratywne języki programowania, w których programista już tylko w formalny sposób deklaruje co ma być obliczone, a strategię uzyskania tego wyniku pozostawia systemowi obliczeniowemu. Do tej kategorii należy Prolog oraz standardowy język zapytań systemów relacyjnych baz danych SQL.
Pisząc program współbieżny, składający się z wielu wątków wykonujących swoje obliczenia niezależnie, programista traci również kontrolę nad kolejnością wykonania wielu czynności. Jest ona oczywiście zdeterminowana w pojedynczym wątku, ale nie ma sposobu, aby pełną synchronizację osiągnąć pomiędzy czynnościami wykonywanymi w różnych wątkach. W rzeczywistości, w kolejnych testach twego samego programu, wykonywanych w identycznych warunkach, te kolejności mogą być inne. Teraz za nas rozstrzyga już nawet nie system realizujący nasze programy, ale przypadek. Programista musi się zadowolić instalowaniem w programach różnych zabezpieczeń, by poszczególne wątki nie szkodziły sobie nawzajem.
Stosujemy też szeroko algorytmy heurytyczne i uczące się, które działają w sposób nie do końca dla nas przejrzysty. Popatrzmy na sztuczne sieci neuronowe, o których wiele osób pewnie słyszało. Sieć konstruuje się z wielkiej liczby dość systematycznie powiązanych, bardzo prostych sztucznych neuronów i tu w zasadzie kończy się rola twórcza programisty. Potem podaje jej się pewną liczbę przykładów danych wejściowych z podaną oczekiwaną reakcją i tu twórca jeszcze ma aktywną rolę, wybierając strategię uczenia sieci i przykłady, ale daleko mu już do pełnej wiedzy, co się „w środku” dzieje. Sieć uczy się tych przykładów, czyli gromadzi w swoich danych wewnętrznych wiedzę o nich, by w przyszłości poprawnie reagować na nowe zadania, inne od tych szkoleniowych. Okazuje się, że sieci neuronowe zdolne są do generalizacji, a także do uaktualniania swojej wiedzy kosztem wcześniej poznanych wzorców. Co najciekawsze, wiedza zgromadzona przez sieć jest absolutnie nieczytelna dla człowieka, który może oczywiście użyć jej jako narzędzia, ale nie może (w obecnym stanie wiedzy) przełożyć jej na w pełni kontrolowalny algorytm realizujący to samo zadanie.
Mamy więc dwa potężne nurty: biologiczny, żeby uprościć, poddać kontroli i zrozumieć, oraz biegnący w przeciwnym kierunku informatyczny, żeby zrezygnować z pełnego zrozumienia i kontroli w zamian za sprawne działanie. Pozdrawiam wszystkich płynących w przeciwnym kierunku!
Jerzy Tyszkiewicz
Fot. Hustvedt (CC SA)
Komentarze
Witam! 🙂
jk
Witam na pokładzie 🙂
Gratuluję udanej zmiany roli.
I w biologii, a przynajmniej w biologii medycznej nurt ‚wazne zeby wiedziec co bedzie, niekoniecznie rozumiejac dlaczego’ jest silnie obecny.
Neurobiologow, na przyklad, juz dawno przeroslo rozumienie tego co odkrywaja, tylko czesc z nich jeszcze o tym nie wie, a ci co wiedza czesto nie chca sie do tego przyznac…
Myślę, że to o czym piszesz to po prostu ogólna różnica w nurtach: badania podstawowe/badania aplikacyjne. Tak jak zauważył med, w klinice ludzkiej często brakuje wiedzy, co robi dany lek (i rzeczywiście, najbardziej jaskrawym przykładem takiego leczenia po omacku jest psychiatria /choć przyznam szczerze, że niebardzo rozumiem stwierdzenie „neurobiologów już dawno przerosło rozumienie tego, co odkrywają” i będę bardzo wdzięczny za rozwinięcie).
Ale też nie zawsze: Patrz badania, w których bada się szczepy wyselekcjonowane pod kątem określonych cech – najczęściej nie wie się, czemu np. jeden szczep jest bardziej agresywny od drugiego, albo czemu ma jedną łąpkę bardziej niż drugą; Przeważnie wie się tyle, że stwierdzone różnice są uwarunkowane genetycznie (ale już nic bardziej konkretnego). Nie mniej, takie badania są już zgodne z założeniem „uprościć, poddać kontroli, zrozumieć” – tyle, że gdzieś trzeba sobie postawić granicę, jak szczegółowe dane chce się zgromadzić ;-).
Natomiast za przylepienie biologii etykietki „urprościć, poddać kontroli, zrozumieć”, to się, myślę, może kupa przedstawicieli innych nauk przyrodniczych obrazić – bo nie tylko biologia z metody naukowej żyje :o.
Tak czy tak, miło widzieć nowego autora na blogu :-). Witam z nowej dla siebie pozycji komentatora, a nie tylko czytelnika :-P.
bardzo ciekawy artykul , temat daje do myslenia
@ K z Ch
„przeroslo rozumienie tego co odkrywaja”
Cale obszary neurobiologii, tej od calego mozgu, zyja z odkryc typu „CLOCK disruption induces manic-like behavior in mice” to prawie autentyk lub „TIP-8 enhancement in the limbic forebrain disrupts social, but not spatial, memory in ferrets” – to zmyslilem. Odkrywanie takiej wiedzy nie prowadzi, niestety, do rozumienia pracy mozgu, a juz zwlaszcza ludzkiego. I prawie nikt nie ma takich zludzen. Padaja tu zwykle sformulowania „moze kiedys ktos dokona genialnej syntezy sprzecznych odkryc”, „moze superkomputery pomoga”, itp. Natomiast mozna z tego rodzaju odkryc dobrze zyc. Podobnie mozna zyc z odkrywania lekow na glowe majac tylko mgliste pojecie o tym, czy lek dzialajacy na receptory A, X, Y i dodatkowo na enzym Z dziala przeciwmaniakalnie dlatego, ze dziala na te receptory czy tez z zupelnie innego nieodkrytego jeszcze powodu. Wazne zeby dzialanie leku w modelu zwierzecym przeniesc z sukcesem na efekt kliniczny. Tu i tak owe receptory i enzym funkcjonuja inaczej, czasami wcale, a ich gestosc / aktywnosc moze zmieniac 100 czynnikow innych niz w modelu zwierzecym.
Neurobiolodzy od pojedynczych neurokomorek maja pewnie troche lepiej. Cos o tych komorkach w probowce faktycznie ‚wiedza’.
Ja mysle troche inaczej niz med. Dla mnie najciekawsze wlasnie sa obszary nauki ktore sa na wczesnym etapie, fenomenologicznym. Ciekawa obserwacja to punkt wyjscia, ktory prowadzi do oryginalnego pytania, nowych doswiadczen i odpowiedzi. Im mniej sa znane mechanizmy dla danego obszaru, tym lepiej dla mnie. Mniejsza konkurencja, wieksze ryzyko ale i wieksza potencjalna nagroda. Po co ganiac tlumy? Zostawiam to innym. Podsumowujac, dziedziny ktore frustruja powolnym postepem, sa najbardziej obiecujace.
Ciekawe, że właściwie wszyscy komentują o sytuacji w biologii. Mnie natomiast bardziej chodziło o sytuację w informatyce, gdzie dokonał się proces rezygnacji z pełnej wiedzy i kontroli. To rzadkie i zapewne trudne mentalnie, żeby mojąc taką możliwość, świadomie z niej zrezygnować w zamian za inne wartości. Zresztą ten proces odbywa się ciągle i ciągle od nowa. Informatyk pisząc program, tworzy go do zera i, póki jest on niewielki, panuje nad nim. Dopiero później złożoność programu i/lub jego komponentów powoduje utratę kontroli i pełnej wiedzy o jego działaniu.
Rezygnacja z pelnej znajomosci metodyki dzialania zlozonego ukladu dynamicznego nie jest niczym nieznanym. Kazdy kto prowadzi samochod czy uzywa komptera nie jest swiadom calego szeregu operacji, ktore prowadza do oczekiwanego rezultatu. Nie mniej funkcjonowanie takich urzadzen nie oznacza fundamentalnej niepoznawalnosci ich dzialania. Po prostu taka wiedze nie jest uzytkownikowi potrzebna ani tez najczesciej dostepna. Wymaga ona bowiem wiedzy i umiejetnosci, ktore naleza do specjalistow. W biologii natomiast wiedza o mikroskopowej operacji ukladu zywego jest ciagle w powijakach. Stad zainteresowanie badaczy.
W porownaniu z naukami podstawowymi informatyka jest tylko dzialem inzynierii.
@Bobola
Jest różnica pomiędzy użytkowaniem narzędzia, którego działania się do końca nie ogarnia (ale specjalista gdzieś tam rozumie, jak ono funkcjonuje, bo je sam wymyślił), a stworzeniem własnym rękoma układu, którego nikt (włączając twórcę) do końca nie zna i nie kontroluje. Zauważ, że sprzeciw wobec organizmów zmodyfikowanych genetycznie bierze się po trosze z lęku przed taką właśnie sytuacją. Na szczęście ludzie na ogół nie do końca wiedzą, jak działają systemy informatyczne, których używają…
Jeśli chodzi o informatykę jako inżynierię, to bym się zgodził z Twoim zdaniem, z tym że użyłbym „aż” a nie „tylko”. No i informatyka ma też swoją teorię, która jest jak najbardziej dziedziną badań podstawowych o charakterze przede wszystkim matematycznym.
@J.Ty.
Jesli mowimy o dzialaniu ukladow elektronicznych to w na ostatecznym poziomie wszystko redukuje sie do potencjalow i pradow. Uklad moze byc skomplikowany do tego stopnia, ze przesledzenie kazdej elementarnej operacji jest niedogodne. Moze tez zawierac wlaczone w system losowe alternatywy ale wszystko to jest poznawalne i jest elfektem konstrukcji ludzkiej. Komputery nie maja na szczescie wlasnych idiosynkrazji ani wlasnej osobowosci. Sa one rownie tajemnicza w efektach konstrukcja jak kodeks karny czy drogowy. Tez maja duzo nieprzewidywalnych zastosowan.
Inaczej ejst w biologii czy medycynie. Wspolczesni molekularni biolodzy wlasciwie nie znaja metodyki dzialania systemu genetycznego. Sa jak dzieci bawiace sie klockami Lego. Stad obawa przed skonstruowaniem stworu o nieznanych mozliwosciach.
@Bobola, Twojego argumentu o możliwości redukcji każdego układu elektronicznego do potencjałów i prądu można równie dobrzez użyć w dyskusji o biologii twierdząc, że każdą funkcję żywej komórki daje się zredukować do określonej liczby prostych reakcji chemicznych zachodzących pomiędzy skończoną liczbą cząsteczek zbudowanych z kilku raptem atomów. Niestety jak sam twierdzisz – „Uklad moze byc skomplikowany do tego stopnia, ze przesledzenie kazdej elementarnej operacji jest niedogodne” Już parę pokoleń biologów żyło i dalej żyje naukowo z tej niedogodności.
Mam nadzieję, że teraz skoro wiesz już ,że układy biologiczne są redukowalne pozbędziesz się dręczących Cię jak widać lęków przed inżynierią genetyczną.
@Jarek
Odetchne wtedy gdy biologia molekularna bedzie nauka teoretyczna a nie doswiadczalna czyli wtedy gdy biolodzy molekularni beda w stanie powiedziec dlaczego dany gen robi to co robi i jak trzeba kostruowac kod genetyczny aby dostac okreslony produkt biologiczny w postaci zywego organizmu. W chwili obecnej jestesmy jeszcze daleko od zrozumienia mechanizmu dzialania kodu genetycznego.