ขนาดของแบทช์ควรมีขนาดเท่าใดสำหรับการไล่ระดับสีแบบสุ่ม


49

คำตอบ:


72

ขนาด "ตัวอย่าง" คุณกำลังพูดถึงจะเรียกว่าเป็นชุดขนาด , Bพารามิเตอร์ขนาดแบทช์เป็นเพียงหนึ่งในพารามิเตอร์ไฮเปอร์ที่คุณจะปรับเมื่อคุณฝึกอบรมเครือข่ายประสาทเทียมด้วย Stochastic Gradient Descent (SGD) และขึ้นอยู่กับข้อมูล วิธีการพื้นฐานที่สุดของการค้นหาพารามิเตอร์มากเกินไปคือทำการค้นหากริดผ่านอัตราการเรียนรู้และขนาดแบทช์เพื่อหาคู่ที่ทำให้เครือข่ายมาบรรจบกันB

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

θt+1θtϵ(t)1Bb=0B1L(θ,mb)θ
  1. การไล่ระดับสีแบบแบตช์B=|x|
  2. เชื้อสายการไล่ระดับสีแบบสุ่มสุ่มออนไลน์: B=1
  3. โคตรลาดลงของมินิแบทช์: แต่B < | x | .B>1B<|x|

โปรดทราบว่าด้วย 1 ฟังก์ชันการสูญเสียไม่ใช่ตัวแปรสุ่มอีกต่อไปและไม่ใช่การประมาณสุ่ม

SGD รวมตัวกันเร็วกว่าการไล่ระดับสีแบบ "แบทช์" เนื่องจากจะอัปเดตตุ้มน้ำหนักหลังจากดูชุดย่อยของการฝึกอบรมที่เลือกแบบสุ่ม ให้ได้รับการฝึกอบรมของเราตั้งและให้ x ขนาดแบทช์Bเป็นเพียงความสำคัญของm : B = | m | .xmxBmB=|m|

การไล่ระดับสีแบบแบทช์จะอัปเดตตุ้มน้ำหนักโดยใช้การไล่ระดับสีของชุดข้อมูลทั้งหมดx ; ขณะ SGD ปรับปรุงน้ำหนักโดยใช้ค่าเฉลี่ยของการไล่ระดับสีสำหรับมินิแบทช์เมตร (การใช้ค่าเฉลี่ยซึ่งตรงข้ามกับผลรวมจะป้องกันอัลกอริทึมจากการทำตามขั้นตอนที่มีขนาดใหญ่เกินไปถ้าชุดข้อมูลมีขนาดใหญ่มากมิฉะนั้นคุณจะต้องปรับอัตราการเรียนรู้ตามขนาดของชุดข้อมูล) การประมาณแบบสุ่มของการไล่ระดับสีที่ใช้ใน SGD เท่ากับการไล่ระดับสีแบบกำหนดค่าที่ใช้ในการไล่ระดับสีแบบแบทช์ E [ L S G D ( θ , m ) ] = θxm )E[LSGD(θ,m)]=L(θ,x)

ทุกครั้งที่เราใช้เวลาตัวอย่างและการปรับปรุงน้ำหนักของเราจะเรียกว่ามินิแบทช์ เวลาที่เราทำงานผ่านชุดทั้งแต่ละคนก็เรียกว่ายุค

สมมุติว่าเรามีข้อมูลเวกเตอร์ , เวกเตอร์น้ำหนักเริ่มต้นที่กำหนดพารามิเตอร์เครือข่ายประสาทของเรา, θ 0 : R S , และฟังก์ชั่นการสูญเสียL ( θ , x ) : R SR DR Sที่เรา กำลังพยายามลดให้น้อยที่สุด หากเรามีตัวอย่างการฝึกอบรมTและขนาดชุดBแล้วเราสามารถแยกตัวอย่างการฝึกอบรมเหล่านั้นออกเป็น C mini-batches:x:RDθ0:RSL(θ,x):RSRDRSTB

C=T/B

สำหรับความเรียบง่ายเราสามารถสันนิษฐานได้ว่า T สามารถแบ่งได้อย่างทั่วถึงโดย B แม้ว่าในกรณีนี้จะไม่เป็นเช่นนั้นบ่อยครั้งที่มันไม่ได้เป็นเช่นนั้นน้ำหนักที่เหมาะสมควรถูกกำหนดให้กับ mini-batch แต่ละชุด

