การเรียนรู้อย่างลึกซึ้ง: ฉันจะรู้ได้อย่างไรว่าตัวแปรใดมีความสำคัญ


20

ในแง่ของศัพท์แสงเครือข่ายประสาท (y = Weight * x + bias) ฉันจะรู้ได้อย่างไรว่าตัวแปรใดสำคัญกว่าตัวอื่น?

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

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


3
คุณสามารถทำเช่นนั้นได้ แต่ไม่ชัดเจนว่ามันหมายถึงอะไรนอกจาก "ผลรวมของน้ำหนักทั้งหมดสำหรับตัวแปรนี้ผ่านการเชื่อมต่อทั้งหมด" การเรียกมันว่า "ความสำคัญ" นั้นเป็นสิ่งที่ไม่มีเหตุผล
Matthew Drury

1
ฉันแค่ต้องการข้อมูลใด ๆ ที่จะแนะนำตัวแปรที่สำคัญและฉันคิดว่านี่อาจเป็นวิธีที่ดี
user1367204

คำตอบ:


16

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

.Ii=σij=1nhidden|wij|

นี่เป็นส่วนเบี่ยงเบนมาตรฐานของฉันป้อนข้อมูล, th ฉันฉันเป็นฉันสำคัญการป้อนข้อมูลของ TH, W ฉันเจเป็นน้ำหนักการเชื่อมต่อฉันป้อนข้อมูล TH กับเจ TH โหนดที่ซ่อนอยู่ในชั้นแรกและn ซ่อนอยู่เป็นจำนวน ของโหนดที่ซ่อนอยู่ในชั้นแรกσiiIiiwijijnhidden

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

Ii=σi|dydxi|

นี่เป็นฉันป้อนข้อมูล TH, Yคือการส่งออกและความคุ้มค่าความคาดหวังจะได้รับการให้ความเคารพกับเวกเตอร์ของปัจจัยการผลิตxxiiyx


จะใช้งานได้หรือไม่หากฉันใช้การเชื่อมต่อระหว่างอินพุตและเลเยอร์ที่ซ่อนอยู่แรกเท่านั้น (แทนที่จะใช้เลเยอร์ที่ซ่อนอยู่ทั้งหมด)
user1367204

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

ฉันจำวิธีการอื่นและเพิ่มเข้าไปในคำตอบ
Sam Marinelli

11

แรงเดรัจฉานค่อนข้าง แต่วิธีแก้ปัญหาที่มีประสิทธิภาพ:

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


นั่นเป็นความเป็นไปได้อย่างแน่นอน
SmallChess

6
แม้ว่าจะมีข้อผิดพลาดที่สำคัญ: แม้ว่าคุณลักษณะจะมีความสำคัญอย่างยิ่งหากมีคุณลักษณะอื่นที่มีความสัมพันธ์อย่างมากกับคุณสมบัติแรกของคุณจะไม่ถือว่าเป็นสิ่งสำคัญตามเกณฑ์ของคุณ (การขาดคุณสมบัติแรกจะได้รับการชดเชย คุณสมบัติ 'ที่ไม่ซ้ำกัน' จะปรากฏขึ้นอย่างมีความสำคัญเช่นนั้น)
Firebug

บางครั้งเรียกว่าการทดสอบการระเหยด้วยความร้อน (โดยเฉพาะการระเหยขนาดเล็กมากขึ้น)
Veltzer Doron

7

105

สำหรับเครือข่ายแบบตื้นนี่เป็นตัวอย่างของการกำหนดความสำคัญของตัวแปร

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


ฉันแก้ไขความคิดเห็นของฉันเพื่อสะท้อนสิ่งที่ฉันต้องการ ฉันหมายถึงพูด 20 โหนดในชั้นแรกไม่ใช่ 5 โหนด แบ่งปันที่ดีและขอบคุณสำหรับการแยกอวนตื้น / ลึก
user1367204

9
@ hxd1011 ไม่ควรเป็นคนหยาบคาย แต่ลึกหมายถึงเลเยอร์มากกว่าไม่ซ่อนพันหน่วย :)
Rafael

3

ส่วนใหญ่ที่พบ ive เกี่ยวกับเรื่องนี้เป็น บริษัท จดทะเบียนอย่างประณีตบนเว็บไซต์นี้มากขึ้นโดยเฉพาะคุณสามารถดูที่นี้ หากคุณพูดถึงโมเดลเชิงเส้นคุณต้องปรับน้ำหนักให้เป็นมาตรฐานเพื่อให้ตีความได้ แต่แม้จะทำให้เข้าใจผิดมากกว่านี้ในลิงก์ที่กล่าวถึง บางคนพยายามสร้างฟังก์ชั่นที่ซับซ้อนของน้ำหนักเพื่อตีความความสำคัญของอินพุต (Garson, Gedeon และ Milne's) แต่สิ่งนี้อาจทำให้เข้าใจผิดคุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ได้เมื่อคุณเลื่อนลิงค์แรกที่ฉันพูดถึง โดยทั่วไปแล้วฉันอยากจะแนะนำให้แปลผลออกมาเป็นเม็ดเกลือ

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

PS: ขออภัยไม่สามารถโพสต์ลิงก์หรือแสดงความคิดเห็นเพิ่มเติมที่นี่มีชื่อเสียงไม่มาก


1

ระบุว่าคุณมี:

  1. งานการจำแนกประเภท
  2. รูปแบบการฝึกอบรม
  3. คุณสมบัติที่ทำให้เป็นมาตรฐาน (ระหว่าง 0 ถึง 1)

มีใครลองบ้างไหม:

  1. zeroing out biases
  2. ผ่านแต่ละครั้งเป็นฟีเจอร์ฮอตเวกเตอร์เดียวที่มีฟีเจอร์ทั้งหมดเป็นศูนย์ยกเว้นหนึ่งเวกเตอร์
  3. ตรวจสอบผลลัพธ์

ในกรณีนี้ฉันคิดว่าเอาต์พุตจะเป็นหมายเลขที่ระบุ "ความสำคัญ" ของคุณสมบัติเนื่องจากเอาต์พุตนี้จะแสดงเอาต์พุตของเส้นทางของสัญญาณ 1 นี้ภายในเครือข่าย

มันเหมือนกับแสงสว่างเพียงหลอดไฟเดียวภายในเขาวงกตและวัดแสงที่ออกมาทางทางออก


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