poniedziałek, 28 listopada 2016

A może faktycznie żyjemy w symulacji?

Jeśli dobrze zastanowić się nad prawami fizyki, to wydają się one ułatwiać i w ogóle umożliwiać takie zadanie.

Zgodnie ze szczególną teorią względności, nic nie może poruszać się szybciej niż prędkość światła. Nawet jeśli dwie rakiety wyruszyły z punktu A w przeciwnych kierunkach z prędkością światła, to w ich lokalnych układach odniesienia druga rakieta porusza się tylko z prędkością światła! Fakt, ten powoduje, że istnieje odgórne ograniczenie potrzebnej prędkości teoretycznego komputera symulującego nasz Wszechświat.

Mechanika kwantowa ze stałą Plancka i zasadą nieoznaczoności Heisenberga gwarantują, że nie zakopiemy się w nieskończoność w coraz dokładniejszych obliczeniach. Co więcej w pewnym momencie możemy po prostu wylosować nowy stan układu zgodnie z wyliczonym prawdopodobieństwem.

Fakt, że zbudowanie symulatora naszego Wszechświata jest chociażby teoretycznie możliwe, nie oznacza wcale, że byłoby to łatwe. Potrzeba by co najmniej tyle pamięci, ile jest cząstek elementarnych, co byłoby dość dużym pudełkiem, no chyba że w świecie w którym powstałby symulator stała Plancka miałaby znacząco mniejszą wartość lub nie byłaby ograniczeniem. Podobnie obliczenia trwałyby bardzo długo, no chyba że w świecie w którym powstałby symulator prędkość światła miałaby znacząco większą wartość lub nie byłaby ograniczeniem.

Czy jesteśmy w stanie rozstrzygnąć czy żyjemy w symulacji czy nie? Na pewno nie będzie to tak łatwe jak déjà vu w Matrix czy brak tekstur w odludnych miejscach 13 Piętra. Wydaje się to jednak teoretycznie możliwe, np. poprzez bardzo dokładne przyjrzenie się generatorowi liczb losowych napędzającemu mechanikę kwantową. Gdyby komputer, który symuluje nasz Wszechświat, był układem dyskretnym a nie idealnie analogowym, to wyliczane prawdopodobieństwa również miałyby charakter dyskretny a może nawet ich rozkłady byłyby tylko dyskretnymi przybliżeniami analogowych funkcji.

Czy fakt ewentualnej symulacji ma dla nas jakiekolwiek znaczenie? Jeśli pominiemy kwestie duszy, to nie ma większej różnicy, czy programy zawarte w naszych sieciach neuronowych działają na prywatnych maszynach białkowych, czy są wykonywane w jednym wielkim symulatorze, efekt byłby taki sam z dokładnością do izomorfizmu. Zbytnie przywiązanie do ciała nie ma również sensu z tego powodu, że tak naprawdę co pięć lat wszystkie atomy w naszym ciele ulegają wymianie. Jest jednak inne ryzyko, ktoś niestety może wyciągnąć wtyczkę z prądu, gdy symulacja osiągnie lub nie swój założony cel. Celem takim nie musi być pozyskiwanie energii jak w Matrix czy rozrywka jak w 13 Piętrze a np. eksperyment naukowców mający coś powiedzieć o ich świecie, w wyniku którego tylko przez przypadek powstało tu życie.

wtorek, 25 października 2016

Sukces... w liczbach


Ciekawe informacje można znaleźć pod hasłem "social mobility", które w skrócie mówi o tym jak zmieni się grupa dochodowa od urodzenie (to co zapewnili rodzice) do dorosłości (to na co zapracowało się samemu lub z pomocą). Spójrzmy na poniższy wykres z https://www.bostonfed.org/inequality2014/papers/reeves-sawhill.pdf


Jeśli urodziłeś się biedny to masz większe szanse być biednym, jeśli urodziłeś się bogaty to masz większe szanse być bogatym, jak urodziłeś się w klasie średniej to masz równe szanse zostać bogatym/biednym/klasą średnią. Niezbyt to optymistyczne i sprawiedliwe, ale można na sprawę spojrzeć inaczej.


Przy tak symetrycznym wykresie, masz średnio pół na pół szanse radzić sobie lepiej niż swoi rodzice i jest to o tyle łatwiejsze im niżej stoi poprzeczka. Nawet mając niezależnego od siebie pecha i rodząc się w Q1 masz 2/3 szans zajść dalej. Rodząc się w Q5 masz najlepsze szanse tam pozostać, ale niestety raczej spadniesz w dół!

Spójrzmy jeszcze na diagram z http://eprints.gla.ac.uk/3141/1/intergenerational__social_mobility.pdf


