วันนี้ขอรีวิวเรื่อง Big Data Series II นะครับ เขียนโดย ดร.อสมา กุลวานิชไชยนันท์ เล่มแรกก็เป็นการเกริ่นนำทั้งอาชีพต่างๆ มาเล่มนี้ก็จะเป็นวิธีการทำงาน โมเดลต่างๆ ทั้ง Optimization และ Machine learning หนังสือเล่มนี้เหมาะกับคนที่ไม่รู้เรื่องหรือยังไม่เข้าใจนะครับ

 ช่วงแรกผู้เขียนพูดถึงวิธีการสร้างซอฟแวร์ Waterfall กับ Agile process ตัว Waterfall หรือวิธีการทำงานแบบเป็นลำดับขั้นเหมือนน้ำตก เริ่มจาก Requirement คือการระบุเป้าหมายของการทำงาน การออกแบบในแนวทางแก้ปัญหา การนำไปใช้งาน ตรวจสอบงาน และการซ่อมบำรุง วิธี Waterfall จะเหมาะกับองค์กรที่มีขนาดใหญ่และมีโครงสร้างองค์กรที่มีลำดับขั้น ทั้งนี้ Project owner มีอำนาจสูงสุดของโครงการ ในขณะที่ Agile คือ วิธีการทำงานแบบคล่องตัว การทำงานแบบนี้เหมือนจะทำได้ช้าเพราะ มีปริมาณคนน้อยกว่า แต่หลักการ Agile จะมีการลดขั้นตอนที่ไม่จำเป็นออก เน้นการปรึกษาหารือกันในทีมอย่างสม่ำเสมอ ใน Agile ทีมจะมีแค่สี่ตำแหน่งคือ Project owner เจ้าของโครงการ Scrum master ผู้จัดการงานให้เป็นไปตามเป้าหมาย Team member ผู้รับผิดชอบในส่วนต่างๆ เช่น ผู้วางระบบ ผู้สร้างโมเดล UX, UI  และ User ผู้ใช้งานที่อาจจะเป็นผู้ให้ความต้องการ ขั้นตอนการทำงานแบบ Agile จะเน้นการใช้บอร์ดหรือกระดานระบุสถานะของแต่ละงาน จะมีการประชุมใหญ่และส่งมองงานทุกๆ 2 สัปดาห์ ซึ่งอาจจะเป็นผลลัพธ์เพียงเล็กน้อยหรือเป็นผลงานใหญ่เลยก็ได้ โดยที่ User ต้องเข้ามาตรวจผลลัพธ์และให้ข้อเสนอแนะ ผู้เขียนเล่าถึง Case study ของ FBI ซึ่งตอนแรกใช้ Waterfall หรือแบบ Top-down ใช้ทีมงานจำนวนมากและเงิน 380 ล้านดอลลาร์ แล้วงานไม่เสร็จภายใน 6 ปี แต่หลังจากมาใช้ Agile ที่ต้องส่งมอบงานทุก 2 อาทิตย์ และมีการต่อยอดงานขึ้นไปเรื่อยๆ อย่างรวดเร็ว ใช้เงินทั้งสิ้น 99 ล้านเหรียญ เวลาทั้งสิ้น 3 ปี

