/CocktailClassification

ระบบจำแนกคอกเทลเพื่อบอกส่วนผสมและปริมาณแอลกอฮอล์เป็นทางเลือกสำหรับผู้ที่สนใจด้วย Deep Learning

Primary LanguagePython

CocktailClassification

ระบบจำแนกคอกเทลเพื่อบอกส่วนผสมและปริมาณแอลกอฮอล์เป็นทางเลือกสำหรับผู้ที่สนใจด้วย Deep Learning

แนวคิด

คอกเทลมีมากมายหลายชนิด ถ้าหากเป็นผู้ที่สนใจก็จะจำแนกได้ไม่ยากด้วยตาเปล่า แต่หากใช้ Computer vision และ Deep Learning ในการตรวจสอบและจำแนก
มันจะเวิร์คมั้ยนะ นี่คือสิ่งที่ผมคิดตามแบบฉบับคนชอบแอลกอฮอล์เป็นชีวิตจิตใจ

เริ่มต้น ผมจะใช้ Cocktail 10 ชนิดดังนี้

-B52

alt text

-Black Russian

alt text

-Bloody mary

alt text

-Blue Hawaii

alt text

-Dry Martini

alt text

-Midori Sour

alt text

-Mojito

alt text

-Pina Colada

alt text

-Screw Driver

alt text

-Sex on the beach

alt text

แล้วใช้ CNN ในการเทรน โดยการผ่าน Convolutional Layer สลับกับ Max Pooling 4 รอบ จากนั้นผ่าน Hidden Layer 64 รอบนึง และ 32 รอบนึง ผลปรากฎว่าการทำนายไม่ดีเท่าที่ควร อยู่ที่ 81%

จึงได้ใส่ Initialization และ Regularization เพื่อช่วยกระตุ้นการลด Loss (ได้ลองใส่ Dropout ลงไปแล้ว แต่ผลแย่ลง จึงตัดออกไป) ผลปัจจุบันตอนนี้อยู่ที่ 87% เมื่อลด Learning Rate ให้เหลือ 0.001 และเพิ่ม Epoch เป็น 30 ก็ช่วยให้มีความแม่นยำมากขึ้นจริง

alt text

วิธีการใช้งานโปรแกรม

อย่างแรกให้ทำการโหลด Data set จากลิ๊ง (ผม Label เอง) https://drive.google.com/file/d/1MWy1hQ0UosfAMxJOvMwm6Iydqi0ijjd6/view?usp=sharing จากนั้นแตกไฟล์ที่ที่อยู่เดียวกับโค้ด CocktailClassification.py จากนั้นทำการรันดูใน spyder

หากสามารถใช้ได้ ก็จะสามารถทำนายด้วยตัวเองเล่นๆได้โดยการเปลี่ยนที่อยู่ของรูปที่ต้องการทำนาย ในโค้ด Input ด้านล่างโมเดล

สรุป

เอาจริงๆ ผมเองก็ไม่รู้ว่าจะเอาไปทำอะไรได้ต่อไป แต่อย่างน้อยหากเรารู้ส่วนผสมและปริมาณแอลกอฮอล์ในเครื่องดื่มที่เรากิน เราจะได้เอาไปคำนวณได้ว่า จะกินอีกกี่แก้วดีนะ ที่จะทำให้เป่าเครื่องเป่าที่ด่านแล้วจะไม่ติดคุก 5555555