จาก Reinforcement Learning จนมาเป็น Deep Reinforcement Learning (ฉบับพกพา)

สวัสดีอีกครั้งกับ tupleblog ไม่ได้เขียนบล็อกซะนานเลย เห็นบล็อกที่แล้วเขียนไปเมื่อปีที่แล้วค่อนข้างตกใจนิดหน่อย วันนี้เราจะมาทำความรู้จักกับการเรียนรู้แบบเสริมกำลังหรือ reinforcement learning กัน พอเข้าใจว่ามีคนเขียนหัวข้อนี้กันไปเยอะพอสมควรแล้ว แต่ในบล็อกนี้เราจะมาเริ่มต้นกันตั้งแต่พื้นฐานดังต่อไปนี้ Reinforcement Learning (RL) คืออะไร ทำความเข้าใจโจทย์ Reinforcement learning และ Finite Markov Decision Process (MDP) หา Optimal Policy โดยใช้วิธี Monte Carlo และ...
[Python] profiler ด้วย line_profiler

เกริ่นนำ ในการเขียนโปรแกรมนอกจากความถูกต้องในการทำงานของโปรแกรมแล้ว เราต้องการโปรแกรมที่ทำงานได้รวดเร็ว แต่บางทีเราก็ไม่รู้ว่าจะต้อง Optimize โปรแกรมกันตรงไหน วันนี้ผมจึงมาแนะนำการใช้งาน line_profiler เพื่อทำ profiler ในการตรวจสอบความเร็วในการทำงานของโค้ด Python ในแต่ละบรรทัดกันเลย ติดตั้ง ติดตั้ง Package ผ่าน pip กันตามปกติ pip install line_profiler แบบ Annotation เพียงแค่เพิ่ม annotation @profile ไว้ก่อนฟังชั่นที่ต้องการตรวจสอบประสิทธิภาพเท่านั้น import time...
[รีวิว] เน็ตบ้าน AIS

เกริ่นนำ สวัสดีครับ นี่เป็นบล็อกแรกที่เขียนกับทาง tupleblog ก็เลยขอเริ่มจากเรื่องง่ายๆ ก่อน คือรีวิวการติดตั้งและใช้งานอินเทอร์เน็ตบ้านของ AIS เนื้อหาพูดในมุมมองผู้ใช้ทั่วไปเสริมด้วยเชิงเทคนิคเล็กน้อย ถ้าใครกำลังสนใจหรือลังเลกับเน็ตเจ้านี้อยู่ก็หวังว่าจะช่วยเป็นหนึ่งในตัวช่วยตัดสินใจได้ครับ เรื่องราว เดิมทีใช้เน็ตบ้าน Fiber optic ของ 3BB มาก่อน เริ่มต้นใช้งาน Fiber optic มาตั้งแต่ยุคแรกๆ ที่ Fiber optic เข้าถึงเน็ตบ้านก็ประมาณตั้งแต่ปี 2556 ใช้งานมา 3 ปีแรกก็ไม่พบปัญหาอะไรเน็ตค่อนข้างเร็วแรง Ping...
ใครไปวิ่งงาน CMU Marathon 2019 บ้างจ๊ะ

เกริ่นนำ ช่วงต้นเดือนกุมภาพันธ์ที่จะถึงนี้ ทางม.เชียงใหม่เค้าจัดให้ลงทะเบียน CMU Marathon เพื่อไปวิ่งที่เชียงใหม่กันครับ ซึ่งทางทีม tupleblog ส่งตัวแทนเข้าชิง 2 นายด้วยกัน ได้แก่จารย์มาย @titipata และผมเอง @bachkukkik นอกจากนี้ยังมีเพื่อนสนิทจากเมืองกรุงไปร่วมแจมงานวิ่งอีกหลายท่านด้วย อาทิเช่น เหลียงธนบุรี แพนด้าหัวลำโพง จ๋อดาวคะนอง เป็นต้น จัดว่าเป็น Mini Party ของ tuple team เลยครับ ตอนวันที่ 11/11...
Pytorch กับ Gradient Descent

เกริ่นนำ สำหรับใครที่ยังไม่ได้อ่านโพสต์ที่แล้วเกี่ยวกับการเคลื่อนลงตามความชัน (gradient descent) ไปตามอ่านได่้ที่นี่เลย อย่างที่กล่าวไว้ในโพสต์ที่แล้ว นอกจากวิธีการเคลื่อนลงตามความชัน (gradient descent) จะมีความสำคัญสำหรับหลายๆวิชาในทางวิศวกรรมศาสตร์แล้ว เทคนิคนี้ยังถูกนำมาใช้ในศาสตร์อย่างวิทยาศาสตร์คอมพิวเตอร์ (computer science) ด้วยเช่นกัน ไลบรารี่เกี่ยวกับ Deep learning ในปัจจุบันได้นำเทคนิค Gradient descent และ automatic differentiation (autograd) มาใช้สำหรับใช้อัพเดทพารามิเตอร์ของ Deep Neural Network ที่มีความซับซ้อนและพารามิเตอร์จำนวนมหาศาล เนื่องจากฟังก์ชันที่มีความซับซ้อนมากขึ้น...
ทำไมถึงต้องใช้ Causal Inference

