Bayesian Neural Network (ตอนที่ 1): ทฤษฎีความน่าจะเป็นแบบเบย์ๆ

Engkarat Techapanurak
3 min readApr 7, 2018

--

  • ตอนที่ 1 ทฤษฎีความน่าจะเป็นแบบเบย์ๆ - https://goo.gl/DkC22U
  • ตอนที่ 2 ช้าก่อน!! มาทำความเข้าใจเรื่อง Machine Learning กันก่อน - https://goo.gl/2vEHKm
  • ตอนที่ 3 อะไรคือ Deep Learning และอะไรคือ Neural Network ฉบับมือใหม่ - https://goo.gl/yjTsLs
  • ตอนที่ 4 Model ที่เรียนรู้ด้วย Probabilistic Distribution - https://goo.gl/UM3bDD

ช่วงสองสัปดาห์ที่ผ่านมาผมได้ลองศึกษาเรื่อง Bayesian Theory สำหรับใช้ในการพยากรณ์ร่วมกับ Neural Network อย่างจริงจัง ทำให้ต้องกลับมาทบทวนเรื่องต่างๆ ที่เป็นพื้นฐานของทฤษฎีความน่าจะเป็น และ Bayesian Probability ซึ่งเป็นเรื่องหนึ่งที่ได้รับความนิยมมากในงานวิจัยช่วงนี้เรื่องหนึ่ง เนื้อหาโดยทั่วไปก็ไม่ได้มีอะไรซับซ้อน แต่ก็ยังสามารถเอามาประยุกต์ในเรื่องต่างๆ ได้มากมาย ต้องชื่นชมเขาจริงๆ ครับ

Thomas Bayes ภาพจาก https://en.wikipedia.org/wiki/Thomas_Bayes

ที่จริงแล้วก็ต้องยกความดีให้นักคิดนักวิจัยท่านอื่นๆ ด้วยที่ได้นำทฤษฎีเบย์มาศึกษาแล้วต่อยอดจนมาถึงปัจจุบันซึ่งเป็นยุคของ Machine Learning ซึ่งก็ยังมีนักวิจัยหลายท่านเอาความรู้ด้านนี้มาใช้ หนึ่งในนั้นที่ได้รับการพูดถึงอย่างมากก็คือ Bayesian Neural Network ซึ่งเป็นการประมาณค่า Parameter ของ Neural Network ด้วยความน่าจะเป็นในการเกิด Parameter ต่างๆ

บางท่านที่อ่านมาถึงตรงนี้แล้วอาจจะงง ไม่เข้าใจว่าอะไรคืออะไร Neural Network นั้นคืออะไรนะ เกี่ยวอะไรกับสมองของคนเรารึเปล่า หรือว่า Parameter เนี่ยชื่อคุ้นๆ เหมือนเคยได้ยินสมัยเราเรียนวิชาสถิติและความน่าจะเป็นเลย แต่จำไม่ได้แล้วแหละ เพราะฉะนั้น วันนี้ผมจะเริ่มจากพื้นฐานของ Bayesian แบบผู้เริ่มต้นเลย เพื่อที่เราจะค่อยๆ ปูพื้นฐานไปเรื่อยๆ จนสุดท้ายเราจะได้มาเรียนรู้เพื่อทำความเข้าใจ Bayesian Network กัน

ทฤษฎีความน่าจะเป็นแบบเบย์ (แบบเบย์ๆ)

ความน่าจะเป็นแบบเบย์ เป็นทฤษฎีที่พูดถึงความน่าจะเป็นในการเกิดสิ่งหนึ่ง ก็ต่อเมื่ออีกสิ่งที่ได้เกิดขึ้น หรือที่เรียกกันว่า “Given” ซึ่งถ้าใครได้เรียนมา ลักษณะของการเขียนสัญลักษณ์ คือ P(A|B) อ่านว่า ความน่าจะเป็นของเหตุการณ์ A เมื่อเกิดเหตุการณ์ B แล้ว

สมมุติว่า เราได้ไปร่วมงานวันเกิดของเพื่อนเรา ซึ่งมีคนมาร่วมทั้งหมด 20 คน แล้วมีความจับฉลากแจกตั๋วล่องเรือสำราญ 5 ใบสำหรับแขกที่มาในงาน

ภาพเรือไททานิค จาก https://teen.mthai.com/variety/80240.html