มาพูดถึงโมเดลกันดีกว่าครับ Optimization model หรือโมเดลเพื่อหาจุดเหมาะสม อาจจะเป็นจุดที่สูงที่สุด หรือ ต่ำที่สุดก็ได้ ภายใต้เงื่อนไขต่างๆ เช่น ต้องการหาเส้นทางเดินรถที่ทำให้เดินทางได้รวดเร็วที่สุด โดยต้องตัดสินใจเลือกเส้นทางในการเดินทางหลากหลายรูปแบบ และแต่ละรูปแบบการเดินทางมีเงื่อนไขด้านเวลาที่แตกต่างกัน องค์ประกอบของการทำ Optimization model ประกอบไปด้วย Objective function รูปแบบเป้าหมายที่ต้องใช้คำว่า function อาจอยู่ในรูปของสมการที่ต้องอาศัยการคำนวณเพิ่มเติม  Decision variables ตัวแปรที่เราต้องการให้โปรแกรมเลือกจุดที่เหมาะสมที่สุด Constraints ข้อจำกัดต่างๆ เช่น ถนนแต่ละเส้นที่เลือก ความเร็วรถที่ไม่เท่ากัน ตัวอย่างการใช้ Optimization model เช่น บริษัทผลิตช็อกโกแลตมีช็อกโกแลต 2 สูตร คือ สูตร A และ B ใช้ปริมาณนมกับโกโก้ต่างกัน สูตร A 1 ชิ้นใช้นม 1 ยูนิต โกโก้ 3 ยูนิต ราคาขาย 6 บาทต่อ 1 ชื้น ในขณะที่สูตร B 1 ชิ้น ใช้นม 1 ยูนิต โกโก้ 2 ยูนิต ราคา 5 บาทต่อ 1 ชื้น ตัวแปรที่ต้องตัดสินใจ คือ จำนวนที่ผลิตสูตร A = X และ จำนวนที่ผลิตสูตร B = y หลังจากนั้นระบุเป้าหมายที่ต้องการ เมื่อสูตร A 1 ชิ้น ขายได้ 6 สูตร B 1 ชิ้นขายได้ 5 บาท เขียนเป็นสมการได้ 6x + 5y  ถ้าเอามาเขียนกราฟก็จะได้จุดตัดโดยการใส่ค่าในสมการ x และ y เช่น x = 0 , y = 0 หรือ x = 0, y = 5 เราก็จะพบจุดตัดระหว่างข้อจำกัดปริมาณนมกับโกโก้โดยที่ x = 2, y = 3 ที่จะได้กำไรสูงสุด 27 บาท อีกโมเดลหนึ่งของ Optimization คือ Economic Order Quantity หรือ ปริมาณการสั่งที่เหมาะสมที่สุด เราควรจะสั่งสินค้าเพื่อรองรับปริมาณความต้องการของลูกค้าในช่วงระยะเวลาเท่าใด และเราต้องตัดสินใจสั่งซื้อสินค้าอีกครั้งเมื่อสินค้ามีปริมาณคงเหลือเท่าไหร่ ปัจจัยอันนี้ก็ได้แก่ Ordering cost ต้นทุนการสั่งซื้อ Holding cost ได้แก่ต้นทุนการเก็บรักษา และปัจจัยอื่นๆ เช่น ระยะเวลาในการจัดส่งหลังจากมีการสั่งซื้อ ตรงนี้ก็จะมีสูตรคำนวณ คือ Q = sqrt 2DO/H ตัว D คือ ปริมาณความต้องการของสินค้า O คือ ต้นทุนในการสั่งซื้อ H คือ ต้นทุนการเก็บรักษา 

ท่านอาจจะมีคำถามว่า Optimization ต่างกับ Machine learning อย่างไร? 

Machine learning คือ การสร้างให้โปรแกรมเรียนรู้จากข้อมูล จะเน้นการทำ Predictive model ในขณะที่ Optimization คือ การหาจุดสมดุลภายใต้ condition ซึ่งจะใช้ในการเช่วยการตัดสินใจ

ผู้เขียนพูดถึงคณิตศาสตร์ที่เป็นดังยาขมเยาวชนชาวไทย สถิติก็เป็นยาพิษสำหรับหนุ่มสาววัยทำงาน ซึ่งจริงๆแล้วทุกสาขาอาชีพ จำเป็นต้องใช้สถิติ โดยทั้งสิ้นตั้งแต่นักกีฬา ที่ต้องเก็บบันทึกประสิทธิภาพร่างกายของตนเอง ผู้เขียนพูดถึงเรื่องของค่ากลาง เช่น ค่าเฉลี่ย ค่ามัธยฐาน ฐานนิยม และค่าแปรปรวน ที่ใช้วัดการกระจายของข้อมูล (variance) และค่าเบี่ยงเบนมาตรฐาน (Standard deviation) เพื่อดูการกระจายข้อมูลจากค่าเฉลี่ย คือ รากที่ 2 ค่าความแปรปรวน ตัวค่าความแปรปรวนจะใช้ในการพิสูจน์หลักการทางสถิติมากกว่า เช่น การคำนวณค่าความเสี่ยง 

