Deep Learning กับการช่วยอนุรักษ์วาฬ ใน "Saving Whale Project"

บทความนี้ เราจะมาทำความรู้กับอีกหนึ่งโครงการที่มีการนำ Machine Learning มาใช้เพื่อแก้ปัญหาที่เกิดขึั้นจริง เพื่อแก้ปัญหาการสูญพันธ์ของปลาวาฬหายากกัน ก่อนอื่นเรามาดูจุดเริ่มต้นของปัญหากันก่อนค่ะ ปัญหา จะมีซักกี่คนที่รู้ว่า สัตว์เลี้ยงลูกด้วยนมขนาดมหึมาอย่าง “วาฬ” หรือ ที่นิยมเรียกกันติดปากว่า “ปลาวาฬ” ซึ่งจริงๆ แล้ว ไม่ใช่ปลา เพียงแค่อาศัยอยู่ในน้ำเท่านั้น! เป็นสิ่งมีชีวิตที่ “ใกล้” จะสูญพันธ์ โดยเฉพาะวาฬสายพันธ์ที่หายากต่างๆ เช่น Narwhal, North Atlantic Right Whale, Sei Whale มาดูตัวอย่างหน้าตาวาฬที่ได้รับการจัดว่ากำลังเสี่ยงต่อการสูญพันธุ์ โดย WWF (World Wide Fund for Nature) กันก่อนค่ะ ดังนั้น จึงต้องมีกลุ่มนักอนุรักษ์ที่คอยสอดส่องดูแลเจ้าวาฬเหล่านี้อย่างใกล้ชิด แต่ปัญหามันอยู่ที่ว่า เจ้าสัตว์โลกตัวมหึมาเหล่านี้ อาศัยอยู่ในทะเล ถึงแม้จะต้องขึ้นมาหายใจที่ผิวน้ำ แต่ก็ไม่ได้โผล่ขึ้นมาให้เราเห็นทั้งตัว และ ไม่ได้โผล่ขึ้นมาบ่อยๆ แล้วนักอนุรักษ์จะรู้ได้ยังไงล่ะ ว่าตัวไหน เป็นตัวไหน และ จำนวนของพวกมันเพิ่มขึ้น หรือ ลดลงอย่างไร???…

ว่าด้วย Recurrent Neural Networks: Part 1

ไม่ได้เขียนบล็อคซะนานเนื่องจากป่วยไปพักใหญ่ ตอนนี้กลับมา จะเริ่มกลับมาเขียนแล้วครับ โดยเรื่องที่ผมคิดไว้คราวนี้จะเป็น “การทำนายอนาคตของข้อมูล Time series” ครับ เพราะเป็นช่วงเวลาที่พอดีกับที่ผมต้องสรุปผลการทดลองส่งแลปพอดีครับ เลยจะขีด ๆ เขียน ๆ ตามไปด้วยเลยก็แล้วกัน ในยุคที่ Deep Learning กำลังครองโลกอยู่นี้ก็คงหลีกเลี่ยงไม่ได้ที่จะต้องกล่าวถึง Recurrent Neural Network (RNN) แต่ก่อนจะไปถึงจุดนั้นเราจะเริ่มจากอะไรที่เบสิก ๆ ก่อน โดยบทความแรกจะเริ่มตั้งแต่เรื่องพื้นฐาน ว่าด้วย Neural Network จาก Linear regression ไปจนถึง Simple Recurrent Neural Network (Simple RNN) Time series และ Simple Neural Network ข้อมูลของเราจะเป็น “Time series” หรือ “อนุกรมเวลา” ได้ ก็ต่อเมื่อ “มีอินเด็กซ์เวลา” มาเกี่ยวข้องนั่นแหละครับ ตัวอย่างเช่น…

Big Data and Machine Learning อนาคตของโลกแห่งการลงทุน!