สัปดาห์ที่ผ่านมาได้เริ่มเรียนวิชาการหาความเป็นสาเหตุ (Causal Inference) กับอาจารย์​คอนราด คอร์ดดิง (Konrad Kording) ที่ University of Pennsylvania ในวิชานี้ตอนเริ่มวิชาคอนราดได้พูดถึงว่าทำไมเราต้องนำ Causal Inference มาใช้ในศาสตร์ประสาทวิทยา (Neuroscience) ไว้ได้ดีมากๆ โดยนำเอาระบบขนาดเล็กมาอธิบายเพื่อให้เข้าใจภาพกว้างของวิชา รู้สึกว่าได้แนวคิดที่เจ๋งมากๆจากตัวอย่างเล็กๆเลยเอามาเขียนแชร์กันฮะ ในบล็อกนี้เราจะมาพูดถึงกันว่าทำไมเทคนิคอย่างเช่น Functional Connectivity ที่งานวิจัยประสาทวิทยาที่ก่อนหน้าทำกันมาจึงไม่เพียงพอ และทำไมเราจำเป็นถึงต้องใช้เทคนิคอย่างเช่น Causal Inference มาศึกษาวิชาประสาทวิทยาเพิ่มเติม และเราจะพูดปิดท้ายไว้เล็กน้อยเกี่ยวกับวิธีการใช้ Causal Inference...
บันทึกหนึ่งเดือนในมอนทรีออล (กิน/เที่ยว/เล่น/วิชาการไม่มี)

แคนาดาน่าจะเป็นประเทศแรกๆ ที่ผมรู้จักตั้งแต่สมัยเด็กๆ แต่นอกจากโตรอนโตกับแวนคูเวอร์แล้วเมืองอื่นๆ ก็แทบจะไม่ค่อยได้ยินมากซักเท่าไหร่ ตอนเรียนเราก็รู้แค่ว่ามอนทรีออลเป็นเมืองที่ใหญ่เป็นอันดับสองในแคนาดาตั้งอยู่ในรัฐควีเบกซึ่งผู้คนใช้ภาษาฝรั่งเศสสื่อสารกัน ปีนี้เป็นปีแรกที่เราได้ไปใช้ชีวิตอยู่ในมอนทรีออลเป็นเวลาเกือบหนึ่งเดือนกับเพื่อนๆ จากมหาวิทยาลัย จากที่รู้จักมอนทรีออลเล็กน้อยจากวิชาภูมิศาสตร์ก็กลายเป็นสนิทสนม จนรู้สึกหลงรักมอนทรีออลและขอยกให้เมืองนี้เป็นหนึ่งในเมืองโปรดของเราเลย ถนนในมอนทรีออล ในโพสต์นี้เราจะมาเล่าคร่าวๆ เกี่ยวกับสถาปัตยกรรม ของกิน ขนม และผู้คนที่มอนทรีออลในแบบที่เราได้พบเจอ ทุกๆ เช้า มอนทรีออลเป็นเมืองขนาดใหญ่พอสมควรโดยมีภูเขาคั่นกลางระหว่างโซนดาวน์ทาวน์และโซนหลังเขา เรามาแลกเปลี่ยนที่มหาวิทยาลัยมอนทรีออลหรือ University de Montreal ซึ่งดันไปอยู่หลังเขาฮะ พวกเราจองที่พักกันแถวๆ ถนนชื่อว่าโคดิเนย์ (Cote Des Neiges) ทุกๆ เช้าเราต้องเดินประมาณ...
[ML] Bagging หรือ Boosting คืออะไร ทำงานอย่างไร?

ช่วงสัปดาห์ที่ผ่านมาพี่ตั๋นในทีม tupleblog ทักมาในกลุ่มถามว่า Random Forest กับ XGBoost ใช้งานต่างกันยังไง ถ้าระดับพี่ตั๋นถามแล้ว คนอื่นๆก็น่าจะถามเช่นเดียวกัน เราเลยตั้งใจว่าจะเขียนบล็อกสั้นๆไว้อธิบายเพราะหลายๆคนน่าจะมีคำถามใกล้เคียงกัน แล้วก็เผื่อกลับมาอ่านเองด้วยในอนาคต อารัมภบท เราอาจจะคุ้นเคยการทำการสำรวจในที่สาธารณะ เช่น ให้คนทำนายจำนวนประชากรในประเทศไทย หรือสำรวจว่าพรรคการเมืองไหนจะชนะการเลือกตั้ง ถ้าเราสุ่มถามแค่ 1-2 คน ก็อาจจะไม่ได้คำตอบที่ใกล้เคียงความเป็นจริงมากเท่าไหร่ แต่ไม่น่าเชื่อว่าถ้าเราถามคนเยอะขึ้นเรื่อยๆแล้วเอาคำตอบมาเฉลี่ยกัน คำตอบนั้นส่วนมากจะเข้าใกล้ความเป็นจริงมากขึ้นเรื่อยๆ หรือที่เค้าเรียกว่า Wisdom of the crowd นี่เอง ใน...
เด็กหัวร้อนวิเคราะห์ PUBG

