Cześć,

Dziś wchodzimy trochę głębiej w AI a dokładniej w Machine Learning (ML). Jest to główna część AI, wokół której obraca się cała idea sztucznej inteligencji. Bez uczenia maszynowego trudno mówić o jakiejkolwiek jego formie. Potoczne rozumienie AI to właśnie Machine Learning.

Czym jest Machine Learning? Możemy o nim myśleć jako o odwróceniu tradycyjnego programowania jakie znaliśmy do tej pory.

Jako przykład weźmy rozpoznawanie twarzy. To jeden z typowych problemów ML. W tradycyjnym programowaniu, to analitycy i programiści (ludzie) musieliby wymyślić algorytm aby rozpoznać twarz.

Przykładowy (bardzo uproszczony) algorytm mógłby wyglądać tak: 

  • Zamiana zdjęcia na czarno-białe
  • Zwiększenie kontrastu
  • Wykrywanie krawędzi
  • Szeregowanie krawędzi
  • Grupowanie krawędzi w struktury jak oczy czy usta
  • Pozycjonowanie struktur (oczy nad ustami itp)
  • Uśrednianie kolorów w strukturach
  • Jeżeli struktury jak oczy, nos, usta, włosy są w odpowiednich miejscach na zdjęciu to prawdopodobnie jest to twarz

Ale jest to bardzo uproszczony algorytm. Trochę naiwny. W rzeczywistości takich reguł mogą być setki a nawet tysiące. Trudno jest nam sobie nawet wyobrazić czego i jak musielibyśmy szukać na zdjęciu żeby wykryć twarz. A co jeśli jest wiele twarzy? Jak ktoś ma okulary? Inny kolor skóry? Jak ktoś patrzy w bok?

Tradycyjne programowanie sprawdza się jeśli znamy wszystkie reguły algorytmu i jest ich mało. Jeżeli tych reguł są tysiące lub nie znamy ich wszystkich to wtedy Machine Learning jest idealnym rozwiązaniem.

ML odwraca zależność pomiędzy danymi wejściowymi, algorytmem i danymi wyjściowymi. Człowiek definiuje tylko dane wejściowe i dane wyjściowe (jakich wyników się spodziewa). Maszyna tworzy zaś skomplikowany algorytm, który najlepiej zamienia dane wejściowe w wynik.

Ten wyszkolony algorytm to właśnie model. W ML rozróżnia się fazę szkolenia (tworzenia, uczenia) modelu. Oraz fazę używania wyszkolonego już modelu. Szkolenie wymaga ogromnej ilości danych, algorytm trenuje się przez powtarzanie i małe poprawki. Im więcej danych, im dłużej szkolimy tym lepiej. Szkolenie modeli potrafi zająć dużo czasu i sporo kosztować.

A jak wygląda taki wyszkolony algorytm? Tak naprawdę, nie musi nas to interesować. Często wystarczy że działa i ma wysoką skuteczność. My jednak przyjrzymy się mu bliżej w przyszłości.

Jak szybko działa wyszkolony model do wykrywania twarzy na zdjęciach? Możesz się o tym przekonać na tej stronie, wykrywa ona twarz i określa podstawowe cechy jak płeć, wiek a także emocje: https://www.visagetechnologies.com/HTML5/latest/Samples/ShowcaseDemo/ShowcaseDemo.html

Zachęcam do poszukiwania innych przykładów. Jest ich bardzo dużo.

Paweł

Wpis pochodzi z newslettera. Jeżeli chcesz dostawać podobne informacje na swojego mejla uzupełnij poniższy formularz. W każdej chwili możesz się wypisać.

Newsletter Droga Programisty

Informacje o nowych postach i ciekawych projektach.

Please wait...

Dziękuję za dołączenia do newslettera.