อัลกอริทึมซ้ำสำหรับ SGD ที่มี epochs แสดงไว้ด้านล่าง:M

t0while t<Mθt+1θtϵ(t)1Bb=0B1L(θ,mb)θtt+1

หมายเหตุ: ในชีวิตจริงเรากำลังอ่านข้อมูลตัวอย่างการฝึกอบรมเหล่านี้จากหน่วยความจำและเนื่องจากแคชการดึงข้อมูลล่วงหน้าและเทคนิคหน่วยความจำอื่น ๆ ที่คอมพิวเตอร์ของคุณอัลกอริทึมของคุณจะทำงานได้เร็วขึ้นหากหน่วยความจำเข้าถึงรวมกันเช่นเมื่อคุณอ่านหน่วยความจำ ตามลำดับและอย่ากระโดดไปมาแบบสุ่ม ดังนั้นการใช้งาน SGD ส่วนใหญ่จะเป็นการสับเปลี่ยนชุดข้อมูลแล้วโหลดตัวอย่างลงในหน่วยความจำตามลำดับที่จะอ่าน

พารามิเตอร์หลักสำหรับวานิลลา (ไม่มีโมเมนตัม) SGD อธิบายไว้ข้างต้นคือ:

  1. อัตราการเรียนรู้: ϵ

ฉันชอบคิดว่า epsilon เป็นหน้าที่ตั้งแต่ยุคจนถึงอัตราการเรียนรู้ ฟังก์ชั่นนี้จะเรียกว่าช่วงเวลาที่อัตราการเรียนรู้

ϵ(t):NR

หากคุณต้องการให้อัตราการเรียนรู้คงที่เพียงกำหนด epsilon เป็นฟังก์ชันคงที่

  1. ขนาดแบทช์

ขนาดแบทช์จะกำหนดจำนวนตัวอย่างที่คุณดูก่อนทำการอัปเดตน้ำหนัก ยิ่งน้อยก็จะยิ่งมีเสียงสัญญาณการฝึกอบรมที่มากขึ้นเท่าไรก็จะยิ่งมีสัญญาณที่สูงขึ้นและยิ่งใช้เวลาในการคำนวณการไล่ระดับสีในแต่ละขั้นตอนนานเท่าใด

การอ้างอิงและการอ่านเพิ่มเติม:

  1. การเรียนรู้โดยใช้การไล่ระดับสีเบื้องต้น
  2. คำแนะนำที่เป็นประโยชน์สำหรับการฝึกอบรมสถาปัตยกรรมเชิงลึก
  3. การฝึกอบรม Mini-batch ที่มีประสิทธิภาพสำหรับการเพิ่มประสิทธิภาพ Stochastic

1
For simplicity we can assume that D is evenly divisible by B. คุณไม่ได้หมายความว่าTควรหารด้วย B อย่างสม่ำเสมอหรือไม่?
แอนทอน

4
และเพื่อตอบคำถาม OP จริง ๆ คุณสามารถเพิ่มB is typically chosen between 1 and a few hundreds, e.g. B = 32 is a good default value, with values above 10 taking advantage of the speed-up of matrix-matrix products over matrix-vector products.(จากรายงานของ Bengio ในปี 2012)
Antoine

@sabalaba คำตอบที่ดี แต่ไม่ใช่ในสมการ "อัลกอริทึมซ้ำสำหรับ SGD ที่มี M epochs แสดงไว้ด้านล่าง" เราจะอัปเดตน้ำหนักหลังจากทำงานมากกว่ามินิแต่ละแบทช์ กล่าวอีกนัยหนึ่งไม่ควรมีลูปอื่น (เหนือแบตมินิ C) ภายในลูปของยุคคือขณะที่ t <M
Kaushik Acharya

2
ในสถิติตัวอย่างประกอบด้วยการสังเกตหลายครั้ง ดังนั้นขนาดตัวอย่างถูกตีความอย่างถูกต้องโดยนักสถิติ ในวิทยาการคอมพิวเตอร์ (โดยเฉพาะอย่างยิ่งในการเรียนรู้ของเครื่อง) ตัวอย่างเป็นข้อสังเกตเดียวและชุดคือชุดของตัวอย่าง อาจสร้างความสับสนเล็กน้อย ตัวอย่างสำหรับนักสถิติคือกลุ่มนักวิทยาศาสตร์ด้านข้อมูล;) ที่มา: en.wikipedia.org/wiki/Sample_size_determination
Oleg Melnikov

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