วันนี้มีบทความจั่วหัวร้อนแรงอย่าง “Go with big data and machine learning, or leave finance to thouse who do!” หรือ ที่แปลเป็นภาษาไทยแบบแสบๆ คัน ว่า “จะใช้ Big data และ Machine Learning ในงานไฟแนนซ์ หรือ ปล่อยเรื่องไฟแนนซ์ให้คนที่ทำได้เค้าทำกัน!” เป็นบทความที่จั่วหัวได้รุนแรงอีกบทความหนึ่งเลยค่ะ เห็นได้ชัดว่าผู้เขียนอย่าง David H Bailey นักวิจัยอาวุโส สาย คณิตศาสตร์ และ คอมพิวเตอร์ ได้แสดงความเชื่อออกมาเต็มที่ว่า Big Data และ Machine Learning จะเป็นอนาคตของงานด้านไฟแนนซ์ รวมถึงการลงทุน อย่างแน่นอน ถึงขนาดที่ว่าใครไม่ลุกขึ้นมาเรียนรู้ ก็จะต้องเดินออกจากสายงานกันไปเลยทีเดียว! เพื่อลดบรรยากาศแห่งความร้อนแรงนี้ ผู้เขียนจึงจะขอเป็นเพียงผู้เล่าให้ฟัง และ เพิ่มเติมข้อมูลในบางส่วนที่น่าสนใจ โดยจะไม่เพิ่มเติมความคิดเห็นส่วนตัวลงไปนะคะ เพียงแค่เห็นว่า…

[Reinforcement Learning 101] ตะลุยคาสิโนด้วย RL: Muti-Armed Bandit (2)- UCB1

จากบทความที่แล้ว เราได้พาไปดูการกำหนดปัญหา การไปเล่น Slot machine ที่คาสิโนของเราและได้หาวิธีการประเมินโอกาสชนะของเครื่อง Slot machine ด้วยวิธีการ Epsilon greedy มาแล้วและได้เปรียบเทียบผลลัพธ์ดู นับว่าทำงานได้ดีประมาณหนึง เอาเข้าจริงๆวิธีการนั้นก็ไม่ได้เป็นอะไรมากไปกว่าการคำนวณ mean ของแต่ละเครื่องผ่านการเล่น Slot machine แต่ละรอบๆเสริมด้วยวิธีการสุ่มเล่นเครื่อง Slot machine บ้างเป็นครั้งคราวเท่านั้นเอง วันนี้เราจะมาดูสมการคณิตศาสตร์ที่ซับซ้อนขึ้นมาอีกนิดหนึง(นิดเดียว) UCB1 ตัวนี้ก็ใช้ในการประเมิน mean ตัวหนึงทำหน้าที่เหมือน Epsilon greedy แต่วิธีการทำนั้นต่างกัน เนื่องจากเราจะแก้ปัญหาเดิม ก่อนอื่นผมขอนำ โอกาสในการชนะของ Slot machine มาแปะกันอีกครั้งนะครับ ​เครื่องที่ 1 มี win rate 10% ต่อการเล่นแต่ละครั้ง เครื่องที่ 2 มี win rate 20% ต่อการเล่นแต่ละครั้ง เครื่องที่ 3 มี win rate 50%…

[Reinforcement Learning 101] ตะลุยคาสิโนด้วย RL: Muti-Armed Bandit (1)- Epsilon Greedy

วันนี้เรามาพูดถึงโมเดลเบื้องต้นของ Reinforcement Learning กันบ้างครับ โดยเราจะเริ่มตั้งแต่แบบเบื้องต้นกันครับ จุดประสงค์ของการไป Casino สมมุติว่าเราไป Casino​ เป้าหมายของเราคืออะไร ก็คงไม่หาเงินจากการเล่นพันให้มากที่สุด แล้วเราเดินไปเล่นเครื่องเล่น Slot Machine ที่ในห้องนั้นมีอยู่ 3 เครื่อง โอกาสชนะ(win rate)ในแต่ละเครื่องไม่เท่ากัน​แต่เราน่ะไม่รู้หรอกว่าเครื่องไหนมี win rate เท่าไหร่บ้าง สมมุติอีกว่าเครื่อง Slot Machine ของ Casino นี้เมื่อเราเข้าไปเล่นแต่ละครั้ง ถ้าชนะเราจะได้เงิน 1 เหรียญ ถ้าแพ้ก็จะได้ 0 เหรียญ  แต่ละเครื่องมี win rate ไม่เท่ากันดังนี้ ​เครื่องที่ 1 มี win rate 10% ต่อการเล่นแต่ละครั้ง เครื่องที่ 2 มี win rate 20% ต่อการเล่นแต่ละครั้ง เครื่องที่ 3 มี win rate 50%…

