piątek, 17 marca 2017

Tydzień urlopu, zamiast okazać się błogosławieństwem czasowym (na robienie ciekawych rzeczy z ML :) ), stał się tego przeciwieństwem i czasu było nie dość, że mało to "zmarnowałem" go na całkiem inne rzeczy.

Jaki jest aktualny status:
Kurs Machine Learning 7/11 tydzień.
Kurs Neural Networks  5/16  tydzień
Strona(to za dużo powiedziane) potrzebna do zbierania danych, jest na 80% ukończenia.


Zostanie web developerem w 2 h, zajęło trochę więcej niż 2h, na realizację zadania (nie pytajcie dlaczego, ot losowe zachowanie), wybrałem,
google apps scripts (nigdy tego nie używałem)
google table fusion
no i to by było tyle.

Stronka będzie prawdopodobnie gotowa +-/ w niedzielę, na niej gracz ma zagrać w okolicach 100 tur, ma wybierać guzikiem, klasycznie "papier","kamień", "nożyce". Komputer, ma odpowiedzieć, wg. jakiejś prostej strategii (statystyczna), bo nie chciałem robić nie fair, losowej odpowiedzi, chociaż to tylko zbieranie danych. Gra zostanie zapisana w ww. wspomnianych tabelach fusion. Czyli jedna tabelka plus tabelka do strategii.

Dodatkowo, chciałbym już na wstępie, oprócz zwykłego papier kamień nożyce, aby wyświetlany był obrazek, z wizerunkowym "AI", na którym będzie uśmiechnięty, smutny, złośliwy uśmiech,itd. po co to? chcę sprawdzić czy jakaś istnieje korelacja między decyzjami gracza a pokazanymi emocjami, może będzie może nie, zobaczymy.

Obecna strategia (Ta tylko do zbierania danych) to zwykła strategia statystyczna, bez jakiś wodotrysków.


czwartek, 9 marca 2017

Na czym się będziemy uczyć?

I pierwszy problem, nie mogę znaleźć nigdzie, bazy gier w papier, kamień, nożyce, czy taka powinna istnieć? Wiem, że istnieje, skoro jest bot który gra z ludźmi i chwalą się, że mają bazę 200k gier, no i są mistrzostwa świata w KPN, więc wydawało by się, że gdzieś będzie. No nic, nie znalazłem to nie znalazłem, trzeba będzie stworzyć własną.

Najprościej, było by stworzyć, jakąś stronkę i zachęcić ludzi aby tam grali i tworzyła by mi się baza, sprawa prosta, po za tym, że mój skill jeśli chodzi o webdev oscyluje w okolicach zera. Tak wiec, trzeba będzie stworzyć namiastkę stronki, wybrać coś gdzie najprościej zaimplementować, bez jakiś zbędnych ceregieli, i tym się zajmę w najbliższym czasie, jeszcze w ramach pierwszych 2 tygodni, projektowania całości.

Pierwszą rzecz która mi się nasunęła, to to, że oprócz, ludzi którzy będą chcieli pomóc, pojawią się tacy którzy, albo wrzucą coś w stylu PPPPPPPPP lub NNNN lub PKNPKNPKN, albo druga wersja, odpalą nawet excela, i będą generowali sekwencje losowo.

Rozwiązanie drugiego problemu jest jak się wydaje stosunkowo proste, można wykonać test czy ciąg jest (prawdopodobnie) losowy. np. za pomocą chi-test, może dorzucę, poziom entropii, (ale to raczej słabe będzie), no problem nie jest priorytetowy, gdyż takich osób będzie zdecydowanie mniej.

Większym problemem jest drugi przypadek, na to nie mam jeszcze pomysłu, więc sprawa do przemyślenia.

środa, 8 marca 2017

Daj się poznać, czas start!

Witaj świecie

Zapewne większość, ludzi startujących w "Daj się poznać", robi to po to, aby mieć lepszą motywację, aby złapać pewien rytm, bo wymóg 2 postów tygodniowo itd. czyli "coś" trzeba jednak robić. Ze mną jest podobnie, zacząłem przygodę z DSP, tylko i wyłącznie z ww. powodów.

Nad czym będę pracował

Planuję napisać( w Java ) , program który będzie potrafił, uwaga....grać w "kamień papier nożyce", no nie można tego inaczej skomentować jak "dupy nie urywa", no ale od czegoś trzeba zacząć :).

Celem programu jest jest oczywiście nie sama gra, bo to dość proste, ale wygrywanie w tę grę z człowiekiem(w dłuższej serii). Może, niewiele, ale jednak to już trudniejszy problem. To plan minimum.


Plan maksimum, zakłada, obsługę kamery i program powinien, odczytać gest przeciwnika i go poprawnie zinterpretować, to już nie takie trywialne jak powyżej (chociaż i z tym powyżej, może być wiele problemów ;) ).


Plan v.0.1 optyimstyczny

Na realizację tego, będę miał 12 tygodni, na razie widzę to tak:
2 tygodnie,
                 na poszukanie jakichś materiałów (już zacząłem robić kursy dotyczące ML i SSN),                              zaprojektowanie całego zadania, muszę poszukać jakąś bazę (jeżeli jest), rozegranych gier                  przez ludzi, w końcu są nawet jakieś mistrzostwa, itp.
1 tydzień
                na stworzenie, prototypu, (w javaFX) gdzie, nazwijmy go na ten moment roboczo, BOT                       będzie mógł rozgrywać ze mną, rozgrywki, zapisywać historię, i ćwiczyć na mojej historii,                 po prostu aby umiał grać i klasy podstawowe zostały stworzone.
3 tygodnie
               jeżeli zdobędę bazę gier to powinno pójść prościej, jeżeli nie to, albo ja stworzę samemu z                  moich gier (trochę słabe), albo jakoś na szybko poproszę ludzi, aby mi taką storzyli (nie                      jestem webdev, wiec może nie być takie proste, sprawa do przemyślenia).  W te 3 tygodnie,               BOT powinien nauczyć się, co najmniej ze mną wygrywać.
4 tygodnie
             praca nad kamerka+wykrywanie symobli pokazanych przez człowieka.
2 tygodnie, scalenie tego wszystkiego razem.

hm...plan jest dość pobieżny i jak tak patrzę, to 12 tygodni to nie jest dużo, bo nie jestem człowiekiem który posiada wiele czasu w ciągu tygodnia.

No to tyle na dziś :)