Optimization คืออะไร
Optimization คือการหาจุดที่เหมาะสมที่สุด (Optimal Point) สำหรับปัญหาใดปัญหาหนึ่ง ยกตัวอย่างเช่น
- การเงิน — ใช้สำหรับหาความเหมาะสมในการลงทุน
- การกิน — ใช้เลือกเมนูอาหารที่ไม่อ้วน แต่ได้รับสารอาหารครบครัน
- การส่งของ — หาเส้นทางที่คุ้มที่สุด
- การจัดของบนชั้น — จัดยังไงให้คนซื้อเยอะที่สุด ประหยัดพื้นที่สุด
ในบทความนี้ก็จะพูดถึงหนึ่งใน Algorithm สำหรับการทำ Optimization ตัวนึงที่ชื่อว่า Gradient Descent ซึ่งเป็น Algorithm ที่ใช้ค่อนข้างบ่อยในเรื่อง Machine Learning ครับ
Gradient Descent คืออะไร
หากเราเปรียบเทียบ Gradient Descent กับการปีนเขา ให้ลองนึกดูว่า เรากำลังยืนอยู่บนยอดเขา แล้วต้องการจะลงไปที่บ่อน้ำที่อยู่ในจุดต่ำที่สุดของเขา แต่เรามองไม่เห็นว่าไอบ่อน้ำเนี่ย มันต้องเดินไปทางไหน มันอยู่ตรงไหนจากจุดที่เรายืนอยู่ หนำซ้ำความไม่เท่ากันของสันเขาที่บดบังการมองเห็น ทำให้เรามองไม่เห็นว่าไปทางไหนถึงจะลงไปถึงจุดต่ำสุดได้ สิ่งที่เราจะทำได้ก็คือ มองไปรอบ ๆ แล้ว พิจารณาหาจุดต่ำสุดเท่าที่เห็น แล้วเลือกเดินไปทางนั้นเรื่อย ๆ จนถึงบ่อน้ำในที่สุด
หากเรามองเป็นภาพสามมิติ ก็จะเป็นเหมือนกราฟด้านล่างนี้
จากภาพ พื้นที่สีแดงคือยอดเขา (สูงมาก) และสีน้ำเงินคือบ่อน้ำ (ต่ำมาก) จะเห็นว่า หากเรายืนอยู่คนละจุดกัน ก็จะทำให้เราไปเจอบ่อน้ำคนละบ่อกัน ซึ่งไอบ่อน้ำเนี่ยเราเรียกมากว่า local minima ส่วนบ่อน้ำที่ต่ำที่สุดในโจทย์ของเราคือ global minima ครับ
นอกจากนี้เจ้า Gradient Descent ยังถูกแบ่งเป็นหลายแบบอีกด้วย
แบ่งตามการใช้งานข้อมูล
- Full Batch Gradient Descent Algorithm — คำนวนข้อมูลทั้งหมดทีเดียว
- Stochastic Gradient Descent Algorithm — คำนวนแค่บางส่วน (sample)
แบ่งตาม Differentiation technique
- First order differentiation
- Second order differentiation
ความยากของการใช้ Gradient Descent
บางทีการใช้งาน Gradient Descent อาจจะไม่ได้เหมาะกับข้อมูลทุกรูปแบบเสมอไป โดยอาจจะมีเหตุผลหลัก ๆ ที่เราต้องคำนึงก่อนเลือกใช้ดังนี้
- Data Challenges — ถ้าข้อมูลที่เราใช้มันเป็นปัญหาประเภท non-convex มันจะทำให้เราติดอยู่ใน local minima ทำให้ไปไม่ถึง Global minima นั่นเอง
- Implementation Challenges — ถ้าเครื่องที่เราใช้มี memory ไม่เพียงพอ หรือปัญหาทางด้าน hardware/software ที่ใช้ ทำให้การคำนวนมีความผิดพลาด ก็ทำให้เราไม่ได้ Global minima ที่แท้จริงเช่นกัน