Omówienie problemu

Aby zrozumieć problem, wykonaj te czynności:

  • Powiedz, jaki jest cel tworzonej lub refaktoryzowanej usługi.
  • Ustal, czy cel najlepiej rozwiązać z użyciem prognozowanych systemów uczących się, generatywnej AI czy rozwiązania nieopartego na systemach uczących się.
  • Jeśli korzystasz z podejścia wykorzystującego prognozujące systemy uczące się, sprawdź, czy masz dane wymagane do wytrenowania modelu.

Określ cel

Zacznij od określenia swojego celu w kontekście niezwiązanym z systemami uczącymi się. Celem jest uzyskanie odpowiedzi na pytanie: „Co chcę osiągnąć?”

Tabela poniżej jasno określa cele hipotetycznych aplikacji:

Aplikacja Cel
Aplikacja Pogoda Obliczanie opadów w odstępach 6-godzinnych dla danego regionu geograficznego.
Aplikacja modowa Wygenerować różne projekty koszul.
Aplikacja z wideo polecać przydatne filmy,
Aplikacja pocztowa Wykrywaj spam.
Aplikacja finansowa Podsumowuj informacje finansowe z różnych źródeł wiadomości.
Aplikacja do map Oblicz czas podróży.
Aplikacja bankowa Wykrywaj fałszywe transakcje.
Aplikacja Restauracje Identyfikuj rodzaj dań na podstawie menu restauracji.
Aplikacja e-commerce Odpowiadaj na opinie, udzielając pomocnych odpowiedzi.

Przypadek użycia ML

Niektórzy postrzegają systemy uczące się jako uniwersalne narzędzie, które można zastosować do wszystkich problemów. W rzeczywistości systemy uczące się to specjalistyczne narzędzie odpowiednie tylko w przypadku konkretnych problemów. Nie chcesz wdrażać złożonego rozwiązania ML, jeśli proste rozwiązanie nie będzie działać.

Systemy ML można podzielić na 2 ogólne kategorie: systemy uczące się prognozujące i generatywna AI. W tabeli poniżej znajdziesz ich cechy definiujące:

Dane wejściowe Dane wyjściowe Technika trenowania
Systemy uczące się prognozujące Tekst
Obraz
Dźwięk
Wideo
Liczbowe
Tworzy prognozę, na przykład klasyfikuje e-maila jako spam lub nie spam, zgaduje o padkach jutro lub przewiduje cenę akcji. Dane wyjściowe zwykle można zweryfikować względem rzeczywistości. Zwykle wykorzystuje duże ilości danych do wytrenowania nadzorowanego, nienadzorowanego modelu uczenia się lub wzmacniania, aby wykonać określone zadanie.
Generative AI Tekst
Obraz
Dźwięk
Wideo
Liczba
Generuje dane wyjściowe na podstawie zamiaru użytkownika, np. podsumowuje artykuł albo tworzy klip audio lub krótki film. Zwykle wykorzystuje wiele danych bez etykiet do trenowania dużego modelu językowego lub generatora obrazów w celu uzupełniania brakujących danych. Model można następnie używać w przypadku zadań, które można ramkować jako wypełnione puste zadania, lub można go dopracować, trenując go na danych z etykietami pod kątem określonego zadania, na przykład klasyfikacji.

Aby potwierdzić, że systemy uczące się są właściwe, najpierw sprawdź, czy Twoje obecne rozwiązanie, które nie jest związane z systemami uczącymi się, jest zoptymalizowane. Jeśli nie masz wdrożonego rozwiązania innego niż ML, spróbuj rozwiązać problem ręcznie za pomocą heurystyki.

