การสูญเสียการฝึกอบรมลดลงเรื่อย ๆ เกิดอะไรขึ้น?


26

การสูญเสียการฝึกอบรมของฉันลดลงจากนั้นขึ้นอีกครั้ง มันแปลกมาก การสูญเสียการตรวจสอบข้ามติดตามการสูญเสียการฝึกอบรม เกิดอะไรขึ้น?

ฉันมี LSTMS สองกองซ้อนกันดังต่อไปนี้ (บน Keras):

model = Sequential()
model.add(LSTM(512, return_sequences=True, input_shape=(len(X[0]), len(nd.char_indices))))
model.add(Dropout(0.2))
model.add(LSTM(512, return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(len(nd.categories)))
model.add(Activation('sigmoid'))

model.compile(loss='binary_crossentropy', optimizer='adadelta')

ฉันฝึกฝนมาเป็น 100 Epochs:

model.fit(X_train, np.array(y_train), batch_size=1024, nb_epoch=100, validation_split=0.2)

อบรมเกี่ยวกับตัวอย่าง 127803 ตรวจสอบตัวอย่าง 31951

และนั่นคือลักษณะของการสูญเสีย: กราฟการสูญเสีย


2
การเรียนรู้ของคุณอาจจะยิ่งใหญ่หลังจากยุคที่ 25 ลองตั้งค่าให้เล็กลงและตรวจสอบการสูญเสียอีกครั้ง
itdxer

แต่การฝึกอบรมพิเศษจะทำให้การสูญเสียข้อมูลการฝึกอบรมใหญ่ขึ้นได้อย่างไร
patapouf_ai

3
ขออภัยฉันหมายถึงอัตราการเรียนรู้
itdxer

ขอบคุณ itdxer ฉันคิดว่าสิ่งที่คุณพูดจะต้องอยู่ในเส้นทางที่ถูกต้อง ฉันลองใช้ "adam" แทน "adadelta" และนี่แก้ปัญหาได้แม้ว่าฉันเดาว่าการลดอัตราการเรียนรู้ของ "adadelta" อาจจะใช้ได้เช่นกัน หากคุณต้องการเขียนคำตอบแบบเต็มฉันจะยอมรับมัน
patapouf_ai

คำตอบ:


19

อัตราการเรียนรู้ของคุณอาจสูงขึ้นหลังจากยุคที่ 25 ปัญหานี้ง่ายต่อการระบุ คุณเพียงแค่ต้องตั้งค่าให้เล็กลงสำหรับอัตราการเรียนรู้ของคุณ หากปัญหาที่เกี่ยวข้องกับอัตราการเรียนรู้ของคุณมากกว่า NN ควรมีข้อผิดพลาดต่ำกว่านี้แม้จะเกิดขึ้นอีกครั้งหลังจากนั้นไม่นาน ประเด็นหลักคืออัตราความผิดพลาดจะลดลงในบางช่วงเวลา

หากคุณสังเกตพฤติกรรมนี้คุณสามารถใช้วิธีแก้ไขปัญหาง่ายๆสองวิธี อันแรกคืออันที่ง่ายที่สุด ตั้งค่าขั้นตอนที่เล็กมากและฝึกมัน ข้อที่สองคือการลดอัตราการเรียนรู้ของคุณเป็นแบบซ้ำซาก นี่คือสูตรง่ายๆ:

α(เสื้อ+1)=α(0)1+เสื้อม.

โดยที่คืออัตราการเรียนรู้ของคุณคือจำนวนการวนซ้ำของคุณและคือสัมประสิทธิ์ที่ระบุอัตราการเรียนรู้ที่ลดความเร็ว ก็หมายความว่าขั้นตอนของคุณจะลดโดยปัจจัยที่สองเมื่อเท่ากับเมตรทีเอ็มทีเอ็มaเสื้อม.เสื้อม.


7
ในขณะที่ OP ใช้ Keras ตัวเลือกอื่นในการอัปเดตอัตราการเรียนรู้ที่ซับซ้อนขึ้นเล็กน้อยคือใช้การโทรกลับเช่นReduceLROnPlateauซึ่งจะลดอัตราการเรียนรู้เมื่อการสูญเสียการตรวจสอบไม่ได้รับการปรับปรุงตามจำนวนครั้งที่กำหนด
n1k31t4
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.