ผู้จัดงานเลยทำฉลากใส่กล่อง 2 ใบ เราจะเรียกมันว่ากล่อง X และ Y ดังนั้นจะสรุปความน่าจะเป็นได้ดังนี้

  • เหตุการณ์ A คือ การเลือกกล่อง ซึ่งมีสมาชิกคือ A = {กล่อง X, กล่อง Y}
  • เหตุการณ์ B คือ การเลือกจับฉลาก ซึ่งมีสมาชิกคือ B = {ได้ตั๋วเรือ, ไม่ได้ตั๋วเรือ}
  • ความน่าจะเป็นของการเลือกกล่อง X และกล่อง Y คือ 1/2 และ 1/2 ตามลำดับ
  • ความน่าจะเป็นของการได้ตั๋วเรือ และไม่ได้ตั๋วเรือ คือ 5/20 และ 15/20 ตามลำดับ
  • เขียนเป็นสัญลักษณ์ได้ เช่น P(A=กล่อง X) = 1/2 หรือ P(B=ไม่ได้ตั๋วเรือ) = 15/20 เป็นต้น

แต่ทีนี้ หลังจากที่เราได้จับฉลากแล้ว ผลปรากฎว่าไม่ได้ตั๋ว ตอนท้ายงานก็เลยไปคุยกับเพื่อนที่เป็นคนจัดงาน ทำให้รู้ว่ากล่อง X และกล่อง Y มีการใส่ตั๋วเรือเอาไว้ไม่เท่ากัน กล่อง X มีตั๋วอยู่ 3 ใบ จากฉลาก 10 ใบ และกล่อง Y มีตั๋ว 2 ใบจาก 10 ใบ ซึ่งจากข้อมูลนี้ จะสรุปได้ดังนี้

  • ความน่าจะเป็นของการได้ตั๋วเรือ เมื่อเลือกกล่อง X คือ P(B=ได้ตั๋วเรือ|A=กล่อง X) = 3/10
  • ความน่าจะเป็นของการได้ตั๋วเรือ เมื่อเลือกกล่อง X คือ P(B=ไม่ได้ตั๋วเรือ|A=กล่อง X) = 7/10
  • ความน่าจะเป็นของการได้ตั๋วเรือ เมื่อเลือกกล่อง Y คือ P(B=ได้ตั๋วเรือ|A=กล่อง Y) = 2/10
  • ความน่าจะเป็นของการได้ตั๋วเรือ เมื่อเลือกกล่อง Y คือ P(B=ไม่ได้ตั๋วเรือ|A=กล่อง Y) = 8/10

ถ้าเรามาสรุปความน่าจะเป็นในภาพรวมแล้ว เราจะสามารถแบ่งออกเป็นกรณีต่างๆ โดยใช้เงื่อนไขจากเหตุการณ์ A และ B พร้อมๆ กัน (Joint Probability) ได้ดังต่อไปนี้

  • ได้ตั๋วเรือ และมาจากกล่อง X : P(B=ได้ตั๋วเรือ, A=กล่อง X) = 3/20
  • ไม่ได้ตั๋วเรือ และมาจากกล่อง X : P(B=ไม่ได้ตั๋วเรือ, A=กล่อง X) = 7/20
  • ได้ตั๋วเรือ และมาจากกล่อง Y : P(B=ได้ตั๋วเรือ, A=กล่อง Y) = 2/20
  • ไม่ได้ตั๋วเรือ และมาจากกล่อง Y : P(B=ไม่ได้ตั๋วเรือ, A=กล่อง Y) = 8/20

จะเห็นว่า Joint Probability จะเขียนด้วยเครื่องหมาย “,” (comma) ซึ่งไม่เหมือนกับความน่าจะเป็นแบบมีเงื่อนไขที่ใช้ “|” (อ่านว่า Given)

ซึ่งจากเหตุการณ์ทั้งหมด เบย์ได้ทำการสรุปความสัมพันธ์เอาไว้ดังนี้

  • P(A, B) = P(A|B) x P(B)
  • P(B, A) = P(B|A) x P(A)
  • เมื่อ P(A, B) = P(B, A) จะได้

P(A|B) x P(B) = P(A, B) = P(B|A) x P(A)

และเมื่อ P(A|B) x P(B) = P(B|A) x P(A) เมื่อย้ายข้างสมการ จะได้

P(A|B) = P(B|A) x P(A) / P(B)

