Reklama

Być może słyszałeś już termin „łańcuch Markowa”, ale chyba, że ​​wziąłeś kilka zajęć z teorii prawdopodobieństwa lub algorytmy informatyczne Jak nauczyć się programowania bez stresuMoże zdecydowałeś się kontynuować programowanie, czy to dla kariery, czy dla hobby. Wspaniały! Ale może zaczynasz czuć się przytłoczony. Nie za dobrze. Oto pomoc w ułatwieniu podróży. Czytaj więcej , prawdopodobnie nie wiesz, czym one są, jak działają i dlaczego są tak ważne.

Pojęcie łańcucha Markowa to koncepcja „pod maską”, co oznacza, że ​​tak naprawdę nie musisz wiedzieć, co to jest, aby z nich skorzystać. Jednak na pewno możesz skorzystać ze zrozumienia, jak działają. Są proste, ale przydatne na wiele sposobów.

Oto kurs awaryjny - wszystko, co musisz wiedzieć o łańcuchach Markowa skondensowane w jednym, strawnym artykule. Jeśli chcesz zagłębić się jeszcze głębiej, spróbuj bezpłatny kurs teorii informacji w Khan Academy (i rozważ także inne witryny z kursami online 8 najlepszych witryn z darmowymi kursami szkół wyższych online

instagram viewer
Chcesz uzyskać dostęp do bezpłatnych kursów na poziomie uczelni? Oto niektóre z najlepszych stron do darmowych kursów online. Czytaj więcej ).

Łańcuchy Markowa 101

Powiedzmy, że chcesz przewidzieć, jaka będzie jutro pogoda. Prawdziwa prognoza - w rodzaju wykonywanym przez ekspertów meteorologów 7 najlepszych darmowych aplikacji pogodowych na AndroidaTe bezpłatne aplikacje pogodowe pomogą Ci zachować kontrolę nad pogodą na urządzeniu z Androidem. Czytaj więcej - obejmowałyby setki, a nawet tysiące różnych zmiennych, które ciągle się zmieniają. Systemy pogodowe są niezwykle złożone i niemożliwe do modelowania, przynajmniej dla laików takich jak ty i ja. Ale możemy uprościć problem, używając oszacowań prawdopodobieństwa.

Wyobraź sobie, że masz dostęp do trzydziestoletnich danych pogodowych. Zaczynasz od początku, zauważając, że Dzień 1 był słoneczny. Idź dalej, zauważając, że Dzień 2 był również słoneczny, ale Dzień 3 był pochmurny, następnie Dzień 4 był deszczowy, co doprowadziło do burzy w Dniu 5, a następnie słonecznego i czystego nieba w Dniu 6.

Idealnie byłoby, gdybyś był bardziej szczegółowy, wybierając analizę z godziny na godzinę zamiast analizy z dnia na dzień, ale to tylko przykład ilustrujący tę koncepcję, więc trzymaj się mnie!

Robisz to na podstawie całego 30-letniego zestawu danych (który byłby krótszy niż 11 000 dni) i obliczasz prawdopodobieństwa, jaka będzie jutrzejsza pogoda na podstawie dzisiejszej pogody. Na przykład, jeśli dzisiaj jest słonecznie, to:

  • 50 procent szans, że jutro znów będzie słonecznie.
  • 30 procent szans, że jutro będzie pochmurno.
  • 20 procent szans, że jutro będzie padać.

Teraz powtórz to dla wszystkich możliwych warunków pogodowych. Jeśli dzisiaj jest pochmurno, jakie są szanse, że jutro będzie słonecznie, deszczowo, mglisto, burze, gradobicie, tornada itp.? Wkrótce masz cały system prawdopodobieństw, których możesz użyć, aby przewidzieć nie tylko pogodę na jutro, ale także pogodę na następny dzień i na następny dzień.

Stany przejściowe

