วิธีการตรวจสอบความเชื่อมั่นของการทำนายเครือข่ายประสาท?


22

เพื่อแสดงคำถามของฉันสมมติว่าฉันมีชุดฝึกอบรมที่อินพุตมีระดับเสียงรบกวน แต่เอาต์พุตไม่ได้ตัวอย่างเช่น;

# Training data
[1.02, 1.95, 2.01, 3.06] : [1.0]
[2.03, 4.11, 5.92, 8.00] : [2.0]
[10.01, 11.02, 11.96, 12.04] : [1.0]
[2.99, 6.06, 9.01, 12.10] : [3.0]

เอาท์พุทที่นี่คือการไล่ระดับสีของอาเรย์ใส่ถ้ามันไม่มีเสียง (ไม่ไล่โทนสีที่เกิดขึ้นจริง)

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

# Expected Output
[1.01, 1.96, 2.00, 3.06] : 95% confidence interval of [0.97, 1.03]
[2.03, 4.11, 3.89, 3.51] : 95% confidence interval of [2.30, 4.12]

คำถามของฉันคือเครือข่ายประสาทสามารถสร้างเช่นนั้นจะส่งกลับค่าที่คาดการณ์และการวัดความเชื่อมั่นเช่นความแปรปรวนหรือช่วงความมั่นใจได้อย่างไร


3
หากคุณกำลังมองหาช่วงเวลาที่จะมีการรับรู้ในอนาคตจากนั้นคุณกำลังมองหาช่วงเวลาการทำนายไม่ใช่ช่วงความมั่นใจซึ่งเกี่ยวข้องกับพารามิเตอร์ที่ไม่สามารถสังเกตเห็นได้ สิ่งนี้มักจะสับสน
S. Kolassa - Reinstate Monica

คำตอบ:


20

ดูเหมือนว่าคุณกำลังมองหาเช่นช่วงเวลาที่มีเปอร์เซ็นต์ที่ของการรับรู้ในอนาคต (ดูที่แท็ก wikis สำหรับและสำหรับความแตกต่าง)

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

ที่กล่าวว่าคุณอาจต้องการดูอัลกอริทึม NeuroBayes ของ Michael Feindtซึ่งใช้วิธีการแบบเบย์เพื่อคาดการณ์ความหนาแน่นที่คาดการณ์ได้


1
นี่อาจเป็นอีกกระดาษที่มีประโยชน์ - โครงข่ายประสาทที่เรียนรู้การแจกแจง: google.com/ ...
Pro Q

