สร้าง AI ด้วย rule-based หรือ Machine Learning ต่างกันยังไง

สร้าง AI ด้วย rule-based หรือ Machine Learning ดีกว่ากัน เป็นคำถามที่ทุกบริษัทเจอแน่นอน เมื่อตอนที่ทำ Digital Transformation ไปประมาณหนึ่งแล้ว วันนี้ก็เลยจะมาอธิบายคร่าวๆเพื่อให้พอเข้าใจ และสามารถเป็นข้อมูลเบื้องต้นในการนำไปตัดสินใจเพื่อเดินหน้าโครงการตัวเองต่อได้ 

ผมเชื่อได้เลยว่าทุกคนคงเคยได้ยินโครงการรับเงินเยียวยา 5,000 บาทจากรัฐบาล ซึ่งในโครงการนั้นมีการใช้ AI ในการตัดสินใจว่าจะให้เงินใคร และใครที่ไม่สมควรจะได้รับด้วยเหตุผลอะไร ในเวลาต่อมาก็เริ่มมีการเปิดเผยการทำงานของโครงการบางส่วนว่ามีการตั้งเงื่อนไขเอาไว้แบบใดอย่างไรบ้าง เช่น กลุ่มอาชีพเกษตรกรจะไม่ได้รับเงินในส่วนนี้ การเปิดเผยเพียงบางส่วนเท่านี้ก็สามารถทำให้เรารู้ได้ทันทีว่า AI ที่ใช้ในโครงการนั้นทำงานเป็นแบบ Rule-based ก็คือเป็นเงื่อนไขที่ได้ตั้งเอาไว้เป็นจำนวนมากล่วงหน้าก่อนที่จะให้ AI ดำเนินการอ่านข้อมูลของแต่ละคนขึ้นมาเพื่อใช้ในการตัดสิน ก็ไม่ได้ต่างอะไรกับการเขียนกฎกติกาและมารยาทเพื่อให้ครอบคลุมเอาไว้มากที่สุด และใช้คอมพิวเตอร์ในการอ่านข้อมูลของแต่ละคน ว่าคนนี้เข้าเงื่อนไขใดและไม่เข้าเงื่อนไขใดจนได้ออกมาเป็นการตัดสินในท้ายที่สุด หลายคนก็เอามาแซวเป็นติดตลกว่านี่คงไม่ใช่ AI หรอกเพราะว่ามันทำงานตามเงื่อนไขที่มีคนกำหนดเอาไว้มันก็เหมือนเป็นโปรแกรมคอมพิวเตอร์ธรรมดานี่แหละ 

ต้องบอกเลยว่า การสร้าง AI แบบ Rule-based นั้น มีการใช้งานกันอย่างแพร่หลายและใช้งานในหลากหลายรูปแบบอยู่ในปัจจุบัน ซึ่งเราจะเรียกว่ามันเป็น AI หรือจะเรียกว่ามันเป็น Robot ก็ได้ แต่ในกรณีนี้เราจะพิจารณาในการสร้าง AI ขึ้นมาใหม่เพื่อใช้ในบริษัทว่าจะใช้งานเป็นแบบ  rule-based หรือ Machine Learning โดยผมจะแนะนำแนวความคิดเอาไว้เบื้องต้นเพื่อใช้ในการตัดสินใจ ดังนี้ 

องค์ความรู้ที่มี

องค์ความรู้ในที่นี้ไม่ได้หมายถึงองค์ความรู้ที่ใช้ในการสร้าง AI ในเชิง programming แต่หมายถึงองค์ความรู้ที่มีต่อปัญหานั้น หมายถึงว่าเรามีองค์ความรู้ทั้งหมดที่ตอบทุกคำถามที่จะป้อนมาให้กับ AI ได้หรือไม่ ผมยกตัวอย่างง่ายๆว่า ถ้าเราจะนำเสนอโปรโมชั่นที่เหมาะสมให้กับลูกค้าจำนวน 10 คนที่เป็นฐานลูกค้าเดิมของเราอยู่แล้ว โดยจะทำให้โปรโมชั่นเป็นแบบเฉพาะบุคคล (personalize) กรณีแบบนี้ เราสามารถดูพฤติกรรมการซื้อสินค้าของแต่ละคน และสามารถคิดโปรโมชั่นที่เหมาะสมให้กับทั้ง 10 คนได้ แต่ผมเปลี่ยนใหม่ว่าเราต้องการนำเสนอโปรโมชั่นที่เหมาะสมให้กับลูกค้าจำนวน 1 ล้านคน แบบนี้เป็นไปไม่ได้เลยที่เราจะนั่งทำด้วยตัวเราเองให้ครบ 1 ล้านคน และเราก็ไม่รู้ด้วยว่าจำนวนหนึ่งล้านคนนั้นมีพฤติกรรมการซื้อสินค้าที่เหมือนหรือแตกต่างกันอย่างไร ด้วยตาเรา กรณีแบบนี้หมายความว่าเราไม่มีองค์ความรู้ที่มากเพียงพอที่จะตอบสนองต่อความต้องการของตัวเราเองได้ แต่อย่างไรก็ดีตัวอย่างที่ผมยกมานี้แม้ว่าเราไม่มีองค์ความรู้ที่เฉพาะเจาะจงกับทั้ง 1 ล้านคน แต่เราก็สามารถทำให้ตัวเรารู้ข้อมูลบางส่วนได้ เช่น การนำข้อมูลบางส่วนของลูกค้ามาจัดกลุ่มด้วยพฤติกรรมการซื้อ พฤติกรรมการใช้ promotion ย้อนหลัง แบบนี้ก็สามารถเพิ่มองค์ความรู้ให้กับตัวเราได้เช่นกัน 

