คำถามติดแท็ก lstm

หน่วยความจำระยะสั้นยาว (LSTM) เป็นสถาปัตยกรรมเครือข่ายประสาทที่มีบล็อก NN ที่เกิดซ้ำซึ่งสามารถจดจำค่าตามระยะเวลาโดยพลการ

4
LSTM ป้องกันปัญหาการไล่ระดับสีที่หายไปได้อย่างไร
LSTM ถูกคิดค้นโดยเฉพาะเพื่อหลีกเลี่ยงปัญหาการไล่ระดับสีที่หายไป มันควรจะทำที่มีข้อผิดพลาดคงที่ม้าหมุน (CEC) ซึ่งในแผนภาพด้านล่าง (จากGreff et al. ) สอดคล้องกับวงรอบของเซลล์ (ที่มา: deeplearning4j.org ) และฉันเข้าใจว่าส่วนนั้นสามารถเห็นได้ว่าเป็นฟังก์ชันตัวตนดังนั้นอนุพันธ์จึงเป็นหนึ่งและการไล่ระดับสีคงที่ สิ่งที่ฉันไม่เข้าใจคือวิธีที่มันไม่หายไปเนื่องจากฟังก์ชั่นการเปิดใช้งานอื่น ๆ ? การป้อนข้อมูลการส่งออกและลืมประตูใช้ sigmoid ซึ่งเป็นอนุพันธ์ที่มากที่สุด 0.25, และ g h และประเพณีtanh backpropagating ผ่านสิ่งที่ไม่ทำให้การไล่ระดับสีหายไปได้อย่างไร

5
ทำความเข้าใจกับหน่วย LSTM เทียบกับเซลล์
ฉันเรียน LSTM มาระยะหนึ่งแล้ว ฉันเข้าใจในระดับสูงว่าทุกอย่างทำงานอย่างไร อย่างไรก็ตามจะใช้พวกเขาโดยใช้ Tensorflow ฉันสังเกตเห็นว่าBasicLSTMCellต้องการพารามิเตอร์จำนวนหน่วย (เช่นnum_units) จากนี้คำอธิบายอย่างละเอียดมาก LSTMs ผมได้รวบรวมที่เดียวหน่วย LSTMเป็นหนึ่งดังต่อไปนี้ ซึ่งเป็นหน่วย GRU ฉันสันนิษฐานว่าพารามิเตอร์num_unitsของการBasicLSTMCellอ้างอิงถึงจำนวนเหล่านี้เราต้องการเชื่อมต่อซึ่งกันและกันในชั้น ที่ทิ้งคำถาม - "เซลล์" ในบริบทนี้คืออะไร? "เซลล์" เทียบเท่ากับเลเยอร์ในเครือข่ายประสาทส่งต่อปกติหรือไม่

1
การสูญเสียการฝึกอบรมลดลงเรื่อย ๆ เกิดอะไรขึ้น?
การสูญเสียการฝึกอบรมของฉันลดลงจากนั้นขึ้นอีกครั้ง มันแปลกมาก การสูญเสียการตรวจสอบข้ามติดตามการสูญเสียการฝึกอบรม เกิดอะไรขึ้น? ฉันมี 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 และนั่นคือลักษณะของการสูญเสีย:

3
อะไรคือข้อดีของการซ้อน LSTM หลาย ๆ ชุด?
อะไรคือข้อดีทำไมหนึ่งจะใช้ LSTM หลายซ้อนในเครือข่ายลึกด้านละด้าน ฉันใช้ LSTM เพื่อแสดงลำดับของอินพุตเป็นอินพุตเดียว ดังนั้นเมื่อฉันมีตัวแทนเดียว - ทำไมฉันจะผ่านมันอีกครั้ง ฉันถามสิ่งนี้เพราะฉันเห็นสิ่งนี้ในโปรแกรมสร้างภาษาที่เป็นธรรมชาติ

