Wcześniej napotkaliśmy klasyfikacja binarna modele, które mogą wybrać jedną z 2 możliwych opcji, na przykład to, czy:
- Dany e-mail jest spamem lub nie jest spamem.
- Dany guz jest złośliwy lub łagodny.
W tej sekcji przeanalizujemy, klasyfikacja wieloklasowa które mają wiele możliwości. Na przykład:
- Czy ten pies to beagle, basset czy hound?
- Czy to kwiat to irys syberyjski, irys niderlandzki, irys z Błękitnej Flagi, Czy krasnoludzkie irysy?
- Czy to jest samolot Boeing 747, Airbus 320, Boeing 777 lub Embraer 190?
- Czy to zdjęcie przedstawia jabłko, niedźwiedzia, słodycze, psa lub jajko?
Niektóre rzeczywiste problemy wieloklasowe wiążą się z wyborem spośród milionów w oddzielnych klasach. Weźmy na przykład klasyfikację wieloklasową który potrafi zidentyfikować obraz niemal wszystkiego.
W tej sekcji przedstawiamy 2 główne warianty klasyfikacji wieloklasowej:
- one-vs.-all
- one-vs.-one, czyli inaczej: softmax
Jedna czy wszystkie
Opcja One-vs.-all umożliwia zastosowanie klasyfikacji binarnej. dla serii prognoz „tak lub nie” w wielu możliwych etykietach.
Biorąc pod uwagę problem z klasyfikacją z N możliwymi rozwiązaniami, rozwiązanie: jeden kontra wszystko rozwiązanie składa się z N oddzielnych klasyfikatorów binarnych – jeden plik binarny dla każdego możliwego wyniku. Podczas trenowania model jest uruchamiany za pomocą sekwencji klasyfikatorów binarnych, które trenują każdy z nich pod kątem odpowiedzi pytanie klasyfikacyjne.
Na przykład na zdjęciu kawałka owocu cztery można wytrenować różne moduły rozpoznawania, które odpowiadają na inne pytania: tak/nie. pytanie:
- Czy na tym obrazie jest jabłko?
- Czy ten obraz jest pomarańczowy?
- Czy to zdjęcie przedstawia banana?
- Czy to zdjęcie przedstawia winogrona?
Poniższy obraz pokazuje, jak to działa w praktyce.
![Rysunek 7. Obraz gruszki przekazywanej jako dane wejściowe do 4 różnych
binarnych modeli klasyfikatorów. Pierwszy model przewiduje „jabłko” lub „nie”
„jabłko”, a jego prognoza to „nie jabłko”. Drugi model przewiduje,
„pomarańczowy” lub „nie pomarańczowy”, a jej prognoza jest „niepomarańczowa”.
trzeci model prognozuje „gruszkę” lub „nie gruszka”, a jej prognoza to
„gruszka”. Czwarty model przewiduje „winogrona” „nie winogrona”, a jego
jest prognozowane „nie winogrona”.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png?authuser=7&hl=pl)
Takie podejście jest dość rozsądne, gdy łączna liczba zajęć jest niewielka, ale staje się coraz bardziej nieefektywna wraz z liczbą klas rośnie.
Możemy stworzyć znacznie wydajniejszy model „jeden niż wszystkie”. z głęboką siecią neuronowej, w której każdy węzeł wyjściowy reprezentuje zajęcia. Ilustracja poniżej przedstawia to podejście.
![Rysunek 8. Sieć neuronowa o takiej architekturze: warstwa wejściowa z
1 węzeł, warstwa ukryta z 3 węzłami, warstwa ukryta z 4 węzłami,
warstwa wyjściowa z 4 węzłami. Do węzła wejściowego dostarczany jest obraz gruszki.
Do warstwy wyjściowej stosowana jest funkcja aktywacji sigmoidalnej. Każdy
węzeł wyjściowy reprezentuje prawdopodobieństwo, że obraz jest określony
i owoc. Węzeł wyjściowy 1 reprezentuje wartość „Czy jabłko?” i ma wartość 0,34.
Węzeł wyjściowy 2 reprezentuje stan „pomarańczowy”? i ma wartość 0,18.
Węzeł wyjściowy 3 reprezentuje wartość „Czy gruszka?” i ma wartość 0,84.
Węzeł wyjściowy 4 reprezentuje „Czy winogrona?” i ma wartość 0,07.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=7&hl=pl)
Jeden czy jeden (softmax)
Jak widać, wartości prawdopodobieństwa w warstwie wyjściowej, na rys. 8 nie sumują się do 1,0 (lub 100%). (sumują się do 1, 43). Pojedynek jeden kontra wszystko to prawdopodobieństwo dla każdego zbioru binarnego jest określane niezależnie od pozostałych zbiorów. Określamy prawdopodobieństwo z „apple” a „nie jabłko” bez uwzględniania prawdopodobieństwa opcje owoców: „pomarańczowy”, „gruszka” i „winogrono”.
A co, jeśli chcemy przewidzieć prawdopodobieństwo wykorzystania poszczególnych owoców względem siebie? W tym przypadku zamiast wpisywać „jabłko” a „nie” chcemy przewidzieć „jabłko” a „pomarańczowy” a „gruszka” zamiast „winogrona”. Ten typ klasyfikacji wieloklasowej jest nazywany klasyfikacją jeden-vs.-jeden.
Możemy wdrożyć klasyfikację 1:1, używając tego samego typu architektura sieci używana do klasyfikacji „jednakowa” czy „wszystko” z jedną kluczową zmianą. Musimy zastosować inne przekształcenie do warstwy wyjściowej.
W przypadku porównania „jeden kontra wszystko” zastosowaliśmy funkcję aktywacji sigmoidalnej do każdego wyniku niezależnie od siebie, co daje wartość wyjściową między 0 a 1 dla każdego węzła, ale nie gwarantuje, że te wartości będą zsumowane dokładnie 1.
W przypadku wartości one-vs.-one możemy zamiast tego zastosować funkcję o nazwie softmax, która przypisuje prawdopodobieństwo dziesiętne każdej klasom w zadaniu wieloklasowym, tak aby wszystkie prawdopodobieństwa dają sumę 1,0. To dodatkowe ograniczenie i ułatwia naukę szybciej niż w innym przypadku.
Poniższy obraz ponownie implementuje klasyfikację „jedna (jedna” lub „wszystko) dla wielu klas” jako zadania 1:1. Pamiętaj, że aby wykonać funkcję softmax, musisz pamiętać, warstwa bezpośrednio poprzedzająca warstwę wyjściową (zwaną warstwą softmax), musi mieć tyle samo węzłów co warstwa wyjściowa.
![Rysunek 9. Sieć neuronowa o tej architekturze: dane wejściowe
warstwa z 1 węzłem, warstwa ukryta z 3 węzłami, warstwa ukryta z 4 węzłami,
warstwa wyjściowa z 4 węzłami. Do węzła wejściowego dostarczany jest obraz gruszki.
Funkcja aktywacji softmax jest stosowana do warstwy wyjściowej. Każdy
węzeł wyjściowy reprezentuje prawdopodobieństwo, że obraz jest określony
i owoc. Węzeł wyjściowy 1 reprezentuje wartość „Czy jabłko?” i ma wartość 0,19.
Węzeł wyjściowy 2 reprezentuje stan „pomarańczowy”? i ma wartość 0,12.
Węzeł wyjściowy 3 reprezentuje wartość „Czy gruszka?” i ma wartość 0,63.
Węzeł wyjściowy 4 reprezentuje „Czy winogrona?” i ma wartość 0,06.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=7&hl=pl)
Opcje softmax
Rozważ te warianty funkcji softmax:
Full softmax to funkcja softmax, którą omówiliśmy. czyli Funkcja softmax oblicza prawdopodobieństwo dla każdej możliwej klasy.
Próbkowanie kandydatów oznacza, że funkcja softmax oblicza prawdopodobieństwo. dla wszystkich etykiet pozytywnych, ale tylko dla losowej próbki etykiety negatywne. Na przykład, jeśli chcemy określić, niezależnie od tego, czy na obrazku jest beagle czy pies, podaj prawdopodobieństwo dla każdego przykładu, na którym nie jest pies.
Pełny softmax jest stosunkowo niedrogi, gdy liczba klas jest niewielka. ale staje się niesamowicie kosztowna ze względu na rosnącą liczbę klas. Próbkowanie kandydatów może poprawić wydajność rozwiązywania problemów z dużą liczbą liczby klas.
Jedna czy wiele etykiet
Softmax zakłada, że każdy przykład jest członkiem dokładnie jednej klasy. Niektóre przykłady mogą jednak być jednocześnie członkiem wielu zajęć. Oto przykłady:
- Nie można używać funkcji softmax.
- Musisz polegać na wielu regresjach logistycznych.
Na przykład model „1/1” na rys. 9 powyżej zakłada, że każde dane wejściowe obraz przedstawia dokładnie jeden rodzaj owocu: jabłko, pomarańczę, gruszkę lub winogrona. Jeśli jednak zdjęcie wejściowe może zawierać wiele rodzajów owoców – miska jabłek i pomarańczy, regresji.