2
โคตรลาดไล่สีแบบสุ่มตามการดำเนินการของเวกเตอร์
สมมติว่าฉันต้องการฝึกอัลกอริธึมการถดถอยแบบไล่ระดับสีแบบสุ่มโดยใช้ชุดข้อมูลที่มีตัวอย่าง N ตัว เนื่องจากขนาดของชุดข้อมูลได้รับการแก้ไขฉันจะใช้ข้อมูล T ครั้ง ในการทำซ้ำแต่ละครั้งหรือ "ยุค" ฉันใช้ตัวอย่างการฝึกอบรมแต่ละครั้งทันทีหลังจากจัดลำดับการฝึกทั้งหมดใหม่แบบสุ่ม การติดตั้งของฉันนั้นใช้ Python และ Numpy ดังนั้นการใช้การดำเนินการเวกเตอร์สามารถลดเวลาในการคำนวณได้อย่างน่าทึ่ง การหาเวกเตอร์ของการไล่สีแบบแบทช์นั้นค่อนข้างตรงไปตรงมา อย่างไรก็ตามในกรณีของการไล่ระดับสีแบบสุ่มสุ่มฉันไม่สามารถหาวิธีที่จะหลีกเลี่ยงการวนรอบนอกที่วนซ้ำผ่านตัวอย่างทั้งหมดในแต่ละยุค ไม่มีใครรู้ว่าการใช้เวกเตอร์ของการไล่ระดับสีแบบสุ่มสุ่ม? แก้ไข : ฉันถูกถามว่าทำไมฉันถึงต้องการใช้การไล่ระดับสีแบบออนไลน์ถ้าขนาดของชุดข้อมูลของฉันได้รับการแก้ไข จาก [1] เราจะเห็นได้ว่าการไล่ระดับสีแบบออนไลน์นั้นช้ากว่าการไล่ระดับสีแบบแบทช์เป็นค่าต่ำสุดของต้นทุนเชิงประจักษ์ อย่างไรก็ตามมันมาบรรจบกันได้เร็วขึ้นจนถึงค่าต่ำสุดที่คาดไว้ซึ่งวัดประสิทธิภาพทั่วไป ฉันต้องการทดสอบผลกระทบของผลลัพธ์ทางทฤษฎีเหล่านี้ในปัญหาเฉพาะของฉันโดยใช้การตรวจสอบข้าม หากไม่มีการใช้งาน vectorized แล้วโค้ดโคตรลาดของฉันออนไลน์จะช้ากว่าโคตรเกรเดียนต์ของแบทช์ ที่เพิ่มขึ้นอย่างน่าทึ่งเวลาที่ใช้ในกระบวนการตรวจสอบข้ามที่จะแล้วเสร็จ แก้ไข : ฉันรวมที่นี่ pseudocode ของการดำเนินการสืบเชื้อสายการไล่ระดับสีแบบออนไลน์ของฉันตามที่เพื่อนร้องขอ ฉันกำลังแก้ปัญหาการถดถอย Method: on-line gradient descent (regression) Input: X (nxp matrix; each line contains a training sample, …