public class AdaDelta<Model: Differentiable>: Optimizer
where
Model.TangentVector: VectorProtocol & PointwiseMultiplicative
& ElementaryFunctions & KeyPathIterable,
Model.TangentVector.VectorSpaceScalar == Float
เครื่องมือเพิ่มประสิทธิภาพ AdaDelta
ใช้อัลกอริธึมการปรับให้เหมาะสมของ AdaDelta AdaDelta เป็นวิธีการสุ่มไล่ระดับตามข้อมูลลำดับแรก โดยจะปรับอัตราการเรียนรู้ตามหน้าต่างที่เคลื่อนไหวของการอัพเดตการไล่ระดับสี แทนที่จะสะสมการไล่ระดับสีที่ผ่านมาทั้งหมด ดังนั้น AdaDelta ยังคงเรียนรู้ต่อไปแม้ว่าจะมีการอัพเดตหลายครั้งก็ตาม ปรับให้เข้ากับการเปลี่ยนแปลงไดนามิกของพื้นที่ปัญหาการปรับให้เหมาะสมได้เร็วขึ้น
อ้างอิง: “ADADELTA: วิธีอัตราการเรียนรู้แบบปรับตัว” (Zeiler, 2012)
คำประกาศ
public typealias Model = Model
อัตราการเรียนรู้
คำประกาศ
public var learningRate: Float
ปัจจัยการสลายตัว ซึ่งสอดคล้องกับเศษส่วนของการไล่ระดับสีที่ต้องคงไว้ในแต่ละขั้นตอนของเวลา
คำประกาศ
public var rho: Float
สเกลาร์ขนาดเล็กถูกเพิ่มเข้าไปในตัวส่วนเพื่อปรับปรุงความเสถียรของตัวเลข
คำประกาศ
public var epsilon: Float
อัตราการเรียนรู้ลดลง
คำประกาศ
public var decay: Float
ขั้นตอนปัจจุบัน
คำประกาศ
public var step: Int
ค่าเฉลี่ยที่สะสมและสลายตัวแบบเอกซ์โปเนนเชียลของการไล่ระดับสีกำลังสอง
คำประกาศ
public var averageSquared: Model.TangentVector
อัพเดตพารามิเตอร์สะสม
คำประกาศ
public var accumulatedDelta: Model.TangentVector
สร้างอินสแตนซ์สำหรับ
model
คำประกาศ
public init( for model: __shared Model, learningRate: Float = 1, rho: Float = 0.95, epsilon: Float = 1e-6, decay: Float = 0 )
พารามิเตอร์
learningRate
อัตราการเรียนรู้ ค่าเริ่มต้นคือ
1
rho
ปัจจัยการสลายตัว ค่าเริ่มต้นคือ
0.95
epsilon
สเกลาร์ขนาดเล็กถูกเพิ่มเข้าไปในตัวส่วนเพื่อปรับปรุงความเสถียรของตัวเลข ค่าเริ่มต้นคือ
1e-6
decay
อัตราการเรียนรู้ลดลง ค่าเริ่มต้นคือ
0
คำประกาศ
public required init(copying other: AdaDelta, to device: Device)