Binee
พลังประชา DEV — BAAC
2 min readJun 23, 2019

--

เมื่อ Programmer101 ได้ไปเปิดโลกการทำ Matchine learning

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

เมื่อวานนี้มีโอกาสได้ไปงาน Codemania 1001 ที่ TrueDigitalPark บอกเลยว่าได้ข้อคิดหลายอย่างมาก ซึ่งหลักๆของบล๊อกนี้จะขอพูดเกี่ยวกับข้อคิดที่ได้จากงานละกันนะครับ โดยจะขอพูดถึง section ของพี่ kiattiyot จาก bit.studio ที่มาบอกเล่าประสบการณ์การเป็น managing director ของการทำ Matching learning ซึ่งสรุปแบบคร่าวๆได้ว่า ก่อนที่ทีมเขาจะถูกพี่เกิลชวนไปงาน shadow art @ google I/O 2019 ได้เนี่ย
ทีมของพี่เขาได้ใช้ openCV ในการ design&coding model นั่นแหละ โดยใช้ Convolutional neural network ในการดึง feature และ classification “เงาที่เกิด จากมือให้กลายเป็นสัตว์ชนิดต่างๆ” โดยดูตัวอย่างได้ในวีดีโอด้านล่างนี้เลย

classification shadow to animal

ซึ่งพี่เขาบอกว่าหลังจากทำเสร็จก็อัพวีดีโอลงปกติ ทีนี้ดั๊นนน ดันมีแนวมองของพี่เกิลเข้ามาหา

“เห้ยผมสนใจงานคุณนะ ลองส่งตัวอย่างแบบละเอียดให้ผมดูหน่อย เราอาจจะขอเชิญคุณให้มางานของเรา”
เพราะฉะนั้นข้อแรกเลยที่ทุกสายงานสามารถนำไปปรับใช้ได้คือ
“หากเราทำอะไรที่คิดว่ามันเจ๋งก็แสดงมันออกมาเลย ไม่ต้องไปแคร์สายตาคนอื่น”

โดยหลังจากที่พี่เกิลได้ส่งเทียบเชิญมาแล้วเนี่ย ทีมของพี่เขาก็ได้เปลี่ยนจากการใช้ openCV มาใช้ TensorFlow ในการออกแบบ model ซึ่งเจ้าตัว TensorFlow เนี่ย มันก็คือ lib แบบ open source ของพี่เกิลซึ่งไครสามารถนำมาใช้ก็ได้นั่นเอง ซึ่งพี่เขาก็เอาเจ้าตัวนี้เนี่ยไปจัดแสดงงานตามที่ต่างๆทั้งในและต่างประเทศ มีตัวอย่างให้ดูตามนี้เลย

สวนสนุก bit playground ที่เมกกะบางนา

ซึ่งใน bit playground เนี่ยมีฟีดเจอร์หลายอย่างให้เล่นเช่นการ classification รูปภาพที่มีคนวาดออกมาไปแสดงเป็นอารมณ์ ความสูงต่ำของทรายจะแสดงเหมือนแผนที่ภูมิประเทศเป็นต้น

ในส่วนของเงามือก็เช่นกัน แต่เนื่องจากเป็นตัวชูโรง (ที่จะไปนำแสดงโชวในงานพี่เกิล) จึงต้องทำให้ดีหน่อย ซึ่ง ณ ตอนนั้นยังใช้ Convolutional Neural Network เป็นโมเดลในการออกแบบอยู่ แต่ติดที่ว่าการใช้ CNN เนี่ย มันค่อนข้างเฉพาะเจาะจงเกินไป ในกรณีที่เล่นเกี่ยวกับเงานั้น เช่นเราทำรูปสุนัขซึ่งเหมือนกับรูปต้นฉบับเลย เพียงแต่มุมไม่เหมือนกัน CNN ก็จะ classifily ออกมาเป็นคนละรูปกัน ซึ่งทำให้เกินความจำเป็นในการใช้งาน จึงเปลี่ยนไปใช้ pollar coordinate แทน จะได้ไม่มีปัญหาในการซูมมือเข้าออก การเทรด data การปรับมุมของมือเป็นต้น

ซึงสามารถลิสมาเป็นข้อคิดในข้อที่ 2 คือ
“ใช้งานและปรับเปลี่ยนทุกอย่างให้อยู่ในความเหมาะสมของงานชิ้นนั้นๆ อย่ายึดติดกับสิ่งเก่าๆมากเกินไป”

ซึ่งไครที่อยากศึกษา deep learning และ polar coordinate เบื้องต้นก็สามารถตามมาดูในนี้ได้เลย

https://arxiv.org/pdf/1709.01889.pdf

หลังจากที่ออกแบบและดัดแปลง model ร่วมกับการใช้ Tensorflow จนเสร็จสิ้นแล้วก็ได้ custom model ใหม่ขึ้นมาคือ “learning to compare” ซึ่งจุดเด่นของ model นี้คือ สามารถดึงฟีดเจอร์ของ testing data ออกมาและพร้อมนำไปใช้ได้เลยโดยที่ไม่ต้องเทรนใหม่ โดยจะต้องอัพข้อมูลลงที่อินเทอร์เน็ต ที่ทำให้ผู้ใช้งานสามารถลองเล่นผ่านหน้าเว็บกูเกิลได้ด้วย โดยในตอนแรกได้วางแผนว่าให้ user ยิงไปเครื่อง sever เลย แต่มันไม่เมคเซ๊น จึงได้ทำการพัฒนาเซอร์วิสของ tensorFlow ออกมาโดยใช้ชือว่า tensorflow.js ซึ่งกินแคชเพียง 10.7 Mb เท่านั้นเอง และจะทำให้ user สามารถเล่นผ่านหน้าเว็บบลาวเซอร์ได้เลย! สามารถไปลองเล่นกันได้ในเว็บนี้ครับ

https://shadowart.withgoogle.com

ซึ่งข้อดีของ tensorFlow.js ที่ถูกพัฒนาขึ้นมาเนี่ย มันจะทำการลดข้อมูลทุกๆอย่างลงมาโดยที่ยังทำให้สามารถใช้งานเว็บไซต์ได้ตามปกติ เช่นรูปของมือจะไม่ถูกส่งไปในเครื่อง sever จะส่งไปเพียงแค่เงาที่เป็นภาพ grayscale เท่านั้น ไฟล์ .mp4 จะถูกปรับเป็น png และลดขนาดลงเป็นต้น สำหรับไครที่สนใจว่าเจ้า lib ตัวนี้ทำงานอย่างไรก็สามารถตามไปดูได้เลยนะครับ

จบกันไปเพียงเท่านี้นะครับสำหรับการสรุปสิ่งที่ได้มากับ session ของพี่ Kiattiyot Panichprecha ในงาน codemania แต่โดยจริงๆแล้วถือเป็นเพียงแค่ส่วนหนึ่งในงานเท่านั้น ซึ่งยังมีความรู้จาก session อื่นๆอีกเช่น การออกแบบเว็บนับผลการเลือกตั้งออนไลน์ โดยมีเวลาออกแบบเพียงแค่ 2 อาทิตย์! ทั้งการสร้างเกมป๊อกเด้งโดยเริ่มตั้งแต่การออกแบบไปจนถึงขั้นตอน deploy และ monitoring งานออกมาและการควบคุมค่าใช้จ่าย cutlost ในสิ่งที่ไม่จำเป็นทิ้งไปและดึงมาแค่ feature เด่นๆที่ใช้ในงานเท่านั้น

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

--

--