ค่าสหสัมพันธ์ หรือ Correlation ค่าสัมประสิทธิ์สหสัมพันธ์จะมีค่าระหว่าง -1 ถึง 1 หากค่าใกล้ 1 หมายความว่าตัวแปรทั้งสองมีความสัมพันธ์กันอย่างมาก ค่าสหสัมพันธ์ใช้กันมากในการวิเคราะห์เศรษฐกิจ เพราะใช้เป็นเครื่องมือเพื่อมองหาการเชื่อมโยงการของเหตุและผล เช่น ตลาดหุ้นดาวโจนมีความสัมพันธ์กับตลาดหุ้น S&P

Linear Regression หรือ การวิเคราะห์การถดถอยเชิงเส้น เป็นการศึกษาความสัมพันธ์ระหว่างตัวแปรตั้งแต่ 2 ตัวขึ้นไป ได้แก่ ตัวประมาณการ(Predictor X) และตัวตอบสนอง (Response Y) โดยจะเป็นความสัมพันธ์เชิงเส้น สมการก็จะได้แก่ y = ax + b ซึ่งก็จะพล็อตจุดหลายๆ จุดบนกราฟเส้นตรงที่บอกถึงความสัมพันธ์ระหว่างตัวแปร x และ y เมื่อค่าประมาณการ มี มากกว่า 1 ตัว จะเรียกว่า Multiple Linear Regression โดยมีรูปแบบสมการ  y = B0 + B1x1 + B2x2 + … e โดยที่ B คือ Coefficient หรือ ค่าสัมประสิทธิของค่าประมาณการตัวนั้นๆ ตรงนี้ก็จะมีการใช้ค่า p-value ถ้า p-value มากกว่า 0.05 บ่งบอกว่าตัวแปรนั้นอาจจะไม่มีความสำคัญต่อระบบสมการ

Time Series หรือข้อมูลอนุกรมเวลา ใช้พยากรณ์แนวโน้มในอนาคต จะใช้ความรู้สึกที่ไม่ต้องการเปอร์เซ็นต์ความแน่นยำ เช่น ฝนจะตกหนักตั้งแต่เดือนกรกฎาคม เป็นต้นไป ทำให้วนอุทยานถ้ำหลวง ขุนน้ำนนางนอน ปิดให้บริการในช่วงดังกล่าว แต่ปรากฎว่า ปี 2018 ฝนตกหนักตั้งแต่เดือนมิถุนายน ซึ่งไม่เป็นไปตามแนวโน้มเดิม ตรงนี้เราก็จะมาดูเรื่องของแนวโน้ม (trend) ก็คือการเคลื่อนไหวของข้อมูลที่ต่อเนื่องกันในระยะเวลายาวอย่างชัดเจน ไม่ว่าจะขาขึ้นหรือลง ส่วนฤดูกาล (seasonal) คือ การเปลี่ยนแปลงของข้อมูลที่เกิดขึ้นจากอิทธิพลของฤดูกาลหรือช่วงเวลาเกิดซ้ำๆ กันในเวลาเดียวกัน โดยที่ trend และ seasonal เป็นองค์ประกอบหลัก ถ้าชุดข้อมูลมองไม่เห็นปัจจัย 2 ตัวนี้ก็จะไม่สามารถใช้ทำนายด้วยวิธี Time Series ได้ ถ้าเราดูกราฟก็คือจะมีเส้นตรงที่แสดงถึง trend และมีจุด peak ที่เกิดซ้ำแสดงถึง seasonal

Machine Learning