Decision Tree in Stock market

Decision Tree หรือ ต้นไม้การตัดสินใจ เป็นอีกหนึ่งอัลกอริทึ่มที่ได้รับความสนใจกันอย่างแพร่หลาย เนื่องจากสามารถเข้าใจ และ มองเห็นภาพได้ง่าย ก่อนจะลงไปในรายละเอียดกัน ขอยกตัวอย่างต้นไม้การตัดสินใจในปัญหาทั่วๆ ไป มาให้ดูกันซักหนึ่งตัวอย่างก่อนนะคะ ตัวอย่าง Decision Tree Decision Tree สำหรับการพิจารณาให้เงินกู้ จากรูปด้านบนเป็นตัวอย่าง Decision Tree ง่ายๆ ที่ใช้ในการพิจารณา อนุมัติเงินกู้ (Loan) หรือ ไม่อนุมัติ (No Loan) การสร้างต้นไม้ด้านบน ก็จะเริ่มมาจากการวิเคราะห์ข้อมูลการอนุมัติเงินกู้ในอดีตในรูปของตาราง และทำการคำนวณหาจุดตัดข้อมูลที่ดีที่สุด เพื่อนำมาใช้ในการสร้างเงื่อนไข หรือ โหนด (nodes) เพื่อใช้ในการสร้าง Tree การเลือกโหนดก็จะมีการคำนวณค่าทางคณิตศาสตร์โหนดไหน ถ้าทำการเลือกแล้วจะทำหน้าที่ในการแบ่งข้อมูลได้ดีที่สุด ค่าที่ใช้ในการคำนวณ มีหลายแบบ ตัวอย่างเช่น ค่า Information gain เป็นต้น ในบทความนี้จะไม่ของลงรายละเอียดในการคำนวณนะคะ เนื่องจากเป้าหมายของบทความคือ การนำ Decision Tree มาประยุกต์ใช้กับการเทรด จึงอยากจะขอเน้นในด้านการนำมาประยุกต์ใช้แล้วได้ผลลัพธ์เป็นอย่างไรมากกว่าค่ะ Decision…

ตัวอย่างการใช้ ARIMA ในการทำนายค่า GDP ของประเทศไทย พร้อม source code (2)

ทความนี้เราจะมาว่ากันต่อในเรื่องของการทำนายข้อมูล Time Series ด้วย ARIMA กันค่ะ โดยบทความนี้เป็นบทความที่ 3 ของบทความชุด “ARIMA เท่าที่เข้าใจ” ซึ่งได้เขียนไปแล้ว 2 ตอนด้วยกัน สามารถอ่านได้ตามลิงก์ด้านล่าง เมื่ออ่านครบทั้ง 3 บทความนี้ ก็น่าจะสามารถนำ ARIMA ไปประยุกต์ใช้ในการทำนายข้อมูลประเภทต่างๆ ได้อย่างไม่ยากแล้วค่ะ บทความชุด “ARIMA เท่าที่เข้าใจ” 1) ARIMA เท่าที่เข้าใจ อธิบายการทำงานของ ARIMA model จากประสบการณ์ใช้งานของเรา link 2) ตัวอย่างการใช้ ARIMA ในการทำนายค่า GDP ของประเทศไทย พร้อม source code ตอนที่ 1 link ต่อกันเลยนะคะ หลังจากบทความที่แล้ว เราได้เตรียมข้อมูลที่เป็น “Stationary” ไว้เรียบร้อย พร้อมสำหรับ “การทำนาย” แล้ว ในบทความนี้ เราจะนำเอาข้อมูลนั้นมาเริ่มทำการทำนาย…

ตัวอย่างการใช้ ARIMA ในการทำนายค่า GDP ของประเทศไทย พร้อม source code (1)

