ขณะนี้ฉันกำลังเรียนรู้เกี่ยวกับการประมาณกำลังสองน้อยที่สุด (และอื่น ๆ ) สำหรับการถดถอยและจากสิ่งที่ฉันกำลังอ่านในวรรณกรรมอัลกอริทึมแบบปรับตัวบางครั้งมักใช้วลี "... และเนื่องจากพื้นผิวข้อผิดพลาดนูน ... " ปรากฏขึ้นและ ความลึกใด ๆ ที่เป็นสาเหตุว่าทำไมจึงต้องมีการนูนเพื่อเริ่มต้นด้วยไม่ว่าจะอยู่ที่ไหน
... ดังนั้นสิ่งที่ทำให้มันนูน ?
ฉันพบว่าการละเลยซ้ำนี้น่ารำคาญเล็กน้อยเพราะฉันต้องการออกแบบอัลกอริธึมแบบปรับตัวเองพร้อมฟังก์ชั่นต้นทุนของตัวเอง แต่ถ้าฉันไม่สามารถบอกได้ว่าฟังก์ชั่นค่าใช้จ่ายของฉันส่งผลให้เกิดข้อผิดพลาดนูนหรือไม่ ไปไกลเกินกว่าที่จะใช้บางสิ่งบางอย่างเช่นการไล่ระดับสีแบบไล่ระดับเพราะจะไม่มีค่าขั้นต่ำระดับโลก บางทีฉันอาจต้องการที่จะสร้างสรรค์ - บางทีฉันอาจไม่ต้องการใช้กำลังสองน้อยที่สุดเป็นเกณฑ์ในข้อผิดพลาดของฉัน
เมื่อขุดลึกลงไป (และคำถามของฉันเริ่มต้นที่นี่) ฉันพบว่าเพื่อให้สามารถบอกได้ว่าคุณมีพื้นผิวข้อผิดพลาดนูนหรือไม่คุณต้องตรวจสอบให้แน่ใจว่าเมทริกซ์ Hessianของคุณนั้นเป็นกึ่งบวกแน่นอน สำหรับการเข้าคู่แบบสมมาตรการทดสอบนี้ง่ายมาก - ตรวจสอบให้แน่ใจว่าค่าลักษณะเฉพาะทั้งหมดของเมทริกซ์ Hessian นั้นไม่เป็นลบ (หากเมทริกซ์ของคุณไม่สมมาตรคุณสามารถทำให้สมมาตรได้โดยการเพิ่มลงในทรานสโพสของตัวเองและทำการทดสอบค่าลักษณะเฉพาะเดียวกันโดยอาศัยอำนาจของGramianแต่นั่นไม่สำคัญเลย)
Hessian matrix คืออะไร เมทริกซ์ของ Hessian ประมวลผลการผสมผสานระหว่างส่วนที่เป็นไปได้ของฟังก์ชันต้นทุนของคุณ มีกี่ Partials จำนวนคุณลักษณะในเวกเตอร์ฟีเจอร์ของคุณมากพอ ๆ วิธีคำนวณชิ้นงาน? ใช้อนุพันธ์บางส่วน 'ด้วยมือ' จากฟังก์ชันต้นทุนดั้งเดิม
นั่นคือสิ่งที่ฉันทำ: ฉันคิดว่าเรามีเมทริกซ์ข้อมูล x ซึ่งแสดงโดยเมทริกซ์โดยที่หมายถึงจำนวนตัวอย่างและหมายถึงจำนวนคุณลักษณะต่อตัวอย่าง (ซึ่งจะเป็นจำนวนของ partials) ผมคิดว่าเราสามารถพูดได้ว่าเรามีตัวอย่างเวลาและตัวอย่างเชิงพื้นที่จากเซ็นเซอร์ แต่การประยุกต์ใช้ทางกายภาพไม่ได้เป็นสิ่งสำคัญมากเกินไปที่นี่
นอกจากนี้เรายังมีเวกเตอร์ขนาดเมตร x 1 (นี่คือเวกเตอร์ 'ป้ายกำกับ' ของคุณหรือ 'คำตอบ' ของคุณที่สอดคล้องกับทุกแถวของX ) เพื่อความง่ายฉันคิดว่าm = n = 2สำหรับตัวอย่างนี้ ดังนั้น 2 'ตัวอย่าง' และ 2 'คุณสมบัติ'
ตอนนี้สมมติว่าคุณต้องการยืนยัน 'เส้น' หรือพหุนามที่เหมาะสมที่สุดที่นี่ นั่นคือคุณโครงการการป้อนข้อมูลของคุณมีกับเวกเตอร์พหุนามร่วมที่มีประสิทธิภาพของคุณดังกล่าวว่าฟังก์ชั่นค่าใช้จ่ายของคุณคือ:
ตอนนี้ให้เราหาอนุพันธ์อันดับแรกบางส่วน wrt , (ฟีเจอร์ 0) ดังนั้น:
ตอนนี้ให้เราคำนวณส่วนที่สองทั้งหมดเพื่อ:
We know that the Hessian is nothing but:
Now, based on how I have constructed the data matrix , (my 'features' go by columns, and my examples go by rows), the Hessian appears to be:
...which is nothing but the sample covariance matrix!
So I am not quite sure how to interpret - or I should say, I am not quite sure how generalizing I should be here. But I think I can say that:
Always true:
- The Hessian matrix always controls whether or not your error/cost surface is convex.
- If you Hessian matrix is pos-semi-def, you are convex, (and can happily use algorithms like gradient descent to converge to the optimal solution).
True for LSE only:
- The Hessian matrix for the LSE cost criterion is nothing but the original covariance matrix. (!).
- To me this means that, if I use LSE criterion, the data itself determines whether or not I have a convex surface? ... Which would then mean that the eigenvectors of my covariance matrix somehow have the capability to 'shape' the cost surface? Is this always true? Or did it just work out for the LSE criteria? It just doesnt sit right with me that the convexity of an error surface should be dependent on the data.
So putting it back in the context of the original question, how does one determine whether or not an error surfance (based on some cost function you select) is convex or not? Is this determination based on the data, or the Hessian?
Thanks
TLDR: How, exactly, and practically do I go about determining whether my cost-function and/or data-set yield a convex or non-convex error surface?