Rozwiązanie inne niż systemy uczące się to punkt odniesienia, którego użyjesz do określenia, czy korzystanie z systemów uczących się jest dobrym rozwiązaniem dla Twojego problemu. Porównując podejście bez systemów uczących się z podejściem opartym na systemach uczących się, weź pod uwagę te kwestie:

  • Jakość. Jak myślisz, o ile lepsze może być rozwiązanie ML? Jeśli uważasz, że rozwiązanie ML może być jedynie niewielkim ulepszeniem, może to wskazywać, że jest ono najlepsze.

  • Koszt i konserwacja. Jak drogie są systemy uczące się w ujęciu krótko- i długoterminowym? W niektórych przypadkach korzystanie z systemów uczących się jest znacznie droższe, jeśli chodzi o zasoby obliczeniowe i czas potrzebny na wdrożenie systemów uczących się. Zastanów się nad tymi pytaniami:

    • Czy rozwiązanie ML uzasadnia wzrost kosztów? Pamiętaj, że niewielkie poprawki w dużych systemach mogą łatwo uzasadnić koszty i utrzymanie związane z wdrożeniem rozwiązania ML.
    • Ile czasu na konserwację będzie wymagało to rozwiązanie? W wielu przypadkach wdrożenia systemów uczących się wymagają dedykowanej, długoterminowej konserwacji.
    • Czy w ramach Twojej usługi dostępne są zasoby umożliwiające zatrudnienie osób z wiedzą z zakresu systemów uczących się lub zatrudnienia?

Sprawdź swoją wiedzę

Dlaczego przed analizą rozwiązania ML musi wdrożyć rozwiązanie niezwiązane z systemami uczącymi się lub jego mechanizmy heurystyczne?
Rozwiązanie niekorzystające z systemów uczących się to punkt odniesienia przy ocenianiu danego rozwiązania.
Rozwiązania niezwiązane z systemami uczącymi się pomagają określić, ile będzie kosztować rozwiązanie ML.

Prognozy dotyczące systemów uczących się i danych

Dane są siłą napędową prognozowanych systemów uczących się. Aby tworzyć dobre prognozy, potrzebujesz danych zawierających funkcje z mocą przewidywania. Dane powinny mieć następujące cechy:

  • Duża ilość. Im trafniejsze i przydatne przykłady w zbiorze danych, tym lepszy będzie model.

  • Spójność i niezawodność. Dane, które są gromadzone w spójny i niezawodny sposób, umożliwiają stworzenie lepszego modelu. Na przykład oparty na ML model pogodowy skorzysta na danych zebranych przez wiele lat za pomocą tych samych niezawodnych narzędzi.

  • Zaufane. Dowiedz się, skąd pochodzą Twoje dane. Czy dane będą pochodzić z zaufanych źródeł, nad którymi masz kontrolę, np. logów z Twojej usługi, czy ze źródeł, o których nie masz zbyt dużego wglądu, np. z innych systemów uczących się?

  • Dostępne. Upewnij się, że w prognozowanym czasie wszystkie dane wejściowe są we właściwym formacie. Jeśli uzyskanie niektórych wartości cech w momencie prognozowania może być trudne, pomiń je w zbiorach danych.

  • Dobrze. W dużych zbiorach danych zdarza się, że niektóre etykiety będą miały nieprawidłowe wartości. Jeśli jednak niektóre etykiety są nieprawidłowe, model będzie generować słabe prognozy w przypadku dużych zbiorów danych.

  • Prawnik(ka). Powinny być jak najbardziej reprezentatywne dla świata rzeczywistego. Oznacza to, że zbiory danych powinny dokładnie odzwierciedlać zdarzenia, zachowania użytkowników lub zjawiska modelowanego świata rzeczywistego. Trenowanie z wykorzystaniem niereprezentatywnych zbiorów danych może obniżać wydajność, gdy model jest poproszony o generowanie prognoz w świecie rzeczywistym.

Jeśli nie możesz uzyskać potrzebnych danych w wymaganym formacie, model będzie generować słabe prognozy.

Moc predykcyjna

Aby model mógł generować dobre prognozy, funkcje w zbiorze danych powinny mieć moc obliczeniową. Im ściślej cecha jest powiązana z etykietą, tym większe prawdopodobieństwo, że zostanie ona przewidziana.