คำเตือน โพสต์นี้มีคำหยาบเนื่องจากผู้เขียนเพิ่งเล่น PUBG Mobile มาและไม่ชนะซักที หัวร้อนสัสครับ เกริ่นนำ ชีวิตบางครั้งก็ต้องการพักพ่อน ออกไปวิ่ง ขับรถ ขับเรือบ้างไรบ้าง สำหรับเรา เราเลือกการพักผ่อนเหล่านี้โดยการนั่งอยู่กับมือถือและเปิด PUBG (Playerunknown’s Battlegrounds) ทำไมหน่ะหรอ? ก็เพราะเกมนี้ตอบสนองการพักผ่อนทั้งหมดของเรา ทั้งได้ออกไปวิ่ง(หนีกระสุน) ขับรถ(เหยียบคน) และขับเรือออกไปเกาะ ขึ้นไปดูวิวบนประภาคาร เกมนี้ให้ครบทั้งหมดเลยฮะ ขับรถ ขับเรือ เอาจริงๆละ! ทิี่กล่าวมาข้างต้นมันจริงนะ แต่ไม่ทั้งหมด อิสัส PUBG...
Face Classification on Web Browser using TensorFlow.js

สำหรับใครที่ไม่อยากอ่านโพสต์ เข้าไปลองกันเลยที่ tupleblog.github.io/face-classification-js ฮะ (โมเดลมีขนาดประมาณ 1 MB ทั้งหมด 2 โมเดลนะ ใครที่ mobile data เหลือน้อยก็ระวังนิดนึงถ้าจะลองเล่นบนมือถือ) ลองเล่นกันได้ที่ https://tupleblog.github.io/face-classification-js/ เกริ่นนำ เค้าว่ากันว่าใบหน้าของเราเนี่ยบ่งบอกอารมณ์ เวลาคนเรามองหน้ากันก็รู้เลยว่าอีกฝั่งนึงอารมณ์เป็นแบบไหน ในเมื่อคนเราสามารถจับอารมณ์ของหน้าตาได้ AI ก็น่าจะทำได้เช่นกัน เมื่อปีที่แล้วกลุ่มนักวิจัยจาก Sankt Augustin ประเทศเยอรมันและ University of Edinburg ประเทศอังกฤษได้...
Analysis of Thai pop songs' lyrics

เกริ่นนำ คือเราไปอ่านบล็อกโพสต์ที่ดังมากในปลายปีที่ผ่านมาจาก Vox ซึ่งเค้าใช้เทคนิคพล็อตเข้ามาช่วยในการดูลักษณะของเพลง และนอกจากนั้นก็เอามาวิเคราะห์ว่าเพลงในปัจจุบันมีการใช้คำซ้ำกันมากขึ้นขนาดไหน โดยสรุปคือว่าเพลงฮิตติดชาร์ตในปัจจุบันมักจะใช้คำซ้ำกันมากขึ้นเรื่อยๆ และเทรนนี้ยิ่งเติบโตขึ้นเรื่อยๆในแต่ละปี โดยเค้าพบว่าเพลงที่ติด Top 100 ของ Billboard ส่วนมากจะมีท่อนที่ร้องซ้ำกันเยอะกว่าเพลงทั่วไป ตัวอย่างก็เช่นเพลง Yeah Right ของ Vince Staples ซึ่งท่อนฮุคร้องเพียงแค่ 2 คำเท่านั้นคือแค่ Boy yeah right, yeah right, yeah right (Boy...
Deepcut มาคัดข่าว

การทีวีในบ้านเรานี่เป็นสิ่งที่ขาดไม่ได้อย่างนึงเลยทีเดียว การฟังข่าวถือเป็นหนึ่งในกิจวัตรหลักของการดูทีวีในไทยเลยก็เป็นได้ ถ้าใครติดตามข่าวจากรัฐบาลเนี่ย ก็จะรู้ว่าข่าวจากรัฐมีหลายประเภทเหมือนกันนะ ตั้งแต่ข่าวจากทำเนียบ ด้านกฎหมาย การศึกษา ความมั่นคง สังคม เศรษฐกิจ เยอะแยะไปหมดเลย จริงๆแล้วที่เกริ่นมาไม่เกี่ยวอะไรเลย คือว่าวันนี้เราจะลองเอาโปรแกรม deepcut ที่พัฒนาจากทารบริษัท True Corporation มาใช้คัดข่าวจากเว็บไซต์รัฐบาลไทยกัน ซึ่ง data ที่ได้มานี้ยืมมาจาก wannaphongcom/thaigov-corpus มีทั้งหมด 8923 ข่าว เราจะมาดูกันว่าเราจะแยกประเภทข่าวกันได้มั้ย ในโพสต์นี้เราจะใช้เทคนิค bag-of-words ซึ่งแปลงข่าวให้เป็นเมทริกซ์กัน ซึ่งค่อนข้างเหมาะกับขนาด...