1
กลไกความสนใจคืออะไรกันแน่?
มีการใช้กลไกการเรียนรู้ในเอกสารการเรียนรู้ลึกต่างๆในช่วงไม่กี่ปีที่ผ่านมา Ilya Sutskever หัวหน้าฝ่ายวิจัยของ Open AI ได้ชื่นชมพวกเขาอย่างกระตือรือร้น: https://towardsdatascience.com/the-fall-of-rnn-lstm-2d1594c74ce0 Eugenio Culurciello ที่ Purdue University ได้อ้างว่า RNNs และ LSTMs ควรถูกทอดทิ้งเนื่องจากเป็นเครือข่ายประสาทที่เน้นความสนใจอย่างหมดจด: https://towardsdatascience.com/the-fall-of-rnn-lstm-2d1594c74ce0 ดูเหมือนว่าจะเป็นการพูดเกินจริง แต่ก็ปฏิเสธไม่ได้ว่าแบบจำลองความสนใจล้วนๆทำหน้าที่ในการสร้างแบบจำลองได้ค่อนข้างดี: เราทุกคนรู้เกี่ยวกับกระดาษที่มีชื่อเหมาะสมจาก Google ความสนใจคือสิ่งที่คุณต้องการ แต่สิ่งที่ว่ามีรูปแบบความสนใจตาม? ฉันยังไม่พบคำอธิบายที่ชัดเจนของโมเดลดังกล่าว สมมติว่าฉันต้องการคาดการณ์ค่าใหม่ของอนุกรมเวลาหลายตัวแปรตามค่าที่ผ่านมา มันค่อนข้างชัดเจนว่าจะทำอย่างไรกับ RNN ที่มีเซลล์ LSTM ฉันจะทำเช่นเดียวกันกับแบบจำลองตามความสนใจได้อย่างไร

3
การทำความเข้าใจกับพารามิเตอร์ input_shape ใน LSTM ด้วย Keras
ฉันพยายามใช้ตัวอย่างที่อธิบายไว้ในเอกสารประกอบของ Kerasชื่อ "Stacked LSTM สำหรับการจำแนกลำดับ" (ดูรหัสด้านล่าง) และไม่สามารถหาinput_shapeพารามิเตอร์ในบริบทของข้อมูลของฉัน ฉันมีเป็น input เมทริกซ์ของลำดับของ 25 ตัวอักษรที่เป็นไปได้เข้ารหัสในจำนวนเต็มลำดับเบาะของความยาวสูงสุด 31 เป็นผลให้ฉันx_trainมีรูปร่างความหมาย(1085420, 31)(n_observations, sequence_length) from keras.models import Sequential from keras.layers import LSTM, Dense import numpy as np data_dim = 16 timesteps = 8 num_classes = 10 # expected input data shape: (batch_size, timesteps, data_dim) model = Sequential() model.add(LSTM(32, …
20 lstm  keras  shape  dimensions 

4
ความแตกต่างระหว่างข้อเสนอแนะ RNN และ LSTM / GRU
ฉันกำลังพยายามที่จะเข้าใจโครงสร้างเครือข่ายนิวรัล (RNN) ที่แตกต่างกันเพื่อนำไปใช้กับข้อมูลอนุกรมเวลาและฉันสับสนเล็กน้อยกับชื่อต่าง ๆ ที่ใช้บ่อยเมื่ออธิบาย RNN โครงสร้างของหน่วยความจำระยะสั้นระยะยาว (LSTM) และ Gated Recurrent Unit (GRU) นั้นเป็น RNN ที่มีลูปข้อเสนอแนะหรือไม่?

2
วิธีการเพิ่มประสิทธิภาพใดดีที่สุดสำหรับ LSTM
ฉันใช้ theano เพื่อทดสอบกับ LSTM และสงสัยว่าวิธีการเพิ่มประสิทธิภาพใด (SGD, Adagrad, Adadelta, RMSprop, Adam และอื่น ๆ ) ทำงานได้ดีที่สุดสำหรับ LSTMs หรือไม่ มีบทความวิจัยในหัวข้อนี้หรือไม่? นอกจากนี้คำตอบยังขึ้นอยู่กับประเภทของแอปพลิเคชันที่ฉันใช้ LSTM ด้วยหรือไม่ ถ้าเป็นเช่นนั้นฉันใช้ LSTM สำหรับการจำแนกข้อความ (โดยที่ข้อความถูกแปลงเป็นคำเวกเตอร์) ในที่สุดคำตอบจะเหมือนหรือแตกต่างกันสำหรับ RNNs หรือไม่ พอยน์เตอร์ใด ๆ สำหรับงานวิจัยหรือความเข้าใจส่วนบุคคลจะได้รับการชื่นชมอย่างมาก! LSTM ดูเหมือนจะทรงพลังมากและฉันสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการใช้งานให้ดีที่สุด

