Artykuł pochodzi z wydania: Czerwiec 2022
Klasyfikacja obrazów jest pierwszą i wciąż jedną z najpopularniejszych technik ich komputerowej analizy. Polega ona na przypisaniu obrazu do jednej z predefiniowanych klas na podstawie widocznych na nim obiektów. Na przykład, jeżeli na obrazie widoczny jest kot, komputer powinien przypisać go do klasy Kot, a moje selfie mogłoby zostać sklasyfikowane jako Osoba bądź Marcin.
Przełomem w automatycznej klasyfikacji obrazów było zastosowanie (na początku XX wieku) głębokich sieci neuronowych. W ciągu pięciu lat pozwoliło to zwiększyć dokładność automatycznej klasyfikacji obrazów z 70% (rok 2011) do 97% (w roku 2015). W kolejnym roku dokładność, z jaką modele automatyczne klasyfikowały obrazy, przewyższyła ludzką.
Nadal jednak samodzielne zbudowanie takiego modelu było wyzwaniem. Po pierwsze, wymagało to zgromadzenia i opisania dużych ilości danych (przynajmniej kilku tysięcy przykładowych obrazów dla każdej klasy). Po drugie, trening modelu wymaga użycia akceleratorów GPU wyposażonych w duże ilości (16 GB lub więcej) pamięci. Po trzecie, architektura i proces uczenia głębokich sieci neuronowych są bardzo skomplikowane i wymagają ustawienia odpowiednich wartości wielu (od kilkuset do kilku tysięcy) parametrów. Znalezienie odpowiedniej dla rozwiązywanego zadania kombinacji tych parametrów wymaga nie tylko eksperckiej wiedzy, ale również czasu i pieniędzy.
W efekcie tylko duże korporacje mogły sobie pozwolić na samodzielne budowanie modeli. Sytuacja zaczęła się zmieniać dzięki powszechnemu stosowaniu wstępnie nauczonych modeli (tzw. przekazywanie wiedzy). Ponieważ ogromna większość głębokiej sieci neuronowej odpowiada za rozpoznawanie kształtów (od bardzo prostych, jak linie, po skomplikowane, jak usta albo dzioby), możemy użyć wcześniej nauczonej sieci neuronowej do różnych zadań – wystarczy douczyć ją rozpoznawania interesujących nas obiektów. Przekazywanie wiedzy pozwala wielokrotnie ograniczyć liczbę wymaganych przykładów (z tysięcy do dziesiątków), skrócić czas uczenia (z tygodni do godzin), jednocześnie upraszczając eksperyment (liczba wymaganych do ustawienia parametrów zmniejsza się do kilkunastu).
Kolejnym krokiem na drodze do upowszechnienia głębokiego uczenia maszynowego jest połączenie przekazywania wiedzy z technikami automatycznego uczenia maszynowego, które z powodzeniem od lat stosowane są do treningu klasycznych modeli uczenia maszynowego. Tematem artykułu jest takie nowatorskie, dostępne na platformie Azure, rozwiązanie.
> Usługa Azure Machine Learning
Do utworzenia usługi potrzebna jest subskrypcja Azure, której darmowa oferta dostępna jest pod adresem bit.ly/3NcgyB4. Instrukcja opisująca tworzenie usługi i potrzebnego do uruchomienia przykładowego kodu zasobu obliczeniowego dostępna jest pod adresem bit.ly/3N9bWvn. Po jej wykonaniu będziemy mogli zalogować się do Azure Machine Learning Studio i utworzyć nowy notatnik, w którym zbudujemy i przetestujemy model klasyfikacji obrazów.
Usługa Azure ML, oprócz zasobów obliczeniowych, magazynów i zestawów danych, wbudowanych mechanizmów logowania przebiegu eksperymentów, rejestrowania i wdrażania nauczonych modeli, oferuje także interfejsy programistyczne w postaci SDK dla języków Python i R. W czasie powstawania artykułu dostępna była wersja 1.38.0 SDK dla języka Python.
[…]
Marcin Szeliga
Pracownik naukowy Wyższej Szkoły Bankowej w Poznaniu Wydział Zamiejscowy w Chorzowie, jest autorem książek poświęconych analizie danych i posiada tytuł Microsoft Most Valuable Professional.