คำว่า Machine Learning เป็นคำที่ได้ยินคุ้นหูอย่างมากพอๆ กับคำว่า Big Data แล้ว Machine learning เกี่ยวข้องกับ Big Data อย่างไร ก็ต้องบ อกว่า Big Data เป็นเสมือนวัตถุดิบ ให้ Machine ได้เรียนรู้ (Learn) ตัวอย่าง Machine Learning ที่เห็นภาพได้ง่าย ก็คือ การสอนคอมพิวเตอร์ให้รู้จักหน้าคน ขั้นตอนพื้นฐานสำคัญของการทำ Machine learning คือ การลองผิดลองถูก หมายความว่าต้องเรียนรู้หลายๆ ครั้งจนกว่าจะได้ Model ที่เหมาะสมที่สุด Machine Learning แต่ละประเภทจะมี Algorithm วิธีการเรียนรู้ที่แตกต่างกัน ตัว Machine Learning สามารถแบ่งออกเป็น 2 ประเภทได้แก่ Supervised model และ Unsupervised model โดยทั้งสองจะมีความแตกต่างกันที่ model มี target หรือ ผลลัพธ์เป็นตัวตั้งต้นหรือไม่

  1. Supervised model

เราจะเก็นการทำ Supervised model ได้บ่อยสุด คือ การทำ Forecasting model ที่ใช้ปัจจัยต่างๆ เป็น input เพื่อหา output หรือ target ออกมาเป็นผลลัพธ์ในอนาคต ขั้นตอนในการสร้างโมเดลจะแบ่งออกเป็น 2 ขั้นตอน ได้แก่ Training กับ Testing โดยแบ่งข้อมูลออกเป็น 2 ชุด ชุดใหญ่เอาไว้สร้าง model ชุดเล็กเอาไว้ประเมิน เพื่อให้เห็นภาพได้ง่ายการสร้างหรือการ train model เสมือนการสร้างสมการ เช่น เราต้องการหาความสัมพันธ์ระหว่าง x กับ y โดยใช้ Linear regression  ดังที่ได้กล่าวมาล่วงหน้า จะทำให้ Target คือ Y มี Input เป็น X ตราบที่เรารู้ค่า X เราก็สามารถหาค่า Y ได้ทันที สาเหตุที่ต้องมีการแบ่งข้อมูลออกเป็น 2 ชุดเพื่อป้องกันปัญหา Overfit หรือ model ดีเกินไป ซึ่งเกิดจากการสร้างโมเดลโดยการใช้ Training set อย่างเดียว เมื่อเพิ่มความเข้มข้นของการ train เข้าไปจะทำให้ค่าความคลาดเคลื่อนหรือ Error ลดน้อยลง จุดที่ model เหมาะสมที่สุดที่เรียกว่าจุด Optimal นั่นเอง การหาจุดนี้จะใช้หลักการของ Optimization โดยการหาการปรับ Parameter ที่เหมาะสมเพื่อให้ค่า Error น้อยที่สุด

1.1 Classification Model

ตัว Decision Tree หรือแผนผังการตัดสินใจ คือ การตัดสินใจทีละขั้นแล้วแตกเป็นทางเลือกออกไปเรื่อยๆ การทำ decision tree แบบง่ายๆ ในตัว Node จะเป็นการตัดสินใจ ตัวอย่างเช่น Node 1 ถามว่า มีรายได้มากกว่า $84 หรือไม่ ถ้าใช่ให้ไปทางซ้าย ถ้าไม่ใช่ให้ไปทางขวา ถ้าไปทางซ้ายก็จบการแบ่งกลุ่ม ถ้าไปทางขวาก็จะถามต่อเรื่องขนาดของบ้าน เช่น ถามว่าขนาของบ้านน้อยกว่า 18.4 x 100 ตารางฟุตหรือไม่ เราจะเห็นว่าเป็นแผนภูมิต้นไม้แบบเอียงหรือลึกลงไปข้างหนึ่ง แต่รูปแบบการตัดสินใจก็ไม่จำเป็นต้องเอียงเสมอไปเพราะทางเลือกอาจจะมีมากกว่า 2 ทางเลือก ก็จะเป็นแผนภูมิต้นไม้ที่เป็นแขนงสาขาออกมา

