ฉันพยายามที่จะเข้าใจสถาปัตยกรรมของ RNNs ฉันพบบทช่วยสอนนี้ซึ่งมีประโยชน์มาก: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
สิ่งนี้เหมาะสมกับเครือข่าย feed-forward หรือไม่? ภาพนี้เป็นเพียงโหนดอื่นในแต่ละเลเยอร์หรือไม่
ฉันพยายามที่จะเข้าใจสถาปัตยกรรมของ RNNs ฉันพบบทช่วยสอนนี้ซึ่งมีประโยชน์มาก: http://colah.github.io/posts/2015-08-Understanding-LSTMs/
สิ่งนี้เหมาะสมกับเครือข่าย feed-forward หรือไม่? ภาพนี้เป็นเพียงโหนดอื่นในแต่ละเลเยอร์หรือไม่
คำตอบ:
อันที่จริงแล้วคือเลเยอร์แบบเต็ม ผลลัพธ์ของเลเยอร์คือในความเป็นจริงแล้วเซลล์ประสาทเอาท์พุทที่สามารถเสียบเข้ากับชั้น softmax (ถ้าคุณต้องการการจัดหมวดหมู่สำหรับขั้นตอนเวลา ตัวอย่างเช่น) หรือสิ่งอื่นเช่นเลเยอร์ LSTM อื่นหากคุณต้องการให้ลึกยิ่งขึ้น อินพุตของเลเยอร์นี้คือสิ่งที่ทำให้แตกต่างจากเครือข่าย feedforward ปกติ: ใช้ทั้งอินพุต และสถานะเต็มของเครือข่ายในขั้นตอนก่อนหน้านี้ (ทั้งคู่ และตัวแปรอื่น ๆ จากเซลล์ LSTM)
สังเกตได้ว่า เป็นเวกเตอร์ ดังนั้นหากคุณต้องการทำการเปรียบเทียบกับเครือข่าย feedforward ปกติที่มีเลเยอร์ที่ซ่อนอยู่ 1 เลเยอร์ A อาจถูกคิดว่าแทนที่นิวรอนเหล่านี้ทั้งหมดในเลเยอร์ที่ซ่อนอยู่ (รวมถึงความซับซ้อนพิเศษของส่วนที่เกิดซ้ำ)
ในรูปภาพของคุณ A เป็นเลเยอร์ที่ซ่อนอยู่เดี่ยวที่มีเซลล์ประสาทที่ซ่อนอยู่เดี่ยว จากซ้ายไปขวาคือแกนเวลาและที่ด้านล่างคุณจะได้รับอินพุตทุกครั้ง ที่ด้านบนเครือข่ายสามารถขยายเพิ่มเติมได้โดยการเพิ่มเลเยอร์
หากคุณจะแฉเครือข่ายนี้ในเวลาตามที่ปรากฏในภาพของคุณ (จากซ้ายไปขวาแกนเวลาถูกแฉออก) จากนั้นคุณจะได้รับเครือข่าย feedforward กับ T (จำนวนขั้นตอนทั้งหมด) แต่ละชั้นที่มี โหนดเดียว (เซลล์ประสาท) ตามที่วาดในบล็อกกลาง A
หวังว่านี่จะตอบคำถามของคุณ
ฉันต้องการอธิบายไดอะแกรมอย่างง่าย ๆ ในบริบทที่ค่อนข้างซับซ้อน: กลไกความสนใจในตัวถอดรหัสของโมเดล seq2seq
ในการไหลแผนภาพร้อง ถึง คือขั้นตอนเวลา (ของความยาวเดียวกันกับหมายเลขอินพุตที่มี PAD สำหรับช่องว่าง) ทุกครั้งที่คำถูกใส่ลงใน ith (ขั้นตอนเวลา) LSTM Neural (หรือเซลล์ kernal เหมือนกับใคร ๆ ในสามภาพของคุณ) มันคำนวณเอาท์พุท ith ตามสถานะก่อนหน้า (i-1) th output และ อินพุต ith. ฉันแสดงให้เห็นถึงปัญหาของคุณโดยใช้สิ่งนี้เป็นเพราะทุกสถานะของการบันทึกเวลาถูกบันทึกไว้สำหรับกลไกความสนใจแทนที่จะละทิ้งเพียงเพื่อให้ได้ครั้งสุดท้ายเท่านั้น มันเป็นเพียงระบบประสาทเดียวและถูกมองว่าเป็นเลเยอร์ (สามารถซ้อนกันหลายชั้นเพื่อสร้างตัวอย่างเช่นตัวเข้ารหัสแบบสองทิศทางในโมเดล seq2seq บางรุ่นเพื่อดึงข้อมูลนามธรรมในเลเยอร์ที่สูงขึ้น)
จากนั้นจะเข้ารหัสประโยค (ด้วยคำ L และแต่ละอันแทนด้วยเวกเตอร์ของรูปร่าง: embedding_dimention * 1) ลงในรายการ L tensors (แต่ละรูปร่าง: num_hidden / num_units * 1) และสถานะที่ผ่านมาไปยังตัวถอดรหัสเป็นเพียงเวกเตอร์ตัวสุดท้ายเนื่องจากประโยคนั้นมีรูปร่างเหมือนกันของแต่ละรายการในรายการ
แหล่งรูปภาพ: กลไกการใส่ใจ