To jest istota łańcucha Markowa. Masz poszczególne stany (w tym przypadku warunki pogodowe), w których każdy stan może przejść w inny stany (np. słoneczne dni mogą przejść w pochmurne dni), a przejścia te są oparte na prawdopodobieństwach. Jeśli chcesz przewidzieć, jaka będzie pogoda w ciągu jednego tygodnia, możesz zbadać różne prawdopodobieństwa w ciągu najbliższych siedmiu dni i zobaczyć, które są najbardziej prawdopodobne. Zatem „łańcuch” Markowa.

Kim jest Markov? Był rosyjskim matematykiem, który wpadł na pomysł, że jedno państwo prowadzi bezpośrednio do innego w oparciu o pewne prawdopodobieństwo, w którym żadne inne czynniki nie wpływają na szansę przejściową. Zasadniczo wynalazł łańcuch Markowa, stąd nazwa.

Jak łańcuchy Markowa są używane w prawdziwym świecie

Wyjaśniając to na marginesie, przyjrzyjmy się niektórym aplikacjom ze świata rzeczywistego, w których są one przydatne. Możesz być zaskoczony, gdy przez cały czas korzystasz z łańcuchów Markowa, nie wiedząc o tym!

Generowanie nazw

Czy kiedykolwiek brałeś udział w grach stołowych, grach MMORPG, a nawet pisaniu fikcji? Być może cierpiałeś z powodu nazewnictwa swoich postaci (przynajmniej w tym czy innym momencie) - a kiedy po prostu nie mogłeś myśleć o imieniu, które lubisz, prawdopodobnie uciekł się do internetowego generatora nazw Utwórz nowy alias z najlepszymi generatorami nazw online [Weird & Wonderful Web]Twoje imię jest nudne. Na szczęście możesz przejść do trybu online i wybrać nowy alias, korzystając z jednego z niezliczonych generatorów nazw dostępnych w Interneciez. Czytaj więcej .

Czy zastanawiałeś się kiedyś, jak działały te generatory nazw? Jak się okazuje, wiele z nich używa łańcuchów Markowa, co czyni je jednym z najczęściej używanych rozwiązań. (Istnieją inne algorytmy, które są równie skuteczne, oczywiście!)

Wszystko, czego potrzebujesz, to zbiór listów, w których każda litera zawiera listę potencjalnych liter uzupełniających z prawdopodobieństwem. Na przykład, litera „M” ma 60 procent szans na wprowadzenie litery „A” i 40 procent szans na wprowadzenie litery „I”. Zrób to dla całej masy innych liter, a następnie uruchom algorytm. Bum, masz imię, które ma sens! (W każdym razie przez większość czasu.)

Google PageRank

Jednym z interesujących implikacji teorii łańcucha Markowa jest to, że wraz ze wzrostem długości łańcucha (tj. Liczby przejść stanu wzrasta), prawdopodobieństwo, że wylądujesz w określonym stanie, zbiega się z ustaloną liczbą, a prawdopodobieństwo to jest niezależne od tego, od czego zaczynasz system.

Jest to niezwykle interesujące, gdy myślisz o całej sieci jako systemie Markowa, w którym każda strona jest stanem, a łącza między stronami są przejściami z prawdopodobieństwem. To twierdzenie w zasadzie to mówi bez względu na to, na której stronie zaczynasz, szansa na wylądowanie na określonej stronie X jest stałym prawdopodobieństwem, zakładając „długi czas” surfowania.

markov-chain-example-google-pagerank
Kredyt obrazu: 345Kai via Wikimedia

I to jest podstawa tego, jak Google klasyfikuje strony internetowe. Rzeczywiście, algorytm PageRank jest zmodyfikowaną (czytaj: bardziej zaawansowaną) formą algorytmu łańcucha Markowa.