1.2 Random forests คือ การลองถูกลองผิดโดยอาศัยหลักการ Trial and Error ทำให้การสร้างต้นไม้ชุดเดียวไม่พอ เป็นที่มาว่าจะมีการสร้างต้นไม้หลายๆ ต้นพร้อมกัน เมื่อต้นไม้อยู่รวมกันก็จะทำให้เกิดป่า Parameter ของการทำ Random forests ได้แก่จำนวนของต้นไม้และจำนวนของ node ต่อต้นไม้ 

1.3 Logistic regression แม้ว่าชื่อนี้จะคล้ายกับคำว่า Logistic แต่ algorithm นี้ไม่มีความเกี่ยวข้องกับการขนส่งแต่อย่างใด ตัว algorithm ประเภทนี้มีเอาไว้ศึกษาความน่าจะเป็นที่ผลลัพธ์จะมีคำตอบที่เป็น Binary เช่น 0/1 Yes/No เสี่ยง/ไม่เสี่ยง ตัวอย่างเช่น การทำนายความน่าจะเป็นของอัตราเสี่ยงในการเกิดโรค การทำนายความน่าจะเป็นของลูกค้าที่มีโอกาสเพิกเฉยต่อบริการหรือกำลังจะตีตัวห่าง รูปแบบของกราฟจะเป็นแบ่งเป็นสองส่วนคือ การกระจายตัวของจุดสองฝ่ายคือ ด้านบนและด้านล่าง ก็คือ ตำแหน่ง 0 หรือ 1 แลtมีส่วนโค้งระหว่าง 0 และ 1 นั่นคือ Logistic Regression Model กรณีตัวอย่างของการใช้ classification ในธุรกิจนี้ได้แก่ Chum prediction คือ การทำนายลักษณะของลูกค้าที่กำลังจะยกเลิกบริการ ประโยชน์คือ สามารถตรวจจับได้ล่วงหน้าว่าลูกค้ามีพฤติกรรมที่เปลี่ยนแปลงและมีแนวโน้มที่กำลังยกเลิกการใช้บริการ ในส่วนที่ยากที่สุดคือ การระบุปัจจัยในการหนี เช่น ประวัติยอดใช้งาน ระยะเวลาที่ค้างชำระ ในบางกรณีต้องระบุความหมายของการหนีด้วย เช่น ลูกค้าเกมออนไลน์ที่หยุดเล่นนานกว่า 14 วันเป็นต้น

1.4 Regression model แปลเป็นภาษาไทยคือ แบบจำลองการถดถอย แต่ผู้เขียนฟังแล้วไม่ค่อยเข้าใจเลยเปลี่ยนเป็นการหาความสัมพันธ์จากปัจจัยที่มีผลต่อผลลัพธ์ ซึ่งถ้าความสัมพันธ์อาจจะไม่ใช่เชิงเส้นแต่เป็นการวิเคราะห์การถดถอยเชิงเส้นพหุคุณ Multiple linear regression (MLR) มี P-value และ R-squared ข้อเสียของ MLR คือหาความสัมพันธ์เชิงเส้นเท่านั้น ทำให้โจทย์บนโลกนี้ไม่สามารถใช้ MLR ได้ เลยมีคนคิดค้น algrithms ใหม่ คือ Multivariate Adpative Regresssion Splines (MARS) เป็นการเพิ่มจุดหักเหของเส้นตรง 

1.5 Artificial Neural Network 

เข้าใจว่าผู้ฟังหลายคนคงได้ยินคำว่า Deep learning แต่อาจจะยังไม่ทราบว่ามันทำงานอย่างไร จริงๆ deep learning ก็คือ Artificial Neural Network หรือโครงข่ายประสาทเทียมนั่งเอง (ANN) ซึ่งเป็นการเลียนแบบระบบประสาทของสมองมนุษย์ โดยมีการนำเข้าสิ่งเร้า หรือปัจจัยมาหาความสัมพันธ์จนเกิดผลลัพธ์ใหม่ ส่วนประกอบของ ANN ประกอบไปด้วย input คือปัจจัยที่ส่งเข้ามาเรียนรู้ Weight คือ ค่าน้ำหนักหรืออัตราส่วนของแต่ละขาที่ส่งไปมีค่าระหว่าง 0-1 ในการสร้างโมเดล ค่าน้ำหนักนี้จะเป็นค่าสุ่มเพื่อให้เกิดการเรียนรู้ไปเรื่อยๆ Output หรือ target ที่เป็นผลลัพธ์ Back Propagation เป็นการทำงานของ Algorithm ที่จะนำค่า error เข้าไปปรับ weight เพื่อให้ได้ผลลัพธ์ที่ถูกต้องมากขึ้น Layer คือ ชั้น Node คือ ปมที่มี function อยู่ด้านใน ถ้าดูทั้งหมดจะคล้ายกับ input ที่ส่งไป Node ที่เชื่อมกันเป็น layer ทั้งหมดเป็นชั้นๆ และได้ผลลัพธ์ออกมาเป็นทางปลาย 

  1. Unsupervised model