3
ทำไมน้ำหนักของเครือข่าย RNN / LSTM จึงถูกแชร์ข้ามเวลา
เมื่อไม่นานมานี้ฉันสนใจ LSTM และฉันรู้สึกประหลาดใจเมื่อรู้ว่าน้ำหนักจะถูกแบ่งปันข้ามเวลา ฉันรู้ว่าถ้าคุณแบ่งปันน้ำหนักข้ามช่วงเวลาลำดับการป้อนข้อมูลของคุณอาจเป็นความยาวผันแปรได้ ด้วยน้ำหนักที่ใช้ร่วมกันคุณจะมีพารามิเตอร์น้อยลงในการฝึกอบรม จากความเข้าใจของฉันเหตุผลที่จะกลายเป็น LSTM กับวิธีการเรียนรู้อื่น ๆ ก็เพราะคุณเชื่อว่ามีโครงสร้าง / ลำดับ / การพึ่งพาชั่วคราวในข้อมูลของคุณที่คุณต้องการเรียนรู้ หากคุณเสียสละความยาว 'หรูหรา' และยอมรับเวลาคำนวณนาน RNN / LSTM จะไม่มีน้ำหนักที่ใช้ร่วมกัน (เช่นสำหรับทุกขั้นตอนที่คุณมีน้ำหนักแตกต่างกัน) ทำงานได้ดีขึ้นหรือมีบางสิ่งที่ขาดหายไป?

3
ใช้ RNN (LSTM) เพื่อทำนายเวกเตอร์ไทม์ซีรี่ส์ (Theano)
ฉันมีปัญหาง่าย ๆ แต่ฉันไม่สามารถหาเครื่องมือที่เหมาะสมในการแก้ปัญหาได้ ฉันมีลำดับเวกเตอร์บางส่วนที่มีความยาวเท่ากัน ตอนนี้ฉันต้องการในการฝึกอบรม LSTM RNN ตัวอย่างรถไฟของลำดับเหล่านี้แล้วทำให้มันจะทำนายลำดับใหม่ของเวกเตอร์ของความยาวขึ้นอยู่กับหลายรองพื้นเวกเตอร์nnn ฉันไม่พบการใช้งานที่ง่ายซึ่งจะทำเช่นนี้ ภาษาพื้นฐานของฉันคือ Python แต่สิ่งใดก็ตามที่ไม่ได้ติดตั้งไว้นานจะเก็บไว้ ผมพยายามที่จะใช้ลาซานญ่าแต่การดำเนินงานของ RNN ยังไม่พร้อมและจะอยู่ในแพคเกจแยกnntools อย่างไรก็ตามฉันลองอันหลัง แต่ไม่สามารถหาวิธีฝึกได้แล้วนำไปทดสอบโดยเวกเตอร์ทดสอบและปล่อยให้มันทำนายใหม่ บล็อกเป็นปัญหาเดียวกัน - ไม่มีเอกสารประกอบสำหรับ LSTM RNN แม้ว่าจะดูเหมือนว่ามีบางคลาสและฟังก์ชันที่สามารถใช้งานได้ (เช่นblocks.bricks.recurrent) มีการใช้งาน RNN LSTM หลายอย่างใน Theano เช่นGroundHog, และtheano-rnn, theano_lstmสำหรับเอกสารบางส่วน, แต่ไม่ใช่ของเหล่านั้นที่มีการสอนหรือแนะนำวิธีการทำสิ่งที่ฉันต้องการ ทางออกเดียวที่ฉันพบคือใช้ Pybrain แต่น่าเสียดายที่มันขาดคุณสมบัติของ Theano (ส่วนใหญ่เป็นการคำนวณ GPU) และเป็นกำพร้า (ไม่มีคุณสมบัติใหม่และการสนับสนุน) ไม่มีใครรู้ว่าฉันสามารถหาสิ่งที่ฉันขอได้ที่ไหน ใช้งานง่ายกับ RNN LSTM เพื่อทำนายลำดับของเวกเตอร์หรือไม่ แก้ไข: ฉันลอง Keras แบบนี้: …

