การเตรียมข้อมูลให้ AI (2/5)
🤔 จะสร้าง AI ต้องใช้ข้อมูลแบบไหนมันถึงจะฉลาดๆ
Last updated
🤔 จะสร้าง AI ต้องใช้ข้อมูลแบบไหนมันถึงจะฉลาดๆ
Last updated
ในการที่เราจะสร้าง AI ขึ้นมาซักตัวนั้น เราจะต้องมีการเตรียมข้อมูลตัวอย่างเอาไว้ให้ AI ของเราได้เรียนรู้ข้อมูลพวกนั้น เพื่อให้มันสามารถวิเคราะห์และสร้างวิธีการหาคำตอบ หรือสิ่งที่เราเรียกว่า Model นั่นเอง ดังนั้นในบทความนี้เราก็จะมาดูกันว่า ข้อมูล ที่เหล่า data scientist จะต้องเตรียมนั้น เขาต้องเตรียมยังไง และ ต้องดูอะไรบ้าง
แนะนำให้อ่าน บทความนี้เป็นส่วนหนึ่งของบทความ 👶 Data Scientist หากเพื่อนๆสนใจอยากรู้หลักการของพวก Data science ทั้งหมดแนะนำให้ไปอ่านบทความหลักได้โดยการจิ้มชื่อสีฟ้าๆนั้นเลยนะครับ ส่วนใครที่อยากลองสร้าง AI เป็นของตัวเองก็สามารถดูตัวอย่างได้จากบทความด้านล่างนี้ครับ สร้าง AI ตัดสินใจอนุมัติบัตรเครดิต 💳
โดยปรกติตัว AI มันก็คล้ายๆกับคนนั่นแหละ ตอนที่เราเป็นเด็กเราแยกผู้ชายผู้หญิงได้ยังไง? คำตอบก็คือเราได้เห็นทั้งผู้ชายและผู้หญิงมาตั้งแต่เป็นเด็กจนโตจนสุดท้ายเราก็สามารถเรียนรู้ได้ว่าถ้าหน้าตาประมาณนี้ ส่วนสูงขนาดนี้ รูปร่างแบบนี้ น่าจะเป็น น่าจะเป็นผู้ชาย/ผู้หญิง นั่นเอง หรือพูดง่ายๆว่าเรามี Data เยอะพอนั่นเอง แต่ในทางกลับกัน ถ้าถามว่าฝรั่งคนนี้อายุเท่าไหร่ ซึ่งถ้าเราไม่ค่อยเห็นฝรั่งซักเท่าไหร่ เราก็จะทายอายุไม่ค่อยถูก เพราะเราไม่ค่อยชินกับหน้าตาของฝรั่งยังไงล่ะ หรือพูดง่ายๆว่าเรามี Data ไม่เยอะพอนั่นเอง
จากที่ว่ามาการที่เราเห็น Data มาเยอะๆผ่านการเรียนรู้ต่างๆ ในที่สุดเราก็จะสร้างสิ่งที่เรียกว่า Model ขึ้นมาในหัวของเรา เช่น Model ที่บอกว่าคนลักษณะนี้เป็นคนใจดีนะ, Model ที่บอกว่าถ้าเจอสถานะการณ์แบบนี้ให้รีบหนีทันที บลาๆ ดังนั้นข้อมูลหรือ Data นั้นสำคัญมากเพราะข้อเราไม่มีข้อมูลที่มากเพียงพอ เราก็จะไม่สามารถสร้าง Model ที่มีความถูกต้องในการตัดสินใจได้นั่นเอง
เอาละกลับมาที่คอมพิวเตอร์บ้าง การที่เราจะสร้าง AI ที่ฉลาดหรือมีความแม่นยำที่สูงนั้น Data เป็นสิ่งที่จำเป็นมาก เพราะมันก็เหมือนกับคนนั่นแหละ AI มันจะทำการเรียนรู้จาก Data แล้วค่อยๆทำความเข้าใจจนสุดท้ายมันก็จะสร้าง Model ของมันออกมานั่นเอง ยิ่งเราส่ง Data ให้มันเรียนรู้ได้เยอะ AI ของเราก็จะยิ่งแม่นยำมากขึ้นนั่นเอง
แม้ว่า Data จะสำคัญต่อการสร้าง AI มากขนาดไหนก็ตาม แต่ไม่ใช่ว่าเราจะโยน Data มั่วๆไปให้ AI แล้วมันจะฉลาดขึ้นเสมอไปนะ บางทีมันอาจจะโง่ยิ่งขึ้นก็ได้ถ้าเราโยน Data ที่เป็นขยะเข้าไปให้มัน ดังนั้นในโลกของ Data science นั้นเราต้องมาดูกันต่อว่า data แบบไหนที่เราควรจะเอาให้ AI เรียนรู้และแบบไหนไม่ควรอีกด้วย
Junk in - Junk out การโยน Data ขยะเข้าไปให้ AI เรียนรู้ เราก็จะได้ AI ที่เป็นขยะออกมาเช่นกัน เช่น Microsoft เคยส่ง AI เข้าไปขลุกอยู่กับ Twitter ประเทศญี่ปุ่น จนสุดท้ายก็พบว่าเจ้า AI ตัวนั้นกลายเป็นโอตาคุไปเรียบร้อยแล้ว (โอตาคุ เป็นพวกเก็บตัว ไม่สนใจโลกของความเป็นจริง ชื่อชอบการตูนเป็นชีวิตจิตใจ และไม่ใจผู้หญิง/ชาย ในโลกของความเป็นจริง พูดง่ายก็คือ ผม เอ้ย!! พวกนิยมสาว 2D นั่นเอง)
จากที่ว่ามาคราวนี้เราจะมาดูกันว่า Data ที่เรามีอยู่นั้นแบบไหนคือสิ่งที่เหมาะสมต่อการส่งให้ AI เอาไปเรียนรู้กันบ้าง
ข้อมูลที่เราจะส่งไปให้กับ AI นั้นควรจะต้องมีความเกี่ยวข้องกันด้วย เช่น เราต้องการจะให้ AI ศึกษาข้อมูลของปริมาณแอลกอฮอล์ในกระแสเลือด แต่ในตารางด้านซ้ายเราจะเห็นว่า ราคาของนม และ (Red Sox) ทีมเบสบอล ไม่มีความเกี่ยวข้องอะไรกับการที่จะบอกผลปริมาณแอลกอฮอล์ในกระแสเลือดได้เลย ดังนั้นถ้าใช้ตารางซ้าย AI มันก็จะเข้าใจอะไรแปลกๆ แต่ในตารางด้านขวา จะเห็นว่าข้อมูลในนั้นมีความเกี่ยวข้องกับ เช่น น้ำหนัก จำนวนเหล้าที่ดื่ม และ ปริมาณแอลกอฮอล์ในกระแสเลือด ทั้งหมดมีความสัมพันธ์กัน ดังนั้น AI ก็จะสามารถจับคู่ผลลัพท์เพื่อหาว่า คนที่หนักขนาดนี้ดื่มเหล้าเท่านี้จะมีปริมาณแอลกอฮอล์ในกระแสเลือดขนาดไหนนั่นเอง
การเลือกข้อมูลที่มีความสัมพันธ์กัน ใน Machine Learning Studio เราสามารถเลือกเฉพาะ column ที่เราสนใจได้โดยใช้กล่องที่ชื่อว่า Select Columns in Dataset ครับซึ่งสามารถดูตัวอย่างการใช้งานได้จากลิงค์ด้านล่างนี้เลยครับ มาสร้าง AI ของแท้ตัวแรกของเรากัน****
เวลาที่เราได้ข้อมูลมานั้นเราก็ต้องตรวจสอบด้วยว่ามันมีของที่หายไปหรือเปล่า? ซึ่งข้อมูลที่หายไปมันจะทำให้ตัว AI ของเราเข้าใจคลาดเคลื่อนได้ง่ายและสุดท้ายเราก็อาจจะได้ขยะกลับออกมานั่นเอง เช่น ตารางด้านบนเป็นคะแนนของแฮมเบอร์เกอร์ เมื่อเทียบกับอุณหภูมิที่ใช้ย่าง และ ปริมาณเนื้อที่ใช้ ซึ่งในตารางด้านซ้ายเราจะเห็นว่าข้อมูลมันแหว่งๆหายๆไป ส่วนด้านขวามือเป็นข้อมูลที่ไม่แหว่งเลย ดังนั้นเราก็จะต้องจัดการกับข้อมูลที่แหว่งๆหายไปพวกนี้ก่อนนำข้อมูลเข้าด้วย
การเลือกจัดการกับข้อมูลที่แหว่งๆ ใน Machine Learning Studio เราสามารถเลือกจัดการกับข้อมูลที่แหว่งๆได้โดยใช้กล่องที่ชื่อว่า Clean Missing Data ครับซึ่งสามารถดูตัวอย่างการใช้งานได้จากลิงค์ด้านล่างนี้เลยครับ มาสร้าง AI ของแท้ตัวแรกของเรากัน****
ถ้าข้อมูลที่เราเลือกเข้ามามีความสัมพันธ์กันและไม่มีของแหว่งๆแล้ว ถัดมาเราต้องดูว่าข้อมูลไหนบ้างที่เราจะเลือกมันเข้ามาให้ AI ได้เรียนรู้ เพราะถ้าเราเลือกข้อมูลมั่วๆ หรือ ข้อมูลที่ไม่มีความแม่นยำเลย เราก็จะได้ผลลัพท์ที่ไม่มีความแม่นยำ เช่น สมมุติว่าเราไปทำการสำรวจว่าคนไทยชอบรัฐบาลชุดนี้ขนาดไหน (เห็นได้บ่อยๆ) ซึ่งถ้าเราไปเก็บข้อมูลจากกลุ่มคนที่ชอบรัฐบาลเท่านั้น ผลลัพท์ของเราก็คงจะบอกว่า รัฐบาลนี้ดีแน่นอน ซึ่งมันก็ถูกนะแต่มันถูกเฉพาะกลุ่มไง ซึ่งมันอาจจะผิดก็ได้ถ้าไปถามทุกคนทั้งประเทศ ดังนั้นข้อมูลที่ดี ควรจะเป็นข้อมูลที่มีข้อมูลทั้งหมดของทุกกลุ่มที่เราสนใจนั่นเอง ถามทั้งคนเกลียด ถามทั้งคนชอบ ถามทั้งคนที่รู้จักเฉยๆ หรือพูดง่ายๆคือให้ข้อมูลมีการกระจายตัวที่ธรรมชาติของมันเป็นนั่นแหละ เพราะ AI มันประมวลผลเป็นองค์รวมนั่นเอง
ปริมาณข้อมูลที่ส่งให้ไป AI เรียนรู้ก็ควรจะมีมากเพียงพอที่จะให้ AI ได้เห็นข้อมูลที่หลากหลายด้วย มันจะได้มีความแม่นยำมากยิ่งขึ้น เช่น เราจะสร้าง AI แยกแยะหมาพันธุ์ต่างๆ แต่เราดันส่งแค่พันธุ์เชาๆ กับ พุดเดิลไปให้มันเรียนอย่างเดียวเท่านั้น มันก็จะทำให้ AI รู้จักแค่ เชาๆ กับ พุดเดิล เท่านั้นเอง เพราะมันไม่รู้จักหมาพันธุ์อื่นยังไงล่ะ ยกตัวอย่างเช่นภาพด้านบน ถ้าถามผู้ใหญ่ว่านี่คือภาพอะไร ผู้ใหญ่แทบทุกคนก็น่าจะตอบได้ว่านั่นคือภาพวิวของเมืองที่ตรงกลางเป็นแม่น้ำ ส่วนถ้าถามต่อว่าไอ้ที่ลอยอยู่ในแม่น้ำคืออะไร หลายๆคนอาจจะบอกว่าเป็นทุ่นหรือขยะอะไรซักอย่าง ส่วนคนที่เคยเห็นภาพนี้ก็จะบอกว่าเป็นคนพายเรือ แต่ในทางกลับกัน ถ้าเราไปถามเด็กๆว่านี่คือรูปอะไร ถ้าเป็นเด็กเล็กๆเลยก็อาจจะตอบได้แค่มันเป็นสีส้ม โตขึ้นมาหน่อยก็อาจจะตอบว่าเป็นสนามเด็กเล่นก็ได้ เพราะเขายังไม่มี Data มากเพียงพอต่อการประมวลผลนั่นเอง
การที่เราจะสร้าง AI ได้เก่งหรือเปล่าปัจจัยนึงก็คือข้อมูลหรือ Data นั่นเอง ซึ่งข้อมูลที่เราจะต้องส่งให้ AI นั้นควรจะเป็นข้อมูลที่ มีความสัมพันธ์กัน ไม่แหว่ง กลุ่มข้อมูลที่เลือกมีต้องเกี่ยวกับเรื่องที่เราจะให้ AI มันศึกษา และ ปริมาณข้อมูลต้องไม่น้อยจนเกินไป ซึ่งนี่เป็นแค่ปัจจัยหนึ่งในการสร้าง AI ส่วนอีกปัจจัยคือเรื่องของการเลือก Algorithms และการ Train model ซึ่งเดี๋ยวเราจะมาพูดถึงในบทถัดไปกันครับ
การเลือก Algorithms หากใครสนใจอยากรู้ว่า ถ้าเราเจอโจทย์แบบนี้เราควรจะเลือก Algorithm แบบไหนให้กับ AI ของเรา สามารถศึกษาได้จากบทความด้านล่างนี้เลยครับ การเลือก Algorithms ให้ AI (1/5)****