จุดเริ่มต้นของ Transfer Learning
ในแบบฝึกหัดนี้ คุณจะได้เห็นประโยชน์ของการใช้เวกเตอร์ที่ผ่านการเทรนมาแล้วเป็นจุดเริ่มต้นสำหรับโมเดล
เราจะเปรียบเทียบค่าความแม่นยำของโมเดลสองแบบที่เทรนด้วย 2 epoch โดยโครงสร้างของทั้งสองโมเดลเหมือนกัน ได้แก่ Embedding layer หนึ่งชั้น, LSTM layer หนึ่งชั้นที่มี 128 units และ Output layer หนึ่งชั้นที่มี 5 units ซึ่งตรงกับจำนวนคลาสในข้อมูลตัวอย่าง ความแตกต่างคือโมเดลหนึ่งใช้เวกเตอร์ที่ผ่านการเทรนมาแล้วใน Embedding layer (transfer learning) ส่วนอีกโมเดลไม่ได้ใช้
เวกเตอร์ที่ผ่านการเทรนมาแล้วที่ใช้คือ GloVE แบบ 200 มิติ โดยประวัติค่าความแม่นยำบน validation set ของทั้งสองโมเดลพร้อมใช้งานในตัวแปร history_no_emb และ history_emb
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- Import โมดูล
matplotlib.pyplotโดยใช้ชื่อย่อว่าplt - เพิ่มรายการค่าความแม่นยำจากโมเดลที่ไม่ใช้ embeddings ลงในกราฟ
- เพิ่มรายการค่าความแม่นยำจากโมเดลที่ใช้ embeddings ลงในกราฟ
- แสดงกราฟโดยใช้เมธอด
.show()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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.____