ถ้าหากเรามีองค์ความรู้ที่เพียงพอ การใช้งานแบบ Rule-based ดูจะเหมาะสมกว่า เพราะว่าเงื่อนไข ค่อนข้างตรงไปตรงมา และผลลัพธ์ที่ได้ก็ค่อนข้างจะตรงกับสิ่งที่คิดไว้ตั้งแต่ต้น 

การทำงานแบบ rule-based

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

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

ผมยกตัวอย่างถ้าเรามี 20 กรณีที่เป็นไปได้ การจะสร้าง AI ในรูปแบบนี้ก็จะต้องครอบคลุมทั้ง 20 กรณี ที่จะเกิดขึ้นด้วย โดยในแต่ละกรณีก็จะต้องเขียนเป็น Case by Case ไปเลยและหากมีการแก้ไขก็จะต้องแก้ไขลงไปที่รายละเอียดของแต่ละกรณีด้วย

ข้อจำกัดของการใช้เทคนิคนี้ก็คือถ้ามีกรณีที่ 21 เกิดขึ้นเราก็จะต้องเปิดโปรแกรมมาเพื่อเขียนเพิ่มเข้าไปให้ระบบสามารถทำงานกับกรณีที่ 21 ได้อย่างที่เราต้องการ

การทำงานแบบ machine learning 

กรณีนี้จะแตกต่างจากการใช้ rule-based ที่จะต้องมีการตัดสินใจเอาไว้ล่วงหน้าและแปลงมาเป็น Code เพื่อเขียนลงไปในระบบคอมพิวเตอร์ แต่การใช้ Machine Learning นั้น สิ่งที่เราจะต้องทำก็คือเราจะต้องสร้างให้คอมพิวเตอร์นั้นมีกระบวนการเรียนรู้ด้วยตัวเอง เพื่อใช้ในการตัดสินใจข้อมูลใหม่ๆที่เราต้องการได้ การที่ทำแบบนี้สิ่งที่จะได้เลยก็คือแนวทางความเป็นไปได้ของการตัดสินใจนั้นมีหลากหลายรูปแบบ และรองรับกรณีต่างๆที่จะเกิดขึ้นได้ใหม่ๆอย่างไม่จำกัด เพราะ Machine Learning สามารถสร้างองค์ความรู้ให้ตัวเองเพิ่มขึ้นไปเรื่อยๆได้ตามข้อมูลที่มีเพิ่มขึ้นตลอดเวลา 

ซึ่งกระบวนการที่จะให้คอมพิวเตอร์เรียนรู้ด้วยตัวเองนั้นก็มีอยู่หลากหลายรูปแบบ แต่แบบที่นิยมทำกันก็คือ supervised coaching หรือ กระบวนการที่มีการสอนองค์ความรู้พื้นฐานเพื่อให้ใช้เป็นข้อมูลในการตัดสินใจขึ้นไปในขั้นสูง ยกตัวอย่างง่ายๆก็คือ เราป้อนรูปแมวเข้าไปให้คอมพิวเตอร์จำนวนเยอะๆ โดยรูปแมวแตกต่างกัน หลายๆสายพันธุ์ มีรูปถ่ายหลายๆมุม มีแมวหลายๆสี รูปเล็กบ้างรูปใหญ่บ้าง ถ้าข้อมูลที่มีเยอะเพียงพอ คอมพิวเตอร์จะเรียนรู้ได้ว่าสิ่งนี้คือแมว และเมื่อเราต้องการให้ AI ตัดสินใจ เราก็จะป้อนรูปที่ใช้เพื่อทดสอบเข้าไป AI ก็จะบอกได้ทันทีว่านี่คือแมวหรือไม่ใช่แมว 