ซึ่งเมื่ออ่านมาถึงตรงนี้ หลายคนอาจสงสัยว่า แล้วเราจะเอามันไปใช้ประโยชน์อะไรได้ล่ะ ทำไมเราถึงต้องรู้มันด้วย

กลับมาถึงเหตุการณ์ปาร์ตี้วันเกิดในตอนแรก หลังจากที่เราได้รู้ข่าวว่า มีเพื่อนคนหนึ่ง ชื่อบอล ไอ้บอลได้ตั๋วเรือไปจากการจับฉลาก ก็เลยสงสัยว่าไอ้บอลน่าจะเลือกหยิบฉลากจากกล่องไหนนะ เพื่อนเจ้าของวันเกิดเลยท้าให้เดา มีตั๋วอยู่อีกใบนึง ถ้าเราเดาถูกจะเอาตั๋วใบนี้ให้เรา

การเดาครั้งนี้ เราเลยมาตั้งใจคิดอย่างมีหลักการหน่อย เมื่อพิจารณาจากทฤษฎีความน่าจะเป็นแบบเบย์ สรุปความน่าจะเป็นได้ คือ

P(A=กล่อง X|B=ได้ตั๋วเรือ)

= P(B=ได้ตั๋วเรือ|A=กล่อง X) x P(A=กล่อง X) / P(B=ได้ตั๋วเรือ)

= (3/10 x 1/2) / 5/20 = 3/5

และ

P(A=กล่อง Y|B=ได้ตั๋วเรือ)

= P(B=ได้ตั๋วเรือ|A=กล่อง Y) x P(A=กล่อง X) / P(B=ได้ตั๋วเรือ)

= (2/10 x 1/2) / 5/20 = 2/5

ซึ่งจากตัวอย่างนี้ ที่จริงเราไม่จำเป็นต้องคำณวนความน่าจะเป็นก็น่าจะเลือกได้ไม่ยากครับ แต่ในโลกความเป็นจริงยังมีปัญหาอีกมากมายที่ซับซ้อนกว่านี้ ซึ่งไอ้เจ้าทฤษฎีของเบย์นั้นช่วยให้เราคำณวนเพื่อแก้ปัญหานั้นได้

ของแถมอีกนิดหน่อยครับ พวกทฤษฎีเกี่ยวกับความน่าจะเป็นทั่วไปที่ควรจะรู้ เพื่อเป็นพื้นฐานในการศึกษา Machine Learning มีดังนี้

Marginalization: สำหรับ Joint Probability ใดๆ P(X, Y) เมื่อเราสนใจแค่ X โดยไม่สนใจว่าเป็น Y เหตุการณ์ใดก็ตาม สามารถหาได้ดังนี้

P(A) = ∑ P(A, B) ; over B กล่าวคือ เราบวกรวมความน่าจะเป็นของ เหตุการณ์ A จากทุกเหตุการณ์ของ B (เพราะเราไม่สนว่าในเหตุการณ์ B ว่าเกิดอะไรขึ้น) เช่น P(B=ได้ตั๋วเรือ) = P(B=ได้ตั๋วเรือ, A=กล่อง X) + P(B=ได้ตั๋วเรือ, A=กล่อง Y) = 3/20 + 2/20 = 5/20

ซึ่งในกรณีของความน่าจะเป็นแบบต่อเนื่อง (Continuous Probability) ก็เปลี่ยน Summation เป็น Integration แค่นั้นเอง

Independent: ความเป็นอิสระต่อกันของเหตุการณ์ A และ B เกิดขึ้นเมื่อ การเกิดขึ้นของเหตุกาณ์หนึ่ง ไม่ส่งผลต่ออีกเหตุกาณ์หนึ่ง เช่น จากตัวอย่างถ้าเราใส่ตั๋วเรือกล่องละ 3 ใบ จะพบว่า ไม่ว่าเลือกหยิบกล่องไหน ความน่าจะเป็นที่จะหยิบได้ก็เป็น 3/10 เท่ากันทั้งสองกล่อง สรุปได้ว่า เหตุการณ์การเลือกกล่อง เป็นอิสระกับเหตุการณ์การจับได้ตั๋วเรือ

เดี๋ยวจะค่อยๆ ปูพื้นฐานความรู้ไปเรื่อยๆ แล้วค่อยๆ อธิบายเรื่องของ Machine Learning และประเด็นสุดฮ็อตตอนนี้อย่าง Bayesian Neural Network ว่ามันทำงานอย่างไรกันแน่ ติดตามได้ในบทความต่อๆ ไปครับ

--

--