Everything for IT projects

  • Relacyjna baza danychElasticsearch
    Sposób przechowywania danychTabele zawierające kolumny i wierszeDokumenty JSON zawierające pary typu: klucz – wartość.
    Indeksowanie danychIndeksy przypisane do tabel i kolumn zawierają informację w którym wierszu w danej tabeli i kolumnie jest wyszukiwana wartość.
    Możliwe jest używanie jednej kolumny w wielu indeksach.
    Odwrócone indeksy, które zawierają listę unikalnych słów ze wszystkich dokumentów. Do każdego słowa przypisana jest lista dokumentów, w których dane słowo występuje.
    Możliwe jest używanie jednego pola w wielu indeksach (np. do pełnotekstowego wyszukiwania, do sortowania oraz grupowania)
    Typy danychStatyczne. Jawnie przypisane typy danych do każdej z kolumn w każdej z tabel.Dynamiczne. Typy danych są automatycznie wykrywane na podstawie zawartości dokumentów podczas procesu indeksowania. Wykrywane są: boolean, floating point, integer, string, data. Użytkownik może jednak jawnie określić znaczenie danego typu i rozróżnić np. free-text od tekstu, który powinien zawierać symbol sformatowany w bardzo konkretny sposób.
    WyszukiwanieStrukturalne SQL po konkretnych tabelach i kolumnach. Istnieje również możliwość zdefiniowania indeksu do wyszukiwania pełnotekstowego.Równorzędne dwa sposoby wyszukiwania: strukturalne po konkretnych polach w konkretnym indeksie (podobnie jak SQL), ale również pełnotekstowe.
    Możliwe jest również wyszukiwanie kontekstowe, wyszukiwanie z podpowiadaniem oraz wyszukiwanie wg podobieństw
    Żądania zapytańSQL, dedykowane klienty, dedykowane sterowniki JDBC, ODBCWbudowane REST-API, wyszukiwanie dla developerów w Kibanie oraz dedykowany klient Elasticsearch do wykorzystania w aplikacjach.
    Dostępne są również sterowniki JDBC i ODBC.
  • Uczenie nadzorowane

    Jak najłatwiej zrozumieć, o co chodzi w uczeniu nadzorowanym?

    Wyobraź sobie, że masz sprawdzian w szkole. Każde z pytań ma zestaw odpowiedzi a), b), c), d). Tylko jedna odpowiedź jest poprawna. Twoim zadaniem jest wybrać właściwe odpowiedzi.

    Kiedy skończysz – nauczyciel sprawdza, czy Twoje odpowiedzi są poprawne (np. porównuje je z kluczem) i udziela Ci informacji zwrotnej. Dzięki temu przy następnym sprawdzianie możesz wykorzystać zdobytą wiedzę i udzielić więcej poprawnych odpowiedzi.

    Im więcej razy dostaniesz informację zwrotną od nauczyciela, tym lepsze będą Twoje odpowiedzi. Ty się uczysz, a nauczyciel Cię nadzoruje.

    Dokładnie w ten sam sposób działa uczenie nadzorowane. Program komputerowy dostaje zestaw danych wejściowych (pytań na sprawdzianie), na podstawie których wybiera dla tych danych odpowiednią kategorię (wybiera jedną z odpowiedzi a, b, c, d). Jego wybór jest porównywany z prawidłowymi odpowiedziami. Program dostaje informację zwrotną, poprawia odpowiednie współczynniki i dostaje kolejny zestaw danych wejściowych. I tak w kółko, aż się nauczy.

    Uczenie nienadzorowane

    Uczenie nienadzorowane można porównać do odkrywcy, który wkracza do nowego świata. Wszystko jest dla niego nowe. Obserwując różne cechy napotykanych obiektów zauważa pewne podobieństwa. Na podstawie podobnyhch cech grupuje te obiekty. Tak ludzie robili na przykład z klasyfikacją zwierząt i roślin. Do obserwowanej przyrody dorabiali teorię. I tak właśnie komputery do obserwowanych danych dorabiają teorię.

    Uczenie przez wzmacnianie

    Czymś pośrednim jest uczenie przez wzmacnianie. Naukowiec sam wyciąga wnioski z własnych obserwacji, ale na końcu, po dłuższym czasie, dowiaduje się, czy jego wnioski były słuszne. Tutaj lepszą analogią jest gra w szachy. Szachista sam dobiera każdy ruch podczas rozgrywki, ale na końcu dowiaduje się, czy wygrał, czy przegrał. Być może większość ruchów wykonał prawidłowo, ale ta jedna pomyłka zaważyła na sukcesie lub porażce. Szachista wyciąga wnioski na przyszłość i w kolejnej partii wykonuje inne ruchy. I znów na końcu dowiaduje się, czy wygrał, czy przegrał. Może potem analizować swoją partię wstecz i w ten sposób się uczyć.