„Algorithms to live by” – Brian Christian

Ocena: 8/10

Połączenie książki o algorytmach z rozwojem osobistym i filozofią życia. Nietypowe połączenie, ale wyszło bardzo dobrze. Pokazano podejście do codziennych decyzji, co by było gdyby zamiast intuicją kierować się optymalizacjami z teorii algorytmów. Prowokuje do innego spojrzenia na sposób w jakim żyjemy.

Moje notatki

  1. Kiedy się zatrzymać – problem randki z tindera albo poszukiwania optymalnej sekretarki.Gdy nie jesteśmy w stanie ocenić kandydatki w bezpośredniej liczbie odnoszącej do całej populacji.
    Interpretacja:gdy jest wiele dobrych kandydatów w puli, należy nawet odpuścić tych bardzo dobrych na początku w poszukiwaniu lepszych później
    Algorytm:
    1. przejdź przez 37% kandydatów (pytanie skąd wiemy że przerobiliśmy właśnie 37%…)
    2. po 37% bierz pierwszą osobę która będzie lepsza od tego zbioru
  2. Każdy pomiar który da informację o pozycji konkretnego kandydata względem populacji sprawia, że zmieniamy algorytm z „eksploruj-wybieraj” na „threshold rule”.Czyli bierzesz pierwszego który przekroczy dany pułap.
  3. Ważny faktor w problemie sekretarki, którego ciężko ująć modelem:czas poświęcony na szukanie.Ludzie wolą zatrzymać się wcześniej niż algorytm nakazuje. Bo się nudzą, bo czas przeznaczony na poszukiwanie, nie jest czasem w którym korzystamy z owoców poszukiwania. Czas szukania to czas stracony w pewnym sensie.
  4. Gittins index – coś czego nie znasz kompletnie jest atrakcyjniejsze niż maszyna która wypłaca kasę 70% czasu.Czyli nowe, nieznane, ma duży potencjał zawsze (który korygujemy wraz z kolejnymi próbami).
    Ergo:   eksplorowanie   ma   wartość   samą w   sobie.Ponieważ próbowanie nowych rzeczy zwiększa naszą szansę na znalezienie rzeczy najlepszej.Młodzieniaszek jest lepszy od weterana o podobnych umiejętnościach bo ma większy niezbadany potencjał ( który opisuje indeks gittinsa ).
  5. „Spróbować i sfailować to co najmniej nauczyć się czegoś.Nie spróbować w ogóle to cierpieć bezcenną utratę czegoś co mogło się mieć…”Cherster Barnard
  6. Regret minimization framework – czyli takie podejmowanie decyzji które minimalizuje ilość rzeczy które będziesz żałował mając 80 lat.
    Oczywiście nigdy żałowanie nie będzie się zmniejszać, zawsze będzie rosnąć.Ale możemy osiągnąć logarytmiczny wzrost żalów:czyli suma żalów w pierwszym roku będzie taka sama jak suma żali w kolejnych 10 latach – siła wzrostu logarytmicznego.
    Algortytm: upper confidence bound interval
    1. wybieraj opcję której górne ograniczenie ma największą wartośćczyli opcja która jest w zbiorze takim <x:y> gdzie y jest największe ze wszystkich opcji
      oczywiście im więcej mamy danych o tym przedział niepewności jest ciaśniejszy. Więc to trochę promuje niepewne, początkowe opcje.
  7. Wiek a decyzja czy eksplorować czy korzystać
    Gdy jesteśmy młodzi eksplorujemy bo więcej czasu możemy przeznaczyć na błędyBędąc starszymi więcej korzystamy ze znanego, bo mamy mniej czasu i chcemy go maksymalnie, hedonistycznie dobrze wykorzystać
  8. Sortowanie a szukanie
    Sortowanie czegoś czego nigdy nie użyjesz to kompletna strata czasu
    Szukanie czegoś w nieposortowanym jest po prostu niewydajne. Ale wciąż ma użycie.
  9. Jakie algorytmy sortowania używać – ogólna heurystyka:
    1. bucket sort jest good enough
    2. w małych przedziałach insert sort jest ok
    3. albo miej mergesort pizza party
  10. Mistrzostwa świata w piłce nożnej wyłaniają tylko najlepszą drużynę. Szansa że druga drużyna jest rzeczywiście taka druga, nie jest wcale duża
  11. Hierarchia, status mają swoje zastosowanie – zmniejszają agresję.
    Zamiast w każdym przypadku walką decydować o tym kto jest wyżej używamy miar typu pieniądze, sława, PKB aby od razu mieć hierarchę, pecking-order.
    Wobec tego życie przestaje być nieustanną wojną, a zaczyna być wyścigiem.Zawsze coś lepszego chyba?
  12. Cache’owanie – nasza pamięć działa w ten sposób.Jeśli coś będziemy sobie przypominać to nasz mózg będzie to trzymał bliżej i dłużej – im więcej przypomnień w szerszej jednostce czasu.
    Więc każde przypomnienie jest jak LRU cache’a – ostatnie użycie podnosi przedmiot na górę cache’a.
  13. W schedule’owaniu podstawa to wiedzieć jaka jest metryka planowania.No bo planujesz to musisz wiedzieć co chcesz zmaksymalizować dzięki temu planowi.
  14. Czasami rzeczy które są nieważne blokuję te najważniejsze.
    Więc stosujesz wtedy priority inheritance – nieważne stają się najważniejsze, bo blokują najważniejsze.
  15. Kiedy jesteś przeładowany zadaniami i przełączanie między nimi – w thrashin state.Wtedy: nawet robienie zadań w złej kolejności jest o wiele lepsze (w losowej kolejności) niż walka o robienie największego priorytetu.Ale: nie może być to wymówka dla robienia błahych rzeczy. Rób tak gdy jesteś przeładowany prio i nie wiesz co powinieneś robić.
  16. Morał:powinieneś być skoncentrowany na jednym zadaniu tak długo jak to możliwe.Zmniejsz swoją responsywność do pewnego akceptowalnego limitu – typu raz na godzinę albo raz na 30 minut.I miej koncentrację przez resztę czasu.
  17. Algorytmy do schedulowania
    1. earliest due date – robisz to co ma najkrótszy okres ważności
    2. shortest processing time – robisz to co ma najkrótszy czas przetwarzania
    3. first things first – robisz to co najważniejsze?
  18. Prawo Laplace’a – jak z danych z przeszłości policzyć prawdopodobieństwo w przyszłości.
    x+1 / y+2
    x – ile razy wydarzyło się w przeszłości
    y – ile razy mogło się wydarzyć
  19. Kopernikańska reguła (lindy):jesteśmy mniej więcej w połowie trwania rzeczy
    więc będą trwać tyle jeszcze, ile do dzisiaj trwały.
    Np. III Rp – trwa do dzisiaj 30 lat, więc będzie jeszcze 30 lat
    Smartfony – są 10 lat, więc będą jeszcze 10 do 2029.
  20. Reguła multiplikatywna – update’owanei predykcji w świetle faktów.
    Jeśli któs jest poniżej połowy średniej w rozkładzie normalnym – przewiduj że osiągnie średnią.Jeśli się zbliża do średniej – to podność predykcje o …
  21. Trzy rozkłady i predykcje do tych rozkładów
    1. rozkład wykładniczy – np. box-office filmów
      Im więcej zarobiło do tej pory tym więcej zarobi w przyszłości! 
    2. rozkład normalny – do pewnego momentu respektujesz średnią przewidywaną przez rozkłąd, później stopniowo to wydłużasz im bliżej jesteś tej średniej
      np. długość życia albo wzrost ludzi
    3. rozkład erlanga – niezależnie ile lat jesteś tyle samo przewiduje się tobie w przyszłości!! Muszę zrozumieć lepiej ten rozkład
      np. przewidywany okres w sejmie albo senacie
  22. Ważne – reprezentacja wydarzeń w mediach nie odwzierciedla (!) ich prawdziwej częstości. Morderstwa, zamachy nie pokazuję prawdziwego obrazu i jego rozkładu.
    ” As sociologist Barry Glassner notes, the murder rate in the United States declined by 20% over the course of the 1990s, yet during that time period the presence of gun violence on American news increased by 600%.”
    Chroń swoje a priori!!!!Tylko z dobrym a priori będziesz dobrze przewidywał przyszłość.
  23. Jedna z największych prawd machine learningu:nie zawsze lepiej użyć bardziej złożonego modelu.Dodatkowe parametry mogą po prostu uczynić nasze predykcje gorszymi!
  24. Branie pod uwagę większej liczby rzeczy może sprawić że będziemy optymalizować pod złym kątem:np. codzienność będziesz parametryzował pod tym, żeby zrobić jak najwięcej małych tasków – nie będąc przy tym szczęśliwym, spełnionym albo mądrzejszym w dłuższej perspektywie.Bądź rozważny pod jakim kątem uczysz model.
  25. Uniwersalne: w każdym systemie ludzie będą dążyli do maksymalizacji nagród, nawet w uboczny sposób.Dlatego uważaj jaką metrykę przyjmiesz, bo ludzie użyją jej przeciwko tobie – czy to będzie liczba commitów, zrobionych ticketów w jirze czy widocznych feature’ów.
  26. Traning scars – jeśli za bardzo zafiksujesz trening w jedną stronę, to zrobisz tak jak ten policjant – po złapaniu złodzieja oddasz mu broń, bo taki automatyzm miał wyuczony na treningach!
  27. Lasso algorytm
    kara za dodatkowe parametry.
    Mniej parametrów to lepiej i lasso to wspomaga.

    Lingwistyczne lasso: używanie kwiecistego, bardziej złożonego języka utrudnia zrozumienie treści i jej przekazanie. Gdy chcesz być bardziej precyzyjnym i chcesz więcej przekazać osiągasz czasami gorszy rezultat niż gdybyś próbował przekazać mniej.

    Pamięciowe lasso: wszystko co zapamiętasz musi przejść test lasso aby zostało ci w głowie…
  28. Tradycja a eksplorowanie nowych:podążaj w stronę nowych trendów. Ale tylko kieruj się a nie wskakuj!
    Tradycja ma swoją ogromną wartość sprawdzonych prawd!
  29. Kiedy myśleć dużo a kiedy mniej:
    dużO: masz wszystkie fakty; wiesz co ważne; myśl długo i złożenie – znasz wszystkie metryki (rzadko się zdarza)
    mało: kiedy nie masz jasności jak twoja praca będzie oceniona; przez kogo i w jaki sposób; jak będzie użyta; preferuj prostotę i zatrzymuj się szybko w swoim myśleniu i dążeniu
  30. „Perfekcyjne jest wrogiem dobrego” Wolter
  31. „Testem pierwszorzędnej inteligencji jest to czy potrafi w jednym umyśle utrzymywać dwie przeciwstawne idee i wciąż funkcjonować”. F. Scott Fitzgerald
  32. Samplowanie jest czasami lepsze od skrupulatnej analizy.

    Zamiast rozpisywać wszystkie możliwe scenariusze czasami wystarczy… po prostu zagrać.
    Zebrać przykłady, spróbować i zobaczyć co się stanie.
    Analiza jest potężna ale nie zawsze skuteczna. Miej pokorę czasami po prostu zagrać i zobaczyć.
  33. Do sprawdzenia – test Millera-Rabin czy dana liczba jest pierwsza. Pomaga z dużym prawdopodobieństwem oszacować czy dana liczba jest pierwsza!
  34. Czasami lepiej sprawdzić losowe wartości, spróbkować – zamiast próbować zrozumieć wszystkie wewnętrzne mechanizmy.
  35. Szkoda że nie stosuje się samplowania do rozwiązywania istotnych problemów w kraju:zs
    amplować jak dane rozwiązanie wpłynie na los iluś ludzi z naszego społeczeństwa! To byłoby wspaniałe narzędzie do dyskusji na temat wprowadzania kolejnych ustaw.
    Bo obecna dyskusja o reformach zawsze wygląda: cherry-picked anegdoty albo zagregowane statystyki (czyli też wycinek całości)
  36. „Nie ma czegoś takiego jak absolutna dokładność, jest za to pewność wystarczająca na potrzeby życia ludzkiego.” J. Stuart Mill
  37. Żeby uniknąć lokalnych minimów w życiu potrzebujesz małej dawki losowości od czasu do czasu.

    Randomowy artykuł na wikipedii.
    Randomowy traf w google.Przejrzenie losowych niusów.Albo talia kart i losowanie jednej przez Briana Eno.
  38. Symulowane wyżarzanie – na początku masz dużą tolerancję na pójście w złą stronę, z czasem coraz mniej tolerujesz rozwiązania nie poprawiające stanu.
  39. Czasami zadziałaj na złych pomysłąch. Zawsze działaj na dobrych
  40. Prawdodpobieństwo podążania za złą ideą powinno być odwrotnie proporcjonalne do tego jak zła jest to idea.
  41. Zacznij od totalnej losowości. Używaj coraz mniej losowości wraz z upływającym czasem.
  42. Exponential backoff – jeśli ktoś nie odbierze zaproszenia, zwiększaj czas za którym ponowisz zaproszenie. Po tygodniu jeśli się nie uda, następna próba za 2 tyg. Później 4, 8 ,16, …Dzięki temu nigdy nie odbierzesz nikomu totalnie szans.
  43. „yeah”, „hmm”, „aha” i inne odzywki słuchających wpływają na jakość historii opowiadającego!Czyli proste odzywki są sygnałem zwrotnym że wiadomość dotarła!
  44. Ja myśle że ty myślisz że ja myśle itd… – myślenie rekurencyjne.W pokerze musisz być tylko jeden poziom dalej – nie możesz się zagrzebać w jeszcze większą głębię rekurencji bo polegniesz!
  45. Matematyka jest zainteresowana PRAWDĄ.Informatyka interesuje się ZŁOŻONOŚCIĄ.
  46. Teoria gier mówi jak zbiór zachowań wypłynie z danych reguł.
    Mechanism design – jakie reguły nałożyć żeby mieć pożądane zachowania
  47. Nałożenie constraintów na liczbę opcji sprawi że ludzi mniejsze wyzwania obliczeniowe mają i … podejmują wtedy lepsze decyzje!
  48. „Za każdym razem gdy jesteś po stronie większości, czas zatrzymać się i przemyśleć” M. Twain
  49. Publiczna informacja nie jest tak informatywna jak nam się wydaje.Nie widzimy w istocie przekonań innych – tylko ich AKCJE.
    A ich akcje mogą być zmienione przez grupę w której są, przez akcje i zachowania innych.I kończy się to irracjonalnym zachowaniem całej grupy, mimo rozsądku posiadanego wewnętrznie przez jednostki w tej grupie.
  50. Interakcja z innymi nie musi być piekłem – tylko jeśli bierzesz udział w złej grze!Popularność jest skomplikowana, nieanalizowalna, rozdystrybuowana po wielkich obszarach;ale piękno – jest zawsze w oku patrzącego…
    Droga do piekła jest wybrukowana nieogarnialnymi rekurencjami, złymi równowagami i kaskadami informacyjnymi.Szukaj gier gdzie szczerość jest optymalną strategią. I bądź tam sobą.
  51. Nawet najlepsza strategia daje czasami złe rezultaty (albo nawet w większości przypadków).
    Jeśli postąpiłeś najlepiej jak mogłeś, rezultat jest i tak zły – nie możesz winić siebie że nie poszło po twojej myśli.
  52. Wyniki robią nagłówki gazet i paski wiadomości – więc łatwo być zafiksowanym na nich.
    Ale to procesy to nasze życie. Nad procesami i naszymi systemami mamy kontrolę.Najmądrzejsze działanie to takie które ma największe prawdopodobieństwo zwrócenia dobrych rezultatów.
  53. Computational kindness – bądź obliczeniowo miły dla innych.Nie mówi „co chcesz na wieczór”, tylko raczej daj zbiór opcji z których interlokutor może wybierać.
    Dzięki temu oszczędzasz mu ciężkiego wysiłku wyboru i analizowania nieskończonej liczby opcji.