ดังนั้นการจะเอาเทคนิคนี้มาใช้งานเราก็จำเป็นจะต้องมีข้อมูลที่มากเพียงพอที่ทำให้ AI สามารถแยกแยะกรณีต่างๆที่แตกต่างกันได้ ยิ่งถ้าเรามีข้อมูลมากเท่าไหร่กระบวนการตัดสินใจของ Machine Learning ก็จะแม่นยำมากขึ้นเท่านั้น แต่อย่างไรก็ดีเทคนิคนี้ก็จะมีความผิดพลาดเกิดขึ้นเป็นระยะๆ เพราะว่าการทำงานเบื้องหลังก็คืออาศัยหลักการทำงานทางสถิติซึ่งมันก็จะไม่ได้แม่น 100% 

เราจะเริ่มสร้าง AI ให้บริษัทด้วยเทคนิคไหนดี 

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

เพราะว่าการพิจารณาถึงโจทย์ที่เราได้รับมาก็จะมีผลในการนำไปคิดว่าการจะสร้าง AI ด้วยเทคนิคไหนจึงจะเหมาะสมกว่ากัน อีกทั้งการตัดสินใจที่จะใช้เทคนิคใดก็ตามมันเป็นผลระยะยาว ที่เกี่ยวข้องกับการ เพิ่มศักยภาพของ AI ในอนาคตด้วย ถ้าจะให้แนะนำแนวคิดในการใช้ในการตัดสินใจเบื้องต้น จะมีดังนี้

ข้อสนับสนุนการตัดสินใจ rule-based

  • มีผลลัพท์ที่เฉพาะเจาะจง : หรือมีผลลัพธ์ที่จะเป็นไปได้ไม่มากนัก ผมยกตัวอย่างง่ายๆว่า ถ้าเราจะแบ่งกลุ่มของผู้ที่มาซื้อสินค้าจากร้านของเรา ว่าลูกค้าแต่ละคนชอบซื้อสินค้าที่หมวดไหน ผลลัพธ์ที่ออกมาก็จะมีตามหมวดสินค้าที่เรามีขายอยู่ในร้าน และแบบนี้เราก็สามารถกำหนดได้ทันทีว่า ให้อ้างอิงจากข้อมูลการซื้อสินค้าย้อนหลังของแต่ละคน โดยสะสมยอดการซื้อแบ่งตามหมวด แบบนี้ผลลัพธ์ชัดเจนมาก หรืออีกตัวอย่างหนึ่งที่จะคลุมเครือหน่อยก็คือ อยากให้ AI ช่วยตัดสินใจว่าเราจะส่ง SMS เพื่อแจ้งโปรโมชั่นให้มาซื้อสินค้าในเว็บเรา ช่วงเวลาไหนดี ที่จะเหมาะสมสำหรับแต่ละคน ในจำนวนสมาชิก 1 ล้านคน จริงอยู่ที่จำนวนมีเยอะมากแต่ว่าเงื่อนไขในการให้ระบบ AI ตัดสินใจนั้นค่อนข้างตรงไปตรงมาและชัดเจน เช่น เราจะส่ง SMS ในช่วงเวลา 9.00 น. ถึง 22:00 น. เท่านั้น และต้องเป็นสมาชิกที่เคยใช้โปรโมชั่นใดๆ ในช่วงเวลา 60 วันที่ผ่านมา และเป็นสมาชิกที่มียอดซื้อ มากกว่า 500 บาทในช่วง 60 วันที่ผ่านมา และแบ่งกลุ่ม ออกเป็นรายชั่วโมง ใครจะอยู่กลุ่มของชั่วโมงไหน เหล่านี้เราก็สามารถเขียนออกมาเป็นเงื่อนไขได้ทันทีและใช้กับคนหนึ่งล้านคนได้เลย 
  • ยอมรับความคลาดเคลื่อนได้หรือไม่ : การใช้ AI แบบ rule-based นี้ ถ้าเราเขียนโค้ดและเงื่อนไขได้อย่างถูกต้องแล้วความคลาดเคลื่อนจะเป็น 0% หมายความว่า ระบบจะทำงานถูกต้องเสมอ ไม่ว่าเวลาจะผ่านไปนานเท่าไรก็ตาม และไม่ว่าข้อมูลจะมีเยอะแค่ไหนก็ตาม (แต่อย่างที่บอก ว่า กรณีต้องครอบคลุม มากเพียงพอ) อย่างกรณีรับเงินเยียวยา 5000 บาท ทางโครงการก็ออกมาชี้แจงชัดเจนว่าระบบทำงานได้อย่างถูกต้อง ใช่เลย เพราะว่าการทำงานแบบ rule-based จะทำงานได้ถูกต้องตามเงื่อนไขที่ได้เขียนเอาไว้ล่วงหน้าแล้วเสมอ เพียงแต่ว่าความถูกต้องกับความถูกใจมันอาจจะไม่ตรงกันเท่านั้นเอง 