Im wyższe „ustalone prawdopodobieństwo” dotarcia do określonej strony, tym wyższy jest jej PageRank. Wynika to z faktu, że wyższe ustalone prawdopodobieństwo oznacza, że ​​strona zawiera wiele linków przychodzących inne strony internetowe - a Google zakłada, że ​​jeśli strona zawiera wiele linków przychodzących, to musi być cenny. Im więcej linków przychodzących, tym bardziej jest on wartościowy.

Jest to oczywiście bardziej skomplikowane, ale ma sens. Dlaczego witryna taka jak About.com ma wyższy priorytet na stronach wyników wyszukiwania? Ponieważ okazuje się, że użytkownicy często tam docierają, przeglądając sieć. Ciekawe, prawda?

Wpisywanie słów

Telefony komórkowe już od dziesięcioleci mają typowanie predykcyjne, ale czy potrafisz zgadnąć, jak te prognozy są tworzone? Czy używasz Androida (alternatywne opcje klawiatury Jaka jest najlepsza alternatywna klawiatura dla Androida?Rzucamy okiem na niektóre z najlepszych klawiatur w Sklepie Play i testujemy je. Czytaj więcej ) lub iOS (alternatywne opcje klawiatury 10 najlepszych aplikacji na klawiaturę iPhone'a: ​​fantazyjne czcionki, motywy, GIF-y i wiele innychMasz już dość domyślnej klawiatury iPhone'a? Te alternatywne aplikacje klawiatury iPhone'a oferują pliki GIF, motywy, wyszukiwanie i wiele innych. Czytaj więcej ), istnieje duża szansa, że ​​wybrana aplikacja korzysta z łańcuchów Markowa.

Dlatego aplikacje klawiatury pytają, czy mogą gromadzić dane dotyczące twoich nawyków pisania. Na przykład w Klawiaturze Google istnieje ustawienie o nazwie Udostępnij fragmenty prosi o „udostępnianie fragmentów tego, co i jak piszesz w aplikacjach Google, aby ulepszyć klawiaturę Google”. Zasadniczo Twoje słowa są analizowane i uwzględniane w prawdopodobieństwie łańcucha Markowa w aplikacji.

Dlatego aplikacje klawiatury często zawierają trzy lub więcej opcji, zazwyczaj w kolejności od najbardziej prawdopodobnej do najmniej prawdopodobnej. Nie ma pewności, co zamierzałeś wpisać dalej, ale jest poprawne częściej niż nie.

Subreddit Simulation

Jeśli nigdy nie korzystałeś z Reddit, zachęcamy do zapoznania się z tym fascynującym eksperymentem o nazwie /r/SubredditSimulator.

Mówiąc najprościej, Subreddit Simulator przejmuje ogromną część WSZYSTKICH komentarzy i tytułów poczynionych w licznych społecznościach Reddit, a następnie analizuje skład poszczególnych zdań każdego zdania. Korzystając z tych danych, generuje prawdopodobieństwa od słowa do słowa - a następnie wykorzystuje te prawdopodobieństwa do generowania tytułów i komentarzy od zera.

markov-chain-example-subreddit-simulator

Jedną interesującą warstwą tego eksperymentu jest to, że komentarze i tytuły są podzielone na kategorie według społeczności, z której pochodzą dane, więc rodzaje komentarzy i tytułów generowanych przez zestaw danych / r / food są bardzo różne od komentarzy i tytułów generowanych przez dane / r / soccer zestaw.

Najśmieszniejsze - a może najbardziej niepokojące - jest to, że generowane komentarze i tytuły często są nie do odróżnienia od tych, które robią ludzie. To absolutnie fascynujące.

Czy znasz jakieś inne fajne zastosowania dla łańcuchów Markowa? Masz pytania, na które wciąż musisz odpowiedzieć? Daj nam znać w komentarzu poniżej!

Joel Lee ma tytuł licencjata w informatyce i ponad sześć lat doświadczenia zawodowego w pisaniu. Jest redaktorem naczelnym MakeUseOf.