เคล็ดลับเคอร์เนลสำหรับเครือข่ายประสาท


9

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

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

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


2
เคล็ดลับเคอร์เนลทำงานเมื่อคอมพิวเตอร์ของคุณเข้าถึงจุดข้อมูลของคุณประกอบด้วยการประมวลผลผลิตภัณฑ์ภายใน ฉันไม่แน่ใจว่าเป็นกรณีของเครือข่ายประสาท
Yuval Filmus

คำตอบ:


6

ฉันคิดว่าคุณอาจทำให้คำศัพท์สับสนในลักษณะที่ทำให้เกิดความสับสน SVM ทำงานโดยการกำหนดขอบเขตการตัดสินใจเชิงเส้นคือไฮเปอร์เพลน เราสามารถกำหนดไฮเปอร์เพลนนี้ในแง่ของผลิตภัณฑ์ภายในระหว่างจุดต่าง ๆ ดังนั้นหากเรากำหนดผลิตภัณฑ์ภายในนี้ให้อยู่ในพื้นที่มิติสูงหรือแม้แต่มิติที่ไม่มีที่สิ้นสุดสิ่งที่ดูเหมือนว่าไฮเปอร์เพลนในพื้นที่ใหม่นี้ไม่จำเป็นต้องเป็นเชิงเส้นในพื้นที่คุณลักษณะดั้งเดิม ดังนั้นทุกอย่างยังคงเป็นเส้นตรงสิ่งเดียวที่เราทำคือการ implicitly (ผ่านผลิตภัณฑ์ชั้นในใหม่) ฝังจุดในพื้นที่มิติที่สูงขึ้น บางทีคุณอาจรู้ทั้งหมดนี้แล้ว

มี 2 ​​ประเด็นที่ต้องพิจารณาเกี่ยวกับเครือข่ายประสาท ครั้งแรกที่ถูกนำขึ้นมาโดย @Yuval Filmus เนื่องจากเครือข่ายประสาทชั้นที่ซ่อนอยู่ขึ้นอยู่กับมากกว่าเพียงแค่ผลิตภัณฑ์ภายในระหว่างจุด ถ้าคุณเอาชั้นที่ซ่อนอยู่คุณก็มีบางอย่างเช่นการถดถอยโลจิสติกซึ่งมีรุ่น kernelized อาจมีวิธีรับรอบนี้ แต่ฉันไม่เห็น

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


ขอบคุณ. ใช่. ฉันรู้ว่าเราสามารถนึกถึง SVM ในฐานะการทำแผนที่อินพุตดั้งเดิมไปยังพื้นที่มิติที่สูงขึ้น (หรือไม่มีที่สิ้นสุด) จากนั้นทำการตัดสินใจเชิงเส้นตรงในพื้นที่มิติที่สูงขึ้นนั้น ดังนั้นเราสามารถทำสิ่งนั้นกับเครือข่ายประสาทเทียมได้หรือไม่ เราสามารถแมปสัญญาณเข้ากับพื้นที่มิติที่สูงขึ้นแล้วปฏิบัติต่อสิ่งนั้นในฐานะสัญญาณเข้าจริงไปยังเครือข่ายประสาทเทียมได้หรือไม่? ฉันคิดว่าเราทำได้ (และฉันคิดว่าเราสามารถทำสิ่งนี้ได้ในแต่ละชั้นถ้าเราต้องการ) และถ้าเราทำได้คำถามที่แท้จริงของฉันก็คือ: ข้อเสนอนี้เป็นการปรับปรุงเครือข่ายประสาทเทียมให้ใหญ่ขึ้นหรือไม่ ทำไมหรือทำไมไม่?
DW

ฉันรู้เกี่ยวกับทฤษฎีการประมาณสากล แต่นั่นไม่ได้ตอบคำถาม (ตามที่คุณระบุ) สิ่งที่ฉันสนใจคือการทำงานของระบบประสาทที่ดีมีแนวโน้มที่จะทำงานในทางปฏิบัติ ฉันสงสัยว่าการประมวลผลอินพุตล่วงหน้าด้วยเคล็ดลับเคอร์เนลอาจทำให้เครือข่ายประสาทมีแนวโน้มที่จะทำงานได้ดีขึ้นในทางปฏิบัติ แน่นอนว่าไม่มีการรับประกันและจะมีสถานการณ์ที่ทุกสิ่งที่คุณทำอาจทำให้แย่ลง แต่ฉันสงสัยเกี่ยวกับพฤติกรรมทั่วไปในทางปฏิบัติ (ในแง่เดียวกับที่เราพูดว่าการทำให้เป็นเคอร์เนลมีแนวโน้มที่จะทำให้ SVMs มีประสิทธิภาพมากขึ้น การปฏิบัติ)
DW

