Jak używać metryk do głębokiego uczenia się z Keras w Pythonie

Jak używać metryk do głębokiego uczenia się z Keras w Pythonie

Biblioteka Keras zapewnia sposób obliczania i raportowania zestawu standardowych metryk podczas szkolenia modeli uczenia głębokiego.

Oprócz oferowania standardowych metryk dotyczących problemów związanych z klasyfikacją i regresją, Keras umożliwia także definiowanie własnych niestandardowych metryk i tworzenie raportów na ich temat podczas szkolenia modeli uczenia głębokiego. Jest to szczególnie przydatne, jeśli chcesz śledzić miarę wydajności, która lepiej oddaje umiejętności Twojego modelu podczas treningu.

W tym samouczku dowiesz się, jak korzystać z wbudowanych metryk oraz jak definiować i używać własnych metryk podczas szkolenia modeli uczenia głębokiego w Keras.

Po ukończeniu tego samouczka będziesz wiedział:

  • Jak działają metryki Keras i jak można ich używać podczas trenowania modeli.
  • Jak korzystać z metryk regresji i klasyfikacji w Keras na przykładach praktycznych.
  • Jak zdefiniować i używać własnych niestandardowych danych w Keras na praktycznym przykładzie.

Rozpocznij swój projekt z moją nową książką Deep Learning With Python, w tym samouczki krok po kroku i Kod źródłowy Pythona pliki dla wszystkich przykładów.

Zacznijmy.

  • Zaktualizuj styczeń / 2020: Zaktualizowany interfejs API dla Keras 2.3 i TensorFlow 2.0.
Metryki i jak używać niestandardowych metryk do głębokiego uczenia się z Keras w Pythonie

Metryki i jak używać niestandardowych metryk do głębokiego uczenia się z Keras w Pythonie
Zdjęcie: Indi Samarajiva, niektóre prawa zastrzeżone.

Omówienie samouczka

Ten samouczek jest podzielony na 4 części; oni są:

  1. Keras Metrics
  2. Metryki regresji Keras
  3. Metryki klasyfikacji Keras
  4. Niestandardowe dane w Keras

Keras Metrics

Keras umożliwia wyświetlenie metryk, które mają być monitorowane podczas uczenia modelu.

Możesz to zrobić, określając opcję „metryka”I dostarczenie listy nazw funkcji (lub aliasów nazw funkcji) do skompilować() Funkcja w twoim modelu.

Na przykład:

Konkretne metryki, które wymieniasz, mogą być nazwami funkcji Keras (takich jak mean_squared_error) lub aliasy ciągów dla tych funkcji (na przykład „mse').

Wartości metryczne są rejestrowane na końcu każdej epoki w uczącym zestawie danych. Jeśli dostarczono również zestaw danych do walidacji, zarejestrowana metryka jest również obliczana dla zestawu danych do walidacji.

Wszystkie metryki są raportowane w pełnych danych wyjściowych oraz w obiekcie historii zwróconym po wywołaniu metody dopasowanie() funkcjonować. W obu przypadkach nazwa funkcji metryki jest używana jako klucz dla wartości metryki. W przypadku metryk dla zbioru danych walidacyjnych, „val_”Do klucza zostanie dodany prefiks.

Zarówno funkcje strat, jak i wyraźnie zdefiniowane metryki Keras mogą być używane jako metryki treningowe.

Metryki regresji Keras

Poniżej znajduje się lista wskaźników, których można używać w Keras w przypadku problemów z regresją.

  • Błąd średniokwadratowy: mean_squared_error, MSE lub mse
  • Średni błąd bezwzględny: mean_absolute_error, MAE, mae
  • Średni bezwzględny błąd procentowy: mean_absolute_percentage_error, MAPE, mape
  • Cosinus bliskość: cosinus_proximity, cosinus

Poniższy przykład ilustruje te 4 wbudowane metryki regresji dotyczące prostego, wymyślonego problemu regresji.

Uwaga: Twoje wyniki mogą się różnić ze względu na stochastyczny charakter algorytmu lub procedury oceny albo różnice w dokładności numerycznej. Rozważ wykonanie przykładu kilka razy i porównaj średni wynik.

Uruchomienie przykładu wypisuje wartości metryki na końcu każdej epoki.

Następnie tworzony jest wykres liniowy 4 metryk z okresów uczenia.

Wykres liniowy wbudowanych metryk Keras dla regresji

Wykres liniowy wbudowanych metryk Keras dla regresji

Zwróć uwagę, że metryki zostały określone przy użyciu wartości aliasów łańcuchów [‘mse‘, ‘mae‘, ‘mape‘, ‘cosine‘] i były przywoływane jako wartości kluczowe w obiekcie historii przy użyciu ich rozszerzonej nazwy funkcji.

Moglibyśmy również określić metryki za pomocą ich rozwiniętej nazwy w następujący sposób:

Nazwy funkcji możemy również określić bezpośrednio, jeśli są importowane do skryptu.

Możesz również użyć funkcji strat jako metryk.

Na przykład możesz użyć średniej kwadratowej błędu logarytmicznego (mean_squared_logarithmic_error, MSLE lub msle) funkcja straty jako miernik w następujący sposób:

Metryki klasyfikacji Keras

Poniżej znajduje się lista wskaźników, których można używać w Keras w przypadku problemów klasyfikacyjnych.

  • Dokładność binarna: binary_accuracy, acc
  • Dokładność kategoryczna: categorical_accuracy, acc
  • Rzadka dokładność kategoryczna: sparse_categorical_accuracy
  • Najwyższa dokładność kategoryczna: top_k_categorical_accuracy (wymaga podania parametru ak)
  • Rzadkie Najwyższe k Dokładność kategoryczna: sparse_top_k_categorical_accuracy (wymaga podania parametru ak)

Dokładność jest wyjątkowa.

Bez względu na to, czy Twój problem jest binarnym, czy wieloklasowym problemem klasyfikacji, możesz określić 'precyzja'wskaźnik do raportowania dokładności.

Poniżej znajduje się przykład problemu klasyfikacji binarnej z zademonstrowaną wbudowaną metryką dokładności.

Uwaga: Twoje wyniki mogą się różnić ze względu na stochastyczny charakter algorytmu lub procedury oceny albo różnice w dokładności numerycznej. Rozważ wykonanie przykładu kilka razy i porównaj średni wynik.

Uruchomienie przykładu raportuje dokładność pod koniec każdej epoki treningowej.

Tworzony jest wykres liniowy dokładności względem epoki.

Wykres liniowy wbudowanych metryk Keras do klasyfikacji

Wykres liniowy wbudowanych metryk Keras do klasyfikacji

Niestandardowe dane w Keras

Możesz także zdefiniować własne metryki i określić nazwę funkcji na liście funkcji dla „metryka”Podczas wywoływania skompilować() funkcjonować.

Miarą, którą często lubię śledzić, jest średni kwadratowy błąd lub RMSE.

Możesz dowiedzieć się, jak napisać niestandardową metrykę, sprawdzając kod pod kątem istniejącej metryki.

Na przykład poniżej znajduje się kod funkcji utraty wartości mean_squared_error i metryki w Keras.

K to zaplecze używane przez Keras.

Z tego przykładu i innych przykładów funkcji strat ...

Możesz być również zainteresowany