Learning Rate Calculator: แปลงค่า 1e-3, 0.001 และ 0.1% ได้ในไม่กี่วินาที
รู้จักกับ Learning Rate Calculator เครื่องมือแปลงค่า learning rate ระหว่างรูปแบบ decimal, scientific notation และ percentage เปรียบเทียบค่า default ของ optimizer ต่างๆ พร้อม preview ตาราง decay schedule และ copy snippet สำหรับ PyTorch หรือ TensorFlow ได้ทันที
Table of Contents
ถ้าคุณเคยเทรนโมเดล deep learning มาก่อน คงเคยเจอกับค่า learning rate ที่เขียนกันคนละแบบ ใน paper วิจัยเขียนว่า 1e-3 ใน documentation ของ framework เขียนว่า 0.001 ส่วนบางเครื่องมือแสดงผลเป็น 0.1% ทั้งสามค่านี้คือตัวเลขเดียวกัน แต่การสับสนระหว่าง format เป็นเรื่องที่เกิดขึ้นได้ตลอดเวลา Learning Rate Calculator คือเครื่องมือฟรีที่ช่วยแปลงค่า learning rate ระหว่าง decimal, scientific notation และ percentage ได้ในไม่กี่วินาที พร้อมเปรียบเทียบค่า default ของ optimizer ยอดนิยม preview ตาราง decay schedule และ copy code snippet สำหรับ PyTorch กับ TensorFlow/Keras ได้ทันที
จุดเด่นของเครื่องมือนี้คือทำงานแบบ client-side 100% ไม่ต้องสมัครสมาชิก ไม่ต้องส่งข้อมูลไปไหน แค่เปิดหน้าเว็บ พิมพ์ค่าที่ต้องการ เช่น 0.001, 1e-3 หรือ 0.1% ระบบจะ normalize ค่าให้ทันทีแล้วแสดงทุกรูปแบบพร้อมกัน เหมาะมากสำหรับใช้ตรวจค่าก่อนเริ่มเทรนจริง หรือตอนอ่าน paper แล้วต้องแปลงค่ามาเป็น code
ในบทความนี้ เราจะพาไปดูวิธีใช้งานเครื่องมือแบบทีละขั้นตอน พร้อมอธิบายว่าทำไม learning rate แต่ละ format ถึงสำคัญ วิธีคิด effective step size ของ optimizer ตระกูล Adam และความแตกต่างระหว่าง linear decay กับ cosine annealing พร้อมสูตรจริงที่คุณนำไปใช้ได้ทันที
ทำไมต้องใช้ Learning Rate Calculator?
- ค่าเดียวกัน แต่เขียนกันคนละแบบ: ใน paper วิจัยนิยมเขียน 1e-3 แต่ PyTorch docs ใช้ 0.001 และบาง GUI แสดงเป็น 0.1% การแปลงค่าอย่างรวดเร็วช่วยป้องกันการอ่านค่าผิดตั้งแต่ต้นทาง
- พิมพ์ผิดแค่ศูนย์เดียว โมเดลพังได้: ถ้าตั้งใจใช้ 1e-3 แต่พิมพ์เป็น 0.1 ค่าจะต่างกัน 100 เท่า เทรนแล้วอาจ diverge ทันที หรือถ้าค่าน้อยเกินไปโมเดลก็ไม่เรียนรู้อะไรเลย การเช็คค่ากับเครื่องมือก่อน paste ลง code ช่วยลดความเสี่ยงนี้
- เทียบค่า default ของ optimizer ได้ทันที: optimizer แต่ละตัวมีค่า default ต่างกัน เช่น Adam และ AdamW ใช้ 1e-3 ส่วน SGD ใช้ 1e-2 เครื่องมือมีตารางเปรียบเทียบครบทุกตัวให้เลือกดูได้ทันที
- เห็นภาพ schedule ก่อนเทรนจริง: ตาราง preview 10 steps แสดงค่าที่ลดลงแต่ละขั้นของทั้ง linear decay และ cosine annealing ทำให้วางแผนการเทรนได้โดยไม่ต้องเขียนโค้ดลองก่อน
- ได้ snippet ที่ paste ได้เลย: ไม่ต้องจำ syntax ของแต่ละ framework เครื่องมือมี code สำเร็จรูปสำหรับ PyTorch และ TensorFlow/Keras พร้อมปุ่ม copy ให้ทุกค่า
- เร็ว ฟรี และเป็นส่วนตัว: ทุกอย่างรันใน browser ทั้งหมด ไม่ต้องล็อกอิน ไม่ต้องรอ server ไม่มีขีดจำกัดการใช้งาน
ฟีเจอร์เด่น
| ฟีเจอร์ | สิ่งที่ได้ |
|---|---|
| แปลงค่าทันที | พิมพ์ค่ารูปแบบไหนก็ได้ (decimal, scientific, percentage) แล้วเห็นทั้ง 3 รูปแบบพร้อมกัน |
| ปุ่ม preset 6 ปุ่ม | ค่าที่ใช้บ่อย: 1, 1e-1, 0.01, 1e-3, 0.0001, 5e-5 |
| ตาราง optimizer defaults | เปรียบเทียบค่า default ของ Adam, AdamW, SGD, Momentum, RMSProp, Adagrad |
| Effective step ของ Adam | ประมาณการ effective step size ของตระกูล Adam พร้อม batch scaling ที่ batch size 256 |
| Schedule preview | ตาราง 10 steps เปรียบเทียบ linear decay กับ cosine annealing |
| Framework snippets | โค้ดพร้อม paste สำหรับ PyTorch และ TensorFlow/Keras |
| Copy ทุกค่า | คลิกเดียว copy ได้ทันที พร้อมข้อความยืนยัน "Copied!" |
| Client-side 100% | ฟรี ไม่ต้องสมัคร ทำงานใน browser ทั้งหมด |
- Input ฉลาด: ค่าที่ลงท้ายด้วย % จะถูกหารด้วย 100 ให้อัตโนมัติ (เช่น 0.1% → 0.001) และ scientific notation อย่าง 1e-3 หรือ 5e-5 ก็ถูก parse ได้โดยตรง ไม่ต้องแปลงอะไรเองก่อน
- ค่าพร้อม paste: แผงแปลงค่าแสดงค่า ready-to-paste สำหรับทั้ง Keras และ PyTorch ทำให้คัดลอกไปวางในโค้ดได้ทันทีโดยไม่ต้องกังวลเรื่องรูปแบบตัวเลข
- ตาราง schedule ใช้สูตรจริง: preview ใช้สูตรจริงของ linear decay และ cosine annealing ค่าที่เห็นในตารางจึงตรงกับสิ่งที่ scheduler จะสร้างระหว่างเทรนจริงทุกประการ
วิธีใช้งาน
- พิมพ์ค่า learning rate ในรูปแบบไหนก็ได้ — จะพิมพ์ 0.001, 1e-3 หรือ 0.1% ลงในช่อง input ระบบจะ normalize ค่าให้ทันที หรือเลือกค่าที่ใช้บ่อยจากปุ่ม preset ทั้ง 6 ปุ่ม (1, 1e-1, 0.01, 1e-3, 0.0001, 5e-5) ได้อย่างรวดเร็ว
- ดูแผงแปลงค่า — เครื่องมือจะแสดงค่าในรูปแบบ decimal (0.001), scientific notation (1e-3) และ percentage (0.1%) พร้อมกัน พร้อมค่า ready-to-paste สำหรับ Keras และ PyTorch
- เปรียบเทียบกับ optimizer defaults — ดูตารางค่า default ของ optimizer ยอดนิยม 6 ตัว (Adam, AdamW, SGD, Momentum, RMSProp, Adagrad) เพื่อเช็คว่าค่าที่คุณใช้สูงหรือต่ำกว่าค่ามาตรฐานแค่ไหน
- Preview schedule — ดูตาราง 10 steps เปรียบเทียบระหว่าง linear decay กับ cosine annealing เพื่อเห็นว่า learning rate จะลดลงอย่างไรในแต่ละขั้นตอน แล้วเลือก schedule ที่เหมาะกับจำนวน epoch ของคุณ
- Copy snippet ไปใช้ในโค้ด — กดปุ่ม copy ข้างค่าที่ต้องการ หรือ copy code snippet เต็มรูปแบบสำหรับ PyTorch หรือ TensorFlow/Keras แล้ว paste เข้าโปรเจกต์ได้ทันที
เข้าใจ Learning Rate Formats และ Schedules
Decimal, Scientific Notation และ Percentage
ค่า learning rate เดียวกันเขียนได้ 3 รูปแบบหลัก:
decimal: 0.001 scientific notation: 1e-3 percentage: 0.1%
เหตุผลที่วงการวิจัยนิยม scientific notation เป็นเพราะ learning rate มักเป็นค่าที่เล็กมากและครอบคลุมหลายอันดับขนาด (order of magnitude) ตั้งแต่ 1, 0.1, 0.01, 0.001 ไปจนถึง 0.00001 การเขียน 1e-3 หรือ 5e-5 จึงอ่านง่ายและผิดน้อยกว่าการนับศูนย์ใน 0.00005 แถมยังเป็นรูปแบบมาตรฐานในตาราง hyperparameter ของ paper ส่วนใหญ่ด้วย ในขณะที่ percentage เป็นรูปแบบที่พบในเครื่องมือ GUI บางตัวและ tutorial ยุคเก่า เช่น 0.1% หมายถึง 0.1/100 = 0.001 ซึ่งเครื่องมือตัวนี้จัดการให้หมดโดยอัตโนมัติ
Effective Step Size ของ Adam
ขนาดการอัปเดตจริงของ optimizer ตระกูล Adam ไม่ได้เท่ากับ learning rate ตรง ๆ เพราะ Adam นำ gradient ไปหารด้วยรากที่สองของค่าประมาณ second moment:
effective step ≈ lr / sqrt(v̂)
เมื่อ v̂ = 1 (กรณี normalized) จะได้ effective step = lr พอดี เครื่องมือแสดงค่านี้พร้อมค่า scaled ด้วย sqrt(batch_size) ที่ batch size 256 เพื่อช่วยสร้าง intuition เรื่อง batch scaling — เมื่อคุณเพิ่ม batch size มักต้องการ scale learning rate ขึ้นตาม (แบบ linear หรือ sqrt) และแผงนี้ช่วยประมาณค่าในทิศทางนั้นได้อย่างรวดเร็ว
Linear Decay vs Cosine Annealing
เครื่องมือ preview schedule ยอดนิยม 2 แบบด้วยสูตรจริง:
linear decay: lr_i = lr × (1 − i/steps) cosine annealing: lr_i = 0.5 × lr × (1 + cos(π · i / (steps − 1)))
- Linear decay ลด learning rate ลงเป็นเส้นตรงจากค่าเริ่มต้นจนถึงศูนย์ เข้าใจง่ายและคาดเดาได้ แต่ค่าอาจลดลงเร็วเกินไปในช่วงกลางของการเทรน
- Cosine annealing ลดช้า ๆ ในช่วงแรก เร่งขึ้นช่วงกลาง แล้วชะลอลงอีกครั้งเมื่อใกล้จบ เป็นรูปทรงที่ทำงานได้ดีกับงานหลายประเภท และเป็นที่นิยมทั้งในการ fine-tune และเทรนตั้งแต่ต้น
ตาราง 10 steps ในเครื่องมือช่วยให้คุณเห็นค่าแต่ละขั้นของทั้งสองแบบเคียงกัน ทำให้ตัดสินใจเลือก schedule ได้เหมาะกับจำนวน epoch และการเทรนของคุณ
use cases ในทางปฏิบัติ
Fine-tune Pretrained Model
การ fine-tune โมเดล transformer เช่น BERT มักใช้ learning rate ประมาณ 5e-5 ซึ่งเล็กกว่าค่า default ของ Adam (1e-3) ถึง 20 เท่า เพียงพิมพ์ 5e-5 หรือ กดปุ่ม preset คุณจะได้ค่า decimal 0.00005 และ percentage 0.005% พร้อม snippet สำหรับ PyTorch ที่ paste ลง training script ได้ทันที ไม่ต้องนั่งนับศูนย์ให้เสี่ยงพิมพ์ผิด
เปลี่ยนจาก SGD ไป Adam
ถ้าโค้ดเดิมใช้ SGD ด้วย lr = 0.01 แล้วอยากลองเปลี่ยนเป็น Adam ค่า default ของทั้งสองตัวต่างกัน 10 เท่า (SGD ที่ 1e-2, Adam ที่ 1e-3) เพียงพิมพ์ 1e-2 แล้วดูตาราง optimizer defaults ประกอบ คุณจะเห็นความแตกต่างชัดเจนก่อนแก้โค้ด ช่วยหลีกเลี่ยงปัญหาคลาสสิก "เปลี่ยน optimizer แล้วโมเดลพัง" เพราะใช้ค่าเดิมโดยไม่ปรับ
วางแผน Cosine Annealing สำหรับ Training ยาว
สมมติว่าคุณจะเทรน 100 epochs และต้องการใช้ cosine annealing เริ่มจาก lr 1e-3 ให้ preview schedule ในเครื่องมือดูก่อนว่าค่าจะลดลงเป็นขั้นอย่างไร จะช่วยให้คุณตัดสินใจได้ว่าควรเพิ่ม warmup หรือตั้ง min_lr เท่าไร และตรวจสอบได้ว่าค่าท้าย training เล็กพอสำหรับการ converge ที่เสถียร
อ่านค่าจาก Paper แล้วแปลงเป็น Code
เมื่อ paper เขียนว่า "we use a learning rate of 1e-3 with cosine decay" เพียงพิมพ์ 1e-3 เข้าเครื่องมือ คุณจะเห็นทุกรูปแบบทันที แล้ว copy snippet อย่าง learning_rate=1e-3 สำหรับ TensorFlow/Keras ไปวางในโค้ดได้เลย ไม่ต้องแปลงเองให้เสียเวลาหรือเสี่ยง typo
Best Practices
- เริ่มจากค่า default ของ optimizer: ถ้าไม่แน่ใจ ให้เริ่มจากค่า default (Adam/AdamW ที่ 1e-3, SGD ที่ 1e-2) แล้วค่อยปรับทีละ 10 เท่า (÷10 หรือ ×10) จะเร็วและเป็นระบบกว่าการสุ่มค่า
- ตรวจ format ก่อน paste ทุกครั้ง: ตรวจสอบว่าค่าที่ paste เป็นรูปแบบที่ framework คาดหวัง — PyTorch และ Keras ใช้ decimal (เช่น 0.001) ไม่ใช่ percentage
- Fine-tuning ต้องใช้ค่าเล็กกว่าเทรนตั้งแต่ต้น: โดยทั่วไปเล็กกว่า 10–100 เท่า (เช่น 5e-5 ถึง 1e-4) เพื่อไม่ให้ทำลายน้ำหนักที่ pretrained มาแล้ว
- จับคู่ schedule กับจำนวน epoch: decay schedule ขึ้นกับจำนวน steps ทั้งหมด ถ้าเปลี่ยนจำนวน epoch ควรกลับมาดูตาราง schedule ใหม่ทุกครั้ง
- เพิ่ม batch size อย่าลืมพิจารณา scale lr: กฎที่นิยมคือ scale แบบ linear หรือ sqrt(batch_size) ใช้แผง effective step ในเครื่องมือช่วยประมาณค่าได้อย่างรวดเร็ว
- บันทึกค่า learning rate จริงระหว่างเทรน: เมื่อใช้ scheduler ควร log ค่า lr แต่ละ step ไว้ด้วย เพื่อยืนยันว่าค่าจริงตรงกับ schedule ที่วางแผนไว้
เริ่มปรับ Hyperparameter อย่างมั่นใจ
ไม่ว่าคุณจะกำลัง fine-tune โมเดล transformer, เทรนโมเดลตั้งแต่ต้น หรืออ่าน paper แล้วต้องแปลงค่ามาเป็นโค้ด Learning Rate Calculator ช่วยให้คุณแปลงค่า เปรียบเทียบ optimizer defaults, preview schedule และ copy snippet ได้ครบในหน้าเดียว ฟรี ไม่ต้องสมัครสมาชิก และทำงานแบบ client-side 100% ลองเปิดใช้ก่อนรัน training ครั้งถัดไป แล้วคุณจะไม่ต้องนั่งนับศูนย์หรือเดา format อีกต่อไป
เครื่องมือที่เกี่ยวข้อง:
- Epoch Batch Converter — แปลง Unix timestamp หลายค่าพร้อมกันเป็นวันที่อ่านง่าย เลือก timezone ได้ และ export เป็น CSV
- Matrix Calculator — คำนวณเมทริกซ์พื้นฐาน มีประโยชน์เมื่อต้องการเข้าใจคณิตศาสตร์เบื้องหลัง neural network
- Statistics Calculator — คำนวณค่าสถิติ เช่น ค่าเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน เหมาะสำหรับการวิเคราะห์ผลลัพธ์การทดลอง
ขอให้สนุกกับการปรับ hyperparameter!