2
@DW เหตุผลในการสร้างเคอร์เนลทำให้ SVM มีประสิทธิภาพมากขึ้นเนื่องจากช่วยให้พวกเขาสามารถกำหนดขอบเขตการตัดสินใจที่ไม่ใช่เชิงเส้นได้ โครงข่ายใยประสาทเทียมสามารถกำหนดขอบเขตการตัดสินใจที่ไม่ใช่เชิงเส้นได้ดังนั้นประโยชน์เพียงอย่างเดียวของการฉายข้อมูลของคุณลงในพื้นที่มิติที่สูงขึ้นคือการทำให้ปัญหาการปรับให้เหมาะสมง่ายขึ้น
อัลโต

1

เคล็ดลับเคอร์เนลเป็นไปได้สำหรับ SVMs เนื่องจากคุณสมบัติพิเศษของกระบวนการเรียนรู้สำหรับ SVM ดูเหมือนว่าเครือข่ายประสาทจะไม่มีคุณสมบัตินั้น (เท่าที่ฉันสามารถบอกได้)

ปล่อย x1,...,xnRdเป็นคะแนนในชุดการฝึกอบรม โดยปกติคุณคาดหวังว่าอัลกอริทึมการเรียนรู้ของเครื่องจะดูค่าของxผม's อย่างไรก็ตามกระบวนการเรียนรู้ SVM มีคุณสมบัติที่ค่อนข้างโดดเด่น ไม่จำเป็นต้องรู้คุณค่าของxผม's เพียงพอที่จะคำนวณได้xผมxJสำหรับจุดอินพุทคู่ใด ๆ ที่ต้องการ (เช่นเพื่อคำนวณ dot-product สำหรับเวกเตอร์อินพุตคู่ใด ๆ ที่คุณเลือก); นั่นคือความต้องการของกระบวนการเรียนรู้ SVM ทั้งหมด

คุณสมบัติพิเศษของกระบวนการเรียนรู้ SVM ช่วยให้เราสามารถใช้เคล็ดลับเคอร์เนล เราสามารถกำหนดฟังก์ชั่นเคอร์เนลK ดังนั้น K(xผม,xJ)เป็นผลคูณของการแปลงแบบไม่เป็นเชิงเส้นของอินพุต หากเราเปลี่ยนเวกเตอร์อินพุตผ่านการแปลงแบบไม่เชิงเส้นφ:RdRม. (สำหรับบางคน ม.>d) จากนั้นเราจะกำหนด K(xผม,xJ)=φ(xผม)φ(xJ). คุณสมบัติเจ๋งต่อไปคือสำหรับการแปลงแบบไม่เชิงเส้นφคุณสามารถคำนวณได้ K(xผม,xJ) มีประสิทธิภาพมากกว่าการคำนวณ φ(xผม),φ(xJ)อย่างชัดเจนแล้วคำนวณดอทผลิตภัณฑ์ คุณสามารถคำนวณK(xผม,xJ) ใน O(d) เวลา (พูด) มากกว่า O(ม.) เวลา.

น่าเสียดายที่ดูเหมือนว่าโครงข่ายประสาทจะไม่มีวิธีใดที่จะใช้ประโยชน์จากเคล็ดลับเด็ด ๆ นี้เพราะกระบวนการเรียนรู้สำหรับโครงข่ายประสาทนั้นดูเหมือนจะขึ้นอยู่กับค่านิยมมากกว่าแค่ค่านิยม xผมxJ (หรือ K(xผม,xJ)); มันต้องการค่าเต็มของทั้งหมดxผม's ดังนั้นในขณะที่เราสามารถแปลงอินพุตล่วงหน้าไปยังเครือข่ายไม่เชิงเส้นผ่านฟังก์ชั่นไม่เชิงเส้นบางอย่างถ้าเราต้องการดูเหมือนว่าจะไม่มีวิธีใดที่จะใช้เคอร์เนลเคล็ดลับเพื่อให้มีประสิทธิภาพมากขึ้นเช่นที่เราทำได้สำหรับ SVM


1

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

ป้อนคำอธิบายรูปภาพที่นี่

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

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