Maximum Likelihood Estimation (Part 1)

Sirinart Tangruamsub
3 min readFeb 6, 2019

--

ในบทความนี้จะกล่าวถึงการประมาณค่าพารามิเตอร์ของโมเดลด้วยวิธีการของ 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

--

--