วิธีการนี้จะยากกว่า Supervised model เพราะไม่สามารถมองหาความแม่นยำได้เนื่องจากไม่มีตัวตั้งต้นให้เปรียบเทียบแต่จะเป็นการวัดความพึงพอใจที่ได้จากการใช้ model เสียมากกว่า ดังนั้นไม่จำเป็นต้องแบ่งเป็น training หรือ testing set เพราะไม่จำเป็นต้องวัดค่าความแม่นยำ ในหนังสือเล่มนี้จะมีการแบ่งประเภท Unsupervised model ทั้งหมด 3 ตัวอย่าง คือ clustering model เป็นการแบ่งกลุ่มข้อมูล Co-occurrence grouping คือ การหาความต่อเนื่องของพฤติกรรมจากข้อมูล และ Similarity matching คือ การหาความเหมือนกันของข้อมูล

2.1 Clustering model

K-Mean clustering เป็น algorithm ที่ใช้บ่อยที่สุดโดยการกำหนดจำนวนกลุ่มของชุดข้อมูล (ค่า K) และวางตำแหน่งจุดศูนย์กลาง หลังจากนั้นให้คำนวณระยะทางจากจุดข้อมูลไปยัจุดศูนย์กลาง แล้วให้จัดกลุ่มจนได้ระยะทางรวมน้อยที่สุด

2.2 Hierarchical clustering คือ จับคู่ข้อมูลที่อยู่ใกล้กันทีละคู่ โดยจะจับข้อมูลที่อยู่ใกล้เคียงกัน อันนี้ให้นึกถึงแผนภูมิต้นไม้นะครับที่มีการแบ่งระดับของการจับกลุ่มออกเป็นชั้นๆ 

2.3 Co-occurence grouping model ก็คือ เหตุการณ์ที่เกิดขึ้นอย่างบังเอิญ เข่น การซื้อขงคนละประเภท ตรงนี้เหมาะกับการทำตลาดแบบ cross-sell เข่นบริษัทร้านขายปลีกสหรัฐอเมริกาพบว่า คนตัดสินใจซื้อผ้าอ้อมและเบียร์ไปคู่กัน

2.4 Similarity matching model คือ การหาความคล้ายคลึงกันของชุดข้อมูลซี่งอยู่ใกล้ตัวเรามากที่สุด เช่น เราจะเห็นตามพวก amazon ที่พยายามเปรียบเทียบสินค้าที่ใกล้เคียงกัน หรือการวิเคราะห์อัตลักษณ์ต่างๆ เช่น การวิเคราะห์หน้า Face detection

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

สรุปในเล่มก็มีดังต่อไปนี้นะครับ

  1. วิธีการทำงานแบบ Water Fall เปรียบเทียบกับ Agile
  2. Optimization model 
  3. สถิติพื้นฐาน เช่น ค่าเฉลี่ย ค่าสหสัมพันธ์ Linear regression และ Time series
  4. Machine learning
  5. Supervised model คือ การเรียนรู้แบบต้องมีคำตอบเพื่อใช้ในการทำนาย  Regression และ Classification
  6. Unsupervised model คือ การเรียนรุ้แบบไม่ต้องมีคำตอบ มีแค่ตัว input เท่านั้น เพื่อใช้ในการวิเคราะห์ เช่น clustering