Druga wersja naszego interfejsu Vision API

Grafika główna przedstawiająca nowy interfejs API Vision

Kilka miesięcy temu wprowadziliśmy nowe konwencje, które ułatwiają tworzenie modelu uczenia maszynowego zdolnego do interpretowania ręcznie rysowanych makiet. Chcieliśmy ograniczyć niejednoznaczność dla osoby odpowiedzialnej za oznaczanie każdego obrazu potrzebnego do trenowania modelu.

Nowy zbiór danych

Efektem tych prac jest dokument z wytycznymi, który zalecamy wszystkim użytkownikom naszego API, aby mogli w pełni wykorzystać możliwości tej technologii.

Nowe wytyczne dotyczące Vision API

Gdy zrozumieliśmy, jakich danych szukamy, przystąpiliśmy do ogromnego zadania zebrania wystarczającej liczby przykładów do wytrenowania naszego modelu.

Podczas tych prac musieliśmy uwzględnić dwa ważne zagadnienia w uczeniu maszynowym: obciążenie i wariancję. Z jednej strony potrzebowaliśmy wytycznych, które pozwoliłyby zawęzić zakres do czegoś, czego model mógłby się nauczyć (zmniejszając tym samym obciążenie związane z oznaczaniem danych). Z drugiej strony nadal potrzebowaliśmy różnorodnych obrazów, rysowanych przez różne osoby, w różnych kolorach itd. (chcieliśmy uzyskać niejednorodny zbiór danych). Nowe obrazy będą jednak obciążone, jeśli nie zostaną utworzone zgodnie z pierwotnymi wytycznymi, a w konsekwencji model będzie je błędnie klasyfikować.

Kilka makiet z naszego nowego zbioru danych (zwróć uwagę na różne oświetlenie i układy)

Ważnym aspektem trenowania modeli uczenia maszynowego jest reprezentatywność zbioru danych (w miarę możliwości każda klasa powinna być reprezentowana w równym stopniu). Analizując oznaczenia w naszym zbiorze danych, zauważyliśmy, że niektóre klasy występują zbyt rzadko, przez co modelowi trudniej je wykrywać (tabela, ocena, lista, pole tekstowe, kontrolka krokowa). W ramach analizy zbadaliśmy również rozkład rozmiarów poszczególnych elementów — to kluczowa cecha zbiorów danych używanych do wykrywania obiektów. Niektóre elementy, takie jak odnośniki i przyciski opcji, są mniejsze i z natury trudniejsze do wykrycia, podczas gdy większe elementy, na przykład kontener lub obraz, łatwiej wykryć.

Rozkład rozmiarów każdego elementu naszego zbioru danych; czerwone i niebieskie linie oznaczają odpowiednio progi 1% i 10%

Wyniki

Trudno przewidzieć, kiedy zbierzemy wystarczającą liczbę obrazów do naszego modelu. Jasne jest jednak, że jakość modelu będzie rosła proporcjonalnie do liczby obrazów wykorzystanych do trenowania. Ponieważ uznajemy dotychczas zebrane dane za wystarczające do stworzenia modeli wstępnych, postanowiliśmy rozpocząć trenowanie przed zakończeniem pierwszego etapu zbierania danych.

Do oceny naszych modeli użyliśmy średniej precyzji (mAP) przy współczynniku przecięcia do sumy (IoU) wynoszącym 50% (mAP@IoU 0.5) — więcej informacji znajdziesz tutaj. Według tej miary skuteczność pierwszej wersji API wyniosła 40%. W grudniu udostępniliśmy wersję osiągającą 55% dokładności, w której do ulepszenia modelu wykorzystano dane syntetyczne. Model udostępniony w obecnej wersji osiąga 85% na zbiorze testowym. Podejrzewamy jednak, że wynik ten jest zawyżony, dlatego przygotowujemy również uzupełniający zbiór testowy we współpracy z innym zespołem.

Porównanie predykcji poprzedniej (po lewej) i obecnej wersji (po prawej)

Wciąż mamy nad czym pracować — model ma trudności z rozpoznawaniem makiet zawierających wiele elementów. Dodatkowym wyzwaniem jest nierównomierny rozkład danych, zwłaszcza w przypadku rzadkich klas, takich jak suwaki i oceny.

Problematyczna makieta zawierająca zbyt wiele elementów

Uczenie maszynowe wspiera, a nie zastępuje

Jak często bywa w przypadku sztucznej inteligencji i uczenia maszynowego, ostatecznym rezultatem jest symbiotyczna współpraca człowieka i maszyny, a nie zastąpienie człowieka przez maszynę. Jednocześnie ta nowa technologia wymaga od użytkownika końcowego wielu prób i błędów, aby w pełni wykorzystać jej potencjał.

Jak często bywa w przypadku sztucznej inteligencji i uczenia maszynowego, ostatecznym rezultatem jest symbiotyczna współpraca człowieka i maszyny, a nie zastąpienie człowieka przez maszynę. Jednocześnie ta nowa technologia wymaga od użytkownika końcowego wielu prób i błędów, aby w pełni wykorzystać jej potencjał.

Produkt

Powiązane posty

Komentarze

Brak komentarzy. Podziel się swoją opinią jako pierwsza osoba.

Dodaj komentarz

Twój adres e-mail nigdy nie jest widoczny publicznie.
Komentarze są sprawdzane przed opublikowaniem.