[PL] MS Research - refleksja

Nie wiem jak wy, ale ja od czasu do czasu uwielbiam zaglądać na MS Research. Skłamałbym, gdybym stwierdził, że wszystkie publikacje tam są dla mnie zrozumiałe, ale i tak jest to lektura bardzo inspirująca.

Najbardziej podoba mi się to, że to takie pitu pitu akademickie wymyślanie czegoś dla idei, nauki samej w sobie zformułowanej 4-ma wzorami i zamknięcia sprawy w tym abstrakcyjnym wirtualnym świecie definicji tylko mają konkretne praktyczne przełożenie na bardzo precyzyjne i już nie tak dla mnie samego abstrakcyjne rzeczy, produkty i pojęcia.

Parę przykładów:

1) System TrueSkill(tm) z Xbox'a 360 - czyli system rankingowy pomagający dobierać sobie graczy o umiejętnościach zbliżonych do własnych [URL]
2) Siatki progresywne w definicji obiektu 3D - Kurcze tutaj to pełna fascynacja - pamiętam jak czytałem pracę Hugues'a Hoppe'a na ten temat zanim jeszcze zostało to zaimplementowane w DirectX. Jak spojrzałem na matematykę jaka się za tym kryje to za cholerę nie chciałoby mi się przekładać tej matematyki na algorytmikę a potem program. Ba, długo ze znajomymi debatowałem czy w ogóle coś takiego da się zrobić w czasie rzeczywistym na ówczesnych maszynach. Chwilkę później znalazłem jakiś tutorial w OpenGL, który implementował animację na modelach z siatką progresywną. Jak zobaczyłem kod to się już zupełnie przeraziłem, aczkolwiek to był dowód, że Hardware dorósł do obsługi tego typu efektów w czasie rzeczywistym. Zaraz potem wyszedł DirectX 8, który miał ten mechanizm zaimplementowany i kodowało się to bardzo prosto poprzez odpowiedni typ obiektu, gdzie ładowało się oryginalnie gęstą siatkę a potem jak na suwaku zmiana parametrów odpowiedzialnych za LOD (Level of Detail) powodowało zmianę w strukturze geometrii. Bułka z masłem -> Technologia idzie do przodu - Teraz to już pewnie nikogo nie dziwi bo w takich grach jak Oblivion, Shadow of the Collosus wykorzystywane są algorytmy, które dynamicznie w czasie rzeczywistym są w stanie przetworzyć wirtualny otwarty świat aż po przysłowiowy horyzont. Tak czy siak ten oto artykuł Hugues'a zrobił kiedyś na mnie piorunujące wrażenie. Generalnie jeśli interesujecie się zaawansowaną grafiką komputerową (oczywiście z perspektywy programisty) to strona H.Hoppe'a może być dobrym wyznacznikiem czego można się spodziewać w tej dziedzinie "jutro".
3) Projekt "Lumiere" - tutaj co prawda pierwsza komercyjna implementacja nie bardzo mnie zachwyciła (o czym za moment), ale jako źródło inspiracji kusi mnie do dalszego badania aż do dzisiaj. Jeśli mowa o systemach adapcyjnych i samouczeniu się oraz skąd jakikolwiek produkt Microsoft rozpoczął swoją ścieżkę funkcjonalności tego typu trudno nie wspomnieć o projekcie Lumiere. Jego początek miał miejsce jeszcze na początku lat 90tych i jak wszedłem na ich stronę będąc chyba już na pierwszym roku studiów odkryłem magiczne nazwisko ważne w matematyce - Bayes. Mówiąc prostym językiem za projektem Lumiere kryje się badanie za pomocą sieci Bayesianskich najprawdopodbniejszej następnej akcji w zależności od kontekstu. Jak wspomniałem pierwsza komercyjna implementacja -> Asystent w Microsoft Office. Prawda? Można się uśmiać bo z teoretycznie dobrej idei prawie nikt nie chciał korzystać. Teoretyczna idea to oczywiście w przypadku wywołania asystenta i poszukiwania pomocy mały animowany Avatar korzystając z wczesnej implementacji powyższych algorytmów próbował znaleźć najbardziej trafną kontekstową podpowiedź dla użytkownika, który się zaciął w pracy aplikacji. Okay, przykład może nie najbardziej trafny, ale teraz walka ze spamem i cały soft jaki istnieje do tego celu moim zdaniem kręci się wokół tematyki Bayesiańskiej. Zastosowań ja sam znajduję wiele.
Wyobraźmy sobie aplikacje biznesową realizującą pewne procesy wg ustalonej struktury. Ha! Teraz mamy nawet na to modne słowo - Workflow! I teraz na podstawie historii wykonanych operacji w danej instancji procesu definicja poszczególnych kroków sama się optymalizuje.
Ale okay, koniec przykładów :) Tak czy siak po tym jak dawno temu poczytałem na temat Projektu Lumiere zafascynowałem się trochę systemami samouczącymi.
Jeśli chcecie poczytać trochę na ten temat to tutaj mam dla was artykuły:
* Modelowanie użytkownika oraz jego potrzeb
* Analiza na potrzeby szybkiej pomocy
* Generalnie prace Erica Horvitz'a mogą być ciekawą lekturą
4) Jezyki programowania - czy ktoś z was słyszał o F# albo Haskell'u? Jeśli nie to zachęcam do kliknięcia na odpowiednie linki ;)

Generalnie dużo się tam dzieje cały czas, szkoda tylko że aktualnie sam nie mam zbyt wiele czasu aby uciekać w tak abstrakcyjne tematy jakie tam są omawiane. No i ostrzegam - niektóre elementy są mocno akademickie i wyjęte z praktycznego życia.

Technorati Tagi: Polish Posts , babbling , coding , research