Transfer learning jako punkt wyjścia
W tym ćwiczeniu przekonasz się, jakie korzyści daje użycie wstępnie wytrenowanych wektorów jako punktu wyjścia dla modelu.
Porównasz dokładność dwóch modeli wytrenowanych przez dwie epoki. Architektura obu modeli jest identyczna: warstwa osadzeń (embedding), warstwa LSTM ze 128 jednostkami oraz warstwa wyjściowa z 5 jednostkami odpowiadającymi liczbie klas w przykładowych danych. Różnica polega na tym, że jeden model używa wstępnie wytrenowanych wektorów w warstwie osadzeń (transfer learning), a drugi nie.
Wykorzystane wstępnie wytrenowane wektory to GloVE o wymiarze 200. Historia dokładności na zbiorze walidacyjnym obu modeli jest dostępna w zmiennych history_no_emb i history_emb.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Zaimportuj moduł
matplotlib.pyplotjakoplt. - Dodaj do wykresu listę wartości dokładności z modelu bez osadzeń.
- Dodaj do wykresu listę wartości dokładności z modelu z osadzeniami.
- Wyświetl wykres za pomocą metody
.show().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import plotting package
import matplotlib.____ as ____
# Insert lists of accuracy obtained on the validation set
plt.plot(____['acc'], marker='o')
plt.plot(history_emb[____], marker='o')
# Add extra descriptions to plot
plt.title('Learning with and without pre-trained embedding vectors')
plt.ylabel('accuracy')
plt.xlabel('epoch')
plt.legend(['no_embeddings', 'with_embeddings'], loc='upper left')
# Display the plot
plt.____