Skrócone pola:
"Father's class" = "Father's social class"
"1st class" = "Social class of 1st job"
"F1" = "Social position at midlife (F1)"
Bogaty tatuś załatwi dobrą szkołę i pierwszą pracę, ale IQ jest jednak ważniejsze (.43) dla końcowego sukcesu.

czwartek, 8 września 2016

Sukces

Jaki jest jego sekret?

Na początek przeprowadźmy mały eksperyment myślowy. Wyobraźmy sobie, że jesteśmy w grupie kosmonautów mających zaraz wylądować na nieznanej planecie i ją zasiedlić. Każdy z nas ma tylko kilka niezbędnych rzeczy i zupełnie nie wiemy co nas tam spotka. W takiej sytuacji zawieramy umowę społeczną mającą obowiązywać w naszym nowym świecie. W obliczu niewiadomej możemy umówić się, że każdy będzie wykonywał to na czym się zna a owocami pracy będziemy dzielić się po równo. Po lądowaniu okaże się jednak, czy najbardziej potrzebujemy silnych wojowników by walczyć z wrogimi kosmitami albo czy najbardziej potrzebujemy wynalazków konstruktorów które pozwolą nam przeżyć w ciężkich warunkach albo czy rozchwytywani będą artyści pomagający zabić nudę w rajskim ogrodzie. Z dodatkową wiedzą równy podział może wydawać się niesprawiedliwy a ponadto niekorzystny dla całej grupy, bo nie będzie motywował/zmuszał jednostek do przekwalifikowania się według bieżących potrzeb.

Nasz prosty eksperyment oprócz wyboru pomiędzy komunizmem a kapitalizmem pokazuje bardzo ważną rzecz, sukces jednostki jest w ogromnej mierze rolą przypadku w postaci zewnętrznych okoliczności, na które nie ma ona wpływu. Analizy czynników sukcesu start-upów stawiają właściwy czas wyżej niż pomysł i jego skuteczne wykonanie [https://www.ted.com/talks/bill_gross_the_single_biggest_reason_why_startups_succeed]. W średniowieczu osiłek za męstwo w bitwie stawał się panem feudalnym a obecnie w Polsce w wyniku globalizacji raporty płacowe faworyzują mózgowców z sektora IT. Część prac jest trudniejsza od innych, ale często lepiej wiedzie się przeciętnej osobie we właściwej branży niż wybitnej w niewłaściwej.

Uproszczony eksperyment zakładał równy start wszystkich, co również nie jest zgodne z rzeczywistością, bo za sukcesem jednostki często stoją pokolenia przodków. Wszyscy gramy w tej samej loterii, ale bogaty może kupić więcej losów, np. zdawać latami na wymarzone studia, położyć firmę i nie spłacać kredytów do końca życia. Świadomość posiadania kilku losów na loterii pozwala podejmować bardziej ryzykowne ale potencjalnie bardziej korzystne wybory, gdy przy małej ich liczbie czasem lepiej stawiać na pewniaki. Jeśli rodzice osiągnęli sukces w jakiejś branży, to mogą przekazać odpowiednią wiedzę i kontakty, jeśli oczywiście latorośl chce podążać tą drogą i okoliczności zewnętrzne nie uległy zmianie. Jako efekt regresji do średniej, dziecko raczej nie będzie tak utalentowane jak jego wybitni rodzice, co może być dla niego dużym ciężarem i może zaprzepaścić ich dokonania.

Sukcesu warto uczyć się od tych, którzy go systematycznie osiągają, ciekawą analizę przeprowadza K. Kłopotowski w książce "Geniusz Żydów na rozum polski". Górale z góry Synaj, mają ogromną nadreprezentację wśród bogaczy, noblistów, itd. Stawiają oni na dobre wykształcenie i kontakty, które między innymi zawiera się na uczelniach. Potrzebny jest jeszcze ten łut szczęścia, którego nie boją się oni szukać w niepopularnych niszach.

Niestety nie ma jednej prostej recepty, gdyż każdy by jej już używał, a stare recepty nie działają, bo świat już się zmienił. Możemy tylko uczyć się i nawiązywać kontakty w dziedzinie którą kochamy lub która najlepiej płaci i czekać na swoją szansę.

piątek, 19 lutego 2016

Building a robot

Some time ago I've found on the web this really cool but outdated tutorial: https://www.sparkfun.com/tutorials/304

I've ported the code to Python, because OpenCV is only maintained for C++ and Python.
The results can be found here: https://dl.dropboxusercontent.com/u/1542785/PanTiltFaceTracking.zip
Hardware and arduino software should be done according to the original tutorial.

For Python part I assume that Linux and Python are installed and other prerequisites can be obtained using:

sudo apt-get install python-numpy
sudo apt-get install python-opencv


To run the program simply type:

sudo ./go

Administrative privileges are needed to access arduino serial port. In case when a wrong camera is used just change the first argument in "go" from 0 to 1...

Have fun!