Niektóre funkcje będą miały większą zdolność przewidywania. Na przykład w zbiorze danych o pogodzie funkcje takie jak cloud_coverage, temperature i dew_point będą lepiej prognozować opady deszczu niż usługi moon_phase lub day_of_week. W przypadku aplikacji wideo możesz postawić hipotezę, że funkcje takie jak video_description, length i views mogą stanowić dobre przewidzenie, jakie filmy użytkownik chce obejrzeć.

Pamiętaj, że możliwości prognozowania mogą się zmieniać w wyniku zmian kontekstu lub domeny. Na przykład w aplikacji wideo funkcja upload_date może być – ogólnie rzecz biorąc – słabo powiązana z etykietą. Jednak w subdomenie filmów o grach upload_date może być silnie powiązany z etykietą.

Określenie, które funkcje mają zdolność przewidywania, może być czasochłonne. Możesz ręcznie zbadać moc prognozowania cechy, usuwając ją i dodając podczas trenowania modelu. Możesz zautomatyzować określanie przewidywanej skuteczności danej funkcji za pomocą takich algorytmów jak korelacja Pearsona, korelacja korelacji Pearsona, skorygowane informacje wzajemne (AMI) i wartość Shapleya, które zapewniają ocenę liczbową pozwalającą na analizę predykcyjnej mocy funkcji.

Sprawdź swoją wiedzę

Na jakie 3 kluczowe atrybuty należy zwrócić uwagę podczas analizy zbiorów danych?
Przedstawiciel w świecie rzeczywistym.
Zawiera prawidłowe wartości.
Funkcje mają przewidywaną skuteczność etykiety.
Wystarczająco mały, by wczytać go na komputerze lokalnym.
Dane pochodzą z różnych nieprzewidywalnych źródeł.

Więcej wskazówek dotyczących analizowania i przygotowywania zbiorów danych znajdziesz w artykule Przygotowywanie danych i tworzenie funkcji na potrzeby systemów uczących się.

Przewidywania a działania

Prognozowanie nie ma sensu, jeśli nie da się przewidzieć działania, które pomoże użytkownikom. Oznacza to, że produkt powinien podjąć działanie na podstawie danych wyjściowych modelu.

Na przykład model, który przewiduje, czy film może być przydatny dla użytkownika, powinien przesłać go do aplikacji, która poleca takie filmy. Model, który przewiduje, czy będzie padać, powinien przesłać go do aplikacji pogodowej.

Sprawdź swoją wiedzę

Na podstawie poniższego scenariusza określ, czy użycie systemów uczących się jest najlepszym podejściem do problemu.

Za zarządzanie przychodzącymi połączeniami telefonicznymi odpowiada zespół inżynierów w dużej organizacji.

Cel: informowanie rozmówców o tym, jak długo będą czekać na połączenie z uwzględnieniem bieżącej głośności połączenia.

Nie mają żadnego rozwiązania, ale według heurystyki byłoby to podzielenie bieżącej liczby klientów oczekujących przez liczbę pracowników odbierających telefony, a następnie mnożenie przez 10 minut. Wiedzą jednak, że u niektórych klientów rozwiązanie problemów zajmuje 2 minuty, a u innych może to potrwać nawet 45 minut lub dłużej.

Heurystyka prawdopodobnie nie da mu wystarczająco dokładnej liczby. Mogą utworzyć zbiór danych z tymi kolumnami: number_of_callcenter_phones, user_issue, time_to_resolve, call_time, time_on_hold.

Korzystanie z systemów uczących się Zespół inżynierów ma jasno określony cel. Ich heurystyka nie sprawdzi się w przypadku takiego przypadku. Wygląda na to, że zbiór danych zawiera funkcje prognozujące dla etykiety time_on_hold.
Nie używaj systemów uczących się. Chociaż firma ma jasno określony cel, powinna najpierw wdrożyć i zoptymalizować rozwiązanie niezwiązane z systemami uczącymi się. Wygląda też na to, że ich zbiór danych nie zawiera wystarczającej liczby funkcji z możliwością prognozowania.