3
ความแตกต่างระหว่างตัวอย่างขั้นตอนเวลาและคุณสมบัติต่าง ๆ ในโครงข่ายประสาทเทียม
ฉันจะผ่านบล็อกต่อไปนี้ในเครือข่ายประสาท LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/machinelearningmastery.com/ ผู้เขียน reshapes เวกเตอร์อินพุต X เป็น [ตัวอย่างขั้นตอนเวลาคุณสมบัติ] สำหรับการกำหนดค่า LSTM ที่แตกต่างกัน ผู้เขียนเขียน อันที่จริงลำดับของตัวอักษรเป็นขั้นตอนเวลาของคุณลักษณะหนึ่งมากกว่าหนึ่งขั้นตอนของคุณสมบัติแยกต่างหาก เราได้ให้บริบทกับเครือข่ายมากขึ้น แต่ไม่ได้เรียงตามที่คาดไว้ สิ่งนี้หมายความว่า?

1
ความยาวของลำดับที่เป็นไปได้สำหรับ RNN ถึงรุ่นคืออะไร
ฉันกำลังมองหาการใช้ LSTM ( หน่วยความจำระยะสั้นระยะยาว ) ของเครือข่ายประสาทกำเริบ (RNN) สำหรับการสร้างแบบจำลองข้อมูลชุดเวลา เมื่อความยาวของข้อมูลเพิ่มขึ้นความซับซ้อนของเครือข่ายจะเพิ่มขึ้น ดังนั้นฉันจึงสงสัยว่าจะมีความยาวของลำดับอย่างไรกับโมเดลที่มีความแม่นยำดี ฉันต้องการใช้ LSTM รุ่นที่ค่อนข้างเรียบง่ายโดยไม่ยากที่จะใช้วิธีการที่ทันสมัย การสังเกตการณ์แต่ละครั้งใน Timeseries ของฉันมีตัวแปรตัวเลข 4 ตัวและจำนวนการสังเกตจะอยู่ที่ประมาณ 100,000 ถึง 1.000.000

1
RNNs: เมื่อใดที่จะใช้ BPTT และ / หรืออัปเดตน้ำหนัก
ฉันพยายามที่จะเข้าใจการใช้ RNN ระดับสูงในการติดฉลากตามลำดับผ่านทางกระดาษ (ในหมู่อื่น ๆ ) บทความ 2005 ของ Graves ในการจำแนกฟอนิม ในการสรุปปัญหา: เรามีชุดฝึกอบรมขนาดใหญ่ซึ่งประกอบด้วยไฟล์เสียง (อินพุต) ของประโยคเดียวและ (เอาต์พุต) เวลาเริ่มต้นที่มีป้ายกำกับจากผู้เชี่ยวชาญเวลาหยุดและป้ายกำกับสำหรับหน่วยเสียงส่วนบุคคล (รวมถึงหน่วยเสียงพิเศษบางอย่างเช่นเงียบ เช่นว่าแต่ละตัวอย่างในไฟล์เสียงแต่ละไฟล์มีป้ายกำกับด้วยสัญรูปฟอนิม) แรงขับของกระดาษคือการใช้ RNN กับเซลล์หน่วยความจำ LSTM ในเลเยอร์ที่ซ่อนอยู่กับปัญหานี้ (เขาใช้หลายตัวแปรและเทคนิคอื่น ๆ เพื่อเปรียบเทียบฉันใช้เวลาเพียงสนใจ LSTM ทิศทางเดียวเพื่อให้สิ่งต่าง ๆ ง่ายขึ้น) ฉันเชื่อว่าฉันเข้าใจสถาปัตยกรรมของเครือข่าย: เลเยอร์อินพุตที่สอดคล้องกับ windows 10 ms ของไฟล์เสียงได้รับการประมวลผลล่วงหน้าในรูปแบบมาตรฐานสำหรับการทำงานของเสียง เลเยอร์ที่ซ่อนอยู่ของเซลล์ LSTM และเลเยอร์เอาท์พุทที่มีการเข้ารหัสสัญลักษณ์ 61 หมายเลขโทรศัพท์ที่เป็นไปได้ทั้งหมด ฉันเชื่อว่าฉันเข้าใจสมการ (ที่ซับซ้อน แต่ตรงไปตรงมา) ของ pass pass และ backward …
15 lstm  rnn 