จากบทความที่แล้ว ตามลิงก์ด้านล่าง link เราได้พูดถึง Basic of ARIMA เอาไว้ ซึ่งถึงแม้ว่าตัวโมเดลจะไม่ได้ถูกออกแบบมาโดยเฉพาะสำหรับการทำนายมากนัก แต่ก็เป็นโมเดล Time-series ที่สามารถนำมาประยุกต์ใช้ในการทำนายข้อมูลได้ ดังนั้น วันนี้เราจึงได้นำตัวอย่างการประยุกต์ใช้ ARIMA พื้นฐานในการทำนายอย่างง่ายมาให้ดูกัน โดยตัวอย่างนี้ใช้ จะเป็นข้อมูล GDP ของประเทศไทย ดังนี้ Data: GDP of Thailand during (1960 – 2017) File name: GDP_Thailand.csv 1) มาดูข้อมูลดิบกันก่อน ก่อนอื่นมาโหลดข้อมูล และ เนื่องจากข้อมูลของเราเรียงจากปีปัจจุบันไปยังอดีต แต่เพื่อให้ง่ายต่อความเข้าใจ จากนั้น เราจะได้พล็อตดูแนวโน้มข้อมูลกันต่อไป 1.1) Import libraries ที่จำเป็น import pandas as pdimport matplotlib.pyplot as pltimport numpy as np 1.2) อ่านข้อมูล และ ตั้งชื่อ คอลัมน์ว่า…

Before the birth of GAN, there was a story of IAN

วันนี้ผมได้ไปอ่านเจอคำตอบของ Ian Goodfellow ผู้โด่งดังจากการคิดค้นโมเดลโคตร Hot อย่าง Generative Adversarial Networks(GAN) ที่ตอบคำถามที่ว่า “เข้ามาในวงการ Machine Learning กันได้อย่างไร” ใน Quora มา และเห็นว่ามันมีประโยชน์แล้สนุกดีเลยเอามาแปล+เรียบเรียง+หาResource ที่เจ้าตัวเค้าแนะนำมาให้อ่านกันครับ สมัยไฮสคูลIanเค้ามีความสนใจหลากหลาย ไม่ได้เกี่ยวกับ AI ซะเท่าไหร่ เช่น พยายามสร้างภาษาขึ้นใช้เอง อยากเขียน literature บลาๆ หลังจากจบมัธยมIanได้ตัดสินใจ”เลือก”Stanford เพราะค้ารู้ว่าตัวเค้ามีความสนใจหลากหลายเรื่องเกินไป ยังไม่สามารถเลือก Major ได้ และ Stanford เปิดโอกาสให้เขาเลือกคณะได้หลังจากเข้าเรียนไปแล้ว และไม่ต้องเรียนติดต่อกัน 4 ปีจบได้(สามารถหยุดระหว่างนั้น) ปีแรกก็เหมือนเราๆ(ที่เรียนสายคอมพ์) ได้เริ่มเขียนโปรแกรม C++ เจอบั๊กปวดหัวเหมือนปุถุชนทั่วไป 555+ ซักพักก็เริ่มสนใจเรื่อง Psychology และ Cognitive science ก็เริ่มไปศึกษาแต่ก็ไม่ได้อะไรกลับมามากนัก การมาเรียนมหาลัยเหมือนกับเสียเวลาไปนั่งเรียน+ผลาญเงินพ่อแม่เปล่าๆ Ian จึงตัดสินใจหยุดเรียนไปสก๊อตแลนกับเพื่อนสองคน เริ่มที่จะหาทางทำงานกัน แต่สรุปว่าเหลว…

Neural Style Transfer พาอาจารย์ Stephen Hawking ไปอวกาศกันดีกว่า

ในวัน 14 มีนาคม 2561 ซึ่งตรงกับวัน Pi และ วันเกิดของ Albert Einsteinที่ผ่านมานี้ โลกเราได้สูญเสียบุคลากรที่มีคุณูประกาศต่อโลกยิ่งอย่าง ศ. Stephen Hawking ไปอย่างไม่มีวันกลับแม้จะใช้ชีวิตทั้งชีวิตทำงานกับเรื่องของ ฟิสิกห์จักรวาลแต่ตลอดชีวิต ศ. Hawking ท่านอยากไปอวกาศซักครั้ง เคยได้ไปใกล้เคียงสุดก็แค่ ขึ้นเครื่อง Boeing 727 ไปจำลองสภาพไร้แรงโน้มถ่วงเมื่อปี 2007ทั้งนี้ทั้งนั้น ศ. Hawking ได้เคยบอกไว้ว่า “การไปอวกาศ คือความปรารถนาที่ยังไม่ถูกเติมเต็ม” น่าเสียดายที่วันนี้ท่านได้จากเราไปโดยไม่มีวันกลับแล้ว แต่เราสามารถพาท่านอย่างน้อยก็ในรูปภาพไปอวกาศได้เ้วย Style Transfer ซึ่งเป็นเทคนิคของ Deep Convolution Neural Network เพื่อทำการวาดรูป ศ. Stephen Hawking ด้วย Style กาแลคซี่กันเถอะ Style Transfer คืออะไร พูดง่ายๆก็คือการนำเอารูปภาพที่เราต้องการเปลี่ยน Style ของรูป มาใส่ Style หรือรูปภาพอีกรูปของศิลปินที่เราชื่นชอบ…