ข้อสนับสนุนการตัดสินใจใช้ Machine Learning 

  • ไม่สามารถอธิบายเงื่อนไขออกมาอย่างชัดเจน : เพราะว่าแนวทางในการหาคำตอบมันออกมาได้หลากหลายรูปแบบ ดังนั้นเราจึงไม่สามารถเขียนเงื่อนไขที่ชัดเจนได้เพื่อให้หาคำตอบสุดท้ายได้อย่างถูกต้อง ผมยกตัวอย่างปัญหาในชีวิตจริงก็คือ ถ้าต้องการสร้างร้านค้า ในจังหวัด X พื้นที่ของตำบลใด ที่จะเหมาะสมที่สุด ในการสร้างร้านนั้น
  • มีความเปลี่ยนแปลงบ่อยมาก : ผมยกตัวอย่าง คือ ในเดือนนี้เรากำลังจะออก 5 โปรโมชั่นลูกค้าคนไหนจะเหมาะกับโปรโมชั่นในลักษณะใดบ้าง แต่ในเดือนหน้าเราเปลี่ยนใหม่เป็น 10 โปรโมชั่นลูกค้าคนไหนจะเหมาะกับโปรโมชั่นใดบ้าง แบบนี้เราจะมาเขียน rule-based ที่เปลี่ยนไปมาทุกเดือน ก็จะเสียเวลามาก แต่ Machine learning สามารถเพิ่มการเรียนรู้เพื่อแยกแยะออกมาตามข้อมูลที่เราป้อนให้ได้เสมอ เหนื่อยทีเดียว ที่เหลือคือการปรับ tune นิดหน่อย
  • ทำงานที่เกี่ยวข้องกับภาษา : ภาษาในที่นี้ก็คือหมายถึงภาษาไทย ภาษาอังกฤษ หรือภาษาที่คนเราใช้สื่อสารระหว่างกัน การทำงานในเรื่องที่เกี่ยวข้องกับภาษานั้นเป็นไปไม่ได้เลยที่จะใช้ rule-based เพราะว่าความเป็นไปได้เยอะมากๆ และด้วยความที่ภาษายังไม่ตาย มันจะทำให้การทำงานของระบบจะต้องเปลี่ยนไปในทุกๆวัน อย่างเมื่อก่อนเราเคยใช้คำว่า จ๊าบ แต่ตอนนี้ก็ไม่มีใครใช้แล้ว สิ่งเหล่านี้เราจะต้องให้ Machine Learning ได้เรียนรู้เพิ่มเติมไปเรื่อยๆ 

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

การดำเนินธุรกิจก็เช่นกันบริษัทไหนที่เริ่มเอา AI มาใช้งานก่อนก็จะถือว่าได้เปรียบบริษัทอื่นเพราะสามารถลดต้นทุนได้อย่างมีนัยยะสำคัญ หรือสามารถเพิ่มผลผลิตได้อย่างต่อเนื่อง เพราะระบบ AI สามารถทำงานได้ 24 ชั่วโมง 7 วันโดยที่ไม่มีวันหยุด แล้วถ้าเราใช้งานแบบ rule-based ก็จะมีความแม่นยำ 100% ด้วย หรือถ้าเราใช้งาน machine learning ก็จะเปิดอิสระให้เราสามารถปรับกระบวนการตัดสินใจไปได้อย่างต่อเนื่อง ตามปริมาณข้อมูลที่เพิ่มสูงขึ้นเรื่อยๆในทุกๆวัน จนถึงจุดหนึ่งระบบก็จะตัดสินใจไม่ผิดพลาดอีกเลย และสามารถตัดสินใจได้คล้ายกับที่คนตัดสินใจอีกด้วย 

ถึงตรงนี้แล้ว ก็น่าจะช่วยตอบคำถามได้ว่า สร้าง AI ด้วย rule-based หรือ Machine Learning แบบไหนดี หรือเหมาะกับโจทย์ของแต่ละคนมากกว่ากัน แต่เมื่อถึงวันนึง เราจะต้องไม่ลืมว่า สิ่งที่เราสร้างมา ต้องไม่ทิ้งความเป็นมนุษย์ไปด้วย เพราะนั่นจะเป็นสิ่งที่ทำให้เกิด customer engage ได้ดีกว่าที่ต้องคุยกับหุ่นยนต์