1
การป้องกันการโอเวอร์โหลดของ LSTM ในชุดข้อมูลขนาดเล็ก
ฉันกำลังสร้างแบบจำลอง 15000 ทวีตสำหรับการคาดการณ์ความเชื่อมั่นโดยใช้เลเยอร์ LSTM เดียวกับหน่วยที่ซ่อนอยู่ 128 หน่วยโดยใช้การแทนคำที่เหมือนคำ 2vec ด้วย 80 มิติ ฉันได้รับความแม่นยำในการสืบเชื้อสาย (38% กับการสุ่ม = 20%) หลังจาก 1 ยุค การฝึกอบรมเพิ่มเติมทำให้ความถูกต้องในการตรวจสอบความถูกต้องเริ่มลดลงเนื่องจากความแม่นยำในการฝึกอบรมเริ่มขึ้น ฉันจึงคิดหาวิธีที่จะทำให้เป็นมาตรฐาน ฉันไม่ต้องการลดจำนวนหน่วยที่ซ่อนอยู่ (128 หน่วยดูเหมือนน้อยไปแล้ว) ขณะนี้ฉันใช้การออกกลางคันด้วยความน่าจะเป็น 50% แต่อาจเพิ่มขึ้นได้ เครื่องมือเพิ่มประสิทธิภาพคืออดัมพร้อมพารามิเตอร์เริ่มต้นสำหรับ Keras ( http://keras.io/optimizers/#adam ) วิธีที่มีประสิทธิภาพในการลดการ overfitting สำหรับโมเดลนี้ในชุดข้อมูลของฉันคืออะไร?

1
วิธีฝึกเลเยอร์ LSTM ของเครือข่ายลึก
ฉันใช้เครือข่าย lstm และ feed-forward เพื่อจำแนกข้อความ ฉันแปลงข้อความเป็นเวกเตอร์ที่ร้อนแรงหนึ่งรายการและป้อนให้แต่ละรายการเป็น lstm เพื่อที่ฉันจะสามารถสรุปได้ว่าเป็นการแทนเพียงครั้งเดียว จากนั้นฉันก็ป้อนไปยังเครือข่ายอื่น แต่ฉันจะฝึก lstm ได้อย่างไร ฉันต้องการจัดลำดับข้อความ - ฉันควรป้อนโดยไม่ต้องฝึกอบรมหรือไม่? ฉันแค่ต้องการแสดงข้อความเป็นรายการเดียวที่ฉันสามารถป้อนลงในเลเยอร์อินพุตของตัวแยกประเภท ฉันขอขอบคุณคำแนะนำใด ๆ อย่างมาก! ปรับปรุง: ดังนั้นฉันมี lstm และลักษณนาม ฉันเอาเอาท์พุตทั้งหมดของ lstm และ mean-pool พวกมันจากนั้นฉันป้อนค่าเฉลี่ยนั้นลงในลักษณ ปัญหาของฉันคือฉันไม่รู้วิธีฝึก lstm หรือตัวจําแนก ฉันรู้ว่าอินพุตควรเป็นอะไรสำหรับ lstm และเอาต์พุตของตัวแยกประเภทที่ควรใช้สำหรับอินพุตนั้น เนื่องจากเป็นเครือข่ายสองเครือข่ายที่เพิ่งเปิดใช้งานตามลำดับฉันจำเป็นต้องทราบและไม่ทราบว่าอุดมคติของเอาต์พุตควรเป็น lstm ซึ่งจะเป็นอินพุตสำหรับตัวแยกประเภท มีวิธีทำเช่นนี้หรือไม่?

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