@Stephan: ลิงก์นั้นล่วงไปแล้ว: (
Matthew Drury

@MatthewDrury: ลิงค์ใดที่คุณหมายถึง ทั้งสามทำงานได้ดีสำหรับฉัน
S. Kolassa - Reinstate Monica

คุณช่วยพาเราไปสู่การสาธิต / ตัวอย่าง Ternsorflow อย่างง่าย ๆ ด้วย NN Predictive Distributions ได้หรือไม่?
Martin Thøgersen

@ MartinThøgersen: ขอโทษไม่ฉันไม่ได้ใช้ Tensorflow ...
S. Kolassa - Reinstate Monica

5

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

หากคืออัตราความผิดพลาดของคุณในขณะที่จำแนกข้อมูลSบางขนาดnช่วงความเชื่อมั่น 95% สำหรับอัตราความผิดพลาดของคุณจะถูกกำหนดโดย: e ± 1.96 eSn .

อี±1.96อี(1-อี)n

(ดูหนังสือ "การเรียนรู้ของเครื่อง" จาก Tom Mitchell ตอนที่ 5)

แก้ไข

เดาฉันควรระบุกรณีทั่วไปมากขึ้นซึ่งก็คือ: ที่ตัวเลือกทั่วไปสำหรับzNแสดงอยู่ในตารางต่อไปนี้:

อี±Zยังไม่มีข้อความอี(1-อี)n,
Zยังไม่มีข้อความ
confidence level    80%    90%    95%    98%    99%
values of zN       1.28   1.64   1.96   2.33   2.58

1
สิ่งนี้จะต้องมีการแจกแจงแบบ
ซีมโทติ

4
สำหรับตัวอย่างที่มีขนาดใหญ่ (ซึ่งค่อนข้างธรรมดาใน ML) โดยทั่วไปถือว่าปลอดภัย ไม่จำเป็นต้องลงคะแนนเพียงแค่ขอคำอธิบาย แต่ก็ดี
mp85

4

ช่วงเวลาการทำนาย (PI) ในปัญหาการถดถอยแบบไม่อิงพารามิเตอร์และการจำแนกประเภทเช่นอวนประสาท SVMs ป่าสุ่ม ฯลฯ ยากที่จะสร้าง ฉันชอบที่จะได้ยินความคิดเห็นอื่น ๆ เกี่ยวกับเรื่องนี้

อย่างไรก็ตามเท่าที่ฉันรู้ Conformal Prediction (CP) เป็นวิธีการหลักการเพียงอย่างเดียวสำหรับการสร้างการสอบเทียบ PI สำหรับการทำนายในปัญหาการถดถอยแบบไม่ใช้พารามิเตอร์และการจำแนกประเภท สำหรับการสอนเกี่ยวกับ CP ให้ดูที่ Shfer & Vovk (2008), J. Machine Learning Research 9 , 371-421 [pdf]


3

ฉันไม่รู้วิธีการใด ๆ ที่จะทำในลักษณะที่แน่นอน

μσ(xผม,Yผม)-เข้าสู่ระบบยังไม่มีข้อความ(Yผม-μ(xผม),σ(xผม))μ(xผม)Yผมσ(xผม)

Yผม-μ(xผม)σ(xผม)ยังไม่มีข้อความ(0,1)


1
σ+

มีตัวอย่างที่เป็นรูปธรรมที่ทุกคนเห็นว่าใช้ NN เพื่อพารามิเตอร์เอาท์พุทของการแจกจ่ายซึ่งผ่านการฝึกอบรมเกี่ยวกับความน่าจะเป็นของบันทึกหรือไม่?
Miss Palmer

3

ฉันไม่เคยได้ยินวิธีการใดที่ให้ช่วงความมั่นใจสำหรับการทำนายโครงข่ายประสาท แม้จะไม่มีวิธีการที่เป็นทางการ แต่ดูเหมือนว่ามันอาจเป็นไปได้ที่จะสร้างขึ้นมา ฉันไม่เคยลองสิ่งนี้เนื่องจากพลังการประมวลผลที่จะต้องใช้และฉันไม่ได้อ้างสิทธิ์ในการทำงานนี้ แต่มีวิธีการหนึ่งที่ใช้งานได้กับโครงข่ายประสาทขนาดเล็ก (หรือด้วยพลัง GPU ที่รวดเร็วอย่างเห็นได้ชัด ) คือการลองชุดฝึกอบรมและสร้างเครือข่ายที่คล้ายกันอีกหลายครั้ง (พูด 10,000 ครั้ง) ด้วยพารามิเตอร์เดียวกันและการตั้งค่าเริ่มต้นและสร้างช่วงความมั่นใจตามการคาดการณ์สำหรับแต่ละ bootstrapped net ของคุณ

ตัวอย่างเช่นใน 10,000 เครือข่ายที่ได้รับการฝึกอบรมตามที่กล่าวไว้ข้างต้นหนึ่งอาจได้รับ 2.0 (หลังจากปัดเศษการทำนายการถดถอยของโครงข่ายประสาทเทียม) 9,000 ครั้งดังนั้นคุณจะทำนาย 2.0 ด้วย 90% CI จากนั้นคุณสามารถสร้างอาร์เรย์ของ CIs สำหรับการทำนายแต่ละครั้งและเลือกโหมดเพื่อรายงานเป็น CI หลัก


2
ฉันอยากรู้ว่าทำไมข้อเสนอแนะนี้จึงถูกโหวตลงเพราะมันเป็นวิธีการเริ่มต้นที่ผิดปกติเล็กน้อย (องค์ประกอบการปัดเศษของปัญหาทำให้ง่ายต่อการตรวจสอบความมั่นใจว่าโครงข่ายประสาทเป็นเรื่องเกี่ยวกับการทำนาย) ฉันไม่รังเกียจการลงคะแนนเสียงหากใครก็ตามที่ลงคะแนนสามารถอธิบายได้ว่าทำไมนี่จึงไม่ใช่คำตอบที่ถูกต้องสำหรับคำถามที่เสนอ ฉันเรียนรู้ด้วยตัวเองและจะขอบคุณข้อเสนอแนะ!
Tony S

1
ฉันไม่ได้ลงคะแนน แต่จากสิ่งที่ฉันเข้าใจวิธีการที่เสนอจะส่งออกช่วงเวลาที่จับค่าที่ทำนายของแบบจำลองนี้ไม่เหมือนกับช่วงเวลาที่จับค่าที่แท้จริง
Miss Palmer

3

ในแง่ของการส่งออกช่วงเวลาการทำนายโดยตรงมี 'รายงานที่ครอบคลุม 2011 ของช่วงเวลาการทำนายตามโครงข่ายประสาท '

พวกเขาเปรียบเทียบสี่แนวทาง:

1: วิธี Delta 2: วิธี Bayesian 3: การประมาณค่าความแปรปรวนเฉลี่ย 4: Bootstrap

ผู้เขียนเดียวกันไปในการพัฒนาล่าง Upper Bound วิธีการประมาณการสำหรับการก่อสร้างโครงข่ายประสาทเทียมตามช่วงเวลาการทำนายที่โดยตรง outputs ต่ำและขอบเขตบนจาก NN แต่น่าเสียดายที่มันไม่ได้ทำงานกับ backprop แต่การทำงานที่ผ่านมาทำนี้เป็นไปได้ที่มีคุณภาพสูงช่วงการทำนายการเรียนรู้ลึก

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


1
จริงๆแล้วมันค่อนข้างง่ายที่จะทำกับ Bayesian Deep Learning ดูตัวอย่างedwardlib.org/tutorials/bayesian-neural-network
DeltaIV

2

จริงๆแล้วมีวิธีการทำเช่นนี้โดยใช้การออกกลางคัน เรียกใช้การประเมินผลโดยเปิดใช้งานการออกกลางคัน (โดยปกติจะปิดใช้งานเพื่อการประเมินผล แต่จะเปิดใช้งานเมื่อฝึกอบรม) และดำเนินการประเมินหลายครั้ง

การกระจายผลลัพธ์จากการดำเนินการที่แตกต่างกันหลายครั้งสามารถใช้เป็นช่วงความมั่นใจได้

ดูกระดาษ "การออกกลางคันเป็นแบบเบย์: เป็นตัวแทนของความไม่แน่นอนในการเรียนรู้แบบลึก " ดูการนำเสนอของ YouTube Andrew Rowan - การเรียนรู้ลึกแบบเบย์กับเอ็ดเวิร์ด


1

ไม่มีวิธีใด ๆ โมเดล ML ทั้งหมดไม่เกี่ยวกับการทำความเข้าใจปรากฏการณ์ แต่เป็นวิธีการแก้ไขด้วยความหวังว่า "ใช้งานได้" เริ่มต้นด้วยความมั่นใจในคำถามเช่นนี้คำตอบที่ชัดเจนไม่มีคำตอบ

ดังนั้นในการหาบางสิ่งบางอย่างโปรดใช้วิทยาศาสตร์พื้นฐานประยุกต์และพื้นฐานต่าง ๆ :

  • ใช้การควบคุม (และตั้งสมมติฐานเกี่ยวกับการเปลี่ยนแปลง)

  • ใช้การเพิ่มประสิทธิภาพนูน (ด้วยเงื่อนไขพิเศษบางอย่างในฟังก์ชั่น)

  • ใช้สถิติทางคณิตศาสตร์ (พร้อมข้อสมมติฐานเบื้องต้นเกี่ยวกับการแจกแจง)

  • ใช้การประมวลผลสัญญาณ (โดยมีข้อสันนิษฐานบางอย่างว่าสัญญาณ จำกัด แบนด์)

นักวิทยาศาสตร์ใช้สมมติฐานเบื้องต้นที่เรียกว่าสัจพจน์

ไม่มีทางที่จะให้ความมั่นใจใด ๆ โดยไม่มีข้อสันนิษฐานเบื้องต้นดังนั้นปัญหาไม่ได้อยู่ใน DL mehtod แต่มันเป็นปัญหาในวิธีการใด ๆ ที่พยายามที่จะแก้ไขโดยไม่มีการสันนิษฐานเบื้องต้นใด ๆ - ไม่มีทางที่จะได้รับผ่านทางพีชคณิต

NN และวิธี ML ต่างๆนั้นใช้สำหรับการสร้างต้นแบบอย่างรวดเร็วเพื่อสร้าง "บางสิ่ง" ซึ่งดูเหมือนว่าใช้งานได้ "someway" ที่ตรวจสอบด้วยการตรวจสอบความถูกต้องข้าม

ยิ่งการถดถอยที่เหมาะสมยิ่งขึ้น E [Y | X] หรือประมาณว่าอาจเป็นปัญหาที่ไม่ถูกต้องอย่างแน่นอนในการแก้ปัญหา (อาจเป็นไฟล์ PDF ในจุด Y = E [Y | X] มีค่าต่ำสุดไม่สูงสุด) และมีจำนวนมากเช่นนั้น สิ่ง

นอกจากนี้ให้ฉันเตือนสองปัญหาที่แก้ไม่ได้ใน AI / ML ซึ่งอาจถูกลืมด้วยเหตุผลบางอย่างที่อยู่เบื้องหลังคำขวัญความงาม:

(1) เป็นวิธีการแก้ไขไม่ใช่การประมาณ - มันไม่มีความสามารถในการจัดการกับปัญหาใหม่

(2) ไม่มีใครรู้ว่าแบบจำลองใดที่จะทำงานกับข้อมูลที่ไม่ได้มาจากการแจกจ่ายเดียวกัน (ชายในชุดของกล้วยสำหรับการแปลสำหรับคนเดินเท้า)


วิธีการเกี่ยวกับการสร้างแบบจำลองข้อผิดพลาดจากข้อมูลการฝึกอบรมตั้งเป็นข้อผิดพลาด "ทำนาย" สำหรับการอนุมาน
Jacko

แม้จะสมมติว่าเป็นสารเติมแต่ง "predict_for_mean" + "predict_for_error" คุณสามารถจินตนาการคีใด ๆ ในการทำนายสัญญาณและข้อผิดพลาดแยกจากกัน แต่อีกครั้ง - ถ้าเรา "แก้ไขเพียงอย่างเดียว" เราไม่สามารถพูดอะไรบางอย่างได้อย่างมั่นใจ เราทำนายอุณหภูมิบนพื้นผิว ใช่คุณสามารถพูดได้ว่าการคาดการณ์ของฉัน "20" และการทำนายสำหรับข้อผิดพลาดคือ "5" ดังนั้นมันจึงบอกว่าฉันคิดว่าการตอบสนองที่แท้จริงนั้นอยู่ใน [20-5, 20 + 5] แต่เพื่อที่จะเข้าใจว่ามันหมายความว่าอะไรเราต้องเข้าใจปรากฏการณ์จริงและแบบจำลองทางคณิตศาสตร์ และ ML นั้นไม่เกี่ยวกับทั้งคู่เลย พื้นที่อื่นทำให้สมมติฐานเบื้องต้น
bruziuz

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