Update Course 2021

หลังจากห่างหายกันไปนาน จากคอร์สแรกในปี 2019 ในที่สุดพวกเราก็หมดภาระทางวิชาการเสียที พอกลับมามีเวลามองดูคอร์สเก่าของเราแล้ว ผมก็พบว่ามันผ่านมาสองปีแล้ว ข้อมูลหลายอย่างก็เก่าไปบ้าง ผมจึงตัดสินใจทำคอร์สนี้ขึ้นมาใหม่ให้ทุกคนได้เข้าไปดูกันได้ที่ https://algoaddict.com/p/python-for-finance ผมจะมีการปรับโครงของคอร์สให้มีเนื้อหาเชื่อมโยงกัน ปรับปรุงโค้ดให้เหมาะสมยิ่งขึ้นไม่ว่าจะเพิ่มประสิทธิภาพให้โค้ด วิธีการเรียกใช้งานฟังก์ชั่น หรือ สไตล์ชื่อตัวแปรเล็กๆน้อยๆ สิ่งที่ยังเหมือนเดิมคือ คอร์สนี้คือ คอร์ส “Python for Finance” ไม่ใช่ “Algorithmic Trading” เราจะไม่ได้เน้นหนักทางการสร้างโมเดลเพื่อการลงทุนที่กำไรมาก ๆ ไม่มีการบอก “Magic Formula” ที่ทำให้รวยได้ แต่อย่างใด algoaddict 2019 คอร์สสำหรับการอัพเดตครั้งแรก ณ ปี 2021 นี้ จะแบ่งออกเป็น 9 session หลักๆ ประกอบด้วยวีดีโอ 129 วีดีโอ ความยาวเกือบๆ 15 ชั่วโมง ไม่นับที่ผมยังค้างทุกคนอยู่ไม่ได้อัพเดตของเก่าและของใหม่ที่ผมจะอัพเดตมาในอนาคต และไม่ได้นับ คือ machine learning, beta, alpha และอย่างอื่นที่ยังไม่ได้เพิ่มเข้ามาในตอนนี้…

Modern Portfolio Theory — หนึ่งในนวตกรรมเปลี่ยนโลกการลงทุน

(อันนี้เป็นบทความเก่าที่ผมลืมย้ายมาลงบล็อคใหม่นะครับ) ในปี 1956 อาจารย์ Harry Markowitz(รูปบน) ได้นำเสนอเปเปอร์สำคัญทางด้านการลงทุน ว่าด้วยการจัดสรรพอร์ตการลงทุนด้วยสมการ Modern Portfolio Theory หรือเรียกอีกชื่อว่าMarkowitz Portfolio Theory(MPT) ซึ่งมี Impact อย่างสูงและได้เปลี่ยนโลกการเงินไปตลอดกาล จากการวิเคราะห์การลงทุนแบบรายตัวมาเป็นวิเคราะห์การลงทุนแบบ Portfolio สมัยใหม่ เดี๋ยวเรามาดูกันอย่างกันครับว่า MPT มีไว้ทำอะไร และ สำคัญอย่างไร เพื่อความเข้าใจง่ายผมจะทำให้มีสมการน้อยเท่าที่จำเป็นนะครับ การเข้ามาของ MPT ถือว่าเป็นการเปลี่ยนแปลงมุมมองต่อ Portfolio ให้เป็นวิชาการขึ้น จำคำที่ว่า “Don’t put all your eggs in one basket” มันได้มีการกล่าวถึงกันมานานแล้วก็จริงแต่งานนี้จะก้าวไปอีกสเตป เป็นการพิสูจน์มันทางคณิตศาสตร์ และ พรูพให้เราเห็นไปเลยว่าทำไม เพราะอะไรถึงต้องมี MPT? จากรูปเรามี Asset 2 ตัว ที่กำไรและความเสี่ยต่างกัน ตัวที่กำไรมากกว่าก็จะมีความเสี่ยงมากกว่าตัวที่กำไรน้อยกว่า ดังคำกล่าว High Risk…

การรู้จำรูปแบบสำหรับข้อมูลแบบตามลำดับเวลาด้วย Hidden Markov Model (Pattern Recognition with Sequential Data using HMM)

การค้นพบ “รูปแบบ” หรือ “Patterns” ที่ซ่อนอยู่ภายในข้อมูล เป็นอีกสาขาวิชาที่น่าสนใจ และ มีความท้าทายเป็นอย่างมาก เนื่องจากในปัจจุบันนี้ที่เรากำลังใช้ชีวิตอยู่ในโลกของข้อมูล ซึ่งเรากำลังพูดถึงข้อมูลจำนวนมหาศาล (ต้องขอคุณเทคโนโลยีในการเก็บข้อมูลที่ก้าวล้ำอย่างรวดเร็วไว้ ณ ที่นี้ด้วย!) ข้อมูลถูกเก็บบันทึก แทบจะทุกที่ทุกเวลา ไม่มีใครสามารถวิ่งหนีกระบวนการนี้ได้เลย “Data” หรือ “ข้อมูล” ถือเป็นสิ่งที่มีคุณค่ามหาศาล การมีข้อมูล ถูกเรื่อง ถูกเวลา นั้น ถึงขนาดเปลี่ยนยาจกเป็นเศรษฐี เปลี่ยนขาวเป็นดำ ได้เลยทีเดียว! แต่ถึงอย่างนั้นก็ตาม “ข้อมูล” นี้ จะกลายเป็นแค่ “ขยะไซเบอร์” ทันที ถ้ามันไม่ได้ถูกนำมาใช้งานอย่างถูกต้อง จุดนี้นี่เองที่ทำให้การศึกษาในสาขา “Pattern Recognition” หรือ การระบุรูปแบบที่ซ่อนอยู่ภายในข้อมูล ได้รับความสนใจเป็นอย่างมาก เพราะสามารถขุดค้นเอา “ความรู้” ที่ซ่อนอยู่ในข้อมูล เพื่อนำไปสู่การใช้งานอย่างเหมาะสมได้ “Pattern Recognition” มีด้วยกันมากมายหลากหลายรูปแบบมาก ขึ้นอยู่กับลักษณะการใช้งาน ระบบ Pattern Recognition ยกตัวอย่างระบบที่เราคุ้นเคยกัน เช่น ระบบรู้จำใบหน้า (Face…

Ray Dalio’s woring style

พาไปดูวัฒนธรรมการทำงานใน Bridgewater Associates inverstment firm ที่ใหญ่ที่สุดของโลก ที่บริหารโดยนักลงทุนชื่อดังอย่างคุณ Ray Dalio กัน สวัสดีค่ะ โพสนี้ออกตัวก่อนว่าไม่เกี่ยวกับการลงทุนนะคะ แต่แอดผ่านไปเจอมา แล้วคิดว่า น่าสนใจดี เลยหยิบมาฝากกันค่ะ เป็นการสัมภาษณ์คุณ Ray Dalio แค่ 5 นาทีเท่านั้น จากที่ไม่เคยคิดจะอ่านหนังสือ Principles เพราะ หนังสือเล่มโตมากกก คิดว่าคงอ่านไม่จบ 555 รู้สึกอยากลองอ่านดูเลยค่ะ อยากรู้ว่าเค้าคิดอะไร ทำอะไร รู้สึกว่าเป็นบุคคลที่มีความคิด และ หลักการทำงานที่น่าสนใจมากๆ อีกท่านนึง Idea mertocacy เป็นการสัมภาษณ์เกี่ยวกับการทำงานในองค์กร แบบ Idea mertocacy หรือ แนวคิดเชิงความสามารถนิยม ซึ่งคุณ Dalio ให้ความเห็นว่าในการทำให้องค์กรมีทิศทางไปในทางนี้ได้ เกิดจาก 2 สิ่งคือ Radical Truthfulness กับ Radical Transparency ซึ่งก็คือ…

[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%…

ตัวอย่างการใช้ 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) อ่านข้อมูล และ ตั้งชื่อ คอลัมน์ว่า…

​สรุป 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 เป็นต้น…

7 ปัจจัยอันตรายที่ทำให้กองทุนที่ใช้ Machine Learning ต้องพบจุดจบ ในมุมมองของคุณ Marcos Lopez de Prado

❌ 7 ปัจจัยอันตรายที่ทำให้กองทุนที่ใช้ Machine Learning ต้องพบจุดจบ ในมุมมองของคุณ Marcos Lopez de Prado ผู้จัดการกองทุนระดับมหายักษ์ใหญ่ ของโลกอย่าง AQR Capital และ หัวหน้ากลุ่ม วิจัย Machine Learning ของกองทุน ⚠️ เนื้อหาเชิงเทคนิคระดับสูง ในงานวิจัยของ Quants ในองกรใหญ่ อาจจะมีความซับซ้อนไปนิด แอดพยายามเขียนให้เข้าใจง่ายแล้ว ได้แค่นี้จริงๆ ค่ะ ⚠️ 1. The Sisyphean Quants (รูปที่ #1) ปัญหาข้อแรก ได้นำชื่อมาจาก “Sisyphean task” ที่เป็นเรื่องราวของชายชาวกรีกคนหนึ่งที่โดนลงโทษให้เข็ญก้อนหินก้อนมหึมาขึ้นไปบนยอดเขา ซึ่งเป็นงานที่แทบจะเป็นไปไม่ได้ การออกแรงดันทุกครั้ง ก็เพื่อที่จะพบกับการกลิ้งตกลงมาอีกครั่งของก้อนหินเท่านั้น คุณ Marcos พบว่า สาเหตุแรกเลยที่ทำให้กองทุนที่ใช้ Machine Learning ต้องประสบกับความล้มเหลว ก็คือ ปัญหาพื้นๆ ของการบริหารงาน ที่ขาดการทำงานในลักษณะของ “การร่วมมือกัน” เพื่อดึงคุณลักษณะเด่นของแต่ละบุคคลออกมาใช้…

เปิดม่าน Deep Learning (2) : มาทำความรู้จักกับเจ้า Learning rate กัน

เราได้จบบทความที่แล้วเอาไว้ที่ปัญหาที่ perceptron หรือ neuron มีความ sensitive ต่อข้อมูลสอนมากเกินไป จนเกิดปัญหาในลักษณะของ overfitting กับข้อมูลสอน ดังรูป จากรูป เป็นการทำงานของนิวรอนแบบไม่มีค่า Learning Rate จะเห็นได้ชัดเจนว่าในการสอนนิวรอนครั้งที่ 1 ด้วยข้อมูลสอน input 1 นิวรอนปรับตัวอยู่ใกล้กับข้อมูลสอนนั้นมาก (ค่าคำตอบที่ได้ค่อนข้างจะเฉพาะเจาะกับข้อมูลนี้มาก) ต่อมาเราจึงทำการสอนด้วย input 2 เราจะเห็นว่านิวรอนปรับตัวอย่างเร็วเข้าหา input 2 โดยแทบจะลืมการสอนในครั้งแรกไปเลย กลายเป็นค่าคำตอบเปลี่ยนไปเฉพาะเจาะกับกับ input 2 แทน ปัญหาในลักษณะนี้อันตรายมาก เนื่องจากคำตอบของนิวรอนในลักษณะนี้ ทำให้ข้อมูลที่เข้ามาใหม่มีโอกาสเกิดการผิดพลาดได้สูง ดังรูป จากรูปจะเห็นได้ว่า ถ้าเส้นคำตอบมีค่าเฉพาะเจาะจงกับข้อมูล input 1 มาเกินไป ข้อมูล class 0 (Benign = ปกติ) ที่เข้ามาภายหลัง (วงกลมสีเขียวอ่อน) มีโอกาสจะถูกทำนายผิดเป็น class 1 (Malignant =…

เปิดม่าน Deep Learning (1) : รู้จักเจ้าจิ๋ว Perceptron ส่วนประกอบหลักของระบบ Neural Network

บทความนี้ก็จะขอเกาะกระแส Neural Network กันหน่อยค่ะ เนื่องจาก Neural Network หรือ ที่เราเรียกกันง่ายๆ ว่า “นิวรอลเน็ต” ช่วงนี้มาแรงมากๆ คิดๆ แล้วก็ไม่น่าเชื่อนะคะ ว่า นิวรอลเน็ต ที่หลายๆ คนเคยมองว่าเป็นอัลกอริทึมที่หยุดพัฒนาไปแล้ว ซึ่งคนในวงการคอมพิวเตอร์เคยพูดติดตลกกันว่า นิวรอลเน็ตน่ะเป็นอัลกอริทึ่มตายแล้ว! แต่แล้ววันนี้ เจ้านิวรอลเน็ตได้กลับมาเป็นกระแสขึ้นมาอีกครั้ง ซึ่งก็คงจะปฏิเสธไม่ได้เลยว่าจะต้องตบรางวัลให้กับเจ้าตัว Deep Leaning “AlphaGo” ตัวเก่งจาก Google ที่สามารถเอาชนะแชมป์โลกในการแข่งขันเกมส์ Go มาได้อย่างสวยงาม น่าชื่นชมจริงๆ ค่ะ เคยคิดกันมั้ยคะ ว่า AlphaGo ใช้เทคนิคพิเศษอะไรถึงเอาชนะสมองอันซับซ้อนของมนุษย์ได้ จริงๆ ก็มีหลายปัจจัยนะคะ แต่ปัจจัยที่น่าชื่นชมที่สุดในความคิดของผู้เขียน ก็คือ “ความสามารถในการเรียนรู้จากสถานการณ์แวดล้อม” หรือ ที่รู้จักกันในชื่อ Reinforcement Learning ซึ่งถ้าใครติดตามข่าวกันมา การจะสร้าง AlphaGo นี้ต้องมีการทดลองแข่งขันกับมนุษย์ในหลายต่อหลายรอบ และเจ้า AlphaGo ก็แพ้มนุษย์ซะหลายรอบซะด้วยในช่วงแรกๆ!!! แต่เมื่อผ่านการแข่งขันไปได้จำนวนหนึ่ง เจ้า…