​สรุป Andrew Ng’s “Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization” Course2 แบบสรุปทั้งคอร์ส!

วันนี้ผมจะสรุปคอร์สของอาจารย์ Andrew Ng ตามความเข้าใจของตัวเอง อาจจะไม่เป๊ะตามที่อาจารย์สอนนะครับ บางครั้งผมก็อธิบายไปตามความเข้าใจของตัวเอง เหมือนกับบทความเหล่านี้เป็นการ take note ไว้อ่านเล่นของผมเอง แต่คิดว่าเอามาลงก็อาจจะมีประโยชน์กับผู้สนใจบ้างละมั้งครับ ฮา TLDR; คอร์สนี้เป็นคอร์สที่สองของซีรีย์ Deep Learning deep Specialization ของ Deeplearning.AI ของอาจารย์ Andrew Ng ครับ คอร์สจะแบ่งออกเป็น 3 สัปดาห์ แต่ละสัปดาห์ประกอบด้วย สองส่วน คือส่วนของ Lecture และ ส่วนของ Programming ใน Lecture จะมีความยาวสัปดาห์ละประมาณชั่วโมงกว่าๆจนถึงเกือบสองชั่วโมง ในแต่ละสัปดาห์ก็จะแบ่งเป็นคลิปวีดีโอย่อยๆคลิปละ 3-12 นาทีเหมือนกับคอร์สที่แล้ว เนื้อหาในส่วนของคอร์สนี้เป็นการเสริมรายละเอียดจากคอร์สที่แล้วครับ คอร์สที่แล้วเป็นการสอนเบสิกของ Neural Network ใช่ไหม๊ครับ แต่มันยังใีรายละเอียดอีกมากมายที่อาจารย์แกยังไม่ได้ลง แน่นอนว่าอัลกอริทึ่ม Deep Neural Network นั้นทรงพลังมากก็จริง แต่มันยังมี Hyperparameter หรือ พารามิเตอร์ที่เราต้องมานั่งปรับมานั่งดีไซน์เองอีกหลายตัวครับ…

คอร์ส Neural Networks and Deep Learning Course1 จากอาจารย์คนดัง Andrew Ng’s

TLDR; คอร์สนี้เป็นคอร์สแรกสุดของซีรีย์ Deep Learning deep Specialization ของ Deeplearning.AI ของอาจารย์ Andrew Ng คอร์สจะแบ่งออกเป็น 4 สัปดาห์ แต่ละสัปดาห์ประกอบด้วย สองส่วน คือส่วนของ Lecture และ ส่วนของ Programming ใน Lecture จะมีความยาวสัปดาห์ละประมาณชั่วโมงกว่าๆจนถึงเกือบสองชั่วโมง ในแต่ละสัปดาห์ก็จะแบ่งเป็นคลิปวีดีโอย่อยๆคลิปละ 3-12 นาที เนื้อหาในส่วนของคอร์สนี้จะประกอบไปด้วย Basic ของ Neural Network มีครอบคลุมและเข้าใจได้ง่ายค่อยเป็นค่อยไปค่อยสร้างความเข้าใจทีละเสตปมีการวางโครงสร้างเนื้อหาไว้ดีมากครับค่อยๆประกอบเรื่องที่เรียนเข้าด้วยกัน เสียงอาจารย์น่าฟัง(ส่วนตัว) แนะนำคอร์สนี้อย่างมากสำหรับมือใหม่(ถ้ารู้คอนเสป ML มาบ้างจะดีมาก)ครับ Week 1 ภาพรวมของ Neural Network Week 2 องค์ประกอบของ Neural Networkและอธิบายคอนเสปของ Logistic, Cost function, Gradient Descent, Derivatives, Vectorization เป็นต้น…