โครงข่ายประสาทเทียมสำหรับการถดถอยแบบหลายเอาต์พุต


14

ฉันมีชุดข้อมูลที่มีคอลัมน์อินพุต 34 คอลัมน์และ 8 คอลัมน์เอาต์พุต วิธีหนึ่งในการแก้ปัญหาคือใช้อินพุต 34 ตัวและสร้างโมเดลการถดถอยแบบแยกเฉพาะสำหรับแต่ละคอลัมน์เอาต์พุต ฉันสงสัยว่าปัญหานี้สามารถแก้ไขได้โดยใช้เพียงหนึ่งโมเดลโดยเฉพาะอย่างยิ่งการใช้ Neural Network

ฉันใช้ตัวรับหลายเลเยอร์ แต่ต้องการโมเดลหลายตัวเช่นเดียวกับการถดถอยเชิงเส้น สามารถเรียงลำดับตามลำดับที่1การเรียนรู้เป็นทางเลือกได้หรือไม่? ฉันลองใช้ TensorFlow ดูเหมือนจะไม่สามารถจัดการค่าลอยได้

ข้อเสนอแนะใด ๆ ที่จะแก้ไขปัญหานี้โดยใช้รูปแบบรวมเป็นหนึ่งเดียวโดยเฉพาะโดยใช้โครงข่ายประสาทเทียมจะได้รับการชื่นชม

  1. Ilya Sutskever, Oriol Vinyals, & Quoc V. Le (2014) ลำดับการเรียนรู้ต่อเนื่องกับโครงข่ายประสาทเทียม ความก้าวหน้าในระบบประมวลผลข้อมูลประสาท , 27. ( pdf )

คืออะไรปัญหา?
TEG

2
(สำหรับผู้มีสิทธิ์ลงคะแนนที่ใกล้ชิด: นี่ไม่ใช่คำถามการเขียนโปรแกรมมันจะเป็นหัวข้อนอกStack Overflow )
gung - Reinstate Monica

คุณช่วยอธิบายตัวเลือก "sequence to sequence" ที่นี่ได้ไหม? ฉันไม่รู้ว่ามันจะเป็นที่คุ้นเคยกับคนที่ทำงานที่มี NN แต่มันไม่ใช่สำหรับฉัน
gung - Reinstate Monica

การสร้างแบบจำลองตามลำดับไปสู่ลำดับโดยใช้ RNN papers.nips.cc/paper/…
sjishan

คุณสามารถลอง MultiOutputRegressor () ใช้งานได้กับปัญหาประเภทนี้
Subham Sarkar

คำตอบ:


7

โครงข่ายประสาทที่มีผลลัพธ์หลายรายการใช้แบบฟอร์ม

Y=γ+V1Γ1+εV1=a(γ2+V2Γ2)V2=a(γ3+V3Γ3)VL-1=a(γL+XΓL)
หากผลลัพธ์ของคุณมีมิติ ยังไม่มีข้อความ×8จากนั้น [γ1,Γ1] จะมีมิติ (พีV1+1)×8.

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

นี่เป็นสมมติฐานที่เป็นจริงสำหรับบริบทของคุณหรือไม่


5

ตอนแรกฉันคิดว่าความคิดเห็นของ generic_user เป็นการแสดงจุก แต่ฉันเพิ่งรู้ว่ามันไม่ใช่:

ถ้าฉันฝึกdเครือข่ายที่แตกต่างกันในdเอาท์พุทที่แตกต่างกันแต่ละอันจะพอดีกับมิตินั้นโดยไม่คำนึงถึงผู้อื่น

แต่ถ้าฉันฝึกเครือข่ายหนึ่งด้วยdเอาท์พุทและใช้เอาท์พุททั้งหมดสำหรับ backpropagation น้ำหนักแต่ละอันในทุกเลเยอร์ในเครือข่ายจะถูกปรับเพื่อให้d dนั้นถูกต้องมากขึ้น

นั่นคือ: พารามิเตอร์เครือข่ายแต่ละตัวจะถูกปรับโดยผลรวมของการไล่ระดับสี (วิธีการที่แต่ละเอาท์พุทจะแตกต่างกันกับ " wiggle " ในพารามิเตอร์นี้) ซึ่งการปรับในทิศทางที่เลือกขึ้นหรือลงทำให้ถูกต้องมากขึ้นโดยรวม น้ำหนักแบบนั้นทำให้ขนาดของเอาต์พุตมีความแม่นยำน้อยลง

