Maximum Likelihood Estimation (Part 1)

ในบทความนี้จะกล่าวถึงการประมาณค่าพารามิเตอร์ของโมเดลด้วยวิธีการของ Maximum Likelihood Estimation (MLE) อย่างที่หลายคนพอจะรู้อยู่แล้วว่าโมเดลต่างๆนั้น จะมีค่าพารามิเตอร์ของมันเอง ตัวอย่างเช่น ถ้าเป็น linear regression ซึ่งจะเป็นการหาความสัมพันธ์ของตัวแปร y และตัวแปร x ในรูปแบบสมการเส้นตรง หรือ y=wx+b ค่าพารามิเตอร์ของ linear regression นั้น ก็จะคือ ค่า w และ b นั่นเอง ซึ่งเมื่อค่า w และ b ต่างกัน ก็จะทำให้ได้ลักษณะของเส้นตรงที่ได้ต่างกันออกไป ดังรูป

ตัวอย่างของ Linear Regression ที่มีค่า w และ b แตกต่างกันออกไป (Source: https://towardsdatascience.com/probability-concepts-explained-maximum-likelihood-estimation-c7b4342fdbb1)

การที่เราจะตัดสินใจว่าจะควรจะประมาณค่าพารามิเตอร์ของโมเดลอย่างไร ก็จะต้องประมาณจากข้อมูลที่เรามี ซึ่งในบล็อกนี้จะขอกล่าวการประมาณค่าพารามิเตอร์ด้วย MLE

อะไรคือ Likelihood ?

ก่อนจะพูดถึง maximum likelihood estimation ก็ต้องเริ่มจากมารู้จักกับ likelihood กันก่อน จริงๆแล้วคำว่า likelihood กับ probability นี่จะถูกใช้ปนกันอยู่เสมอ แล้วจริงๆแล้วมันเหมือนกันหรือแตกต่างกันยังไงแน่

อธิบายแบบคร่าวๆ likelihood นั้น จะเป็นฟังก์ชันที่บอกว่าพารามิเตอร์แต่ละตัวมีความเป็นไปได้แค่ไหนจากข้อมูลที่เรามีอยู่แล้ว ในขณะที่ความน่าจะเป็นของ P(data|parameters) นั้น ก็จะเป็นฟังก์ชันที่บอกความน่าจะเป็นของข้อมูลบนพารามิเตอร์ที่เรามี

… อ่านแล้วงง ดูตัวอย่างดีกว่า ….

Likelihood : สมมุติถ้าเรามีข้อมูล X={10.1, 12.8. 9.3} แล้ว ความเป็นไปได้ที่พารามิเตอร์ของโมเดลเราจะมีค่าเป็น W₁ เป็นเท่าไหร่ แล้วถ้าเปลี่ยนพารามิเตอร์ของโมเดลเป็น W₂ ล่ะ ความเป็นไปได้จะเป็นเท่าไหร่ ตัว likelihood จะเป็นฟังก์ชันที่บอกความเป็นไปได้เหล่านั้น หรือก็คือ L(parameters=Wᵢ|data=X)

P(data|parameter) : ในทางกลับกันกับ likelihood สิ่งที่ P(data|parameter) สนใจนั้นคือ ถ้าเรากำหนดให้พารามิเตอร์เรามีค่าเป็น W แล้วความน่าจะเป็นที่ข้อมูลเรามันจะเป็น X จะอยู่ในช่วง [0.2,0.4] จะเป็นเท่าไหร่ แล้วถ้าข้อมูลเราเป็น X อยู่ในช่วง [0.7, 0.9] ล่ะ ความน่าจะเป็นที่โมเดลพารามิเตอร์เป็น W จะให้ข้อมูล X อยู่ในช่วงนี้หรือก็คือ P(data=X|parameters=W)

ดังนั้น likelihood L(parameters|data) และ P(data|parameters) นั้น แม้จะคล้ายกันมากแต่มันก็ต่างกัน ในขณะที่ likelihood เป็นฟังก์ชันของที่บอกความเป็นไปได้ของพารามิเตอร์ แต่ P(data|parameters) เป็นฟังก์ชันที่ตอบคำถามในเรื่องของความเป็นไปได้ของข้อมูล แต่ทั้งนี้ทั้งนั้นผลลัพธ์ของฟังก์ชัน likelihood ที่ parameter=W และ data=D นั้น จะมีค่าเท่ากับค่า P(data|parameters) ที่ parameter=W และ data=D เช่นกัน หรือก็คือ

ลองดูตัวอย่างของ likelihood เพิ่มเติมดีกว่า

สมมุติว่า เรามีข้อมูลของส่วนสูงของเด็กวัย 6 ขวบอยู่ 1 คน (จะมากกว่านี้ก็ได้ แต่ขอยกแค่คนเดียวละกันเพื่อความง่ายในการอธิบาย) เด็กคนนี้มีความสูงอยู่ที่ 120 เซนติเมตร และสมมุติเช่นกันว่าเราพอจะรู้ว่าความสูงของกลุ่มเด็ก 6 ขวบนั้นมีการกระจายตัว (distribution) แบบ Gaussian (หรือการกระจายแบบ Normal) แต่เราไม่รู้หรอกว่าการกระจายตัวจะหน้าตาเป็นยังไงจนกว่าเราจะรู้ค่าเฉลี่ยและค่าความแปรปรวนของการกระจายแบบ Gaussian นี้ (เพราะพารามิเตอร์ของการกระจายแบบ Gaussian คือ ค่าเฉลี่ย และค่าความแปรปรวน) ซึ่งค่าเฉลี่ยและค่าความแปรปรวนนี้เองคือพารามิเตอร์ที่เราต้องการจะหากัน

  • พารามิเตอร์ที่ต้องการหา คือ ค่าเฉลี่ย μ และค่าความแปรปรวน 𝜎² ของการกระจายตัวของความสูงของกลุ่มเด็ก 6 ขวบ
  • ข้อมูลที่เรามี คือ ความสูงของเด็ก 6 ขวบ 1 คน คือ 120 เซนติเมตร

สมมุติว่า ลองให้ค่าเฉลี่ยเป็น μ =110 และค่าความแปรปรวน 𝜎² = 10 เราก็จะได้การกระจายตัวออกมาประมาณนี้

การกระจายแบบ Gaussian ที่ μ =110 และ 𝜎² = 10

ในรูปคือการกระจายตัวของความสูงของเด็ก 6 ขวบที่ให้ (μ =110, 𝜎² = 10) เราจะสามารถคำนวณหา likelihood จากข้อมูลของเด็ก 6 ขวบที่เรามีได้ว่า L(μ =110, 𝜎² = 10| data={120 cm})ซึ่งจะมีค่าเป็นค่า Y1

ในขณะเดียวกัน ถ้าเราลองเปลี่ยนให้ μ =120 และค่าความแปรปรวน 𝜎² = 10 หรือ (μ =120, 𝜎² = 10) เราจะได้การกระจายตัวออกมาว่า

การกระจายแบบ Gaussian ที่ μ =120 และ 𝜎² = 10

เช่นกัน ค่า L(μ =120, 𝜎² = 10| data={120 cm}) จะมีค่าเป็น Y2 และเนื่องจากว่าที่ค่าความแปรปรวนที่เท่ากัน คือ 𝜎² = 10 นั้น ค่าเฉลี่ยเท่ากับ 120 เซนติเมตร จะมีความเป็นไปได้มากกว่าค่าเฉลี่ยเท่ากับ 110 เซนติเมตร (Y2 > Y1) หรือก็คือ

L(μ =120, 𝜎² = 10| data={120 cm}) > L(μ =110, 𝜎² = 10| data={120 cm})

Maximum Likelihood Estimation (MLE)

ตามที่ชื่อได้กล่าวไว้ MLE นั้นจะประมาณค่าพารามิเตอร์ของโมเดลโดยการที่เลือกค่า พารามิเตอร์ W ที่ทำให้ likelihood มีค่ามากที่สุด หรือก็คือ

สิ่งที่ได้จาก MLE นั้น จะเป็นค่าพารามิเตอร์ W ที่ดีที่สุดเพียงค่าเดียวออกมา (point estimate) จากข้อมูลที่เรามี

ตัวอย่างการหาพารามิเตอร์ของการกระจาย Gaussian ด้วย MLE

สมมุติว่าเรามีข้อมูลอยู่ 3 ตัว คือ X={15.1, 18.6, 14.4} โดยที่ x แต่ละตัวนี้เป็นอิสระต่อกัน (independent) และเรารู้ว่าข้อมูลสามตัวนี้ดึงมาจากการกระจายตัวแบบ Gaussian เพียงแต่เราไม่รู้ว่าการกระจายตัวที่ว่าจะหน้าตาเป็นยังไง เราต้องการจะหาหน้าตาของการกระจายตัวนี้ หรือก็คือ ค่าเฉลี่ย μ และค่าความแปรปรวน 𝜎²

จากที่กล่าวไปแล้วข้างต้นว่า

เราจึงลองมาหาค่า P(X|W) กัน โดยที่ W นั้นจะคือ μ และ 𝜎² ของการกระจายตัวของ Gaussian และเนื่องจากเรากำหนดให้ x เป็นอิสระต่อกัน เราสามารถเขียนได้ว่า

และจากสมการ pdf ของ Gaussian ที่ว่า

เราสามารถเขียนได้ว่า

จากนั้นเราก็ลองใส่ฟังก์ชันล็อกกาลิทึมลงไปจะได้ว่า

และเนื่องจากเราต้องการค่า μ และ 𝜎² ที่ทำให้ likelihood มีค่ามากที่สุด จากความรู้ในแคลคูลัสที่เราเคยเรียนมา เราก็สามารถทำได้โดยการทำการ differentiate เพื่อหาค่า maximum (และ minimum) ได้ โดยเริ่มจากการหาค่า μ ก่อน ถ้าเราต้องการหาค่า μ ที่ทำให้ likelihood มีค่ามากที่สุด เราก็ diff บน μ แล้วหาค่า μ จะได้ว่า

สำหรับการหาค่า 𝜎² ก็สามารถทำได้เช่นกันเดียว คือ differentiate ค่าของ ln(P(X|μ,𝜎²) บน 𝜎² แล้วจับเท่ากับ 0 แล้วก็หาค่า 𝜎²

จะเห็นว่าวิธีการของ MLE นั้นก็เริ่มจากการหาสมการ Likelihood ของพารามิเตอร์ที่เราต้องการจะประมาณ จากนั้นก็ตามหาค่าพารามิเตอร์ที่ทำให้ได้ค่าจากฟังก์ชัน Likelihood มากที่สุดบนข้อมูลของเรา และในบล็อกนี้ก็ได้ยกตัวอย่างการหาพารามิเตอร์ (ค่าเฉลี่ยและค่าความแปรปรวน) ของการกระจายตัวแบบ Gaussian ของข้อมูลที่เรามีด้วยวิธีการของ MLE ไปแล้ว อย่างไรก็ตาม เราก็มีตัวอย่างอีกตัวอย่างหนึ่งสำหรับการใช้ MLE ประมาณค่าพารามิเตอร์สำหรับ linear regression สามารถติดตามอ่านต่อได้ที่ Maximum Likelihood Estimation (Part 2): Linear Regression

    Sirinart Tangruamsub

    Written by

    Data Scientist at Agoda

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade