Wyobraź sobie, że chcesz stworzyć oprogramowanie do wykonania pewnego zadania. Są na to dwa główne sposoby i jeden pośredni.
Metoda kodu
Pierwszym sposobem jest zaprogramowanie oprogramowania do wykonania zadania, które będę nazywał "metodą kodu". W tym przypadku znasz wszystkie interakcje, które mogą wystąpić i przewidujesz je w swoim programie. Najbardziej podstawowym tego przykładem jest sekwencja "If then", w której mówisz komputerowi, jeśli to się stanie, to zrób to. Na przykład, jeśli ten przycisk zostanie kliknięty, pokaż ten ekran.
Metoda kodu nie wykorzystuje danych i nie wymaga szkolenia. Zaprogramowana sekwencja przebiega deterministycznie, niezależnie od danych. Aby było jasne, programy mogą być tworzone przy użyciu metody kodu napisanego przy użyciu rzeczywistego kodu lub przy użyciu narzędzi wizualnych lub podobnych.
Metoda pociągu
Drugim sposobem jest przeszkolenie oprogramowania do wykonywania zadania przy użyciu dużych zbiorów danych, co będę nazywał "metodą szkolenia". W tym przypadku piszesz algorytm, taki jak sieć neuronowa, aby umożliwić szkolenie oprogramowania na danych. Następnie wypuszczasz oprogramowanie na dane, a komputer uczy się, poprzez pętlę sprzężenia zwrotnego, jak wykonać zadanie. Na przykład, można nauczyć oprogramowanie rozpoznawania kotów, trenując je na zdjęciach kotów.
Metoda trenowania jest oczywiście esencją sztucznej inteligencji. Jest ona znana jako podejście oparte na dużych zbiorach danych, ponieważ im więcej dostępnych jest wysokiej jakości danych szkoleniowych, tym lepsze będą wyniki. Aby uzyskać rozsądne wyniki, wymagane jest minimum danych szkoleniowych.
W swojej najczystszej formie metoda train może wykorzystywać nieustrukturyzowane dane, a samo uczenie odbywa się w sposób nienadzorowany. Oznacza to, że ludzie w ogóle nie pomagają oprogramowaniu w szkoleniu.
Algorytm nauczy się z ukrytego kontekstu (nie z jawnego etykietowania), czy dane zdjęcie przedstawia kota, czy nie. Na przykład zwykli użytkownicy platformy mogą w doraźny i spontaniczny sposób umieścić słowo kot w opisie swojego zdjęcia, słowo kot może znajdować się w artykule, w którym pojawia się zdjęcie, lub jeśli jest to wideo, ludzie mogą powiedzieć słowo kot, gdy pojawia się kot. Wszystkie te dane użytkowników są oczywiście całkowicie nieuporządkowane (co oznacza bałagan), a algorytm musiałby dowiedzieć się, czym jest kot z tych nieuporządkowanych danych.
Oczywiście istnieją potencjalnie duże zalety nienadzorowanego algorytmu. Potencjalnie oznacza to zaoszczędzenie ogromnej ilości wysiłku ze strony ludzi w zakresie etykietowania i kategoryzowania danych. Dokładne oznaczenie stu tysięcy zdjęć kotów nie jest trywialne (ani stymulujące).
Problemy
Jedną z głównych wad metody uczenia nieustrukturyzowanego jest to, że wymaga ona znacznie większej ilości danych. Jeśli dane nie są dostępne, nie można ich trenować w ten sposób. Podejścia nadzorowane również wymagają dużej ilości danych, więc cierpią na ten sam problem.
Jest to oczywiście powód, dla którego ludzie szukają możliwości zastosowania sztucznej inteligencji, zamiast stosować ją do wszystkiego. Algorytmy AI działają najlepiej, gdy dostępnych jest wiele danych do szkolenia (lub mogą generować wiele danych - w przypadku gier).
Innym problemem związanym z nieustrukturyzowanym, nienadzorowanym podejściem jest to, że znacznie trudniej jest napisać i przetestować algorytm na dostępnych danych. Algorytm musi być bardziej wyrafinowany, aby poradzić sobie z nieustrukturyzowanymi danymi, niż w przypadku, gdy dane są uporządkowane i podzielone na kategorie.
Podejście nadzorowane dodaje ludzką intencjonalność do procesu pod względem sposobu kategoryzacji danych, jednak nadal jest to w dużej mierze metoda pociągowa, podejście oparte na dużych zbiorach danych. Ludzie ze zrozumieniem algorytmów mogą oznaczać dane i w ten sposób ograniczać pracę algorytmu.
Metoda małych danych
Istnieje metoda, która jest połączeniem metody kodu i metody treningu, którą będę nazywał "metodą małych danych". Jest to podejście oparte na małych danych, do którego nawiązałem w tytule. Możliwe jest połączenie technik code i train, aby znacznie zmniejszyć ilość danych potrzebnych do wytrenowania algorytmu.
W przypadku metody małych danych programista koduje model interakcji, ale następnie model ten jest trenowany na znacznie mniejszym zestawie danych niż byłoby to wymagane w przypadku podejścia opartego na dużych danych. Powoduje to, że model jest trenowany znacznie szybciej niż byłoby to konieczne w przypadku czystej metody trenowania.
Oczywiście to podejście oparte na małych danych miałoby sens, gdyby czas potrzebny na zakodowanie modelu i wytrenowanie danych był znacznie krótszy niż czas potrzebny na zebranie danych i wytrenowanie algorytmu.
Istnieją scenariusze, w których rozwiązanie małych danych pozwoliłoby nam robić rzeczy, które obecnie nie są wykonalne. Metoda małych danych jest jedyną dostępną metodą, jeśli dane wymagane dla metody trenowania nie istnieją. W takim przypadku algorytm musi zostać przeszkolony na danych utworzonych ręcznie. Zwykle nie jest praktyczne ręczne tworzenie dziesiątek tysięcy rekordów.
Podejście oparte na małych danych jest obecnie badane przez firmy zajmujące się sztuczną inteligencją, w tym botpress.io, i spodziewam się, że w nadchodzących latach stanie się ono techniką głównego nurtu.
Udostępnij to na:
Zbuduj własnego spersonalizowanego chatbota AI za darmo
Rozpocznij tworzenie spersonalizowanego bota GPT za pomocą naszego intuicyjnego interfejsu "przeciągnij i upuść".
Zacznij - to nic nie kosztuje! 🤖Nie potrzebujesz karty kredytowej
Bądź na bieżąco z najnowszymi informacjami na temat sztucznej inteligencji chatbots