ใช่ในที่สุดสิ่งที่แยกความแตกต่างในแต่ละผลลัพธ์เป็นเพียงสมการเชิงเส้นที่เข้ารหัสในเลเยอร์สุดท้าย แต่ในการฝึกอบรมหนึ่งเครือข่ายหลายเอาท์พุตทุกเลเยอร์จะดีขึ้นเมื่อนำเสนอเลเยอร์สุดท้ายกับสิ่งที่ทำให้มันทำงานได้ดีขึ้น . และดังนั้นจึงเป็นไปตามที่ความสัมพันธ์ระหว่างเอาท์พุทจะถูกคิดโดยสถาปัตยกรรมนี้

คุณอาจจะสามารถที่จะทำดีกว่าสุทธิอย่างเต็มที่เชื่อมต่อโดยการทำให้สถาปัตยกรรมของคุณสะท้อนให้เห็นถึงความสัมพันธ์ใด ๆ ที่รู้จักกันในการส่งออกเช่นเดียวกับเครือข่ายลึกทำได้ดีกว่าคนที่ตื้นโดยการใช้ประโยชน์จากความสัมพันธ์ "compositional" ระหว่างปัจจัยการผลิต


การถดถอยหลายตัวแปรถือว่ามีเมทริกซ์ความแปรปรวนร่วม (ไม่ทราบ) บางตัวที่เกี่ยวข้องกับตัวแปรเป้าหมายซึ่งกันและกัน คุณแนะนำว่ามีเพียงหนึ่งชั้นหนาแน่นก็เพียงพอที่จะจับความแปรปรวนร่วมนี้โดยไม่จำเป็นต้องรวมชั้นที่ซ่อนอยู่อย่างชัดเจน?
thecity2

ฉันขอแนะนำให้เลเยอร์ที่ซ่อนอยู่ต้องจับความแปรปรวนร่วมบางอย่างนั้น หนึ่งเลเยอร์เอาท์พุทที่หนาแน่นเพียงอย่างเดียวเป็นเพียงกลุ่มฟังก์ชันเชิงเส้น ไม่สามารถสร้างความสัมพันธ์ระหว่างเอาต์พุตได้เมื่อไม่มีเลเยอร์ที่ซ่อนอยู่ให้ปรับและใช้เป็นอินพุต / พาสเป็นอินพุตไปยังโหนดเอาต์พุตอื่น
Pavel Komarov

0

คุณสามารถทำได้ด้วย Neural Network เพียงเครือข่ายเดียว แต่เครือข่ายประสาทของคุณควรมีลักษณะเช่นนี้:
เลเยอร์อินพุต: 34 โหนด (หนึ่งต่อคอลัมน์อินพุตของคุณ)
เลเยอร์เอาต์พุต: 8 โหนด (หนึ่งต่อคอลัมน์เอาต์พุตของคุณ)

คุณสามารถเพิ่มเลเยอร์ที่ซ่อนเร้นได้มากเท่าที่คุณต้องการใน Neural Network ดังนั้นโครงข่ายประสาทเทียมจะมีค่าที่ทำนายไว้ 8 ค่าและแต่ละค่าจะเป็นการถดถอยที่แตกต่างกันของอินพุต


แพคเกจของภาษาที่รองรับดังนั้น ??
Arpit Sisodia

0

ฉันสงสัยเหมือนกัน นี่คือความคิดของฉัน:

ฉันคิดว่าถ้าผลลัพธ์มีรูปแบบที่ซ่อนอยู่บางส่วนการฝึกอบรมจะได้ประโยชน์จากการเรียนรู้การถดถอยสำหรับผลลัพธ์ทั้งหมดพร้อมกัน

มันน่าสนใจที่จะลองสถาปัตยกรรมที่คุณสร้างโครงข่ายประสาทเทียมสำหรับแต่ละเอาต์พุต แต่โครงข่ายประสาททั้งหมดใช้เลเยอร์บางเลเยอร์ (เช่นเลเยอร์ครึ่งแรก) จากนั้นคุณสามารถฝึกอบรมแต่ละโครงข่ายประสาทในเวลาเดียวกัน: ในวงเรียนรู้แต่ละเครือข่ายประสาทได้รับการฝึกฝนหนึ่งขั้นตอน (กับหนึ่งชุด) ตามลำดับ

นี่จะคล้ายกับการถ่ายโอนความรู้ แต่ด้วยความแตกต่างที่ในการถ่ายโอนความรู้แต่ละเครือข่ายประสาทจะถูกฝึกอย่างเต็มที่ก่อนที่จะนำส่วนหนึ่งของมันกลับมาใช้เพื่อฝึกอบรมโครงข่ายประสาทเทียมอื่น

ฉันพนันว่ามีคนคิดถึงเรื่องนี้มาก่อน แต่ฉันไม่มีการอ้างอิงถึง

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