ประยุกต์การใช้งานกับ Line ChatBot & Image Classification model by using Machine Learning
Computer Vision #1_G.1 members >> Rose, Gear, Pui, Pin, Job, Wit, Paopow, Dan, Wee, Ice, Lee
Subtitle: ชีวิต minimal มันคูล แต่กว่าจะเป็น minimalist ได้ ต้อง “ทิ้ง” หลายอย่างออกไปจากชีวิต ต้อง “ตัดใจ” จากหลายความทรงจำ ซึ่งมันอาจไม่ง่ายอย่างที่คิด ทำยังไงให้การทิ้งเป็นเรื่องที่ง่ายขึ้น และไม่ใช่แค่คูล แต่ “โคตรคูล”? น้องมะลิ มีคำตอบ
แนะนำน้องมะลิ
หากใครเคยดูภาพยนตร์เรื่อง “How to ทิ้ง ทิ้งอย่างไร ไม่ให้เหลือเธอ” ก็คงจะเข้าใจว่า การจะทิ้งอะไรซักอย่างที่เคยเป็นส่วนหนึ่งของชีวิตเรามันไม่ง่าย ไม่ใช่แค่การจับยัดลงถุงดำแล้วรอลุงซาเล้งมารับไป เพราะอันที่จริงแล้ว การ “ทิ้ง” ไม่ใช่แค่การเอาสิ่งของที่เราไม่ต้องการแล้วออกไปให้พ้นหูพ้นตาเท่านั้น การทิ้งคือการ “ตัดใจ” จากความทรงจำด้วย การจะทิ้งอะไรซักอย่าง ต้อง “ฝืนใจ” ต้อง “ใช้พลังงาน” การทิ้งต้องตั้งใจ เหมือนตอนหนึ่งในภาพยนตร์ ที่จีนพูดกับแม่ของเธอว่า “ถ้าเราไม่ตั้งใจทิ้ง เราทิ้งไม่ได้หรอก”
จะดีไหม ? หากการ “ทิ้ง” ไม่ใช่การพรากจากความทรงจำของคุณ แต่เป็นการ “ส่งต่อ” ประโยชน์และความสุขให้ผู้อื่นได้ แม้ว่าเจ้าแม่นักทิ้งผู้โด่งดังอย่างคุณ มาริเอะ จะไม่ได้กล่าวไว้ แต่ที่นี่มี “มะลิ” น้องมะลิช่วยคุณ “ทิ้ง” ได้
น้องมะลิ เป็น chatbot ผู้ช่วยทิ้ง ที่ถูกออกแบบมาให้มีความน่ารักและฉลาด เลือกที่ทิ้งของให้เรารู้สึกว่าการทิ้งนั้นไม่สูญเปล่า
ลองนึกย้อนกลับไปถึงภาพยนตร์เรื่องฮาวทูทิ้ง และใส่จินตนาการเพิ่มเข้าไปซักหน่อย ตอนที่จีนกำลังจะ “ทิ้ง” ของต่างๆ ในความทรงจำของเธอ แทนที่จะรีบโกยของทุกอย่างลงถุงดำ เธอหยิบโทรศัพท์ขึ้นมาถ่ายรูปของชิ้นที่กำลังจะทิ้งและส่งรูปให้ “น้องมะลิ” ดู น้องมะลิ จะบอกจีนทันทีว่า บ้านในอนาคตของของชิ้นนี้ควรเป็นที่ไหน จีนจะรู้ว่า ของแต่ละชิ้นควร “ได้ไปต่อ” ที่ไหน ซึ่งน้องมะลิจะแนะนำแต่ที่ที่ของชิ้นนั้นๆ จะทำให้เกิดประโยชน์สูงสุดกับทุกๆ คนอยู่แล้ว
จีนคงมีรอยยิ้มเพิ่มขึ้น เมื่อได้รู้ว่าของแต่ละชิ้นที่เธอ “ทิ้ง” ไป ไม่ใช่แค่ “การจับยัดถุงดำ” หากแต่คือการ “ส่งต่อ” ประโยชน์ใช้สอยและความสุขให้สังคม ของบางอย่างไม่สามารถมีบ้านใหม่ได้จริงๆ ก็ต้อง “ทิ้ง” แต่น้องมะลิจะไม่ทำให้การทิ้งนั้นสูญเปล่า ถ้าของชิ้นนั้นสามารถนำไป Recycle ได้ แน่นอนว่าของชิ้นนั้นก็ยังมีมูลค่า ซึ่งน้องมะลิสามารถแนะนำสถานที่รับซื้อของ Recycle ได้อย่างตรงจุด มือถือเครื่องเก่าก็จะได้ไปโรงงาน Recycle e-waste หนังสือเก่าหรือลังกระดาษก็จะได้ไปโรงงาน Recycle กระดาษ การ “ทิ้ง” ในกรณีนี้จึงมีมูลค่ากลับมา คิดจะทิ้ง คิดถึงน้องมะลิ โคตรคูล!
เริ่มอยากรู้กันแล้วใช่ไหมล่ะ ว่า “ความฉลาดเลือก” ที่ทำให้น้องมะลิน่ารักนั้นมีที่มาที่ไปอย่างไร มาดูกัน…
ก่อนจะมาเป็นน้องมะลิ
“วิวัฒนาการน้องมะลิขั้นที่ 1: Catalogue ของบริจาค และ ของ Recycle”
มะลิจะสามารถแยกของแต่ละสิ่งได้ก็ต่อเมื่อเห็นของสิ่งนั้นๆ ซ้ำไปซ้ำมา เพราะฉะนั้น บทเรียนวิชาบริจาค และ Recycle 101 ที่เตรียมไว้ให้มะลิเรียนรู้ก็คือ รูปของบริจาค ทั้งหมด 4 ประเภท คือ หนังสือ, ลิปสติก, รองเท้า และ เสื้อผ้า ส่วนรูปของที่สามารถ Recycle ได้ที่เตรียมไว้สำหรับมะลิ คือ ขวดน้ำ, แบตเตอรี่, กระดาษ โดยรูปของแต่ละประเภทจะต้องมีจำนวนที่เพียงพอให้มะลิเข้าใจว่าของประเภทนั้นๆ นั้นคืออะไร เมื่อน้องมะลิได้เห็นรูปใหม่
“วิวัฒนาการน้องมะลิขั้นที่ 2: Augmentation ตีลังกามองก็รู้ว่าคืออะไร”
ความฉลาดที่มะลิควรมีก็คือ สามารถรู้ได้ว่าของสิ่งนั้นคืออะไร ในทุกๆ Position คนเราไม่ได้ถ่ายรูปสิ่งของหมือนรูปติดบัตรนี่เนอะ…เพื่อความถูกต้องแม่นยำ การทำ Augmentation หรือการหมุนรูป หรือ ปรับเฉดรูป จะทำให้น้องมะลิจะได้เข้าใจมากขึ้นว่ารูปนั้นคืออะไรกันแน่ เพื่อป้องกันการ Overfitting นั่นเอง
Augmentation : สิ่งที่นิยมสำหรับการปรับแต่งรูปภาพมีอีกหลายอย่าง ได้แก่ ย่อ/ขยาย, หมุน ซ้าย/ขวา, Flip ซ้าย/ขวา/บน/ล่าง, Crop มุม, ปรับสีเข้ม/จืด, ปรับแสง สว่าง/มืด, ปรับ Contrast, ปรับ Perspective, เพิ่ม/ลด Noise, เบลอภาพ
Overfitting : การที่โมเดลตอบสนองต่อการรบกวน (noise) จำนวนมากจนเริ่มเรียนจากการรบกวนและรายละเอียดของข้อมูลที่ไม่ถูกต้องแล้วโมเดลของเราจะไม่เหมาะสมสำหรับการสามารถทำนายข้อมูล เช่น ทำนายข้อมูลที่ไม่เคยมีอย่างผิดพลาดกว่าที่คาดจะเป็นมาก (ล้มเหลวที่จะทำนายข้อมูลได้ถูกต้อง) เพราะมีรายละเอียดและการรบกวนมากเกินไป กรณีนี้โมเดลมีค่าค่าความแปรปรวนของข้อมูลสูง (high variance)
“วิวัฒนาการมะลิขั้นที่ 3: ไม่เข้าใจไม่เป็นไร ทำความเข้าใจใหม่จ้ะมะลิ”
มะลิเรียนรู้มาแล้ว แต่มะลิก็อาจจะยังไม่เข้าใจรูปใหม่ๆ ที่เราส่งให้ เราก็แค่ต้องสอนน้องเพิ่มว่ารูปนั้นๆ คืออะไร โดยใช้ Xception Model โดยในขั้นตอนนี้ก็จะมีการ Test ซ้ำอีกรอบด้วย โดยเราจะบันทึกความเข้าใจของน้องมะลิเป็นค่าคำตอบที่ใกล้เคียงที่สุด เพื่อครั้งต่อไปจะได้มีโอกาสเข้าใจรูปต่างๆ มากยิ่งขึ้นนั่นเอง
def build_model():baseModel = Xception(input_shape=(256, 256, 3), include_top=False, weights='imagenet')
x = baseModel.output
x = AveragePooling2D(pool_size=(4, 4))(x)
x = Flatten(name="flatten")(x)
x = Dense(512, activation='relu', name='fc1')(x)
x = Dropout(0.7, name='dropout1')(x)
x = Dense(256, activation='relu', name='fc2')(x)
x = Dropout(0.5, name='dropout2')(x)
headModel = Dense(4, activation='softmax', name='fc3')(x)
model = Model(inputs=baseModel.input, outputs=headModel)
return model
“วิวัฒนาการมะลิขั้นที่ 4: วัด IQ น้องมะลิ”
ขั้นตอนสุดท้ายเพื่อให้แน่ใจจริง ๆ ว่ามะลินั้นชัวร์ ไม่ได้มั่ว ก็คือการที่ให้น้องมะลิ ได้ลองทายคำตอบ จากภาพที่ไม่เคยเห็นมาก่อน ซึ่งถ้าได้คะแนนในระดับที่น่าพอใจแล้ว ก็หมายความว่ามะลิฉลาดพอผ่านการทดสอบคอร์ส How to ทิ้ง ไปสู่การนำไปใช้จริงบน Chatbot ผ่าน API
# Evaluation on test dataset
test_loss, test_score = model.evaluate(test_data, test_labels, batch_size=32)
print("Loss on test set: ", test_loss)
print("Accuracy on test set: ", test_score)
อนาคตของน้องมะลิ
น้องมะลิจะเติบโตและมีพัฒนาการอย่างต่อเนื่อง ในอนาคต น้องมะลิจะสามารถบอกจุดรับบริจาคหรือจุดรับซื้อของ Recycle ที่ใกล้ที่สุด สะดวกที่สุด ให้กับผู้ใช้งาน จากข้อมูลพิกัด GPS นอกจากนั้น ในส่วนของการขายของที่ยังมีมูลค่าหรือของที่จะนำไป Recycle น้องมะลิสามารถที่จะเปรียบเทียบราคารับซื้อของแต่ละที่และบอกที่ที่ให้ราคาสูงสุดสำหรับของชนิดนั้นๆ ได้ เพื่อเป็นข้อมูลประกอบการพิจารณาของผู้ใช้งาน สะดวกกว่าเดิม ประหยัดเวลาค้นหา ประหยัดเวลาเดินทางไปที่ไกลๆ และรู้ว่าที่ไหนของเราจะขายได้ราคาดีที่สุด
สรุป
น้องมะลิเป็น Chatbot ที่ได้รับการออกแบบให้ตอบโจทย์ผู้ที่ต้องการบริจาคของใช้ส่วนเกินหรือผู้ที่ต้องการทำเงินจากขยะ Recycle โดยมันสมองของมะลิคือ Image classification algorithm ซึ่งสามารถแยกสิ่งของประเภทต่างๆ ได้จากรูปภาพ โดยการใช้งานนั้นง่ายเพียงแค่เพิ่มน้องมะลิเป็นเพื่อนในไลน์แล้วส่งภาพสิ่งของต่างๆ ให้น้องมะลิช่วยแยกแยะ
น้องมะลิสามารถโต้ตอบกับผู้ใช้งานได้จากการออกแบบบทสนทนาบน platform ของ botnoi การฝึกให้น้องมะลิโต้ตอบกับผู้ใช้งานนั้น จะฝึกโดยการป้อนชุดบทสนทนาที่ได้ทำการรวบรวมไว้แล้ว และฝึกเพิ่มเติมโดยการจำลองการใช้งานจริง ทำให้น้องมะลิสามารถโต้ตอบกับผู้ใช้งานได้อย่างเป็นธรรมชาติ
เมื่อน้องมะลิได้ดูรูปภาพที่ผู้ใช้งานป้อนให้ จึงสามารถบอกได้ว่าในรูปภาพมีของประเภทใด และควรจะบริจาคหรือขายต่อได้ที่ใด ทำให้ผู้ใช้งานสามารถบริจาคของที่ไม่ใช้แล้วให้กับมูลนิธิต่างๆ สร้างรายได้จากขยะ recycle ได้อย่างตรงจุด สะดวกและรวดเร็ว ทำให้มีการสร้างประโยชน์อย่างคุ้มค่าให้กับสิ่งของต่างๆ ตลอดอายุการใช้งาน และลดปริมาณขยะโดยไม่จำเป็น
ทิ้งแบบนี้มัน “โคตรคูล” เลย ว่ามั้ย?
ขอบคุณนะ เสื้อตัวเก่งที่เคยใส่ประจำ ขอบคุณนะ น้องมะลิ~
___________________________________________________________________