ฉันไม่ชัดเจนว่าทำไมเราถึงทำให้ภาพปกติสำหรับ CNN โดย (ภาพ - mean_image)? ขอบคุณ!
ฉันไม่ชัดเจนว่าทำไมเราถึงทำให้ภาพปกติสำหรับ CNN โดย (ภาพ - mean_image)? ขอบคุณ!
คำตอบ:
หมายเหตุแรก: คุณควรจะหารด้วยค่าเบี่ยงเบนมาตรฐานของแต่ละคุณสมบัติ (พิกเซล) ด้วยเช่นกัน การลบค่าเฉลี่ยศูนย์ทำให้อินพุตอยู่ที่ 0 และการหารด้วยค่าเบี่ยงเบนมาตรฐานทำให้ค่าคุณลักษณะใด ๆ ที่ปรับขนาดเป็นค่าเบี่ยงเบนมาตรฐานห่างจากค่าเฉลี่ย
เพื่อตอบคำถามของคุณ: พิจารณาว่าเครือข่ายประสาทเทียมเรียนรู้น้ำหนักของมันอย่างไร เรียนรู้ C (NN) โดยการเพิ่มเวกเตอร์ข้อผิดพลาดการไล่ระดับสีอย่างต่อเนื่อง (คูณด้วยอัตราการเรียนรู้) ที่คำนวณจาก backpropagation ไปยังเมทริกซ์น้ำหนักต่างๆทั่วทั้งเครือข่ายตามตัวอย่างการฝึกอบรม
สิ่งที่ควรสังเกตคือ "การคูณด้วยอัตราการเรียนรู้"
หากเราไม่ปรับขนาดเวกเตอร์การฝึกอบรมการป้อนข้อมูลของเราช่วงของการแจกแจงค่าคุณลักษณะของเราน่าจะแตกต่างกันสำหรับแต่ละคุณลักษณะดังนั้นอัตราการเรียนรู้จะทำให้เกิดการแก้ไขในแต่ละมิติที่จะแตกต่างกัน เราอาจชดเชยการแก้ไขในมิติน้ำหนักหนึ่งไปในขณะที่ชดเชยในอีกมิติหนึ่ง
สิ่งนี้ไม่เหมาะอย่างยิ่งเนื่องจากเราอาจพบว่าตัวเองอยู่ในสภาพที่สั่นสะเทือน (ไม่สามารถมุ่งไปที่จุดสูงสุดในพื้นที่ (น้ำหนัก) ราคา) หรือในสภาวะที่เคลื่อนไหวช้า (เดินทางช้าเกินไป
แน่นอนว่าเป็นไปได้ที่จะมีอัตราการเรียนรู้ต่อน้ำหนัก แต่ก็ยังมีพารามิเตอร์หลายมิติที่จะแนะนำในเครือข่ายที่ซับซ้อนอยู่แล้วซึ่งเราต้องเพิ่มประสิทธิภาพในการค้นหาด้วย โดยทั่วไปอัตราการเรียนรู้เป็นสเกลาร์
ดังนั้นเราจึงพยายามทำให้รูปภาพเป็นปกติก่อนที่จะใช้เป็นอินพุตในอัลกอริทึม NN (หรือการไล่ระดับสีใด ๆ )
(image - image.mean()) / (image.std() + 1e-8)