<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>unsupervised learning &#8211; Biznes Myśli</title>
	<atom:link href="https://biznesmysli.pl/tag/unsupervised-learning/feed/" rel="self" type="application/rss+xml" />
	<link>https://biznesmysli.pl/tag/unsupervised-learning/</link>
	<description>by Vladimir, sztuczna inteligencja w biznesie</description>
	<lastBuildDate>Wed, 15 May 2024 14:25:54 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://biznesmysli.pl/wp-content/uploads/2017/03/cropped-bm-sq-1-32x32.jpg</url>
	<title>unsupervised learning &#8211; Biznes Myśli</title>
	<link>https://biznesmysli.pl/tag/unsupervised-learning/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Uczenie nienadzorowane oczami naukowca z DeepMind</title>
		<link>https://biznesmysli.pl/uczenie-nienadzorowane-oczami-naukowca-z-deepmind/</link>
					<comments>https://biznesmysli.pl/uczenie-nienadzorowane-oczami-naukowca-z-deepmind/#respond</comments>
		
		<dc:creator><![CDATA[Vladimir]]></dc:creator>
		<pubDate>Mon, 13 Apr 2020 03:00:00 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Adam Kosiorek]]></category>
		<category><![CDATA[DeepMind]]></category>
		<category><![CDATA[machine learning]]></category>
		<category><![CDATA[Oxford]]></category>
		<category><![CDATA[praca naukowa]]></category>
		<category><![CDATA[research]]></category>
		<category><![CDATA[uczenie maszynowe]]></category>
		<category><![CDATA[unsupervised learning]]></category>
		<guid isPermaLink="false">https://biznesmysli.pl/?p=3045</guid>

					<description><![CDATA[<p>Z tego odcinka dowiesz się: Chcesz dowiedzieć się więcej o przyszłości AI i inspirujących badaniach? Przeczytaj cały artykuł! Uczenie nienadzorowane (unsupervised learning) to dziedzina uczenia maszynowego o ogromnym potencjale, która w bliskiej przyszłości będzie nas coraz bardziej zaskakiwać. O tym właśnie rozmawiałem z Adamem Kosiorkiem, doktorem nauk z Uniwersytetu Oksfordzkiego, który obecnie pracuje w DeepMind. Cześć Adam. Przedstaw się: kim jesteś, czym się zajmujesz, gdzie mieszkasz? Nazywam się Adam Kosiorek, jestem z Olsztyna. W tej chwili mieszkam w Londynie. Pracuję jako Research Scientist w Google DeepMind (po polsku &#8211; badacz). Pracuję nad sztuczną inteligencją i prowadzę badania w tym zakresie. Dzisiaj będziemy dużo mówić na temat sztucznej inteligencji oraz Twoich badań i publikacji. Zanim do tego przejdziemy, zdradź, co ostatnio ciekawego przeczytałeś? Niekoniecznie musi to być specjalistyczna publikacja.&#160; Czytać akurat lubię. Jedna z ostatnich książek, która bardzo mi się spodobała to &#8222;Sapiens&#8221; Yuval Noah Harari. Wydaje mi się, że to bardzo ostatnio popularna pozycja. Opowiada o tym, jak staliśmy się ludźmi ze zwierząt, jak wyewoluowaliśmy od małp i prostszych organizmów, jak znaleźliśmy się tu, gdzie teraz jesteśmy. Opowiada o różnych rewolucjach rolniczych, przemysłowych i religii w naszym życiu, roli technologii i wiele więcej. Naprawdę polecam, aczkolwiek jest to nieco dłuższa lektura. Obecnie, oprócz tego, że pracujesz w DeepMind, robisz doktorat w Oxford. Jak oceniasz te studia, uczelnię, doświadczenie? Czy ciężko jest się dostać? Zanim odpowiem, sprostuję jedną kwestię. Mniej więcej 2 tygodnie temu, obroniłem się, więc już nie jestem doktorantem, a świeżo upieczonym doktorem. Natomiast prawda, do tej pory byłem na Oxfordzie. Jak się tam dostać? Odpowiedź może brzmieć banalnie. Należy złożyć aplikację. Aplikacja taka wygląda trochę inaczej na studia na poziomie licencjackim, a trochę inaczej na doktorat. Wydaje mi się, że na doktorat jest dużo łatwiej się dostać, niż na licencjat.&#160; Aplikacja składa się z dwóch elementów: Faktycznie, brzmi to w miarę prosto. Czy było warto? Jak to oceniasz to teraz z perspektywy czasu? Wydaje mi się, że jest warto. Moją drugą najlepszą opcją byłoby zostać na doktoracie na Uniwersytecie Technicznym w Monachium, gdzie zrobiłem swoją magisterkę. Doktorat w Monachium też byłby bardzo dobry, natomiast różnica jest taka, że w Niemczech ludzie często traktują doktoraty jako taką zwykłą pracę, gdzie przychodzą na 09:00, wychodzą o 17:00, nie pracują w weekendy. Natomiast na Oxfordzie jest dużo większa presja, są zazwyczaj przyjmowani bardzo dobrzy ludzie, którzy osiągają bardzo dobre rezultaty. Poprzez chęć dorównania im wytwarza się presja i ludzie pracują nieco więcej. Niektórym może to nie odpowiadać, natomiast dla mnie jest to coś, czego akurat chciałem i potrzebowałem. Oxford, jeżeli chodzi o machine learning, jest również świetnym miejscem dlatego, że jest tu około 15 grup badawczych na światowym poziomie. Jest mnóstwo ludzi, mnóstwo różnych tematów, nad którymi te grupy pracują, więc jest dosyć duża swoboda pracy. Można też w dosyć łatwy sposób zbudować dobrą siatkę kontaktów z najlepszymi naukowcami na świecie. Brzmi jak środowisko, które po pierwsze da się łatwo zmobilizować, a po drugie ta sieć kontaktów robi potem swoje i naprawdę później te kilka lat w Oxfordzie procentuje.&#160; Na Twoim Twitterze jest takie zdanie: &#8222;próbuję zrozumieć, czym jest inteligencja i ją zaimplementować&#8221;. Gdzie jesteś teraz, jeżeli chodzi o inteligencję? Na ile udało Ci się zrozumieć, czym ona jest? Jak wyglądają postępy? Zacznę od tego, że to stwierdzenie jest nieco naciągane. Nie wiem, czy jest chociaż jedna osoba na świecie, która tak naprawdę rozumie, czym jest inteligencja. To pojęcie jest trudne do zdefiniowania. Wydaje mi się, że obecnie posiadane definicje są zbyt szerokie. Na przykład, niektórzy definiują inteligencję jako umiejętność rozwiązywania wszelkiego rodzaju problemów, bądź umiejętność szybkiego uczenia się rozwiązywania wszelkiego rodzaju problemów. Natomiast jeżeli pomyślimy o problemach wszelkiego rodzaju, jest to niesamowicie duża przestrzeń problemów. Jeżeli użyjemy tej definicji, okazuje się, że ludzie wcale nie są inteligentni. Możemy zaprojektować bardzo dużo problemów, które są prawie losowe, gdzie są losowe związki pomiędzy różnymi elementami. Okazuje się, że ludzie są bardzo kiepscy w rozwiązywaniu tego typu problemów. Nawet dosyć ciężko jest zawrzeć intuicyjne rozumienie inteligencji w prostej definicji. To jest jeden punkt widzenia. Z innego zaś rozumiemy na poziomie mechanicznym czy kalkulacyjnym, jak niektóre mechanizmy w mózgu ludzkim i innych zwierząt pracują. Natomiast bardzo często ta wiedza może nam dać pewną inspirację, jak budować system uczenia maszynowego. Zazwyczaj jest ona jednak zbyt mało precyzyjna, żeby naprawdę powiedzieć nam, jak pewne rzeczy powinny funkcjonować. Nawet jeżeli chodzi o intuicję, zazwyczaj dotyczy to bardzo niskopoziomowych podsystemów mózgu.&#160; Mówiąc krótko, tak naprawdę nie wiemy, czym jest inteligencja i jak ją osiągnąć. Natomiast wiemy, jakie podzespoły znajdują się w mózgu i mniej więcej jakie funkcje różne podzespoły pełnią, co daje nam pierwowzór, na którym możemy się wzorować i który możemy próbować zaimplementować.&#160; Twoje badania zwykle skupiają się na uczeniu nienadzorowanym, czyli unsupervised learning. W szczególności działasz sporo z autoenkoderami. Z jednej strony, domyślam się, że ten wybór podyktowany jest tym, że uczenie nadzorowane jest bardziej ograniczone. Chciałbym usłyszeć Twoją wersję, podziel się swoją motywacją, dlaczego uczenie tylko nienadzorowane? Jeżeli skupiasz się tylko na tym, to jaką przyszłość możesz zaprognozować tej dziedzinie? Jak to się rozwinie w ciągu najbliższych 3-5 lat na podstawie tej wiedzy, którą już teraz posiadasz?&#160; To prawda, że skupiam się głównie na uczeniu nienadzorowanym. Mam może 3 publikacje, które są również o uczeniu nadzorowanym, natomiast na pewno nie jest to główna część mojego badania. Tak, jak zauważyłeś, uczenie nadzorowane ma pewne ograniczenia, które wynikają głównie z tego, że do uczenia nadzorowanego potrzebujemy danych oznaczonych przez człowieka. Czyli potrzebujemy dane zebrane przez różne sensory (np. zdjęcia) i oznaczenia (czyli np. kwadraciki, narysowane na około twarzy, ludzi na tych zdjęciach). Żeby dostać takie kwadraciki, zazwyczaj potrzebujemy armii ludzi, która będzie takie kwadraciki rysować. Jest to drogi i czasochłonny proces. Za każdym razem kiedy dostaniemy nowe dane, musimy zatrudnić ludzi i zbierać te oznaczenia. Nie możemy np. wykorzystać setki tysięcy godzin filmów dostępnych na YouTube, żeby nauczyć nasz algorytm, ponieważ mimo że posiadamy dane w postaci tych filmów, to nie mamy do nich oznaczeń, co więcej z biegiem czasu często widziane przez algorytm dane zmieniają się. Np. jeżeli za tydzień mielibyśmy robota, który działa nieustannie i z biegiem czasu zmienia się sceneria, w której ten robot się przemieszcza (np. rozbudowuje się miasto, zmieniają się budynki itd.), to gdyby taki robot korzystał tylko i wyłącznie z uczenia z nauczycielem, to mógłby mieć problem z dostosowaniem się do nowego wizerunku otoczenia. Natomiast jeżeli taki robot mógłby uczyć się na bieżąco, to mógłby się dostosowywać. Uczenie na bieżąco oznacza, że nie ma oznaczeń wygenerowanych przez człowieka, w związku z tym musimy wykorzystać uczenie nienadzorowane.&#160; Te wspomniane etykiety są także często nieprecyzyjne. Człowiek sam w sobie jest niedeterministyczny. Ta sama osoba potrafi inaczej oznaczyć tę samą ramkę, a tym bardziej jak jest grono rozproszonych ludzi w świecie, to ten input jeszcze bardziej byłby zaszumiony. Zresztą słynny ImageNet też był robiony w taki sposób, że niektóre obrazki były robione po kilka razy, żeby upewnić się, że to jakoś w miarę się pokrywa, ale to też nie było proste zadanie.&#160; Teraz już wiemy, o co chodzi z uczeniem nienadzorowanym i jaka była Twoja motywacja. To chodźmy dalej w kierunku autoenkoderów. Wyjaśnij i podaj klasyczną definicję autoenkodera. Co to jest? Co on robi? Czy mógłbyś podać jakieś przykłady?&#160; Wydaje mi się, że taka ogólna definicja to byłby model, który potrafi skompresować dane i później dokonać ich&#160; dekompresji.&#160; Kompresja to według mnie dobre skojarzenie. Mamy w tym przypadku dwa czynniki. Wiele osób nie miało styczności z autoenkoderami, ale pewnie każdy używał zipa albo inny kompresora danych &#8211; czyli wtedy, kiedy pakujemy dany plik w jakąś taką postać “pomiędzy”. To jest nadal plik, ale nie ten oryginalny i zajmuje troszkę mniej miejsca. Później jakiś inny program albo funkcjonalność tego samego programu to odczytuje. Gdzie taki autoenkoder może być użyteczny? Prostym i dosyć powszechnym przykładem jest np. kompresja zdjęć. Dzisiaj jednym z najpopularniejszych formatów jest .jpg, który jest skompresowanym zdjęciem. Jest to kompresja stratna, która nie zawiera wszystkich informacji, natomiast zdekompresowane zdjęcie wygląda bardzo podobnie do tego przed kompresją. Jpg jest standardem ręcznie zaprojektowanym, co zajęło wiele lat. Ma jakieś właściwości, jeżeli chodzi o kompresję, natomiast okazuje się, że dzisiejsze autoenkodery wykorzystujące najnowsze osiągnięcia z uczenia maszynowego, potrafią nauczyć się kompresować zdjęcia dużo lepiej niż .jpg, w przeciągu minut, co może spowodować zaoszczędzenie olbrzymiej ilości danych (np. przy przesyłaniu zdjęć przez Internet).&#160; To bardzo fajny przykład. Google też to próbuje stosować, kiedy się wysyła mniejsze zdjęcie i komórka, która pobrała to zdjęcie, potrafi to zdjęcie rekonstruować. W ten sposób to funkcjonuje i faktycznie nie trzeba przesyłać dużych plików. Przy czym po otworzeniu zdjęcia wygląda ono bardzo podobnie do oryginalnego i nie ma za bardzo tej straty. Myślę, że też fajnie wspomnieć o przypadkach związanych z tym, że możemy zaszumić sobie to zdjęcie i potem otworzyć takie, które nie jest zaszumione. Albo np. przypadki związane z nakładaniem, coś jest na tym zdjęciu wycięte i później można to odtworzyć. Co prawda, to też ma negatywne skutki. Było dość głośno na ten temat, kiedy nagle się okazało, że wszystkie znaki wodne można wyeliminować &#8211; to, co potrafi autoenkoder zrobić, czyli odszumić od &#8222;niepotrzebnych&#8221; rzeczy. Więc teraz, jak ktoś myśli, że dodając znak wodny do zdjęcia może spać spokojnie, to już te czasy niestety minęły. To się wszystko rozwija, więc trzeba to robić bardziej dynamicznie, niż tylko poprzez dodanie statycznego znaku wodnego. Podsumowując, jeżeli chodzi o autoenkoder, mamy kawałek tej sieci na wejściu np. zdjęcie, które jest pobierane i robimy wszystko, żeby zredukować wymiary. Zostaje jakiś powiedzmy wektor. Później jest inny kawałek sieci, który próbuje z tego wektora odtworzyć zdjęcie oryginalne. Ale teraz przejdźmy do tego, nad czym pracujesz więcej, czyli variational autoenkoders (VAE). Wyjaśnij, dlaczego VAE używasz najczęściej? Na czym polega różnica od klasycznego autoenkodera? Główną różnicą jest to, że autoenkoder wariacyjny jest to model stochastyczny. Zazwyczaj zwykłe autoenkodery są deterministyczne tzn., że mamy coś na wejściu (np. zaszumiony obrazek), później mamy reprezentację tego zaszumionego obrazka na wejściu, który jest wektorem uzyskanym w sposób deterministyczny i później staramy się zrekonstruować z tego wektora odszumiony obrazek, bądź zaszumiony (w zależności od aplikacji). Jednym z problemów w tym autoenkoderze jest to, że jest tylko jedno poprawne rozwiązanie, czy też istnieje tylko jeden rodzaj poprawnej rekonstrukcji. Nie możemy zawrzeć w tym naszym wektorze, który reprezentuje to zdjęcie, niepewności związanej z tym obrazkiem czy z rekonstrukcją.&#160; Natomiast autoenkoder wariacyjny to model stochastyczny, gdzie ten wektor, który jest reprezentacją naszego obrazka, jest zaszumiony. Dodajemy do niego pewien szum, co pozwala nam zakodować pewną niepewność. Dzięki temu jeden konkretny wektor pozwala nam zrekonstruować wiele różnych wariantów tego obrazka, który mieliśmy na wejściu. Na tym polega nasz świat. Jak spróbujemy powtórzyć to samo działanie i np. jeżeli komuś przygotujemy przepis i powiemy: &#8222;Słuchaj, ja całe życie robiłem tak i tak, więc rób te same kroki, a osiągniesz to samo&#8221;, to zwykle tak nie działa, bo życie zawsze gdzieś nas zaskoczy. Tak tylko dodam, że jak mówisz &#8222;stochastyczne&#8221;, to myślę, że dla osób, które nie są w tej terminologii obeznane, to pewnie słowo &#8222;losowy&#8221; będzie bardziej zrozumiałe. Sprowadzamy się do tego, że w tym przypadku przepuszczając przez ten nasz model np. zdjęcie, to w klasycznym autoenkoderze dostajemy ten sam wynik (jeżeli model już jest wytrenowany), a w przypadku autoenkodera wariacyjnego przepuszczając za każdym razem model, wynik może być nieco inny. Czy to jest tak, że też mamy parametry, które umożliwiają ten rozrzut wyników, żeby można było ten model jakoś ograniczyć? Na tym właśnie polega trenowanie tego modelu, że dobieramy te parametry, prawda? Tak, oba modele zazwyczaj są to dwie sieci neuronowe. Jeżeli chodzi o implementację, to różnica sprowadza się do tego, że w autoenkoderze, enkoder jest jedną siecią neuronową, która daje nam ten wektor będący reprezentacją obrazka na wejściu. Natomiast w autoenkoderze wariacyjnym, enkoder daje nam nie jeden wektor, ale rozkład prawdopodobieństwa na przestrzeni różnych wektorów, które mogą opisywać bądź reprezentować obrazek na wejściu. W najprostszym przypadku ten rozkład&#160; jest tu po prostu wielowymiarowym rozkładem gaussowskim. Wtedy implementacja polega na tym, że ten enkoder daje nam wektor średni i kowariancję. Kowariancja jest w tym przypadku zazwyczaj macierzą diagonalną, więc możemy ją wyrazić jako wektor. Czyli enkoder daje nam te dwa wektory, dzięki czemu możemy uzyskać ten rozkład gaussowski,...</p>
<p>Artykuł <a href="https://biznesmysli.pl/uczenie-nienadzorowane-oczami-naukowca-z-deepmind/">Uczenie nienadzorowane oczami naukowca z DeepMind</a> pochodzi z serwisu <a href="https://biznesmysli.pl">Biznes Myśli</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-speaker-spotify-Z1dt4tq wp-block-lazyblock-speaker-spotify"><div class="wp-block-columns are-vertically-aligned-center">
<div class="wp-block-column is-vertically-aligned-center">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://www.spreaker.com/user/9664330/bm-79-uczenie-nienadzorowane" target="_blank"><img decoding="async" src="https://biznesmysli.pl/wp-content/uploads/2020/02/spreaker.png" alt="" class="wp-image-2150" width="213" height="71"></a></figure></div>
</div>
<div class="wp-block-column is-vertically-aligned-center">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://open.spotify.com/episode/3pIPH0BNKq5D2IVbZ4s7Zs" target="_blank"><img decoding="async" src="https://biznesmysli.pl/wp-content/uploads/2020/02/spotify-badge-button.png" alt="" class="wp-image-2149" width="192" height="93"></a></figure></div>
</div>
</div></div>


<h2 class="wp-block-heading">Z tego odcinka dowiesz się:</h2>



<ol>
<li><strong>Co to jest uczenie <span style="text-decoration: underline;">nienadzorowane</span>?</strong> Poznaj fascynujący świat uczenia nienadzorowanego (<em>unsupervised learning</em>) i dlaczego ma ogromny potencjał w przyszłości.</li>



<li><strong>Jak dostać się na doktorat na Oxfordzie?</strong> Adam Kosiorek, świeżo upieczony doktor z Uniwersytetu Oksfordzkiego, dzieli się radami, jak aplikować na doktorat i dlaczego warto to zrobić.</li>



<li><strong>Czym jest inteligencja?</strong> Odkryj, jak naukowcy, w tym Adam, próbują zrozumieć i zaimplementować inteligencję, oraz dlaczego jest to takie trudne.</li>



<li><strong>Uczenie nienadzorowane a uczenie nadzorowane. </strong>Dowiedz się, dlaczego Adam skupia się na uczeniu nienadzorowanym i jakie są jego przewagi nad uczeniem nadzorowanym.</li>



<li><strong>Autoenkodery &#8211; co to jest i do czego służą?</strong> Poznaj definicję autoenkoderów i ich praktyczne zastosowania, takie jak kompresja zdjęć.</li>



<li><strong>Capsule Networks &#8211; nowy sposób na rozpoznawanie obiektów.</strong> Odkryj, czym są sieci kapsułkowe (capsule networks) i jak mogą zrewolucjonizować rozpoznawanie obiektów.</li>



<li><strong>Jak eksperymentować w uczeniu maszynowym?</strong> Adam dzieli się swoimi doświadczeniami z eksperymentami w uczeniu maszynowym i opowiada o narzędziu Forge, które stworzył, aby je usprawnić.</li>
</ol>



<p>Chcesz dowiedzieć się więcej o przyszłości AI i inspirujących badaniach? Przeczytaj cały artykuł!</p>



<p></p>



<p class="has-normal-font-size"><strong>Uczenie nienadzorowane (<em>unsupervised learning</em>) to dziedzina uczenia maszynowego o ogromnym potencjale, która w bliskiej przyszłości będzie nas coraz bardziej zaskakiwać. O tym właśnie rozmawiałem z Adamem Kosiorkiem, doktorem nauk z Uniwersytetu Oksfordzkiego, który obecnie pracuje w DeepMind.</strong><br /></p>



<span id="more-3045"></span>



<p><strong>Cześć Adam. Przedstaw się: kim jesteś, czym się zajmujesz, gdzie mieszkasz?</strong><br /></p>



<p>Nazywam się <a href="http://akosiorek.github.io/">Adam Kosiorek</a>, jestem z Olsztyna. W tej chwili mieszkam w Londynie. Pracuję jako Research Scientist w Google <a rel="noreferrer noopener" aria-label="DeepMind (otwiera się na nowej zakładce)" href="https://deepmind.com/" target="_blank">DeepMind</a> (po polsku &#8211; badacz). Pracuję nad sztuczną inteligencją i prowadzę badania w tym zakresie.<br /><br /></p>



<p></p>



<p><strong>Dzisiaj będziemy dużo mówić na temat sztucznej inteligencji oraz Twoich badań i publikacji. Zanim do tego przejdziemy, zdradź, co ostatnio ciekawego przeczytałeś? Niekoniecznie musi to być specjalistyczna publikacja.&nbsp;</strong><br /><br /></p>



<p>Czytać akurat lubię. Jedna z ostatnich książek, która bardzo mi się spodobała to <strong>&#8222;Sapiens&#8221; Yuval Noah Harari</strong>. Wydaje mi się, że to bardzo ostatnio popularna pozycja. Opowiada o tym, jak staliśmy się ludźmi ze zwierząt, jak wyewoluowaliśmy od małp i prostszych organizmów, jak znaleźliśmy się tu, gdzie teraz jesteśmy. Opowiada o różnych rewolucjach rolniczych, przemysłowych i religii w naszym życiu, roli technologii i wiele więcej. Naprawdę polecam, aczkolwiek jest to nieco dłuższa lektura.<br /><br /><br /></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Sapiens: A Brief History of Humankind - out now in paperback!" width="960" height="540" src="https://www.youtube.com/embed/B2H9Q92RkfE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"> &#8222;Sapiens&#8221; Yuval Noah Harari </figcaption></figure>



<p><br /><br /><strong>Obecnie, oprócz tego, że pracujesz w DeepMind, robisz doktorat w Oxford. Jak oceniasz te studia, uczelnię, doświadczenie? Czy ciężko jest się dostać?</strong><br /><br /></p>



<p>Zanim odpowiem, sprostuję jedną kwestię. Mniej więcej 2 tygodnie temu, obroniłem się, więc już nie jestem doktorantem, a świeżo upieczonym doktorem. Natomiast prawda, do tej pory byłem na Oxfordzie. Jak się tam dostać? Odpowiedź może brzmieć banalnie. Należy złożyć aplikację. Aplikacja taka wygląda trochę inaczej na studia na poziomie licencjackim, a trochę inaczej na doktorat. Wydaje mi się, że na doktorat jest dużo łatwiej się dostać, niż na licencjat.&nbsp;<br /><br /></p>



<p>Aplikacja składa się z dwóch elementów:<br /><br /></p>



<ol>
<li>List opisujący, czym byśmy chcieli się zajmować, dlaczego właśnie na Oxfordzie, jakie tematy nas interesują itd.&nbsp;<br /></li>



<li>Druga część tej aplikacji to są referencje od ekspertów w dziedzinie. Najlepiej profesorów, z którymi wcześniej pracowaliśmy, którzy nas znają i dobrze, aby byli dosyć sławni w tej dziedzinie. Najlepiej jest znaleźć możliwości pracy z kimś, kto jest w miarę rozpoznawalny i dać się tej osobie poznać, żeby dostać taką referencję.<br /><br /></li>
</ol>



<p><strong>Faktycznie, brzmi to w miarę prosto. Czy było warto? Jak to oceniasz to teraz z perspektywy czasu?</strong><br /></p>



<p>Wydaje mi się, że jest warto. Moją drugą najlepszą opcją byłoby zostać na doktoracie na Uniwersytecie Technicznym w Monachium, gdzie zrobiłem swoją magisterkę. Doktorat w Monachium też byłby bardzo dobry, natomiast różnica jest taka, że w Niemczech ludzie często traktują doktoraty jako taką zwykłą pracę, gdzie przychodzą na 09:00, wychodzą o 17:00, nie pracują w weekendy. Natomiast na Oxfordzie jest dużo większa presja, są zazwyczaj przyjmowani bardzo dobrzy ludzie, którzy osiągają bardzo dobre rezultaty. <br /><br /></p>



<p>Poprzez chęć dorównania im wytwarza się presja i ludzie pracują nieco więcej. Niektórym może to nie odpowiadać, natomiast dla mnie jest to coś, czego akurat chciałem i potrzebowałem. Oxford, jeżeli chodzi o <em>machine learning,</em> jest również świetnym miejscem dlatego, że jest tu około 15 grup badawczych na światowym poziomie. Jest mnóstwo ludzi, mnóstwo różnych tematów, nad którymi te grupy pracują, więc jest dosyć duża swoboda pracy. Można też w dosyć łatwy sposób zbudować dobrą siatkę kontaktów z najlepszymi naukowcami na świecie.<br /><br /><br /></p>



<p><strong>Brzmi jak środowisko, które po pierwsze da się łatwo zmobilizować, a po drugie ta sieć kontaktów robi potem swoje i naprawdę później te kilka lat w Oxfordzie procentuje.&nbsp;</strong><br /></p>



<p><strong>Na Twoim Twitterze jest takie zdanie: &#8222;próbuję zrozumieć, czym jest inteligencja i ją zaimplementować&#8221;. Gdzie jesteś teraz, jeżeli chodzi o inteligencję? Na ile udało Ci się zrozumieć, czym ona jest? Jak wyglądają postępy?</strong><br /><br /></p>



<p>Zacznę od tego, że to stwierdzenie jest nieco naciągane. Nie wiem, czy jest chociaż jedna osoba na świecie, która tak naprawdę rozumie, czym jest inteligencja. To pojęcie jest trudne do zdefiniowania. Wydaje mi się, że obecnie posiadane definicje są zbyt szerokie. <br /></p>



<p><br />Na przykład, niektórzy definiują inteligencję jako umiejętność rozwiązywania wszelkiego rodzaju problemów, bądź umiejętność szybkiego uczenia się rozwiązywania wszelkiego rodzaju problemów. Natomiast jeżeli pomyślimy o problemach wszelkiego rodzaju, jest to niesamowicie duża przestrzeń problemów. <br /></p>



<p><br /><br />Jeżeli użyjemy tej definicji, okazuje się, że ludzie wcale nie są inteligentni. Możemy zaprojektować bardzo dużo problemów, które są prawie losowe, gdzie są losowe związki pomiędzy różnymi elementami. Okazuje się, że ludzie są bardzo kiepscy w rozwiązywaniu tego typu problemów. Nawet dosyć ciężko jest zawrzeć intuicyjne rozumienie inteligencji w prostej definicji. To jest jeden punkt widzenia.<br /><br /></p>



<p>Z innego zaś rozumiemy na poziomie mechanicznym czy kalkulacyjnym, jak niektóre mechanizmy w mózgu ludzkim i innych zwierząt pracują. Natomiast bardzo często ta wiedza może nam dać pewną inspirację, jak budować system uczenia maszynowego. Zazwyczaj jest ona jednak zbyt mało precyzyjna, żeby naprawdę powiedzieć nam, jak pewne rzeczy powinny funkcjonować. Nawet jeżeli chodzi o intuicję, zazwyczaj dotyczy to bardzo niskopoziomowych podsystemów mózgu.&nbsp;<br /><br /></p>



<p>Mówiąc krótko, tak naprawdę nie wiemy, czym jest inteligencja i jak ją osiągnąć. Natomiast wiemy, jakie podzespoły znajdują się w mózgu i mniej więcej jakie funkcje różne podzespoły pełnią, co daje nam pierwowzór, na którym możemy się wzorować i który możemy próbować zaimplementować.&nbsp;<br /><br /><br /></p>



<p><strong>Twoje badania zwykle skupiają się na uczeniu nienadzorowanym, czyli <em>unsupervised learning. </em>W szczególności działasz sporo z autoenkoderami. Z jednej strony, domyślam się, że ten wybór podyktowany jest tym, że uczenie nadzorowane jest bardziej ograniczone. </strong><br /></p>



<p><strong>Chciałbym usłyszeć Twoją wersję, podziel się swoją motywacją, dlaczego uczenie tylko nienadzorowane? Jeżeli skupiasz się tylko na tym, to jaką przyszłość możesz zaprognozować tej dziedzinie? Jak to się rozwinie w ciągu najbliższych 3-5 lat na podstawie tej wiedzy, którą już teraz posiadasz?&nbsp;</strong><br /><br /></p>



<p>To prawda, że skupiam się głównie na uczeniu nienadzorowanym. Mam może 3 publikacje, które są również o uczeniu nadzorowanym, natomiast na pewno nie jest to główna część mojego badania. Tak, jak zauważyłeś, uczenie nadzorowane ma pewne ograniczenia, które wynikają głównie z tego, że do uczenia nadzorowanego potrzebujemy danych oznaczonych przez człowieka. Czyli potrzebujemy dane zebrane przez różne sensory (np. zdjęcia) i oznaczenia (czyli np. kwadraciki, narysowane na około twarzy, ludzi na tych zdjęciach). <br /><br /></p>



<p>Żeby dostać takie kwadraciki, zazwyczaj potrzebujemy armii ludzi, która będzie takie kwadraciki rysować. Jest to drogi i czasochłonny proces. Za każdym razem kiedy dostaniemy nowe dane, musimy zatrudnić ludzi i zbierać te oznaczenia. Nie możemy np. wykorzystać setki tysięcy godzin filmów dostępnych na YouTube, żeby nauczyć nasz algorytm, ponieważ mimo że posiadamy dane w postaci tych filmów, to nie mamy do nich oznaczeń, co więcej z biegiem czasu często widziane przez algorytm dane zmieniają się. <br /></p>



<p>Np. jeżeli za tydzień mielibyśmy robota, który działa nieustannie i z biegiem czasu zmienia się sceneria, w której ten robot się przemieszcza (np. rozbudowuje się miasto, zmieniają się budynki itd.), to gdyby taki robot korzystał tylko i wyłącznie z uczenia z nauczycielem, to mógłby mieć problem z dostosowaniem się do nowego wizerunku otoczenia. <br /></p>



<p>Natomiast jeżeli taki robot mógłby uczyć się na bieżąco, to mógłby się dostosowywać. Uczenie na bieżąco oznacza, że nie ma oznaczeń wygenerowanych przez człowieka, w związku z tym musimy wykorzystać uczenie nienadzorowane.&nbsp;<br /><br /><br /></p>



<p><strong>Te wspomniane etykiety są także często nieprecyzyjne. Człowiek sam w sobie jest niedeterministyczny. Ta sama osoba potrafi inaczej oznaczyć tę samą ramkę, a tym bardziej jak jest grono rozproszonych ludzi w świecie, to ten <em>input</em> jeszcze bardziej byłby zaszumiony. Zresztą słynny ImageNet też był robiony w taki sposób, że niektóre obrazki były robione po kilka razy, żeby upewnić się, że to jakoś w miarę się pokrywa, ale to też nie było proste zadanie.&nbsp;</strong><br /><br /></p>



<p><strong>Teraz już wiemy, o co chodzi z uczeniem nienadzorowanym i jaka była Twoja motywacja. To chodźmy dalej w kierunku autoenkoderów<em>. </em>Wyjaśnij i podaj klasyczną definicję autoenkodera<em>.</em> Co to jest? Co on robi? Czy mógłbyś podać jakieś przykłady?&nbsp;</strong><br /><br /></p>



<p>Wydaje mi się, że taka ogólna definicja to byłby model, który potrafi skompresować dane i później dokonać ich&nbsp; dekompresji.&nbsp;<br /><br /><br /><br /></p>



<p><strong>Kompresja to według mnie dobre skojarzenie. Mamy w tym przypadku dwa czynniki. Wiele osób nie miało styczności z autoenkoderami, ale pewnie każdy używał <em>zipa</em> albo inny kompresora danych &#8211; czyli wtedy, kiedy pakujemy dany plik w jakąś taką postać “pomiędzy”. To jest nadal plik, ale nie ten oryginalny i zajmuje troszkę mniej miejsca. Później jakiś inny program albo funkcjonalność tego samego programu to odczytuje. Gdzie taki autoenkoder może być użyteczny?</strong><br /><br /></p>



<p>Prostym i dosyć powszechnym przykładem jest np. kompresja zdjęć. Dzisiaj jednym z najpopularniejszych formatów jest .jpg, który jest skompresowanym zdjęciem. Jest to kompresja stratna, która nie zawiera wszystkich informacji, natomiast zdekompresowane zdjęcie wygląda bardzo podobnie do tego przed kompresją. <br /></p>



<p>Jpg<em> </em>jest standardem ręcznie zaprojektowanym, co zajęło wiele lat. Ma jakieś właściwości, jeżeli chodzi o kompresję, natomiast okazuje się, że dzisiejsze autoenkodery wykorzystujące najnowsze osiągnięcia z uczenia maszynowego, potrafią nauczyć się kompresować zdjęcia dużo lepiej niż <em>.</em>jpg, w przeciągu minut, co może spowodować zaoszczędzenie olbrzymiej ilości danych (np. przy przesyłaniu zdjęć przez Internet).&nbsp;<br /><br /><br /><br /></p>



<p><strong>To bardzo fajny przykład. Google też to próbuje stosować, kiedy się wysyła mniejsze zdjęcie i komórka, która pobrała to zdjęcie, potrafi to zdjęcie rekonstruować. W ten sposób to funkcjonuje i faktycznie nie trzeba przesyłać dużych plików. Przy czym po otworzeniu zdjęcia wygląda ono bardzo podobnie do oryginalnego i nie ma za bardzo tej straty. Myślę, że też fajnie wspomnieć o przypadkach związanych z tym, że możemy zaszumić sobie to zdjęcie i potem otworzyć takie, które nie jest zaszumione. </strong><br /></p>



<p><strong>Albo np. przypadki związane z nakładaniem, coś jest na tym zdjęciu wycięte i później można to odtworzyć. Co prawda, to też ma negatywne skutki. Było dość głośno na ten temat, kiedy nagle się okazało, że wszystkie znaki wodne można wyeliminować &#8211; to, co potrafi autoenkoder zrobić, czyli odszumić od &#8222;niepotrzebnych&#8221; rzeczy. </strong><br /></p>



<p><strong>Więc teraz, jak ktoś myśli, że dodając znak wodny do zdjęcia może spać spokojnie, to już te czasy niestety minęły. To się wszystko rozwija, więc trzeba to robić bardziej dynamicznie, niż tylko poprzez dodanie statycznego znaku wodnego.</strong><br /><br /></p>



<p><strong>Podsumowując, jeżeli chodzi o autoenkoder, mamy kawałek tej sieci na wejściu np. zdjęcie, które jest pobierane i robimy wszystko, żeby zredukować wymiary. Zostaje jakiś powiedzmy wektor. Później jest inny kawałek sieci, który próbuje z tego wektora odtworzyć zdjęcie oryginalne.</strong><br /><br /></p>



<p><strong>Ale teraz przejdźmy do tego, nad czym pracujesz więcej, czyli <em>variational autoenkoders (VAE)</em>. Wyjaśnij, dlaczego <em>VAE</em> używasz najczęściej? Na czym polega różnica od klasycznego autoenkodera<em>?</em></strong><br /><br /></p>



<p>Główną różnicą jest to, że autoenkoder wariacyjny jest to model stochastyczny. Zazwyczaj zwykłe autoenkodery są deterministyczne tzn., że mamy coś na wejściu (np. zaszumiony obrazek), później mamy reprezentację tego zaszumionego obrazka na wejściu, który jest wektorem uzyskanym w sposób deterministyczny i później staramy się zrekonstruować z tego wektora odszumiony obrazek, bądź zaszumiony (w zależności od aplikacji). <br /></p>



<p>Jednym z problemów w tym autoenkoderze jest to, że jest tylko jedno poprawne rozwiązanie, czy też istnieje tylko jeden rodzaj poprawnej rekonstrukcji. Nie możemy zawrzeć w tym naszym wektorze, który reprezentuje to zdjęcie, niepewności związanej z tym obrazkiem czy z rekonstrukcją.&nbsp;<br /><br /></p>



<p>Natomiast autoenkoder wariacyjny to model stochastyczny, gdzie ten wektor, który jest reprezentacją naszego obrazka, jest zaszumiony. Dodajemy do niego pewien szum, co pozwala nam zakodować pewną niepewność. Dzięki temu jeden konkretny wektor pozwala nam zrekonstruować wiele różnych wariantów tego obrazka, który mieliśmy na wejściu.<br /><br /><br /><br /></p>



<p><strong>Na tym polega nasz świat. Jak spróbujemy powtórzyć to samo działanie i np. jeżeli komuś przygotujemy przepis i powiemy: <em>&#8222;Słuchaj, ja całe życie robiłem tak i tak, więc rób te same kroki, a osiągniesz to samo&#8221;, </em>to zwykle tak nie działa, bo życie zawsze gdzieś nas zaskoczy. Tak tylko dodam, że jak mówisz &#8222;stochastyczne&#8221;, to myślę, że dla osób, które nie są w tej terminologii obeznane, to pewnie słowo &#8222;losowy&#8221; będzie bardziej zrozumiałe. </strong><br /></p>



<p><strong>Sprowadzamy się do tego, że w tym przypadku przepuszczając przez ten nasz model np. zdjęcie, to w klasycznym autoenkoderze dostajemy ten sam wynik (jeżeli model już jest wytrenowany), a w przypadku autoenkodera wariacyjnego przepuszczając za każdym razem model, wynik może być nieco inny. Czy to jest tak, że też mamy parametry, które umożliwiają ten rozrzut wyników, żeby można było ten model jakoś ograniczyć? Na tym właśnie polega trenowanie tego modelu, że dobieramy te parametry, prawda?</strong><br /><br /></p>



<p>Tak, oba modele zazwyczaj są to dwie sieci neuronowe. Jeżeli chodzi o implementację, to różnica sprowadza się do tego, że w autoenkoderze<em>, </em>enkoder jest jedną siecią neuronową, która daje nam ten wektor będący reprezentacją obrazka na wejściu. </p>



<p>Natomiast w autoenkoderze wariacyjnym, enkoder daje nam nie jeden wektor, ale rozkład prawdopodobieństwa na przestrzeni różnych wektorów, które mogą opisywać bądź reprezentować obrazek na wejściu.<br /></p>



<p>W najprostszym przypadku ten rozkład&nbsp; jest tu po prostu wielowymiarowym rozkładem gaussowskim. Wtedy implementacja polega na tym, że ten enkoder daje nam wektor średni i kowariancję. Kowariancja jest w tym przypadku zazwyczaj macierzą diagonalną, więc możemy ją wyrazić jako wektor. Czyli enkoder daje nam te dwa wektory, dzięki czemu możemy uzyskać ten rozkład gaussowski, z którego próbki później opisują nam to, co mamy na wejściu (czyli ten obrazek). <br /></p>



<p>Ponieważ w tych próbkach jest niezerowa wariancja, możemy zrekonstruować nasz obrazek na wiele różnych sposobów, rekonstruując różne próbki z tego rozkładu prawdopodobieństwa.<br /><br /><br /></p>



<p><strong>Jak mawiali mądrzy ludzie: umiejętność rozpoznawania obiektów i zrozumienia relacji pomiędzy tymi obiektami jest kamieniem węgielnym ludzkiej inteligencji. Spróbujmy najpierw zrozumieć, co to oznacza w praktyce. Ważność rozpoznania obiektów i relacji &#8211; dlaczego akurat to jest taki ważny element? Jak to się robi, jeżeli chodzi o uczenie nadzorowane? Większość elementów się skupia na ten moment, używając <em>supervised learning, </em>w szczególności jeżeli mówimy o zastosowaniu w praktyce, bo ta gałąź nienadzorowana dopiero się rozkręca.</strong><br /><br /></p>



<p>My jako ludzie, ale także inne istoty (ożywione i nieożywione), musimy cały czas poruszać się w swoim środowisku i musimy nieustannie wchodzić z nim w interakcje. Wchodzenie w interakcje ze środowiskiem zazwyczaj polega na wchodzeniu w interakcje z różnymi obiektami w tym środowisku. Możemy to zrobić bezpośrednio, gdzie sami wchodzimy w interakcję z tymi obiektami (np. dotykamy ich, przesuwamy) bądź możemy używać do tego narzędzi. <br /></p>



<p>Użycie narzędzi jest to używanie innych obiektów do manipulowania otoczeniem. Żeby to było możliwe i żeby tak naprawdę życie było możliwe, musimy zrozumieć, co znajduje się w naszym otoczeniu. Musimy być w stanie wykryć obiekty, opisać je. Nie musi to być świadome, natomiast musimy wiedzieć, jakie właściwości mają różne obiekty oraz jakie są relacje między nimi. <br /></p>



<p>Na przykład: znamy prawa fizyki i wiemy, że jak coś zrzucimy ze stołu, to spadnie na ziemię, ale z drugiej strony oznacza to, że ten stół podpiera ten przedmiot, który na nim stoi. Używając relacji tego typu, możemy wykorzystywać obiekty w naszym otoczeniu jako narzędzia. Wtedy widząc np. banana wiszącego na drzewie, możemy wziąć krzesło bądź kamień, postawić go pod drzewem, wspiąć się i zerwać tego banana.&nbsp;<br /><br /><br /><br /></p>



<p><strong>A propos tych relacji, chciałem moją obserwację dotyczącą tego, jak się uczymy. Obserwując najpierw synka teraz już bardziej córkę (która ma ponad roczek), zauważyłem, jak uczy się małe dziecko. Najpierw jest w miarę czysta karta i później np. jak moja córka upadła i uderzyła się o łóżko, to trochę ją zabolało. </strong><br /></p>



<p><strong>Teraz jak próbuje położyć się na bok, to wie, że to może zaboleć, zamyka oczy i robi to bardziej delikatnie. Nauczyła się w ten sposób, że to boli. My jako ludzie bardzo często poznajemy ten świat poprzez eksperymenty. Część z nich faktycznie musimy dokonać swoimi rękoma, a części się po prostu domyślamy. Znajdując pewne analogie i wzorce, nie musimy całego świata spróbować, żeby go poznać. </strong><br /></p>



<p><strong>Nie poznamy go w całości, ale przynajmniej takie podstawowe rzeczy, które zdają się bardzo trywialne dla osoby dorosłej. Nie musimy ich wszystkich spróbować. Wiemy, że jak włożymy dwa palce do kontaktu, to kopnie nas prąd, a nie wszyscy to sprawdzili. To jest ciekawa rzecz, jak my jako ludzie uczymy się, jak wyciągamy te relacje. Nie mówię, że to jest kierunek, żeby zdefiniować inteligencję, ale to są powiązane punkt. </strong><br /></p>



<p><strong>Obecne modele, w szczególności związane z uczeniem nadzorowanym, zupełnie nie rozumieją tej relacji. Potrafią jeszcze wykrywać w taki sposób statystyczny, że na danym zdjęciu jest coś (kot, pies itd.), ale nie potrafią zrozumieć, że kot będzie uciekał za chwilę, bo tutaj jest także pies.&nbsp;</strong><br /><br /></p>



<p>W tym przypadku to bym powiedział, że to zależy od danych, jakich używamy do trenowania. Natomiast wydaje mi się, że to, co chciałeś powiedzieć to to, że dzisiejsze algorytmy uczą się wykrywać nie tyle związki przyczynowo-skutkowe, co zależności statystyczne. Dzisiaj to właśnie wykrywanie związków przyczynowo-skutkowych jest bardzo aktywnym obszarem badań. Bardzo wiele publikacji powstaje właśnie w tej dziedzinie.&nbsp;<br /></p>



<p><strong>W 2016 r. naukowcy z DeepMind opublikowali pracę o tzw. AIR (</strong><strong><em>Attend-Infer-Repeat)</em></strong><strong>, która przykuła Twoją uwagę. Zresztą też napisałeś potem swoją własną implementację tego algorytmu, który jest dostępny na GitHubie. Później to na tyle Cię zainspirowało, że napisałeś swoją publikację z tzw. </strong><strong><em>sequential</em></strong><strong>. Wyjaśnij troszkę bardziej kontekst &#8211; czym jest AIR? Jakie ma wady?</strong><br /></p>



<p>AIR reprezentuje bardzo dużą część moich zainteresowań sztuczną inteligencją i inteligencją jako taką. AIR jest to stochastyczny model, który potrafi opisać różne obrazki, różną ilością zmiennych. Oznacza to, że jeżeli mamy bardzo prosty obrazek np. jabłko na stole, możemy taki obrazek opisać tylko jedną zmienną, która w tym przypadku będzie opisywała to jabłko. Natomiast jeżeli mamy bardziej skomplikowaną scenę, możemy użyć większej ilości zmiennych, gdzie każda z nich będzie opisywała inny element tej sceny. <br /></p>



<p>Jest to fajne, ponieważ pozwala nam to skompresować zdjęcia do rozmiaru, który odpowiada ilości elementów na tym zdjęciu, czyli bardziej skomplikowane zdjęcie, będzie opisane większą ilością zmiennych. Inną równie ciekawą rzeczą jest to, że każda zmienna będzie opisywała inny przedmiot na tym zdjęciu. Jest to ciekawe dlatego, że AIR jest elementem, który uczy się bez nauczyciela. <br /></p>



<p>Żeby opisać różne przedmioty różnymi zmiennymi, AIR musi nauczyć się wykrywać te przedmioty, wyizolować je z tego zdjęcia i opisać. Co ciekawe, w odróżnieniu od innych modeli, które wykrywają obiekty, AIR opisuje obiekt, nie tylko opisując jego położenie na zdjęciu (czyli współrzędne x, y i rozmiary), ale również daje nam wektor, który opisuje bardzo dokładnie wygląd tego obiektu. <br /></p>



<p>Tego typu reprezentacja (tzn. reprezentacja zdjęcia złożona z wielu zmiennych, opisujących różne elementy na nim), pozwala nam wnioskować relacje pomiędzy obiektami na tym zdjęciu i odpowiadać na często dosyć skomplikowane pytania (o to zdjęcie, o przedmioty na nim).&nbsp;<br /><br /><br /></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Attend, Infer, Repeat: Fast Scene Understanding with Generative Models" width="960" height="540" src="https://www.youtube.com/embed/4tc84kKdpY4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"> Authors: S. M. Ali Eslami, Nicolas Heess, Theophane Weber, Yuval Tassa, Koray Kavukcuoglu, Geoffrey E. Hinton &#8211; <a href="http://arkitus.com/files/arxiv-attend-infer-repeat.pdf" target="_blank" rel="noreferrer noopener" aria-label=" (otwiera się na nowej zakładce)">Paper</a><a rel="noreferrer noopener" href="https://www.youtube.com/redirect?v=4tc84kKdpY4&amp;event=video_description&amp;redir_token=_LBek8GNTSsXiX-CuKCDJ_7SXEt8MTU4Njg2NDEzM0AxNTg2Nzc3NzMz&amp;q=http%3A%2F%2Farkitus.com%2Ffiles%2Farxiv-attend-infer-repeat.pdf" target="_blank">, </a><a href="http://arkitus.com/attend-infer-repeat/" target="_blank" rel="noreferrer noopener" label="Overview (otwiera się na nowej zakładce)" class="broken_link">Overview</a></figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Brzmi to ciekawie, prawie tak, jakby działa się jakaś magia, że nie mówimy modelowi, co jest na tym zdjęciu, a on sam potrafi się domyślić, zbadać lokalizację tych przedmiotów, a przy okazji reprezentację wektorową. Innymi słowy &#8211; jak mam zdjęcie, a którym jest stół, na nim klocki, to on jest w stanie wychwycić te poszczególne klocki i je przenieść, bo może robić różne manipulacje matematyczne, również geometryczne. Prawda?</strong><br /><br /></p>



<p>Tak, to prawda. Niestety ten model ma też sporo wad. Jedną z nich jest to, że ten model działa tylko na bardzo prostych zdjęciach, reprezentujących bardzo proste sceny np. obiekty leżące na stole, cyferki na czarnym tle. Niestety on nie działa z bardziej skomplikowanymi scenami. Natomiast w tej chwili są już publikacje, które prezentują rozszerzenia tego modelu, które są w stanie działać na dosyć skomplikowanych scenach. <br /><br /></p>



<p>Jest też trochę problemów technicznych z jego implementacją. Sam model zawiera wiele komponentów. Trudnością techniczną jest to, że różna ilość zmiennych do opisu różnych wejść (czy obrazków) oznacza, że musimy podjąć decyzję w pewnym momencie, ile tych zmiennych ma być. <br /></p>



<p>Decyzja ta jest związana z pracą z dyskretnym rozkładem prawdopodobieństwa. Obliczanie gradientów pochodnych w rozkładach dyskretnych jest dosyć trudne i wymaga dużej ilości plików. Da się to zrobić, natomiast trenowanie takich modeli jest dużo droższe i niestety te modele nie skalują się tak dobrze do dużych danych.&nbsp;<br /><br /><br /><br /></p>



<p><strong>Powiedziałeś też o kolejnych publikacjach, które te wady częściowo naprawiają. Skupmy się teraz na Twojej publikacji, czyli SQAIR (</strong><strong><em>Sequential Attend, Infer, Repeat)</em></strong><strong>. Co udało się osiągnąć? Co udało się naprawić z tej poprzedniej inspiracji, jeśli chodzi o pierwotny model AIR?</strong><br /></p>



<p>Po pierwsze AIR jest modelem, który działa na poszczególnych zdjęciach. Jeżeli użyjemy AIR do opisania zdjęcia kilkoma zmiennymi, dostaniemy zmienne, opisujące różne obiekty. Wszystko fajnie, ale teraz jeżeli mamy wideo i zastosujemy ten model do następnej klatki tego filmu, chcielibyśmy mieć zmienne, które znowu opisują te same obiekty i faktycznie AIR może nam to dać. Niestety nie będziemy mieli żadnego prostego sposobu, żeby powiązać zmienne z jednej klatki do zmiennych z następnej. <br /></p>



<p>Nie będziemy wiedzieli, które zmienne przyporządkować do tego samego obiektu. Jeżeli interesuje nas jakiś konkretny obiekt i chcemy wiedzieć, gdzie on się znajduje, jak się porusza, jak się zachowuje, jakie ma relacje w stosunku do innych obiektów widocznych na filmie, niestety AIR nie będzie nam w stanie tego dać.&nbsp;<br /></p>



<p>Po drugie ponieważ AIR pracuje ze zdjęciami, rozkład tego zdjęcia na różne obiekty jest niejednoznaczny, tzn. jeżeli mamy skomplikowany obiekt (nawet człowieka), AIR może rozbić go np. na nogi i tors, ale też może rozbić człowieka na pół, gdzie jedna zmienna będzie opisywała jedną nogę i jedną rękę, a druga będzie opisywała drugą nogę i drugą rękę. <br /></p>



<p>To dlatego że ten rozkład jest dokonywany tylko i wyłącznie na podstawie pikseli, na podstawie jednego zdjęcia. Jeżeli mielibyśmy algorytm, który działa bezpośrednio na video, moglibyśmy wziąć pod uwagę, które części zdjęcia poruszają się razem, a które nie. Biorąc to pod uwagę, moglibyśmy zaklasyfikować człowieka jako jeden obiekt i wtedy reprezentować go, używając tylko jednej zmiennej, która faktycznie wyrazi, jak ten obiekt zmienia się w czasie na różnych klatkach video. <br /></p>



<p>W SQAIR również dostajemy zmienne, które opisują ten sam obiekt w różnych punktach czasu. Możemy tego użyć do śledzenia obiektów.&nbsp;<br /><br /></p>



<p>Co udało nam się osiągnąć? Udało nam się to zastosować do wideo nagranych na kampusie uniwersyteckim, gdzie nauczyliśmy się wykrywać i śledzić ludzi. Udało nam się zrobić to bez nadzoru człowieka, co do tej pory nie było możliwe. <br /><br /><br /><br /></p>



<figure class="wp-block-image size-large"><img decoding="async" fetchpriority="high" width="1024" height="562" src="https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.49.01-1-1024x562.png" alt="" class="wp-image-3096" srcset="https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.49.01-1-1024x562.png 1024w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.49.01-1-300x165.png 300w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.49.01-1-768x421.png 768w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.49.01-1-1140x625.png 1140w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.49.01-1.png 1156w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Grafika podchodzi z artykułu: &#8222;<a href="https://arxiv.org/pdf/1806.01794.pdf">Sequential Attend, Infer, Repeat: GenerativeModelling of Moving Objects </a>&#8222;, którego Adam Kosiorek jest współautorem. </figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Tam jeszcze jest jedna rzecz, o której nie wspomniałeś, a mnie to też zaciekawiło w tej publikacji. Mam na myśli przewidywanie, czyli z jednej strony obserwowanie tych zmian w czasie rzeczywistym (że jakiś obiekt się porusza), ale również prognozowanie co będzie dalej. Czyli człowiek jest tam gdzie jest, ale za chwilę pójdzie w zupełnie inną stronę.&nbsp;</strong><br /></p>



<p>Tak, możemy również przewidywać przyszłość. Co ciekawe, ponieważ jest to model stochastyczny (czyli losowy), możemy przybliżyć wiele różnych przyszłości. Dzięki temu, możemy przewidzieć różne rozwiązania. Może to być bardzo istotne, np. w przypadku samojeżdżących samochodów, które muszą podejmować decyzje konserwatywne tak, żeby np. nie wpaść na pieszego. W takim przypadku, jeżeli możemy przewidzieć różne ścieżki, którymi pieszy może się poruszać w przyszłości, możemy mieć samochód, który będzie bardzo bezpieczny.&nbsp;<br /><br /><br /></p>



<p><strong>No właśnie, to już jest bardziej rzeczywiste, że ten świat może mieć wiele scenariuszy i ważne jest, aby umiejętnie się przygotować przynajmniej do części z nich. Uwiarygodni to rozwiązanie na większą skalę.</strong><br /><br /></p>



<p><strong>Zmienię temat i przybliżę się do Twojej ostatniej publikacji (przynajmniej z tych, które są publicznie dostępne, bo nie wiem nad czym jeszcze pracujesz teraz). W roku 2017 Hinton wraz ze swoim zespołem przedstawił światu tzw. <em>capsule networks</em>. Hinton jest słynny z tego, że bardzo mocno krytykuje CNN, czyli sieci konwolucyjne argumentując, że to ma swoje ograniczenia. </strong><br /><br /></p>



<p><strong>Akurat te argumenty, których używa, faktycznie przemawiają do mnie. Ciężko to nazwać inteligencją, to bardziej na poziomie statystyki. Zgaduje pewne rzeczy i dość często trafia. Teraz proszę wyjaśnij, czym są <em>capsule networks. </em>Do czego mogą być przydatne? Czy to działa?</strong><br /><br /></p>



<p>Zacznę od ostatniego pytania, czy to działa? Nie, niestety nie, ale cel jest godny podziwu i być może pewnego dnia zaczną działać. <em>Capsule networks (</em>po polsku byłaby to sieć kapsułkowa) mógłbym przedstawić z kilku punktów widzenia. Jeden z ciekawszych jest ten, że sieci neuronowe w tej chwili działają na podstawie poszczególnych neuronów. <br /></p>



<p>Każdy neuron jest to wartość skalarna, czyli po prostu jedna liczba. Natomiast w <em>capsule networks</em>, jeden neuron jest małym wektorem, który opisuje jakiś obiekt bądź jakąś abstrakcję.&nbsp;<br /></p>



<p>Wróćmy na chwilę do CNN. <em>Convolutional Neural Network </em>działa, ponieważ to, co mamy na wejściu, nie zależy od translacji, tego co dajemy na wejściu. Jeżeli mamy np. zdjęcie i zastosujemy CNN na nim, to jeżeli przesuniemy to zdjęcie, przesunie się również wyjście. Po angielsku mówimy, że CNN są <em>translation equivalent, </em>gdzie <em>translation </em>jest jednym z wielu stopni swobody, w stosunku do których zmiany chcielibyśmy modelować w ten sposób. <br /></p>



<p>Inne stopnie swobody tego typu, to jest np. skala, czyli powiększanie, zmniejszanie obiektów bądź rotacja, czyli obserwator monitoruje przedmiot z innego punktu widzenia itd. CNN tego niestety nie robią, choć ostatnio pojawiają się publikacje, które dają tego typu możliwości. Natomiast są one bardzo skomplikowane matematycznie. <br /></p>



<p>Główną ideą <em>capsule networks</em> jest to, że obiekt, skomplikowany przedmiot jest złożony z części. Relacje geometryczne pomiędzy tym obiektem a jego częściami, są niezależne od punktu widzenia obserwatora. Jeżeli powiedzmy, moja ręka jest przesunięta w jakiś sposób względem mojego środka ciężkości, to to przesunięcie nie zależy od tego, z którego punktu ktoś na mnie patrzy. <br /><br /></p>



<p>Jest to prawdą, tylko jeżeli weźmiemy pod uwagę geometrię trójwymiarową. Nie jest to natomiast prawda, jeżeli mówimy o dwuwymiarowych projekcjach, czyli zdjęciu. Jeżeli przyjmiemy to założenie, że obiekt składa się z części i te relacje między obiektami a częściami obiektu nie zależą od pozycji obserwatora i jeżeli założymy, że części i ich pozycje są łatwiejsze do wykrycia niż całe skomplikowane obiekty, to mogąc wykryć te części na zdjęciu, powinniśmy być w stanie użyć informacji o tych częściach do wykrycia obiektu, z których te części się składają.<br /><br /></p>



<p> Jest to dosyć skomplikowane i nie wiem, czy jestem w stanie to wyrazić w kilku zdaniach.<br /><br /><br /></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Geoffrey Hinton – Capsule Networks" width="960" height="540" src="https://www.youtube.com/embed/x5Vxk9twXlE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div><figcaption class="wp-element-caption"> Geoffrey Hinton – Capsule Networks ,   York University </figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Gdzieś tam pojawia się też ten element interpretacji, że rozkładamy sobie na czynniki pierwsze albo na jakieś mniejsze części i coś tam z tym robimy, pojawiają się wektory, które próbują te części opisywać. Pewien kontekst z tego wybrzmiał. </strong><br /></p>



<p><strong>Dążę do tego, że pojawiła się Twoja najnowsza publikacja o nazwie <em>&#8222;Stacked Capsule Autoencoders&#8221;</em>, w której również Hinton brał udział (albo przynajmniej jest wpisany jako jeden z współautorów). Powiedz trochę więcej, co fajnego udało się osiągnąć tym razem?</strong><br /><br /></p>



<p>Wydaje mi się, że pomysł kapsułek jest nieco zbyt skomplikowany, żeby mógł działać. Natomiast to, co mnie zainteresowało to to, że kapsułki wykorzystują tzw. <em>routing</em>, czyli mamy części i obiekty. Części powinny w pewnym sensie zagłosować na niektóre obiekty. Powoduje to, że potrzebujemy znaleźć ścieżkę, którą informacje powinny popłynąć w takiej sieci neuronowej. Jest to podobne do modelu, który ostatnio stał się popularny w przetwarzaniu języka naturalnego &#8211; <em>transformer</em>. <br /></p>



<p>Ja byłem zainteresowany tymi dwoma związkami. Tak się zdarzyło, że akurat byłem na konferencji w Montrealu, gdzie wpadłem na Hintona. Hinton zaprosił mnie na staż do niego do labu. Tak powstało <em>Capsule autoencoders. </em>To, co staraliśmy się osiągnąć, to sieć neuronowa, która byłaby nieco bardziej elastyczna niż oryginalne kapsułki dlatego, że oryginalne kapsułki są bardzo skomplikowane pod względem całej używanej maszynerii. <br /><br /><br /></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="343" src="https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17-1024x343.png" alt="" class="wp-image-3088" srcset="https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17-1024x343.png 1024w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17-300x100.png 300w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17-768x257.png 768w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17-1536x514.png 1536w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17-1140x381.png 1140w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.17.png 1680w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Grafika pochodzi z publikacji: &#8222;<a href="https://arxiv.org/pdf/1906.06818.pdf" target="_blank" rel="noreferrer noopener" aria-label="Stacked Capsule Autoencoders (otwiera się na nowej zakładce)">Stacked Capsule Autoencoders</a> &#8222;, której współautorem jest Adam Kosiorek. </figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Chcieliśmy mieć model, który pozwoli nam nauczyć się interpretacji wejścia w taki sposób, żeby ta interpretacja dała nam wektory, które przestrzegają pewnych praw. Chcieliśmy mieć takie wektory, które będziemy mogli komponować ze sobą w sposób geometryczny. Trochę tak jak relacje pomiędzy obiektami i ich częściami oraz wektory, które będzie można transformować, używając geometrii trójwymiarowej. <br /></p>



<p>W związku z tym, wzięliśmy sieć neuronową bardzo podobną do kapsułek, natomiast zrobiliśmy ją nieco w drugą stronę.&nbsp;<br /></p>



<p>Kapsułki wcześniej szły od obrazka do wektora prawdopodobieństw przynależności tego obrazka do różnych klas i były wykorzystywane do klasyfikacji obiektów. My zaś odwróciliśmy tę kapsułkę tak, że mogliśmy zacząć od opisu obiektu i mając go, mogliśmy wykorzystać maszynerię podobną do tej, która była w kapsułkach, do wygenerowania obrazka tego obiektu, rozkładając obiekt na różne części i później mapując je bezpośrednio do małych obrazków. <br /></p>



<p>Robiąc to, mogliśmy wziąć tak naprawdę byle jaką sieć neuronową, która mogła się nauczyć reprezentacji oczekiwanych przez nasz dekoder. W związku z tym, otrzymaliśmy model, który uczył się opisywać obrazki bez nauczyciela, gdzie ta reprezentacja, wyuczona przez ten model, przestrzegała zasady geometrii trójwymiarowej.&nbsp;<br /><br /><br /><br /></p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="360" src="https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38-1024x360.png" alt="" class="wp-image-3091" srcset="https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38-1024x360.png 1024w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38-300x105.png 300w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38-768x270.png 768w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38-1536x540.png 1536w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38-1140x401.png 1140w, https://biznesmysli.pl/wp-content/uploads/2020/04/Screen-Shot-2020-04-13-at-09.51.38.png 1662w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"> Grafika pochodzi z publikacji: &#8222;<a rel="noreferrer noopener" href="https://arxiv.org/pdf/1906.06818.pdf" target="_blank">Stacked Capsule Autoencoders</a> &#8222;, której współautorem jest Adam Kosiorek.  </figcaption></figure>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Zostawiłem sobie na koniec jeszcze dwa pytania praktyczne, które myślę, że będą bardzo przydatne dla osób, które po pierwsze &#8211; pracują z uczeniem maszynowym, eksperymentują, a po drugie &#8211; zamierzają zbudować wokół tego swoją karierę. </strong><br /><br /></p>



<p><strong>Pierwsze pytanie dotyczy eksperymentów w uczeniu maszynowym, bo tego robisz sporo i zresztą jak wspomniałeś w poście na swoim blogu: z czasem jak się robi takie eksperymenty, to człowiek zaczyna się gubić, bo jest dużo wymiarów zmienności. Tutaj z jednej strony są różne dane, parametry, modele i w tym wszystkim można bardzo łatwo się pogubić.</strong><br /><br /><strong> </strong></p>



<p><strong>Są pewne biblioteki, które próbują ten problem rozwiązać, ale też zacząłeś implementować swoją własną o nazwie <em><a rel="noreferrer noopener" label=" (otwiera się na nowej zakładce)" href="http://akosiorek.github.io/ml/2018/11/28/forge.html" target="_blank" class="broken_link">Forge</a>. </em>Pojawiła się ona jakiś czas temu, ale sprawdzałem, że ostatni update był chyba 2 miesiące temu. Dlaczego w ogóle się zdecydowałeś napisać swoją bibliotekę? Co ona robi lepiej? Czy zamierzasz ją rozwijać dalej? Czy używasz jej we własnych projektach? Komu może być przydatna?</strong><br /><br /><br /></p>



<p>Eksperymenty w uczeniu maszynowym dosyć często przysparzają trudności:</p>



<ul>
<li>związanych z zapisywaniem rezultatów generowanych przez eksperymenty,</li>



<li>zapisywaniem parametrów użytych do przeprowadzenia tych eksperymentów,</li>



<li>zapisywaniem różnych pośrednich rezultatów z tych eksperymentów,</li>



<li>zapisywaniem dokładnego stanu kodu, który został użyty do puszczania tych eksperymentów.<br /><br /></li>
</ul>



<p>To wszystko powoduje, że czasami po tygodniu, czasami po miesiącu regularnego puszczania eksperymentów w nowym projekcie zostajemy ze stosem plików, który jest bardzo ciężki do obsługi, do jakiekolwiek interpretacji i bardzo ciężko się połapać, co jest gdzie oraz jak odtworzyć jakieś rezultaty. </p>



<p>W związku z tym, od kiedy zacząłem swój doktorat, zacząłem budować narzędzia, które pozwalają mi te wszystkie procesy ułatwić, uprzyjemnić. Są to narzędzia, które zacząłem używać ponownie w kolejnych projektach. Natomiast zazwyczaj to używanie ponowne sprowadzało się do tego, że kopiowałem część kodu z poprzedniego projektu do następnego. Niestety nie jest to skalowalne i z każdym projektem tych narzędzi było coraz więcej. </p>



<p>Cały proces zajmował coraz więcej czasu. Powodował, że miałem kilka różnych wersji tych narzędzi itd. W pewnym momencie postanowiłem napisać małą biblioteczkę, nazwałem ją <em>Forge, </em>która zawiera te wszystkie narzędzia.&nbsp;</p>



<p>Niestety nie ma na rynku narzędzia, które byłoby na tyle lekkie, na ile chciałem, a jednocześnie żeby było na tyle elastyczne i pozwalało użytkownikowi zrobić to, co tak naprawdę chce. </p>



<p>Tak powstał <em><a href="https://github.com/akosiorek/forge">Forge</a>.</em> Działa z różnymi frameworkami. <em>Forge </em>pozwala zapisać rezultaty, wszystkie zmiany w kodzie, parametry użyte do przeprowadzania danego eksperymentu. Gdy już mamy wytrenowany model, <em>Forge </em>pozwala w bardzo łatwy i przyjemny sposób uruchomić taki model, żeby sprawdzić, jak się zachowuje.<br /></p>



<p><strong>A komu polecasz? Jest to narzędzie dla osób, które zajmują się podobnymi rzeczami, które Ty robisz, czyli badaniami?</strong><br /></p>



<p>Tak, to jest głównie do badań. Wydaje mi się, że tego typu biblioteka w zasadzie nie ma zastosowania w produkcji.<br /><br /><br /></p>



<p><strong>Ciekawy jestem, takiego łańcucha wydarzeń. Najpierw była publikacja AIR stworzona z naukowcami z DeepMind. Zainteresowałeś się tą publikacją, zbadałeś, zaimplementowałeś ten kod, który był w niej pisany. Później pojawił się SQAIR, gdzie ta publikacja była całkiem udana i pojawiła się na konferencji NIPS (czyli już wyżej się nie da “skoczyć”). </strong><br /><br /></p>



<p><strong>Teraz pracujesz w DeepMind i tutaj nasuwają się pewne pytania. Czy ten łańcuch, o którym teraz powiedziałem, ma ciąg wydarzeń przyczynowo-skutkowy? Czyli jedno zdarzenie wpłynęło na drugie? Jeżeli tak, czy to był przypadek losowy, czy to jest jakiś plan, który sobie wymyśliłeś i tak budujesz swoją karierę? </strong><br /><br /></p>



<p><strong>Dlaczego o to pytam? Teraz pewnie też nas czytają młodsze osoby, które są przed wyborami życiowymi typu, czy zrobić doktorat, w jaki sposób się dostać do DeepMind. Być może to będzie podpowiedź dla nich. Jak to było u Ciebie?</strong><br /><br /></p>



<p>Nie ukrywam, że ja DeepMindem zainteresowałem się przynajmniej dwa lata wcześniej, zanim zacząłem swój doktorat w 2016 r. Wydaje mi się, że pierwsze publikacje DeepMind zacząłem czytać w 2013 r. W zasadzie od samego początku moim marzeniem było, żeby dostać się do DeepMind. Głównie dlatego, że publikacje, które DeepMind wtedy wypuszczał, były bardzo bliskie moim zainteresowaniom. <br /><br /></p>



<p>Gdy pojawił się AIR, był on również bardzo bliski moim zainteresowaniom i dlatego chciałem nad nim pracować. Natomiast nie wyobrażałem sobie, że praca nad tym przybliży mnie do DeepMind w jakiś sposób. Jak się okazało, bezpośrednią konsekwencją tego, że zaimplementowałem i wypuściłem tę implementację na moim GitHubie było to, że autor tej publikacji zauważył ją i polecił mnie wewnętrznie na staż. <br /><br /></p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Sequential Attend, Infer, Repeat: Generative Modelling of Moving Objects" width="960" height="540" src="https://www.youtube.com/embed/-IUNQgSLE0c?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p><br />Dzięki temu, po pierwszym roku mojego doktoratu dostałem się na staż do DeepMind. Owocem stażu była oferta powrotu jako pełnoetatowy Research Scientist. Tak, ciąg przyczynowo-skutkowy jest tutaj bardzo wyraźny.&nbsp;<br /><br /></p>



<p>Nie wiem, czy w tej chwili implementacja publikacji DeepMind jest dobrą drogą dostania pracy w tej firmie. DeepMind się bardzo rozrósł i nie zatrudnia aż tyle osób, ile zatrudniał wcześniej, w związku z czym dostanie się może być trudniejsze. <br /><br /></p>



<p>Natomiast jeżeli ktoś jest zainteresowany publikacjami, bardzo polecam implementację publikacji naukowych od zera, bo uważam, że jest to jeden z najlepszych sposobów uczenia się i zdobywania doświadczenia w tym, jak tego typu projekty tworzyć, jak implementować modele uczenia maszynowego, co jest w nich tak naprawdę ważne. Tylko w ten sposób możesz zobaczyć, jak trudne to czasami może być.<br /><br /><br /></p>



<p><strong>A także jak często nie da się powtórzyć tego, co jest napisane w publikacji. Zresztą Andrew Ng zawsze mówi, że jak chcesz się rozwinąć, to bierz pierwszą lepszą publikację i spróbuj to powtórzyć. Często niestety jest tak, że to nie jest takie łatwe. Wynika to z różnych aspektów. Z jednej strony osobie, która próbuje to powtórzyć, brakuje umiejętności albo to, co jest w publikacji, nie zawsze jest powtarzalne, bo wynik jest w pewien sposób nakręcony.&nbsp;</strong><br /></p>



<p>Z tym, że jest nakręcony, w większości przypadków polega na tym, że autor publikacji uzyskał jakiś wynik przypadkowo. Część z tych modeli działa nieco losowo i niektóre wyniki są po prostu wyższe od innych. Nie przypisywał bym temu chęci oszukiwania, natomiast to też się na pewno zdarza.&nbsp;<br /><br /><br /></p>



<p><strong>Dobrze, że to podkreśliłeś. Tutaj miałem na myśli to, że często problemem jest oszacowanie na ile osiągnięty wynik nie jest przypadkowy. To jest jedno z wyzwań, z którym się mierzymy w uczeniu maszynowym.</strong><br /><br /></p>



<p><strong>Bardzo dziękuję Adamie, że znalazłeś czas, żeby podzielić się swoim doświadczeniem i opowiedzieć o tym, czym się zajmujesz. Życzę Ci, żeby udało Ci się zrozumieć, czym jest inteligencja i ją zaimplementować.</strong><br /><br /></p>



<p>Dziękuję bardzo Vladimir. Trzymaj się w tych dziwnych czasach.<br /><br /><br /></p>



<p></p>



<p><strong>Jeżeli chcesz coś osiągnąć, to naprawdę warto eksperymentować. Adam mówiąc o swojej drodze do DeepMind zaznaczył, że chciał tam się dostać, ale nie do końca wiedział którą ścieżką. Eksperymentował i próbował znaleźć otwarte drzwi, żeby ktoś go zauważył i zaprosił do środka.</strong><br /></p>



<p><strong> Nie zawsze da się ten proces zaplanować w 100%, zwykle w ogóle nie da się go zaplanować. Z drugiej strony, kiedy zaczynasz działać, eksperymentować, to nagle zauważasz, że któreś podejście zaczyna funkcjonować i świat naprawdę potrafi zaskoczyć tym, jak zareaguje na nasze działania.&nbsp;</strong><br /></p>



<p><strong>Życzę Ci dużo zdrowia przede wszystkim, ale również eksperymentuj, próbuj nowych rzeczy po to, żeby znaleźć to, co naprawdę potrafi Cię pozytywnie zaskoczyć.&nbsp;</strong></p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>
<p>Artykuł <a href="https://biznesmysli.pl/uczenie-nienadzorowane-oczami-naukowca-z-deepmind/">Uczenie nienadzorowane oczami naukowca z DeepMind</a> pochodzi z serwisu <a href="https://biznesmysli.pl">Biznes Myśli</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://biznesmysli.pl/uczenie-nienadzorowane-oczami-naukowca-z-deepmind/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Prowadzący naukowiec z DeepMind o rozwoju sztucznej inteligencji</title>
		<link>https://biznesmysli.pl/deepmind-janusz-marecki/</link>
					<comments>https://biznesmysli.pl/deepmind-janusz-marecki/#respond</comments>
		
		<dc:creator><![CDATA[Vladimir]]></dc:creator>
		<pubDate>Mon, 05 Nov 2018 04:00:17 +0000</pubDate>
				<category><![CDATA[Podcast]]></category>
		<category><![CDATA[deep learning]]></category>
		<category><![CDATA[DeepMind]]></category>
		<category><![CDATA[ibm]]></category>
		<category><![CDATA[Janusz Marecki]]></category>
		<category><![CDATA[sztuczny mózg]]></category>
		<category><![CDATA[unsupervised learning]]></category>
		<guid isPermaLink="false">http://biznesmysli.pl/?p=1255</guid>

					<description><![CDATA[<p>W tym odcinku dowiesz się: Czym zajmuje się Janusz Marecki oraz jak działa DeepMind? Co Januszowi udało się osiągnąć pracując w IBM Research Czym są problemy w całości obserwowalne? Jakie są przeszkody w procesie konstrukcji sztucznego mózgu? Czym jest system wieloagentowy (multi-agents system)? Jaką wartość biznesową możesz uzyskać wdrażając system wieloagentowy do swojej firmy? Czym jest efektywność Pareto? Na czym polega &#8222;dylemat więźnia&#8221; oraz &#8222;dylemat społeczny&#8221;? Jak problemy sztucznej inteligencji przekładają się na otaczającą nas rzeczywistość? Czy w przyszłości będziemy w stanie kontrolować sztuczną inteligencję? Czym dokładnie jest AGI oraz czy jesteśmy w stanie go osiągnąć? W jak szybkim tempie technika posuwa się do przodu? Jakich błędów unikać podczas wyciągania wniosków z &#8222;udanych&#8221; eksperymentów? Które dziedziny nauki lub medycyny rozwiną się najbardziej w ciągu kolejnych 5-10 lat? Na początek szybkie ogłoszenie. Pewnie jak już wiesz, 29 października ruszył mój autorski kurs praktycznego uczenia maszynowego. Natomiast 12 listopada, rusza już drugi, też autorski kurs online w 100%: “Praktyczne prognozy szeregów czasowych”. Czym są szeregi czasowe, opowiedziałem w odcinku 39, który nosi tytuł: “10 przykładów jak uczenie maszynowe może pomóc Twojemu biznesowi”. W skrócie chodziło o to: jeżeli chcesz się nauczyć robić prognozy, na przykład popytu, różnych wartości i innych wymiernych czynników w czasie, to bardzo gorąco Cię zapraszam na ten kurs, gdyż może okazać się, że nagle jesteś w stanie zoptymalizować swój biznes i przedstawić wymierne korzyści, dlaczego uczenie maszynowe działa. To tyle jeśli chodzi o ogłoszenie. Tu możesz zobaczyć kawałek nagrania z kursu&#8230; Teraz przechodzimy do dzisiejszego gościa, którym jest Janusz Marecki. Pracuje on w DeepMind. Wcześniej pracował w IBM, bardzo ciekawa osoba, z bardzo fajnym, przyjacielskim podejściem do życia. Kiedy już go lepiej poznasz, to bardzo przyjemnie się z nim współpracuje. Osobom, które mniej siedzą w temacie może się wydawać, że Janusz posiada czasem kontrowersyjne poglądy. Z drugiej strony jest to spojrzenie pragmatyczne. Tak, jak to widzi naukowiec pracujący w DeepMind.&#160; Cześć Janusz, przedstaw się: kim jesteś, czym się zajmujesz, gdzie mieszkasz? Obecnie mieszkam w Londynie. Przedtem mieszkałem przez 10 lat w Stanach Zjednoczonych, w Nowym Jorku i w Los Angeles. Jestem naukowcem prowadzącym w DeepMind. To jest taki startup, który wyrósł już do ponad 1000 ludzi. Jest on częścią Google. Słyszeliśmy o tym startupie :). A powiedz, co ostatnio ciekawego przeczytałeś? Ostatnio natknąłem się na taką ciekawą książkę jednego ze słynnych naukowców z dziedziny sztucznej inteligencji, autorstwa Judea Pearl. To była książka zatytułowana “The Book of Why”. W tej książce autor podaje swoje doświadczenia przez całe życie kariery naukowej i argumentował dlaczego powinniśmy budować systemy sztucznej inteligencji, które rozumują nie tylko na podstawie danych. Czyli żeby ten system miał wbudowany algorytm rozumowania a nie tylko żeby próbował z danych te algorytmy wywnioskować. Bardzo ciekawa książka, dość obszerna. Jeszcze jej nie skończyłem, ale polecam. Akurat tej książki jeszcze nie przeczytałem, ale też mam ją na uwadze. Czytałem o niej artykuł. W ogóle, autor tej książki jest bardzo ciekawą osobą i cała jego biografia też jest inspirująca. Już wspomniałeś, że mieszkałeś przedtem w New Yorku, Los Angeles i pracowałeś w IBM Watson Research. Domyślam się, że przez 7 lat kiedy tam pracowałeś udało się zrobić wiele ciekawych rzeczy. Widziałem, że między innymi napisałeś książkę Allocation of Continuous Resources in Agent Systems. Proszę, powiedz coś więcej. Co udało się stworzyć właśnie pracując w IBM Research? Oczywiście tyle na ile możesz. Miałem bardzo fajną okazję pracować z bardzo ciekawymi ludźmi. Jedną z osób z którymi między innymi tam pracowałem był Murray Campbell. Był on szefem tego zespołu Deep Blue, który grał z Kasparowem w szachy. Podobnie, miałem szansę jeszcze pracować z Gerry Tesauro. Jest on jednym z ojców sztucznej inteligencji, gdyż jako pierwszy w 1994 roku zaproponował taki system, mianowicie sieć neuronową, która sama nauczyła się grając ze sobą, grać w Backgammon na poziomie lepszym niż najlepszy człowiek. Te doświadczenia były o tyle ciekawe, że ci właśnie ludzie skierowali mnie na pewną taką dziedzinę. Czym się zajmować, czym się nie zajmować. Na przykład Murray powiedział, żeby się już nie zajmować systemami, które są tak zwane “complete information problems” czyli w całości obserwowalne. Na przykład gra w szachy jest czymś takim. To, co widzimy na szachownicy, na podstawie tego podejmujemy optymalne decyzje, bo tego typu problemy, jak on już kiedyś sugerował będą rozwiązane, i widzieliśmy to na przykład w DeepMindzie kiedy nasz system wygrał w jeszcze trudniejszą grę “Go” z mistrzem świata. Podobnie Gerry powiedział mi żeby się nie zajmować systemami, które są “model free”, czyli bez modelu, ponieważ są to rzeczy, które już teraz da się zrobić przez co to nie będzie przyszłościowe. Tych właśnie dwóch naukowców skierowało mnie na taką fajną drogę, żeby zajmować się problemami, które są tylko częściowo obserwowalne i żeby się uczyć modelu. Właśnie dlatego zacząłem wtedy pracować nad modelami sztucznego mózgu. To są bardzo ciekawe modele, które wywodzą się z zupełnie nowego podejścia w AI i tym się bawiłem przez przez wiele, wiele lat. Byliśmy finansowani przez Department of Homeland Security. Bardzo dobrze ten czas wspominam, a już szczególnie to, że Ci sławni ludzie z AI powiedzieli mi czym się warto zajmować, więc od tego czasu przez ostatnie 10 lat zajmuje się taką generalną sztuczną inteligencją, która zakłada, że musimy nauczyć się modelu świata, że zajmujemy się problemami które są tylko częściowo obserwowalne, i tak dalej. Bardzo ciekawe rzeczy. Sztuczna inteligencja sama w sobie jest popularnym hasłem. Sztuczny mózg, chyba niekoniecznie. Czy mógłbyś troszkę dodać, co chciałeś osiągnąć stwarzając sztuczny mózg? Jak to próbowałeś sam sobie tłumaczyć? Jest to o tyle ciekawe, że obecnie jeśli ludzie używają tego “termu” sztuczna inteligencja &#8211; AI, to prawie zawsze mają na myśli sztuczne sieci neuronowe. Nawet nie biologiczne, ale sztuczne sieci neuronowe, które są pewnego rodzaju aproksymatorami funkcji. To jest fantastyczne narzędzie, które nadaje się do wielu problemów. Natomiast to co teraz właśnie opisuję w mojej publikacji która będzie za niedługo dostępna to jest to, że to narzędzie niestety ma pewne ograniczenia w przypadku, gdy próbujemy je stosować do rozwiązania problemu generalnej sztucznej inteligencji. Oczywiście, nie każdy naukowiec się z każdym zgadza, więc są naukowcy którzy uważają, że wszystko rozwiążemy sieciami neuronowymi. Ja uważam, że nie dlatego że są właśnie te ograniczenia i te ograniczenia próbuję już od ponad 10 lat rozwiązać właśnie przy pomocy sztucznego mózgu, który tak naprawdę wzoruje się na cortexie (korze mózgowej) człowieka. Więc są to bardzo zaawansowane badania, ale tak jak wspomniałeś, one nie są mainstreamowe. Aktualnie, jeśli chodzi o badania mainstreamowe mamy do czynienia ze sztucznymi sieciami neuronowymi. One są bardzo popularne, więc budowanie sztucznego mózgu to jest rzecz na następne 5-10 lat, ale nie na jutro. Brzmi to bardzo interesująco. Wspomniałeś, że jesteś prowadzącym naukowcem w DeepMind i pracujesz już od ponad 3 lat. Powiedz w skrócie, czym się zajmujesz? W DeepMindzie zajmuję się między innymi systemami wieloagentowymi. Ciekawą rzeczą jest to, że nawet jak znajdziemy kiedyś rozwiązanie do generalnej sztucznej inteligencji, to podejrzewam, że będziemy mieli wielu takich właśnie agentów, którzy będą ze sobą współegzystować. Pojawia się pytanie, co należy zrobić, żeby ci agenci którzy mogą mieć o wiele większą zdolność rozumowania, planowania, i tak dalej, w jaki sposób mają oni ze sobą współdziałać? Czy to będą takie egoistyczne jednostki, tacy “dyktatorzy”, którzy wszystko przejmą, czy też stworzymy takie jakby środowisko, takie society agentów. To czym się próbuję zajmować w DeepMindzie, to z jednej strony właśnie próba zbudowania tego, tak zwanego master algorithm, czyli, tak zwanej sztucznej inteligencji na podstawie sztucznego mózgu, a drugą rzeczą jest, co zrobić żeby ci agenci którzy już są inteligentni mogli ze sobą współegzystować. Nie jest trywialne zagadnienie. Mamy na ten temat kilka ciekawych publikacji. Kilka pytań mi od razu przyszło do głowy, ale może najpierw wyjaśnijmy czym jest system wieloagentowy, ang. (multi-agents system). Co to takiego jest? Spróbuję podać przykład. Weźmiesz system, który rozwiązuje równania liniowe. To jest system jednoagentowy. Jest to jeden agent, algorytm, który rozwiązuje układ wielu równań i on ma dostęp do wszystkich możliwych danych. Komunikuje się sam ze sobą i sam rozwiązuje dany problem. W systemie wieloagentowym mamy do czynienia z rozproszeniem danych. Dane należą prywatnie do agentów z rozproszenia tego systemu, który rozumuje pomiędzy danymi i to samo rozwiązanie w sobie nie musi być skupione. One może też być rozproszone. Dobrym przykładem jest mrowisko. Kiedy mamy mrowisko w którym są dziesiątki tysięcy mrówek to jest to system wieloagentowy, ponieważ tam nie ma centralnego mózgu. Tam indywidualni agenci, (w tym przypadku to są właśnie te mrówki) podejmują lokalnie jakieś decyzję. Na podstawie lokalnej obserwacji wymieniają się informacją na podstawie powiedzmy feromonów. które zostawiają na ziemi, a rezultatem tego są niesamowite konstrukcje, takie jak na przykład mrowisko. To jest właśnie ten rezultat systemu agentowego, który jest możliwy do stworzenia tylko jak mamy całą populację agentów. Co jest ciekawe, w tej populacji każdy agent jest taki sam. Niesamowitą rzeczą jest to, że to nie jest tak, że to jest populacja powiedzmy dziesiątek typów agentów. W tym przypadku to jest populacja jednego typu agenta, ale tych agentów jest strasznie dużo. Czym to się różni? System scentralizowany ma scentralizowaną wiedzę i rozumowanie, natomiast system wieloagentowy ma zdecentralizowaną wiedzę i zdecentralizowane problemy decyzyjne, czy procesy decyzyjne w takim dużym skrócie. Brzmi to ciekawie. A jaką wartość biznesową może dać używanie systemów wieloagentowych? Podam może taki przykład którym zajmowaliśmy się jeszcze jak byłem na uniwersytecie w Stanach Zjednoczonych. Chodziło o rozwiązanie problemu harmonogramowania, to znaczy chodziło o to, żeby w danej grupie badawczej naukowcy mogli się dogadać i wspólnie ustalić kiedy będziemy mieli spotkanie. Wydaje się, że to jest taki prosty problem. Wcale nie jest taki prosty. Problem jest taki, że co jeśli nie każdy użytkownik chce każdemu powiedzieć kiedy będzie dostępny. Powiedzmy, że jest 10 osób i chcemy się umówić na jakieś spotkanie na godzinkę, ale to nie jest tak, że każdy z każdym wymienia kalendarze. Problemem jest koordynacja. Jak optymalnie zorganizować meeting, kiedy agenci czyli ludzie nie wymieniają się informacją, na przykład kiedy są dostępni a kiedy nie. Problem ten &#160;właśnie można rozwiązać z wykorzystaniem systemu wieloagentowego. W tym przypadku zastosowaliśmy systemy rozproszonej optymalizacji. To jest jeden z przykładów. Innym przykładem może być na przykład problem komiwojażera. Można go rozwiązać z wykorzystaniem algorytmu zwanego “Ant Colony Optimization”. Jest to algorytm, który mrówki stosują do optymalizacji znalezienia najkrótszej trasy między dwoma punktami. Kolejny system wieloagentowy i okazuje się, że można rozwiązać bardzo skomplikowane problemy takie jak, na przykład problem komiwojażera. Pozwolę sobie teraz trochę zmienić temat, ale akurat to, co wytłumaczyłeś jest nam potrzebne aby pójść dalej. Czytałem Twoją publikację Multi-agent Reinforcement Learning in Sequential Social Dilemmas, która została opublikowana w roku 2017. Dla Ciebie pewnie to jest taka sprawa codzienna, ale żeby każdy zrozumiał, to musimy jeszcze kilka takich pojęć wyjaśnić. Pierwsza rzecz, czym jest efektywność Pareto, lub tak zwane Optimum Pareto. Mógłbyś nam to wytłumaczyć na kilku przykładach? Można tutaj podać przykład lotu samolotem. Wyobraź sobie, że lecisz na wakacje i musisz się dostać z Krakowa do Tunezji, ale nie ma już lotu bezpośredniego. Są tylko loty, które mają jedną przesiadkę. Teraz, co jeśli się okaże, że jest jeden lot który leci przez jakieś miasto, powiedzmy przez Frankfurt i ten lot trwa 5 godzin i kosztuje 1000$, a może się okazać, że jest inny lot, który odbywa się przez zupełnie inne miasto, kosztuje tyle samo i trwa dokładnie tyle samo. W tym przypadku mamy do czynienia z dwoma rozwiązaniami. Są to zupełnie różne rozwiązania, które mają taki sam czas i taką samą cenę. Możemy powiedzieć, że tego typu rozwiązania są Pareto optymalne. Można podać jeszcze troszeczkę inne przykłady. Ogólnie, chodzi tutaj o to, że na przykład w tym przypadku mamy dwa kryteria. Pierwszym z nich jest jak najtańszy lot, a drugi, jest jak najkrótszy lot. Może się okazać, że mamy dwa rozwiązania. Jeden jest troszkę dłuższy, ale kosztuje mniej, a drugi jest krótszy, ale kosztuje więcej. Teraz pytanie. Które rozwiązanie jest optymalne dla nas. To jest właśnie ten problem, że są dwa rozwiązania i obydwa są optymalne w sensie, że jedno jest najtańsze a drugie jest najszybsze. To są dwa rozwiązania i nie możemy jednoznacznie powiedzieć, że jedno jest lepsze od drugiego. Obydwa są najlepsze w swojej dziedzinie, także są Pareto optymalne. Na czym polega...</p>
<p>Artykuł <a href="https://biznesmysli.pl/deepmind-janusz-marecki/">Prowadzący naukowiec z DeepMind o rozwoju sztucznej inteligencji</a> pochodzi z serwisu <a href="https://biznesmysli.pl">Biznes Myśli</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="lazyblock-speaker-spotify-2ljOsp wp-block-lazyblock-speaker-spotify"><div class="wp-block-columns are-vertically-aligned-center">
<div class="wp-block-column is-vertically-aligned-center">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://www.spreaker.com/user/biznesmysli/bm44-prowadzacy-naukowiec-z-deepmind-o-r" target="_blank"><img decoding="async" src="https://biznesmysli.pl/wp-content/uploads/2020/02/spreaker.png" alt="" class="wp-image-2150" width="213" height="71"></a></figure></div>
</div>
<div class="wp-block-column is-vertically-aligned-center">
<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a href="https://open.spotify.com/episode/4NXkOaZaA0ib17HVH2RBEu" target="_blank"><img decoding="async" src="https://biznesmysli.pl/wp-content/uploads/2020/02/spotify-badge-button.png" alt="" class="wp-image-2149" width="192" height="93"></a></figure></div>
</div>
</div></div>

<p>W tym odcinku dowiesz się:</p>
<ul>
<li>Czym zajmuje się Janusz Marecki oraz jak działa DeepMind?</li>
<li>Co Januszowi udało się osiągnąć pracując w IBM Research</li>
<li>Czym są problemy w całości obserwowalne?</li>
<li>Jakie są przeszkody w procesie konstrukcji sztucznego mózgu?</li>
<li>Czym jest system wieloagentowy (multi-agents system)?</li>
<li>Jaką wartość biznesową możesz uzyskać wdrażając system wieloagentowy do swojej firmy?</li>
<li>Czym jest efektywność Pareto?</li>
<li>Na czym polega &#8222;dylemat więźnia&#8221; oraz &#8222;dylemat społeczny&#8221;?</li>
<li>Jak problemy sztucznej inteligencji przekładają się na otaczającą nas rzeczywistość?</li>
<li>Czy w przyszłości będziemy w stanie kontrolować sztuczną inteligencję?</li>
<li>Czym dokładnie jest AGI oraz czy jesteśmy w stanie go osiągnąć?</li>
<li>W jak szybkim tempie technika posuwa się do przodu?</li>
<li>Jakich błędów unikać podczas wyciągania wniosków z &#8222;udanych&#8221; eksperymentów?</li>
<li>Które dziedziny nauki lub medycyny rozwiną się najbardziej w ciągu kolejnych 5-10 lat?</li>
</ul>
<p><span style="font-weight: 400;">Na początek szybkie ogłoszenie. Pewnie jak już wiesz, 29 października ruszył mój autorski kurs <a href="http://dataworkshop.eu/">praktycznego uczenia maszynowego</a>. Natomiast 12 listopada, rusza już drugi, też autorski kurs online w 100%: “<a href="http://www.dataworkshop.eu/pl/time-series">Praktyczne prognozy szeregów czasowych</a>”. Czym są szeregi czasowe, opowiedziałem w odcinku 39, który nosi tytuł: “10 przykładów jak uczenie maszynowe może pomóc Twojemu biznesowi”. W skrócie chodziło o to: jeżeli chcesz się nauczyć robić prognozy, na przykład popytu, różnych wartości i innych wymiernych czynników w czasie, to bardzo gorąco Cię zapraszam na ten kurs, gdyż może okazać się, że nagle jesteś w stanie zoptymalizować swój biznes i przedstawić wymierne korzyści, dlaczego uczenie maszynowe działa. To tyle jeśli chodzi o ogłoszenie.</span></p>
<p>Tu możesz zobaczyć kawałek nagrania z kursu&#8230;</p>
<p><iframe title="Autorski online kurs: Praktyczne prognozy szeregów czasowych" width="960" height="540" src="https://www.youtube.com/embed/rzjrJ-Jytms?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Teraz przechodzimy do dzisiejszego gościa, którym jest <a href="https://www.linkedin.com/in/januszmarecki/">Janusz Marecki</a>. Pracuje on w <a href="https://deepmind.com/">DeepMind</a>. Wcześniej pracował w IBM, bardzo ciekawa osoba, z bardzo fajnym, przyjacielskim podejściem do życia. Kiedy już go lepiej poznasz, to bardzo przyjemnie się z nim współpracuje. Osobom, które mniej siedzą w temacie może się wydawać, że Janusz posiada czasem kontrowersyjne poglądy. Z drugiej strony jest to spojrzenie pragmatyczne. Tak, jak to widzi naukowiec pracujący w DeepMind.&nbsp;</span></p>
<hr />
<p><span id="more-1255"></span></p>
<p><b>Cześć Janusz, przedstaw się: kim jesteś, czym się zajmujesz, gdzie mieszkasz?</b></p>
<p><span style="font-weight: 400;">Obecnie mieszkam w Londynie. Przedtem mieszkałem przez 10 lat w Stanach Zjednoczonych, w Nowym Jorku i w Los Angeles. Jestem naukowcem prowadzącym w DeepMind. To jest taki startup, który wyrósł już do ponad 1000 ludzi. Jest on częścią Google. </span></p>
<p><b>Słyszeliśmy o tym startupie :). A powiedz, co ostatnio ciekawego przeczytałeś?</b></p>
<p><span style="font-weight: 400;">Ostatnio natknąłem się na taką ciekawą książkę jednego ze słynnych naukowców z dziedziny sztucznej inteligencji, autorstwa Judea Pearl. To była książka zatytułowana “<a href="https://amzn.to/2JEcD0b">The Book of Why</a>”. W tej książce autor podaje swoje doświadczenia przez całe życie kariery naukowej i argumentował dlaczego powinniśmy budować systemy sztucznej inteligencji, które rozumują nie tylko na podstawie danych. Czyli żeby ten system miał wbudowany algorytm rozumowania a nie tylko żeby próbował z danych te algorytmy wywnioskować. Bardzo ciekawa książka, dość obszerna. Jeszcze jej nie skończyłem, ale polecam.</span></p>
<p><a href="https://www.amazon.com/gp/product/046509760X/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=046509760X&amp;linkCode=as2&amp;tag=biznesmysli-20&amp;linkId=f05db08bd51403a55fd0d0cec6b1afe4" target="_blank" rel="noopener noreferrer"><img decoding="async" src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;MarketPlace=US&amp;ASIN=046509760X&amp;ServiceVersion=20070822&amp;ID=AsinImage&amp;WS=1&amp;Format=_SL250_&amp;tag=biznesmysli-20" border="0"/></a><img decoding="async" style="border: none !important; margin: 0px !important;" src="//ir-na.amazon-adsystem.com/e/ir?t=biznesmysli-20&amp;l=am2&amp;o=1&amp;a=046509760X" alt="" width="1" height="1" border="0"/></p>
<p><b>Akurat tej książki jeszcze nie przeczytałem, ale też mam ją na uwadze. Czytałem o niej <a href="https://www.quantamagazine.org/to-build-truly-intelligent-machines-teach-them-cause-and-effect-20180515/">artykuł</a>. W ogóle, autor tej książki jest bardzo ciekawą osobą i cała jego biografia też jest inspirująca. </b></p>
<p><b>Już wspomniałeś, że mieszkałeś przedtem w New Yorku, Los Angeles i pracowałeś w IBM Watson Research. Domyślam się, że przez 7 lat kiedy tam pracowałeś udało się zrobić wiele ciekawych rzeczy. Widziałem, że między innymi napisałeś książkę </b><a href="https://www.amazon.com/Allocation-Continuous-Resources-Agent-Systems/dp/3639131770/ref=sr_1_2/188-5068956-7213239"><b>Allocation of Continuous Resources in Agent Systems</b></a><b>. Proszę, powiedz coś więcej. Co udało się stworzyć właśnie pracując w IBM Research? Oczywiście tyle na ile możesz.</b></p>
<p><span style="font-weight: 400;">Miałem bardzo fajną okazję pracować z bardzo ciekawymi ludźmi. Jedną z osób z którymi między innymi tam pracowałem był <a href="https://en.wikipedia.org/wiki/Murray_Campbell">Murray Campbell</a>. Był on szefem tego zespołu </span><i><span style="font-weight: 400;">Deep Blue,</span></i><span style="font-weight: 400;"> który grał z Kasparowem w szachy. Podobnie, miałem szansę jeszcze pracować z <a href="https://researcher.watson.ibm.com/researcher/view.php?person=us-gtesauro" class="broken_link">Gerry Tesauro</a>. Jest on jednym z ojców sztucznej inteligencji, gdyż jako pierwszy w 1994 roku zaproponował taki system, mianowicie sieć neuronową, która sama nauczyła się grając ze sobą, grać w <a href="https://en.wikipedia.org/wiki/Backgammon">Backgammon</a> na poziomie lepszym niż najlepszy człowiek. Te doświadczenia były o tyle ciekawe, że ci właśnie ludzie skierowali mnie na pewną taką dziedzinę. Czym się zajmować, czym się nie zajmować. </span></p>
<p><iframe title="Deep Blue vs Kasparov: How a computer beat best chess player in the world - BBC News" width="960" height="540" src="https://www.youtube.com/embed/KF6sLCeBj0s?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Na przykład Murray powiedział, żeby się już nie zajmować systemami, które są tak zwane </span><i><span style="font-weight: 400;">“<a href="https://en.wikipedia.org/wiki/Complete_information">complete information problems</a>” </span></i><span style="font-weight: 400;">czyli w całości obserwowalne. Na przykład gra w szachy jest czymś takim. To, co widzimy na szachownicy, na podstawie tego podejmujemy optymalne decyzje, bo tego typu problemy, jak on już kiedyś sugerował będą rozwiązane, i widzieliśmy to na przykład w DeepMindzie kiedy nasz system wygrał w jeszcze trudniejszą grę “Go” z mistrzem świata. Podobnie Gerry powiedział mi żeby się nie zajmować systemami, które są </span><i><span style="font-weight: 400;">“model free</span></i><span style="font-weight: 400;">”, czyli bez modelu, ponieważ są to rzeczy, które już teraz da się zrobić przez co to nie będzie przyszłościowe. </span></p>
<p><span style="font-weight: 400;">Tych właśnie dwóch naukowców skierowało mnie na taką fajną drogę, żeby zajmować się problemami, które są tylko częściowo obserwowalne i żeby się uczyć modelu. Właśnie dlatego zacząłem wtedy pracować nad modelami sztucznego mózgu. To są bardzo ciekawe modele, które wywodzą się z zupełnie nowego podejścia w AI i tym się bawiłem przez przez wiele, wiele lat. Byliśmy finansowani przez Department of Homeland Security. Bardzo dobrze ten czas wspominam, a już szczególnie to, że Ci sławni ludzie z AI powiedzieli mi czym się warto zajmować, więc od tego czasu przez ostatnie 10 lat zajmuje się taką generalną sztuczną inteligencją, która zakłada, że musimy nauczyć się modelu świata, że zajmujemy się problemami które są tylko częściowo obserwowalne, i tak dalej. Bardzo ciekawe rzeczy.</span></p>
<p><b>Sztuczna inteligencja sama w sobie jest popularnym hasłem. <a href="https://en.wikipedia.org/wiki/Artificial_brain">Sztuczny mózg</a>, chyba niekoniecznie. Czy mógłbyś troszkę dodać, co chciałeś osiągnąć stwarzając sztuczny mózg? Jak to próbowałeś sam sobie tłumaczyć?</b></p>
<p><span style="font-weight: 400;">Jest to o tyle ciekawe, że obecnie jeśli ludzie używają tego “</span><i><span style="font-weight: 400;">termu”</span></i><span style="font-weight: 400;"> sztuczna inteligencja &#8211; AI, to prawie zawsze mają na myśli sztuczne sieci neuronowe. Nawet nie biologiczne, ale sztuczne sieci neuronowe, które są pewnego rodzaju aproksymatorami funkcji. To jest fantastyczne narzędzie, które nadaje się do wielu problemów. Natomiast to co teraz właśnie opisuję w mojej publikacji która będzie za niedługo dostępna to jest to, że to narzędzie niestety ma pewne ograniczenia w przypadku, gdy próbujemy je stosować do rozwiązania problemu generalnej sztucznej inteligencji. </span></p>
<p><iframe title="Can we build an artificial brain?" width="960" height="540" src="https://www.youtube.com/embed/8ZXlUyyYJCg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Oczywiście, nie każdy naukowiec się z każdym zgadza, więc są naukowcy którzy uważają, że wszystko rozwiążemy sieciami neuronowymi. Ja uważam, że nie dlatego że są właśnie te ograniczenia i te ograniczenia próbuję już od ponad 10 lat rozwiązać właśnie przy pomocy sztucznego mózgu, który tak naprawdę wzoruje się na </span><i><span style="font-weight: 400;">cortexie</span></i><span style="font-weight: 400;"> (korze mózgowej) człowieka. Więc są to bardzo zaawansowane badania, ale tak jak wspomniałeś, one nie są </span><i><span style="font-weight: 400;">mainstreamowe.</span></i><span style="font-weight: 400;"> Aktualnie, jeśli chodzi o badania </span><i><span style="font-weight: 400;">mainstreamowe</span></i><span style="font-weight: 400;"> mamy do czynienia ze sztucznymi sieciami neuronowymi. One są bardzo popularne, więc budowanie sztucznego mózgu to jest rzecz na następne 5-10 lat, ale nie na jutro.</span></p>
<p><b>Brzmi to bardzo interesująco. Wspomniałeś, że jesteś prowadzącym naukowcem w DeepMind i pracujesz już od ponad 3 lat. Powiedz w skrócie, czym się zajmujesz?</b></p>
<p><span style="font-weight: 400;">W DeepMindzie zajmuję się między innymi systemami wieloagentowymi. Ciekawą rzeczą jest to, że nawet jak znajdziemy kiedyś rozwiązanie do generalnej sztucznej inteligencji, to podejrzewam, że będziemy mieli wielu takich właśnie agentów, którzy będą ze sobą współegzystować. Pojawia się pytanie, co należy zrobić, żeby ci agenci którzy mogą mieć o wiele większą zdolność rozumowania, planowania, i tak dalej, w jaki sposób mają oni ze sobą współdziałać? Czy to będą takie egoistyczne jednostki, tacy “dyktatorzy”, którzy wszystko przejmą, czy też stworzymy takie jakby środowisko, takie </span><i><span style="font-weight: 400;">society</span></i><span style="font-weight: 400;"> agentów. To czym się próbuję zajmować w DeepMindzie, to z jednej strony właśnie próba zbudowania tego, tak zwanego </span><i><span style="font-weight: 400;">master algorithm,</span></i><span style="font-weight: 400;"> czyli, tak zwanej sztucznej inteligencji na podstawie sztucznego mózgu, a drugą rzeczą jest, co zrobić żeby ci agenci którzy już są inteligentni mogli ze sobą współegzystować. Nie jest trywialne zagadnienie. Mamy na ten temat kilka ciekawych publikacji.</span></p>
<p><b>Kilka pytań mi od razu przyszło do głowy, ale może najpierw wyjaśnijmy czym jest </b><a href="https://pl.wikipedia.org/wiki/System_wieloagentowy"><b>system wieloagentowy</b></a><b>, ang. (</b><a href="https://en.wikipedia.org/wiki/Multi-agent_system"><b>multi-agents system</b></a><b>). Co to takiego jest?</b></p>
<p><span style="font-weight: 400;">Spróbuję podać przykład. Weźmiesz system, który rozwiązuje równania liniowe. To jest system jednoagentowy. Jest to jeden agent, algorytm, który rozwiązuje układ wielu równań i on ma dostęp do wszystkich możliwych danych. Komunikuje się sam ze sobą i sam rozwiązuje dany problem. W systemie wieloagentowym mamy do czynienia z rozproszeniem danych. Dane należą prywatnie do agentów z rozproszenia tego systemu, który rozumuje pomiędzy danymi i to samo rozwiązanie w sobie nie musi być skupione. One może też być rozproszone. Dobrym przykładem jest mrowisko. Kiedy mamy mrowisko w którym są dziesiątki tysięcy mrówek to jest to system wieloagentowy, ponieważ tam nie ma centralnego mózgu. Tam indywidualni agenci, (w tym przypadku to są właśnie te mrówki) podejmują lokalnie jakieś decyzję.</span></p>
<p><span style="font-weight: 400;">Na podstawie lokalnej obserwacji wymieniają się informacją na podstawie powiedzmy feromonów. które zostawiają na ziemi, a rezultatem tego są niesamowite konstrukcje, takie jak na przykład mrowisko. To jest właśnie ten rezultat systemu agentowego, który jest możliwy do stworzenia tylko jak mamy całą populację agentów. Co jest ciekawe, w tej populacji każdy agent jest taki sam. Niesamowitą rzeczą jest to, że to nie jest tak, że to jest populacja powiedzmy dziesiątek typów agentów. W tym przypadku to jest populacja jednego typu agenta, ale tych agentów jest strasznie dużo. Czym to się różni? System scentralizowany ma scentralizowaną wiedzę i rozumowanie, natomiast system wieloagentowy ma zdecentralizowaną wiedzę i zdecentralizowane problemy decyzyjne, czy procesy decyzyjne w takim dużym skrócie.</span></p>
<p><iframe title="Jackie Kazil | Agent based modeling in Python" width="960" height="540" src="https://www.youtube.com/embed/bjjoHji8KUQ?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><b>Brzmi to ciekawie. A jaką wartość biznesową może dać używanie systemów wieloagentowych?</b></p>
<p><span style="font-weight: 400;">Podam może taki przykład którym zajmowaliśmy się jeszcze jak byłem na uniwersytecie w Stanach Zjednoczonych. Chodziło o rozwiązanie problemu harmonogramowania, to znaczy chodziło o to, żeby w danej grupie badawczej naukowcy mogli się dogadać i wspólnie ustalić kiedy będziemy mieli spotkanie. Wydaje się, że to jest taki prosty problem. Wcale nie jest taki prosty. Problem jest taki, że co jeśli nie każdy użytkownik chce każdemu powiedzieć kiedy będzie dostępny. Powiedzmy, że jest 10 osób i chcemy się umówić na jakieś spotkanie na godzinkę, ale to nie jest tak, że każdy z każdym wymienia kalendarze. Problemem jest koordynacja. Jak optymalnie zorganizować meeting, kiedy agenci czyli ludzie nie wymieniają się informacją, na przykład kiedy są dostępni a kiedy nie. Problem ten &nbsp;właśnie można rozwiązać z wykorzystaniem systemu wieloagentowego. W tym przypadku zastosowaliśmy systemy rozproszonej optymalizacji. To jest jeden z przykładów. Innym przykładem może być na przykład problem komiwojażera. Można go rozwiązać z wykorzystaniem algorytmu zwanego </span><i><span style="font-weight: 400;">“Ant Colony Optimization”.</span></i><span style="font-weight: 400;"> Jest to algorytm, który mrówki stosują do optymalizacji znalezienia najkrótszej trasy między dwoma punktami. Kolejny system wieloagentowy i okazuje się, że można rozwiązać bardzo skomplikowane problemy takie jak, na przykład problem komiwojażera.</span></p>
<p><b>Pozwolę sobie teraz trochę zmienić temat, ale akurat to, co wytłumaczyłeś jest nam potrzebne aby pójść dalej. Czytałem Twoją publikację </b><a href="https://storage.googleapis.com/deepmind-media/papers/multi-agent-rl-in-ssd.pdf"><b><i>Multi-agent Reinforcement Learning in Sequential Social Dilemmas</i></b></a><b>, która została opublikowana w roku 2017. Dla Ciebie pewnie to jest taka sprawa codzienna, ale żeby każdy zrozumiał, to musimy jeszcze kilka takich pojęć wyjaśnić. Pierwsza rzecz, czym jest </b><a href="https://pl.wikipedia.org/wiki/Optimum_Pareto"><b>efektywność Pareto</b></a><b>, lub tak zwane </b><b><i>Optimum Pareto.</i></b><b> Mógłbyś nam to wytłumaczyć na kilku przykładach?</b></p>
<p><span style="font-weight: 400;">Można tutaj podać przykład lotu samolotem. Wyobraź sobie, że lecisz na wakacje i musisz się dostać z Krakowa do Tunezji, ale nie ma już lotu bezpośredniego. Są tylko loty, które mają jedną przesiadkę. Teraz, co jeśli się okaże, że jest jeden lot który leci przez jakieś miasto, powiedzmy przez Frankfurt i ten lot trwa 5 godzin </span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">i kosztuje 1000$, a może się okazać, że jest inny lot, który odbywa się przez zupełnie inne miasto, kosztuje tyle samo i trwa dokładnie tyle samo. W tym przypadku mamy do czynienia z dwoma rozwiązaniami. Są to zupełnie różne rozwiązania, które mają taki sam czas i taką samą cenę. Możemy powiedzieć, że tego typu rozwiązania są </span><i><span style="font-weight: 400;">Pareto optymalne.</span></i><span style="font-weight: 400;"> Można podać jeszcze troszeczkę inne przykłady. Ogólnie, chodzi tutaj o to, że na przykład w tym przypadku mamy dwa kryteria. Pierwszym z nich jest jak najtańszy lot, a drugi, jest jak najkrótszy lot.</span></p>
<p><iframe title="Pareto Optimality" width="960" height="540" src="https://www.youtube.com/embed/idHVAUEeaqE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">Może się okazać, że mamy dwa rozwiązania. Jeden jest troszkę dłuższy, ale kosztuje mniej, a drugi jest krótszy, ale kosztuje więcej. Teraz pytanie. Które rozwiązanie jest optymalne dla nas. To jest właśnie ten problem, że są dwa rozwiązania i obydwa są optymalne w sensie, że jedno jest najtańsze a drugie jest najszybsze. To są dwa rozwiązania i nie możemy jednoznacznie powiedzieć, że jedno jest lepsze od drugiego. Obydwa są najlepsze w swojej dziedzinie, także są </span><i><span style="font-weight: 400;">Pareto optymalne. </span></i></p>
<p><b>Na czym polega problem z teorii gier </b><a href="https://pl.wikipedia.org/wiki/Dylemat_wi%C4%99%C5%BAnia"><b>dylemat więźnia</b></a><b> (lub uogólniona wersja </b><a href="https://pl.wikipedia.org/wiki/Dylemat_spo%C5%82eczny"><b>dylemat społeczny</b></a><b>)?</b></p>
<p><iframe title="Dylemat więźnia | Czy egoizm się opłaca? - Wojna Idei #41" width="960" height="540" src="https://www.youtube.com/embed/HqTmJsVnTzA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Kolokwialnie się na to mówi, że jest to jest taki problem jak nie być “nabranym w balona”, jak nie być wykiwanym. Posłużę się tutaj takim przykładem. Jeśli na przykład jeździmy pociągami gdzieś w Polsce to może się okazać, że jadąc w pociągu za który zapłaciłem znajdziemy kogoś kto za bilet nie zapłacił. Ten ktoś nie zapłacić, a tak samo przejedzie jak my. Może się okazać, że jak taki człowiek jest pojedynczy to wszystko będzie w porządku. Nikt nie chce być tym takim, jak to się mówi “nabranym w balona”, więc jak ja bym zauważył wiele takich ludzi, stwierdziłbym, po co mam płacić. Przestałbym płacić i też bym jeździł tym pociągiem na gapę, ale jeśliby się okazało, że większa ilości ludzi jeździłaby na gapę, to niestety ten pociąg by albo przestał jeździć, albo nie byłoby pieniędzy na kupienie nowych wagonów, i tak dalej. </span></p>
<p><span style="font-weight: 400;">Na tym polega ten problem więźnia. To znaczy tutaj mamy do czynienia z dwoma więźniami i optymalne rozwiązanie jest takie, żeby ci więźniowie współpracowali. Czyli w przypadku takiego przejazdu pociągiem optymalnym rozwiązaniem jest, żeby każdy płacił nie dużo za bilet. Natomiast drugim rozwiązaniem jest, że nikt nie płaci za bilet. To też jest rozwiązanie, ale wtedy obydwoje wychodzimy na nim jak najgorzej. Najgorsze jest to, podobnie jak w dylemacie więźnia, że przez to, że ludzie sobie nie ufają, nie ufają, że ten drugi człowiek zapłaci za bilet i przez tę ich nieufność też nie płacą. W idealnym świecie każdy by rzeczywiście płacił bardzo małą cenę i miał świetne pociągi, ale w praktyce tak nie jest ponieważ sobie nie ufamy i wybieramy tę opcję w której nie ufamy drugiemu człowiekowi, nie płacimy za bilet, nie ma w ogóle nowych wagonów w pociągu. Ja to mniej więcej tak rozumiem.</span></p>
<p><b>Powiedz troszkę więcej o regułach gry, które zastosowaliście w &#8222;gathering game&#8221;.</b></p>
<p><span style="font-weight: 400;">To była taka gra, w której agenci musieli zbierać jabłka. Sęk w tym, że nie mieli pojęcia, że mają do czynienia z jabłkami, więc tak naprawdę agenci byli zainteresowani zbieraniem zielonych kwadracików, które symbolizowały jabłka. Te kwadraciki, kiedy się je zjadło to się odnawiały. Te jabłka wirtualne wyrastały na nowo po jakimś czasie. W tej grze mieliśmy do czynienia z kilkoma agentami, którzy byli jednocześnie umieszczeni w danym środowisku i uczyli się jak w tym środowisku się zachować, żeby zmaksymalizować swoją funkcję w celu zjedzenia jak największej ilości jabłek. I takie były właśnie reguły. Problem jeszcze był taki, że te epizody w których ci agenci grali były ograniczone. Powiedzmy, że każdy epizod trwał 2 albo 3 minuty i teraz: jak się powinien zachować agent żeby w ciągu tych trzech minut skonsumował jak największą ilość jabłek. Co było ciekawe, agenci mogli też się eliminować z gry na jakiś czas. Mogli wykorzystywać tak zwany laser, przy pomocy którego jeśli dany agent został trafiony, to powiedzmy szedł do kąta na kilka sekund, czyli tracił czas podczas którego mógł zbierać jabłka. Na tym polegały reguły tej gry. </span></p>
<p><b>To jest właśnie esencja tego, dlaczego w ogóle zacząłem o tym mówić. Mi osobiście bardzo spodobały się wyniki. W przypadku jeżeli tych jabłuszek było wystarczająco dużo, to agenci stwierdzali w jakiś tam sposób, że w sumie się nie opłaca używać tego lasera i niższych cen konkurencji, bo po co? I tak jabłuszek jest wystarczająco dużo. Ale z drugiej strony, jak już zaczynało być ich mniej to zaczynali wtedy konkurować i o to walczyć. Mi od razu przypomniała się taka historia, która jakby z jednej strony jest zupełnie o czymś innym, ale przypomina ten sam kontekst. </b></p>
<p><b>Sytuacja miała miejsce w Krakowie. Pamiętam, jak stałem na przystanku i okazało się, że coś się &nbsp;popsuło. Przez pół godziny tramwaje nie jeździły, więc ludzi było coraz więcej, a sytuacja odbywała się rano, przed pracą, studiami. Po chwili tramwaj wreszcie przyjechał, ale jest pełny ludzi. W dodatku drugie tyle czekało na przystanku. Ci ludzie próbują tam wejść i zaczyna się tam dziać nieprzyjemne sytuacje. Krzyki, jakieś szarpaniny, i tak dalej. Ciekawostka tej historii była taka, że wystarczyło podejść trochę dalej, tam gdzie nie było tego zatoru, nie było korku i tam tramwaje kursowały normalnie. Nie ma tam tak dużego tłumu i ludzie są spokojni. </b></p>
<p><b>To dla mnie było takim zaskoczeniem Jeszcze 5 minut temu prawie każdy zachowywał się jak bardzo spokojny i uprzejmy człowiek, a wystarczyło troszkę skomplikować warunki dookoła żeby ludzie zaczęli się zachowywać agresywnie. I w waszym eksperymencie właśnie potwierdziło się coś podobnego. Dla mnie to była mega inspirujące, i pytanie: czy to oznacza, że to jest prawo natury? Czy po prostu tak działa nasz świat?</b></p>
<p><span style="font-weight: 400;">Wydaje mi się, że niestety takie właśnie jest prawo natury, ale z kolei nasz świat nie musi tak działać. Co przez to rozumiem? Chodzi tutaj o to, że można stworzyć pewne protokoły dzięki którym ludzie będą bardziej skłonni żeby, powiedzmy się ze sobą nie szarpać, ale żeby bardziej ze sobą współpracować. Więc te protokoły jak ja je rozumiem: na przykład, jak lecisz samolotem to często linie lotnicze sprzedają więcej biletów, niż jest miejsc w samolocie. Dlaczego to robią? Dlatego, że przeważnie ktoś się spóźnia na samolot, ktoś odwołuję lot i nie chcą żeby samoloty były puste. Ale na czym tutaj polega ta sytuacja tego protokołu? Na tym, że jeśli nie byłoby żadnego protokołu to ci pasażerowie czekający na samolot którzy by się nie dostali do samolotu prawdopodobnie by się pobili, prawda? </span></p>
<p><span style="font-weight: 400;">Ale właśnie w tym przypadku linie lotnicze już dawno wpadły na pomysł żeby wynagradzać tych pasażerów którzy odstępują swój bilet, czyli tych którzy zdecydują się, że poczekają na następny samolot. Kiedy kończyłem doktorat miałem taką sytuację. Właśnie byłem w Seattle, wracałem do Los Angeles, ale pisałem pracę doktorską i też się okazało, że samolot był w całości sprzedany. Nie było miejsca, więc zdecydowałem się odstąpić swój bilet, polecę późniejszym samolotem, popracuję trochę nad pracą doktorską. Okazało się, że dostałem za to darmowy lot na Alaskę na tydzień. Więc jeśli takie protokoły stworzymy w których agenci czy ludzie będą bardziej skłonni aby odstąpić to miejsce, to może się okazać, że nie będzie tej kłótni, albo ci którzy odstąpią, dostaną coś w zamian. Więc tak właśnie jest. Ty na przykład wspomniałeś, że czekałeś na następny tramwaj, więc też odstąpiłeś, poczekałaś, podszedłeś troszkę dalej na następny i w nagrodę był on pusty. Więc tego typu sytuacja. Wydaje mi się, że prawo natury już takie jest. Niestety ci ludzie będą agresywni, będą ze sobą walczyć. Natomiast jak te protokoły się dobrze stworzy, to będą mieli większą </span><i><span style="font-weight: 400;">incentive,</span></i><span style="font-weight: 400;"> czyli większą, jak to się mówi skłonność do tego żeby nie być agresywni, żeby odstępować te rzeczy, bo dostaną coś w zamian.</span></p>
<p><b>Kiedy rozmawialiśmy o multi agentach to wspomniałeś, że idea jest taka aby nie doszło do sytuacji kiedy pojawia się jeden, taki sztuczny dyktator, tylko żeby jednak ci agenci współpracowali ze sobą. Zastanawiam się, czy ten protokół o którym teraz mówisz, czy w nim chodzi o aspekt wytworzenia się sztucznego społeczeństwa? Myślę, że tak mogę to nazwać. Czy ten protokół będzie dyktowany w tym przypadku? Czy też chodzi po prostu o ludzi. Czy jakoś to można przenieść na życie prostych ludzi?</b></p>
<p><span style="font-weight: 400;">Szczerze nie wiem, jak jest z tym protokołem. Fajnie go stworzyć jak mamy do czynienia z konkretnym problemem, na przykład problem przelotu samolotem i overbookingu. Natomiast jeśli chodzi o generalne podejście to jest troszkę trudniej. Mamy tutaj w DeepMind pewne bardzo ciekawe badania odnośnie protokołów dla agentów, którzy są wynagradzani, jeśli rozwiązania które oni proponują są bardziej egalitarne, czyli jeśli nie ma tej ogromnej różnicy pomiędzy bogactwem agentów, więc da się zmodyfikować tę funkcję celu, żeby agenci starali się taką strategię wybierać w której nie ma takiego ogromnego rozstrzału pomiędzy tym bogactwem agentów. Są oni w miarę równi, więc wydaje mi się, że jest możliwość zaproponowania takich agentów, którzy we własnej funkcji celu mają wbudowany taki system w którym są wynagradzani za to, żeby nie dochodziło do takich ogromnych różnic między dyktatorem a resztą. Oczywiście, da się tak to zmodyfikować. Jest możliwość stworzenia takiego systemu agentów, który będzie bardziej egalitarny, mniej dyktatorski. Natomiast czy ten system później się nie przeprogramuje? Tego już nie wiemy, ale da się stworzyć takie właśnie protokoły, które są bardziej generalne i prowadzą do agentów którzy są mniej skłonni aby być dyktatorami. </span></p>
<p><b>Wprowadziliście pojęcie “sequential social dilemmas”, wyjaśnij proszę co to jest?</b></p>
<p><span style="font-weight: 400;">W klasycznej teorii gier mamy do czynienia z taką matrycą gry. Jest taka jedna gra, w której agenci podejmują w tym samym czasie jedną decyzję i to wszystko. Natomiast to rzadko oddaje rzeczywistość. W rzeczywistości jest troszkę inaczej. Są agenci, którzy podejmują jedną decyzję która zmienia trochę środowisko. To prowadzi do nowej konfiguracji i agenci znowu podejmują jakąś decyzję. Potem następuje kolejny krok i kolejny. Powstaje cała sekwencja decyzji. Taka sekwencja jest o tyle ciekawa, że pierwsza decyzja niekoniecznie jeszcze mówi o tym czy ci agenci ze sobą współpracować, czy może ze sobą będą konkurować. Może się okazać, że dopiero przy setnej czy tysięcznej decyzji wychodzi na jaw, że ta strategia jest konkurencyjna. Dla przykładu mamy taki problem. Po angielsku mówi się na to </span><i><span style="font-weight: 400;"><a href="https://en.wikipedia.org/wiki/Tragedy_of_the_commons">tragedy of the commons</a>, </span></i><span style="font-weight: 400;">czyli tragedia wspólnoty.</span></p>
<p><iframe title="What is the tragedy of the commons? - Nicholas Amendolare" width="960" height="540" src="https://www.youtube.com/embed/CxC161GvMPc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;"> Jest to taka ciekawa rzecz w której agenci mogą podjąć decyzje, że zbierają i zjadają jakieś zasoby. Cały czas wszystko jest dobrze. Nauczą się żeby zjadać zasoby i to będzie optymalna strategia, natomiast jak wprowadzimy sekwencyjność, to będziemy widzieli, że po jakimś czasie, jeśli powiedzmy przez 10 kolejnych epok, albo dni, albo miesięcy ci agenci cały czas zjadają wszystkie dostępne zasoby, to tych zasobów może zabraknąć w systemie.</span></p>
<p><span style="font-weight: 400;">Może ich być zbyt mało aby ten system się odnowił. Dla przykładu: &nbsp;mamy jakiś sad i w tym sadzie możemy zjadać wszystkie jabłka. Możemy na raz, w ciągu jednego dnia zjeść wszystkie jabłka. Wszyscy się świetnie najedzą, natomiast nie będzie możliwości żeby ten sad się odnowił. Wprowadzenie tej sekwencyjności pozwala nam na przeanalizowanie o wiele bardziej ciekawych problemów w których dopiero po którymś tam kroku zmienia się środowisko. To są bardzo ciekawe rzeczy i one są bardzo widoczne właśnie w naszym codziennym życiu, ponieważ jak weźmiemy taki problem więźnia, to niekoniecznie przekłada się on od razu na rzeczywistość. Natomiast taki sekwencyjny problem, czy powiedzmy ten </span><i><span style="font-weight: 400;">tragedy of the commons,</span></i><span style="font-weight: 400;"> czy też problem szukania zasobów w danym środowisku, albo wspólnego polowania na kogoś, tego typu problemy powodują, że mamy do czynienia z sekwencyjnością, ale dalej interesujemy się takimi właśnie problemami społecznymi w których mamy sekwencję wydarzeń.</span></p>
<p><b>Kolejna rzecz, która przykuła moją uwagę, to jak badaliście jakie czynniki wpływają na to, że agenci chcą współpracować. Powiedz trochę więcej o wynikach tego badania.</b></p>
<p><span style="font-weight: 400;">Mieliśmy taką jedną grę która była nazywana </span><i><span style="font-weight: 400;">“Stag-hunt”. </span></i><span style="font-weight: 400;">To jest coś w stylu takiego wspólnego polowania. Tam, na przykład zauważyliśmy, że agenci którzy byli w środowisku w którym musieli znaleźć daną ofiarę i na nią polować szybko przekonali się, że pojedynczo ciężko jest zapędzić tę ofiarę do rogu mapy. Bardzo szybko się nauczyli, że muszą ze sobą współpracować, czyli musi być dwóch albo trzech agentów, którzy będą koordynować swoje ruchy tak, żeby zapędzić ofiarę czy jakąś owieczkę, czy jakiegoś innego agenta do rogu, i potem, powiedzmy go skonsumować, czy dostać jakąś nagrodę. Szkoda, że jak skonstruujemy tak środowisko w którym pojedynczy agent nie będzie dostawał nagrody jeśli sam będzie jakiś cel próbował osiągnąć. Powiedzmy, jeśli sam będzie próbował na kogoś polować, a tak to skonstruujemy, że potrzeba jest więcej agentów, to ci agenci mają możliwość żeby się nauczyć właśnie ze sobą współpracować. Co jest ciekawe, prowadziliśmy dosyć podobne badania &nbsp;jeszcze w Kalifornii ze współpracą z departamentem straży pożarnej w Los Angeles, w którym trenowaliśmy takich głównodowodzący operacją gaszenia pożarów, gdzie mają wysyłać jednostki straży pożarnej. </span></p>
<p><span style="font-weight: 400;">Mieliśmy taki symulator, taką grę komputerową i właśnie ci głównodowodzący bardzo szybko się uczyli. Nie wysyłali wszystkich jednostek do różnych pożarów, tylko koncentrowali to. Czyli koncentrowali wiele straży pożarnych na jednym pożarze. Potem przechodzili do następnego. Ten system wieloagentowy jest w stanie się nauczyć takiej samej strategii, jaką się posługiwał głównodowodzący straży pożarnej w Los Angeles. Właśnie takiej, aby wspólnie te jednostki wysyłać do jednego pożaru. Jeśli się stworzy środowisko dosyć dobrze, to można zacząć obserwować tę współpracę agentów. W tym przypadku jest to albo współpraca tych jednostek straży pożarnej, które razem gaszą pożary, albo współpraca takich, powiedzmy wilków, które chcą zapędzić do rogu owcę i ją pożreć.</span></p>
<p><b>Czy myślisz że uda się stworzyć coś takiego, żeby środowisko w którym ta sztuczna inteligencja będzie istnieć, będzie zmuszało ją do współpracy w ten czy inny sposób? Cały czas podkreślałeś słowo środowisko. Żeby odpowiednio je (środowisko) skonstruować, to agenci szybko się zorientują, że muszą jednak współpracować. Czy ja dobrze myślę, że to jest jeden ze sposobów, jak nawet inteligentny system, który może być mądrzejszy niż my, ludzie, będzie nadal pod kontrolą, bo musi współpracować między sobą?</b></p>
<p><span style="font-weight: 400;">Masz rację, tak, ale &nbsp;jeszcze bym to troszeczkę rozwinął. To znaczy, jeśli budujemy system generalnej sztucznej inteligencji i ten system żyje w jakiejś symulacji, w jakiejś wirtualnej maszynie, wirtualnej maszynie, wirtualnej maszynie na komputerze, to nawet jeśli nie będziemy w stanie go kontrolować, to w najgorszym wypadku przejmie całą pamięć w danej maszynie wirtualnej, czyli wszystko skonsumuje, ale to żaden problem. Problem pojawia się dopiero wtedy, kiedy chcemy taki system na sztucznej inteligencji generalnej wypuścić na zewnątrz, a to co bardzo fajnie tutaj robimy w DeepMindzie, to jest to, że próbujemy ten problem zaatakować z dwóch stron. </span></p>
<p><span style="font-weight: 400;">To znaczy, z jednej strony mamy niesamowity nacisk na te światy wirtualne. Wszyscy nasi agenci żyją wirtualnie w tych światach, więc to są bardzo bezpieczne światy z których ci agenci się nie mogą wydostać, bo nie wiedzą, że żyją w ogóle w symulacji, a z drugiej strony mamy niesamowicie dużo badań naukowych odnośnie tego jak zrobić żeby to środowisko zmodyfikować w punkcie celów, lub agentów, żeby ci agenci zaczęli być altruistyczni, żeby współpracowali ze sobą, i tak dalej, Ale to nie jest oczywiste. To jest tak, że obserwuje się agentów, oni się uczą żeby zachłannie coś robić i po chwili nie ma koordynacji. Więc trzeba krok po kroku zmieniać funkcje celu, zmieniać środowiskom zmieniać te parametry, zmieniać te, protokoły, żeby ci agenci ucząc się dla nich optymalnej strategii sami na to wpadli że najwięcej osiągną, jak będą ze sobą współpracowali, kiedy się nie będa eliminowali. Próbujemy ten problem atakować z dwóch stron.</span></p>
<p><span style="font-weight: 400;"> Z jednej strony cały czas budując te &nbsp;bardzo realistyczne światy wirtualne, żeby ci agenci się nie wydostali, a z drugiej strony właśnie robiąc ogromne analizy, co się stanie właśnie w systemie agentowym, jak zmienimy funkcję w celu, jak zmienimy parametry środowiska, zmienimy protokoły, żeby znaleźć właśnie te protokoły, które są generalne i które powodują, że agenci ze sobą współpracują. To się da znaleźć i próbujemy to robić. </span></p>
<p><b>Zajmujesz się tematami związanymi z ogólną sztuczną inteligencją </b><b><i>(general AI), lub AGI. </i></b><b>Bardzo ciekawy jestem, jak definiujesz czym jest ten </b><b><i>AGI,</i></b><b> a najciekawsze jest to, jak zrozumiemy albo poznamy, że udało się już osiągnąć ten poziom?</b></p>
<p><span style="font-weight: 400;">Zawsze się mówiło, że będziemy mieli test Turinga i na podstawie testu Turinga zorientujemy się, że osoba z którą rozmawiamy nie jest biologiczną osobą, tylko jest agentem. Na przykład, jeśli nie będziemy w stanie tego zrozumieć to się okazuje, że mamy już tę generalną sztuczną inteligencję. Dla przykładu, teraz ze mną rozmawiasz i pytanie, czy ja jestem już tą sztuczną inteligencją, czy nie, i czy Cię już przekonałem, że nie jestem agentem tylko osobą biologiczną. Jednym z takich testów jest właśnie taka rozmowa, która może trwać 10, 15, 20 minut, na podstawie której sędziowie mogą stwierdzić, czy ten system rzeczywiście już jest inteligentny, że jest nierozróżnialny od człowieka. Okazuje się, że ten test prawdopodobnie przejdziemy zanim będziemy mieli taką generalną sztuczną inteligencję. Przywołam tutaj film, który mi się bardzo podoba. </span></p>
<p><span style="font-weight: 400;">Wiele razy go oglądałem. “Ex Machina” z roku 2014 albo 2015. W tym właśnie filmie jest podany przykład, jak możemy zweryfikować, czy już mamy tą generalną sztuczną inteligencję. I to nie jest tylko rozmowa. To jest pytanie, czy ten system jest w stanie naśladować ludzkie odruchy, emocje, przekonywanie, kłamanie, i tak dalej. Wydaje mi się, że test Turinga sam w sobie to był dobry początek, ale żebyśmy mieli pewność, że już mamy taką generalną sztuczną inteligencję, to musimy zrobić coś, co było wcześniej przedstawione w tym filmie “Ex Machina”. Czyli po prostu musimy mieć takiego agenta, który pokazuje, że potrafi nie tylko rozmawiać, ale również kłamać, oszukiwać, symulować. Tego jeszcze nie mamy, ale wydaje mi się, że w pewnym momencie jeśli ktoś będzie twierdził, że już ten algorytm posiada do generalnej sztucznej inteligencji, to trzeba będzie ten algorytm przetestować, a sam test Turinga nie wystarczy. Potrzeba będzie coś bardziej skomplikowanego.</span></p>
<p><iframe title="Ex Machina&#039;s Hidden Meaning" width="960" height="540" src="https://www.youtube.com/embed/V85VqlVptWM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><b>Na ile szybko przesuwamy się w kierunku tego poziomu? Powiedzmy, jeśli mielibyśmy porównać naszą wiedzę o 5 lat wstecz do tej, którą mamy obecnie?</b></p>
<p><span style="font-weight: 400;">Zawsze jest tak, że jak ktoś robi taki sondaż i pyta się naukowców: kiedy to będziemy mieli tą generalną sztuczną inteligencję, to średnia odpowiedź brzmi 20 lat. Dlaczego? Dlatego, że jak jest powyżej 20 lat, to już mało kogo to interesuje, a jak jest mniej niż 20 lat, to istnieje ryzyko, że ten który robi przepowiednie pomyli się. Więc to jest taka ciekawa rzecz, że mimo to, że pytaliśmy naukowców w roku 1990, 2000 kiedy to będziemy mieli i zapytamy dzisiaj, to średnio wszyscy mówią dalej 20 lat. To się nie zmienia. Co się za to zmienia, na przykład Ray Kurzweil, który przez całe życie zajmuje się prognozą procesów technologicznych, prognozą postępów nauczania maszynowego, sztucznej inteligencji, on na przykład śledzi to od wielu, wielu lat i mówi, że w latach 90 średnia wynosiła 50 lat, teraz średnio wynosi to około 20 lat, ale co jest ciekawe, jak próbujemy tą średnią zbadać, to naukowcy patrzą liniowo, czyli jeśli postęp będzie taki jak jest dzisiaj, to to nastąpi powiedzmy za 50 lat. Jak się ich zapytamy dzisiaj kiedy to będziemy mieli, to mówią to samo. Będzie to za 20 lat zakładając dzisiejszy postęp technologiczny, ale zakładając, że ten postęp technologiczny idzie cały czas do przodu, czyli przyspiesza. </span></p>
<p><iframe title="Ray Kurzweil: Future of Intelligence | MIT 6.S099: Artificial General Intelligence (AGI)" width="960" height="540" src="https://www.youtube.com/embed/9Z06rY3uvGY?start=106&#038;feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">To może nastąpić szybciej. W ogóle, na przykład co mnie zszokowało ostatnio. Ray Kurzweil, który jest właśnie dyrektorem </span><i><span style="font-weight: 400;">Google Brain</span></i><span style="font-weight: 400;"> sprecyzował, że nastąpi to za 11 lat. To są oczywiście przepowiednie. To może być 100 lat, może być 50, 20, ale to, że osoba która cały czas śledzi te procesy technologiczne podejmuje się takiego ryzykownego zadania, żeby przepowiedzieć coś za 11 lat, to już o czymś świadczy. Jeśli chodzi o mnie, wydaje mi się, że możemy mieć to za szybciej niż 20 lat. Podejrzewam około 10 lat, z tym że nie sądzę, że do tego dojdziemy z wykorzystaniem aktualnych narzędzi, które mamy. Wydaje mi się, że to nas może nawet trochę spowalniać.</span></p>
<p><b>Właśnie to jest rzecz, o którą też chcę zapytać. Czyli o obecne algorytmy, ten słynny deep learning, ewentualnie </b><b><i>reinforcement learning.</i></b><b> Co powinno się stać żeby ten </b><b><i>AGI </i></b><b>udało się osiągnąć? Jak Ty to widzisz?</b></p>
<p><span style="font-weight: 400;">Tutaj akurat nie ma konsensusu. To znaczy, naukowcy uważają że wystarczy przeskalować narzędzia, które mamy na większej ilości danych, na największej ilości problemów i wtedy dojdziemy do tej sztucznej inteligencji generalnej. To może być prawda. Ja osobiście uważam, że nie, że do tego nie dojdziemy. Przez wiele problemów, o których właśnie piszę teraz w nowej publikacji. Uważam, że nie mamy jeszcze tego algorytmu. To, co mamy dzisiaj, czyli właśnie ten </span><i><span style="font-weight: 400;">deep learning,</span></i> <i><span style="font-weight: 400;">machine learning.</span></i><span style="font-weight: 400;"> Mamy systemy, które bardzo fajnie dopasowują pewne funkcje do danych treningowych, czyli mamy systemy, które można wytrenować. Mamy aproksymatory. Aproksymatory, które są w stanie zaproksymować pewien problem. Na przykład, mogą zaproksymować problem wkładania wtyczki do gniazdka i różne tego typu rzeczy. Wydaje mi się, że nie mamy algorytmu takiej prawdziwej sztucznej inteligencji, a próbujemy stosować niesamowicie silne aproksymatory żeby przybliżać pewne funkcje kognitywne, więc w teorii wystarczy przybliżyć setki tysięcy różnych funkcji kognitywnych i będziemy mieli sztuczną inteligencję generalną. </span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">W praktyce jednak okazuje się, że może po prostu do tego za mało danych i jest to nieefektywne podejście. </span></p>
<p><span style="font-weight: 400;">Ja osobiście uważam, że narzędzia które są świetne, są to niesamowite narzędzia, które się przyczynią do postępu w medycynie, i tak dalej. One niestety nie wystarczą, według mnie oczywiście do tej generalnej i sztucznej inteligencji. Ja właśnie próbuję to rozwiązać stosując coś zupełnie innego dlatego, że nie mam wiary w te narzędzia z których korzystamy, ponieważ widzę jakie są ich ograniczenia. Natomiast o tych ograniczeniach nie zawsze się mówi. Przeważnie widzimy jakiś system, który nauczył się robić to, albo wykrywa raka na zdjęciach. </span></p>
<p><span style="font-weight: 400;">Dzisiaj przeczytałem artykuł o systemie, który lepiej analizuje tak zwane </span><i><span style="font-weight: 400;">non-disclosure agreement.</span></i><span style="font-weight: 400;"> Jest on dokładniejszy od prawników. Cały czas widzimy te rzeczy, ale nie widzimy tych ograniczeń. A jeśli byśmy się naprawdę skupili na ograniczeniach, to moglibyśmy stracić wiarę, że właśnie tym podejściem dojdziemy do generalnej sztucznej inteligencji. Wielu się ze mną zgadza. Na przykład Ray Kurzweil, który jest dyrektorem w Google Brain, albo Jeff Hawkins, który jest założycielem Palm Computing.</span></p>
<p><iframe title="Jeff Hawkins: How brain science will change computing" width="960" height="540" src="https://www.youtube.com/embed/G6CVj5IQkzk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Wydaje mi się, że ludzie którzy już dużo osiągnęli w tej dziedzinie, jak Ray albo Jeff, którzy są w sumie niezależni, którzy są już znani na świecie, raczej próbują robić coś zupełnie innego. Jeśli chodzi o inne podejścia, wydaje mi się, że są to młodsi naukowcy, którzy chcą się wykazać. Staramy się robić to, co jest bardziej sprawdzone, dlatego jesteśmy jeszcze trochę sceptycznie nastawieni do tego, że rozwiążemy ten problem z wykorzystaniem aktualnych narzędzi. Nawet ostatnio czytałem artykuł, w którym było wspomniane, że powinniśmy od nowa zacząć badania na temat sztucznej inteligencji. Jak tego typu sławni ludzie i ojcowie sztucznej inteligencji o tym piszą, to daje do myślenia, mimo iż ogromne fundusze są na to przeznaczane, artykuły w gazetach, w telewizji, wszyscy wieszczą, że będzie koniec świata, to jednak założyciele tego fieldu AI, oni robią coś innego. Podobnie ja próbuję czegoś zupełnie innego ponieważ uważam, że jest taka potrzeba.</span></p>
<p><b>Bardzo interesujące i bardzo konkretne. Będzie to na pewno wartościowe dla wielu osób. A co do słynnych osób, Yann Lecun w swoich ostatnich prezentacjach dość często wspomina, że uczenie nienadzorowane ma zdecydowanie większy potencjał niż jest wykorzystywany teraz i to jest kierunek przyszłościowy. Jaka jest Twoja opinia na ten temat?</b></p>
<p><iframe title="RI Seminar: Yann LeCun : The Next Frontier in AI: Unsupervised Learning" width="960" height="540" src="https://www.youtube.com/embed/IbjF5VjniVE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Jak najbardziej. Całkowicie się zgadzam z Yannem. Może jeszcze dodam, że ja już się w ogóle nie zajmuje systemem </span><i><span style="font-weight: 400;">supervised</span></i><span style="font-weight: 400;">, czyli wszystko jest nienadzorowane. Ludzie się uczą też uzupełnienie nienadzorowani. Czasem się uczą z wykorzystaniem przykładów, ale przeważnie to jest uczenie się nienadzorowane. Dodam jeszcze, że ja osobiście zajmuje się systemami, które są dyskretne, czyli to nie są systemy różniczkowalne, którymi wszyscy się zajmują. To nie jest dopasowywanie funkcji ciągłej do danych, tylko są to systemy dyskretne. Więc uważam, że duży potencjał leży w systemach, które uczą się właśnie bez tego nadzoru, to po pierwsze, a po drugie systemy, które są dyskretne dlatego, że jak mamy system, który jest różniczkowalny, to możemy go wytrenować, ale też musimy dopasować tę funkcję w danych i ta funkcja musi być ciągła. Nie każda funkcja jest ciągła, więc mam dużą wiarę w systemy dyskretne i uważam, że właśnie w tym tkwi sedno. </span></p>
<p><span style="font-weight: 400;">Według mnie procesy myślowe, które zachodzą w mózgu jesteśmy w stanie symulować z wykorzystaniem procesów dyskretnych, a co jest jeszcze ciekawe, jak mamy procesy dyskretne, to w ogóle nie wykorzystujemy na przykład tego </span><i><span style="font-weight: 400;">gradient descent,</span></i><span style="font-weight: 400;"> czyli nie wykorzystujemy metody planowania sieci, którą każdy wykorzystuje i nie musimy wpadać w pułapkę, która jest generowana właśnie przez tego typu algorytm. Na przykład, nie musimy mieć modelu, który jest różniczkowalny. Nie musimy zakładać wielkości tego modelu, ponieważ niczego nie będziemy różniczkowali. Możemy zrobić tak, żeby były tylko aproksymowane. Więc w dużym skrócie, jak najbardziej się zgadzam z Yannem. Ciekawym jest to, że Yann był szefem Facebook Research, a od pewnego czasu już nie jest. Wrócił na uniwersytet. Czyli on też widzi, że coś jest jeszcze do zrobienia. Nie tylko systemy, które się uczą bez nadzoru</span><i><span style="font-weight: 400;">,</span></i><span style="font-weight: 400;"> tylko też systemy, które są dyskretne. Wydaje mi się, że analiza procesów dyskretnych nie jest teraz popularna, gdyż jest trudna, jest bardzo mało intuicji geometrycznych. </span></p>
<p><span style="font-weight: 400;">Więc aktualnie olbrzymi nacisk kładziony jest na systemy różniczkowalne z intuicją geometryczną, aproksymatory, ponieważ widzimy tę strukturę funkcji, którą musimy aproksymować tej funkcji ciągłej, ale niestety wydaje mi się, że musimy wejść na głęboką wodę, czyli systemy które nie mają tego </span><i><span style="font-weight: 400;">supervisor&#8217;a, </span></i><span style="font-weight: 400;">tego nadzoru i są systemami dyskretnymi. Tego typu system i automaty komórkowe dyskretne, to jest naprawdę ciężka sprawa, ale moim zdaniem one są przyszłością. </span></p>
<p><b>Ciekawy jestem jeszcze Twojej opinii o kolejnym zagadnieniu, czyli zastosowania tak zwanego uczenia ze wzmocnieniem albo </b><b><i>reinforcement learning.</i></b><b> Pytanie jest następujące: Jak myślisz, czy to rozkwitnie w ciągu najbliższych 5-10 lat i będzie używane gdzieś w rzeczywistości? Aktualnie jest dużo publikacji, które coraz częściej się pojawiają na konferencjach, na prezentacjach, ale prawie nie ma takich prawdziwych wdrożeń na produkcję. Czy to się zmieni</b><span style="font-weight: 400;">?</span></p>
<p><span style="font-weight: 400;">Osobiście uważam, że będzie niesamowity postęp z tego typu algorytmami wykorzystywanymi w grach komputerowych. Naprawdę, to zawsze w grach komputerowych mamy do czynienia z nieograniczoną ilością danych treningowych, z symulatorem, z pewnego rodzaju zamkniętym środowiskiem, i w tego typu właśnie środowiskach zamkniętych, które możemy symulować, w których jest mnóstwo danych treningowych, w tego typu środowiskach, systemy </span><i><span style="font-weight: 400;">deep reinforcement</span></i><span style="font-weight: 400;"> potrafią świetnie działać. Jeśli teraz chodzi o to, o co pytasz, czy zobaczymy jakieś zastosowanie w świecie rzeczywistym? Podejrzewam, że tak, ale nie od razu. Dlatego, że transferowalność tych rozwiązań z jednej dziedziny do drugiej nie jest trywialna. To znaczy, jak wytrenujemy system, na przykład w symulatorze żeby jeździł samochodem i potem ten sam system wstawimy do samochodu i będziemy jeździć normalnie po drodze, to nie jest oczywiste, że on się będzie dobrze zachowywał. To prawda, że jest to czasem nieintuicyjne, ale tam są pewnego rodzaju problemy, na przykład ten system może nie do końca transferować swoją wiedzę. Jeśli chodzi o zastosowania, to na pewno będziemy mieli takowe.</span></p>
<p><iframe title="MIT 6.S094: Deep Reinforcement Learning" width="960" height="540" src="https://www.youtube.com/embed/MQ6pP65o7OM?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Już mamy </span><i><span style="font-weight: 400;">deep reinforcement learning </span></i><span style="font-weight: 400;">w takiej dziedzinie jak, na przykład finanse. W finansach mamy do czynienia z ogromną ilością danych, z rynkiem finansowym w którym możemy mieć symulatory. Tam ci agenci mogą się uczyć jak handlować, co sprzedawać, co kupować. Na przykład wiemy, że w zeszłym roku JPMorgan Chase wytrenował agenta, który tam sobie grał i optymalnie wykonywał pewną egzekucję na transakcje finansowe. Te systemy już w rzeczywistości są w świecie finansowym. Jeśli chodzi o inne dziedziny, to transferowalność jest dużym problemem. W ogóle transferowalność tych rozwiązań z jednej dziedziny do drugiej, i przez to nie wiem czy będziemy mieli od razu takie spektakularne wyniki jakie mamy bez tego </span><i><span style="font-weight: 400;">reinforcement learning</span></i><span style="font-weight: 400;">. Z reinforcement learningiem jest też taki problem, że te systemy potrzebują strasznie dużo danych treningowych i to jest właśnie bolączką tych systemów. Jeśli tych danych treningowych nie ma, to wtedy w świecie rzeczywistym możemy nie mieć tylu tych danych treningowych i te systemy nie będą się rozwijać. </span></p>
<p><span style="font-weight: 400;">Dla przykładu podam taką rzecz z książki “The Book of Why”, Judea Pearl’a. On tam podaje przykład, czy da się w ogóle wytrenować agenta, który będzie rozwiązywał problem wyciągnięcia pończochy ze szprych koła w rowerze. To jest prosta rzecz. Jak ja bym pokazał jak to zrobić, na przykład Tobie, to byś popatrzył na te szprychy, popatrzyłbyś na tę pończochę i byś to wyciągał. Jeśli weźmiemy takiego agenta </span><i><span style="font-weight: 400;">deep reinforcement learning</span></i><span style="font-weight: 400;">, to musiałbyś go wytrenować na ogromnej ilości zadań typu: wyciągnij pończochę z roweru. Niekoniecznie tego typu zadania będziesz miał pod ręką, więc to jest ten problem, że mamy zawężone środowisko. Na przykład, handlowanie akcjami z użyciem systemu </span><i><span style="font-weight: 400;">deep reinforcement learning</span></i><span style="font-weight: 400;"> działa już dzisiaj. One są już w świecie rzeczywistym i operują ogromną ilością pieniędzy. Jeśli chodzi o przykładowo jazdę autem, możemy wytrenować system, który będzie świetnie jeździ autem w bardzo realistycznej grze komputerowej. Na przykład Grand Theft Auto 5. </span></p>
<p><span style="font-weight: 400;">Czy ten system będziesz świetnie jeździł w rzeczywistości? Podejrzewam, że w 99% przypadków tak, ale pozostaje ten jeden procent, ten nieszczęśliwy 1% albo jedna dziesiąta procenta, albo jedna setna, która będzie będzie powodowała, że będziemy chcieli tego człowieka mieć koło siebie. To jest ten problem. W dużym skrócie: te systemy </span><i><span style="font-weight: 400;">deep reinforcement learning</span></i><span style="font-weight: 400;"> już są stosowane w świecie rzeczywistym, np. w handlowaniu. Próbują być stosowane przy </span><i><span style="font-weight: 400;">self-driving cars</span></i><span style="font-weight: 400;"> z różnymi rezultatami i poczekajmy i zobaczymy. Wydaje mi się, że jak mamy z symulator z ogromną ilością danych, to w tym przypadku te systemy mogą działać. Natomiast jak symulatora nie mamy, nie mamy dużej ilości danych, to tego systemu nie wytrenujemy na różnych wariacjach i przez to transferowalność może nie działać. </span></p>
<p><b>Wygląda na to, że </b><b><i>reinforcement learning</i></b><b> już można zacząć stosować tylko wymaga troszkę innych umiejętności niż taki klasyczny ML. Jakie są twoje najbardziej bolesne porażki z uczeniem maszynowym, lub innymi słowy, na co należy uważać?</b></p>
<p><span style="font-weight: 400;">Wydaje mi się, że największym problemem jest wyciąganie przedwcześnie pochopnych wniosków, typu: czego dany system się nauczył i co już potrafi zrobić. Próba generalizowania rezultatów jest największym problemem. Na przykład, weźmiemy sobie system, który gra w jakąś grę komputerową. Na przykład w taką grę </span><i><span style="font-weight: 400;"><a href="https://medium.com/@dhruvp/how-to-write-a-neural-network-to-play-pong-from-scratch-956b57d4f6e0">Pong</a>.</span></i><span style="font-weight: 400;"> Można wyciągnąć taki wniosek, że system się nauczył grać w tę grę. Jednak tak naprawdę ten system się nauczył wykonywać optymalną akcje na podstawie konfiguracji kilku punktów na ekranie. On się nie nauczył gry w </span><i><span style="font-weight: 400;">Pong.</span></i><span style="font-weight: 400;"> On się nauczył wykonywać optymalną akcje na podstawie danych wejściowych, które są ściśle zdefiniowane. Dużym problemem jest to, jak próbujemy to generalizować. Czyli mówimy, że ten system nauczył się na przykład jeździć autem po jakieś autostradzie w Phoenix w Arizonie, i wtedy generalizujemy, że mamy już samoprowadzący się samochód. To nie jest prawda. Ta pułapka jest tym największym problemem, że próbujemy wyciągać pochopne wnioski odnośnie tego, czego system się nauczył. Czasem nawet nie wiemy czego się nauczył. Czasem jest tak, że wyciągamy takie wnioski, że nauczył się, powiedzmy rozumować, nauczył się abstrakcyjnego myślenia, nauczył się planować, a on może na przykład tego nie umie. On może tylko znaleźć jakiś punkt, jakieś piksel na podstawie którego podejmuje dobrą decyzję i nam się wydaje, że czegoś się nauczył. Trzeba być ostrożnym przy analizowaniu czego system się już nauczył. Generalizacja jest wielką pułapką. </span><span style="font-weight: 400;"><br />
</span><span style="font-weight: 400;">W takim dużym skrócie, to jest największa bolączka.</span></p>
<p><b>Czy masz jakąś taką <em>check listę</em>? To znaczy, w jaki sposób próbujesz sam siebie dopytywać, czy to rozwiązanie, które mi się wydaje faktycznie, że jest już rozwiązaniem, czy tylko jednym konkretnym przypadkiem. Kiedy model działa dobrze? Jakie pytania sobie zadajesz, żeby upewnić się, że to co udało się osiągnąć faktycznie jest tym czym się wydaje?</b></p>
<p><span style="font-weight: 400;">Masz na myśli pewne rozwiązanie </span><i><span style="font-weight: 400;">deep reinforcement learning</span></i><span style="font-weight: 400;">?</span></p>
<p><b>Bardziej mi chodzi o sposób myślenia. Teraz powiedzmy czytają to osoby, które też wdrażają takie rozwiązania i patrzą na przykład na metrykę sukcesu. Może im się wydawać, że to działa dobrze. Bardzo się cieszą, wrzucają taki model na produkcję, i tak dalej. Jak być jeszcze takim bardziej pragmatycznym? Jakie pytanie warto sobie jeszcze raz zadać, żeby się potem nie oparzyć?</b></p>
<p><span style="font-weight: 400;">Wydaje mi się, że nie powinniśmy stosować tego samego zbioru testowego wielokrotnie. Podam dla przykładu: mamy stworzyć system, który rozpoznaje cyfry, czyli zbiór treningowy </span><a href="http://yann.lecun.com/exdb/mnist/"><span style="font-weight: 400;">MNIST</span></a><span style="font-weight: 400;"> i on jest podzielony na dwie części: na część treningową i część testową. Część treningowa składa się z 50000 liczb, a część testowa z 10000 liczb. </span></p>
<p><iframe title="Neural Network 3D Simulation" width="960" height="540" src="https://www.youtube.com/embed/3JQ3hYko51Y?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><span style="font-weight: 400;">Co się okazuje? Trenujemy jakiś system. Testujemy różnego rodzaju konfiguracje tej sieci neuronowej, różne hyperparametry, jedne, drugie, trzecie. Za każdym razem trenujemy to na tym zbiorze treningowym, a potem uruchamiamy na zbiorze testowym i patrzymy jak się zachowuje. To jest nieuczciwe dlatego, że my optymalizujemy go pod kątem danego zbioru testowego. Nawet jak sieć tego nie widziała. Przez to, że robimy analizę i przeszukiwanie tych hyperparametrów, </span><span style="font-weight: 400;">i możemy jednocześnie sprawdzać dziesiątki tysięcy modeli, każde z nich jest trenowane na zbiorze treningowym po to, żeby wybrać ten jeden, który się najlepiej zachowuje na zbiorze testowym. Tak naprawdę, mamy do czynienia z takim timingiem, w którym ta sieć jest wytrenowana pod kątem tego danego zbioru testowego, i to jest ta pułapka. Jak już budujemy jakiekolwiek zaawansowane systemy, które chcemy wdrożyć w produkcji, to nie róbmy tego tak, że mamy jakiś zbiór testowy i analizujemy różnego rodzaju konfiguracje sieci danych treningowych, a potem patrzymy jak się zachowują na zbiorze testowym i wybieramy najlepszy. Zbiór testowy powinniśmy testować tylko na jednym problemie</span></p>
<p><b>Super! Taka bardzo prosta, ale mega trafna wskazówka. Jeszcze pytanie bardziej już takie wizjonerskie. Jak myślisz, jak ten świat w którym żyjemy teraz może się zmienić w ciągu najbliższych 5-10 lat? Troszkę o tym już wspomniałeś, ale chciałbym żebyś wszystko jeszcze raz podsumował. </b></p>
<p><span style="font-weight: 400;">Gdziekolwiek nie patrzę jak czytam jakieś artykuły w gazetach czy w internecie, jest taka wizja, że ta sztuczna inteligencja jest tuż za rogiem i wszystkie prace znikną, albo będzie ogromne bezrobocie. Ja osobiście nie jestem przekonany, że tak zaraz będzie gdyż widzę, jakie są ograniczenia tych systemów, które mamy, i przez te właśnie ograniczenia, w ciągu najbliższych 5 i 10 lat nie sądzę żeby znikły wszystkie te prace dookoła. Nawet nie widzę żebyśmy mieli samochody, które same się sterują. Wydaje mi się, że tej technologii nie mamy, więc ja bym nie był takim pesymistą, że nagle będą załamania społeczne, bezrobocie. Natomiast co się może zmienić, to ogromny postęp w medycynie. Dlaczego o tym wspominam? Prowadzę badania naukowe wykorzystujące sieci neuronowe rekurencyjne do predykcji, na przykład zwijania białek i to pozwala i dzięki temu jesteśmy w stanie szybciej zasymulować jak dane białka się będą zawijały, właśnie z wykorzystaniem sieci neuronowej i jednocześnie przyspieszyć proces badania, czy dane białko doprowadzi do czegoś pozytywnego. Na podstawie tego jesteśmy w stanie o wiele szybciej generować i próbować różnego rodzaju leki, więc wydaje mi się, że postęp w medycynie będzie teraz niesamowity. Właśnie przez to, że będziemy w stanie badać o wiele większą ilość różnych leków o wiele szybciej właśnie z wykorzystaniem deep learningu. </span></p>
<p><span style="font-weight: 400;">Co mnie trochę martwi to jest to, że te narzędzia jednocześnie się świetnie nadają do inwigilacji, do obserwowania społeczeństw. Na przykład, wiesz że teraz w Chinach już jest wdrożony system, który świetnie rozpoznaje ludzkie twarze i rejestruje gdzie, kto był w danym momencie na podstawie obrazu z kamer. Wydaje mi się, że rządy będą próbowały wykorzystać te fantastyczne narzędzia które mamy, te sieci neuronowe do zwiększenia kontroli nad społeczeństwem. Więc z jednej strony, jestem bardzo optymistycznie nastawiony, jeśli chodzi o postęp w medycynie w ciągu najbliższych pięciu lat, a z drugiej strony boję się, że te narzędzia będą wykorzystane właśnie do zmniejszenia prywatności, do zwiększenia inwigilacji nad społeczeństwami. Ale zobaczymy. Bądźmy dobrej myśli.</span></p>
<p><b>Dzięki wielkie za Twoją opinie. Ostatnie pytanie na dzisiaj: Jak można znaleźć ciebie w sieci w przypadku gdy ktoś chciałby się z tobą się skontaktować?</b></p>
<p><span style="font-weight: 400;">Najlepiej po prostu wpisać w Google moje imię nazwisko i kliknąć “I’m feeling lucky” :). Powinienem się pojawić na górze. Mam też stronę internetową </span><a href="http://www.januszmarecki.com/"><span style="font-weight: 400;">www.januszmarecki.com/</span></a><span style="font-weight: 400;">. Jestem też na <a href="https://www.linkedin.com/in/januszmarecki/">LinkedIn</a>. Zapraszam do internetowej dyskusji ze mną.</span></p>
<p><b>Super! Dzięki wielkie za Twój czas który znalazłeś, za chęć podzielenia się wiedzą i też wyróżnienie takich punktów, które są mega przemyślane, gdyż cały czas tym się zajmujesz, ale jednocześnie nie są tak otwarte ani spopularyzowane w &nbsp;mediach i bardzo się cieszę, że udało mi się tego wszystkiego dowiedzieć. Dzięki wielkie!</b></p>
<p><span style="font-weight: 400;"> Dzięki, mam nadzieję, że każdy z tego w jakiś sposób skorzysta.</span></p>
<hr />
<p><span style="font-weight: 400;">Dziękuję Ci bardzo za poświęcony czas. Ten odcinek wyszedł troszkę dłuższy.&nbsp; Jeśli spodobał Ci się ten odcinek, jak i również inne, to napisz recenzję w <a href="https://itunes.apple.com/us/podcast/id1215290277">iTunes</a>. Sprawi mi to wielką przyjemność i jednocześnie podcast stanie się bardziej dostępny dla innych osób w przypadku, gdy szukają czegoś do wysłuchania. Dzięki wielkie! Do usłyszenia, do zobaczenia! Cześć!</span></p><p>Artykuł <a href="https://biznesmysli.pl/deepmind-janusz-marecki/">Prowadzący naukowiec z DeepMind o rozwoju sztucznej inteligencji</a> pochodzi z serwisu <a href="https://biznesmysli.pl">Biznes Myśli</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://biznesmysli.pl/deepmind-janusz-marecki/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
