วันพฤหัสบดีที่ 26 พฤศจิกายน พ.ศ. 2563

หลักการทำงาน Double Deep Q Networks

 สวัสดีครับวันจะมาแชร์เรื่อง Double Deep Q Networks ซึ่งผมได้ทำวีดีโอไว้แล้วมาดูกันเลยครับ


  • หลักการทำงาน Double Deep Q Networks

  • มาเขียนโคด DDQN กัน




วันเสาร์ที่ 12 กันยายน พ.ศ. 2563

หลักการทำงาน Deep Q Network

    สวัสดีครับวันนี้จะมาแชร์เรื่อง Deep Q Network ซึ่งผมได้ทำวีดีโอไว้แล้วสามารถดูวีดีโอได้ดังนี้ครับ

  •  หลักการทำงานของ Deep Q Network



  • มาเขียนโคด Deep Q Network 





วันอังคารที่ 25 สิงหาคม พ.ศ. 2563

Image Processing

 

     สวัสดีครับวันนี้จะเป็น หัวข้อเกี่ยวกับกระบวนการทำงานของรูปภาพในคอมพิวเตอร์กัน ซึ่งผมได้ทำวีดีโอไว้ดังนี้ครับ


- คอมพิวเตอร์มองรูปภาพเป็นเป็นอย่างไร



- กระบวนการทำ Convolution เช่น การทำให้ภาพเบลอ


- สร้างโปรแกรมการทำ Convolution ด้วยตนเองกัน


วันเสาร์ที่ 20 มิถุนายน พ.ศ. 2563

Q Learning


    สวัสดีครับวันนี้จะมาแชร์ Algorithm หนึ่งที่ใช้ใน AI ที่ชื่อว่า Q-Learning กันครับ งั้นมาเริ่มกันเลยครับ


1. Q Learning
 
2. วิธีการลง OpenAI Gym




3. มารู้จักเครื่องมือ OpenAI Gym ก่อนเริ่มเขียน Q Learning



4. มาเริ่มเขียน Q Learning กัน


5. สร้างกราฟดูผล





6. Q-Learning ในเกมที่ชื่อว่า CartPole EP.1



7. Q-Learning ในเกมที่ชื่อว่า CartPole EP.2





วันอังคารที่ 16 มิถุนายน พ.ศ. 2563

Reinforcement Learning

สวัสดีครับวันนี้จะมาแชร์เรื่อง Reinforcement Learning ที่เป็น ประเภทหนึ่ง ของ Machine learning กันหากใครอยากรู้ว่าคืออะไรสามารถดูได้ที่วีดีโอครับ


วันเสาร์ที่ 9 พฤษภาคม พ.ศ. 2563

Neural Network คืออะไร

🤖 สวัสดีครับ
วันนี้จะมาแชร์เกี่ยวกับ "Machine Learning" ในหัวข้อเรื่อง "Neural Network" ว่าคืออะไรทำงานอย่างไร สามารถดูได้ที่ video ด้านล่างได้เลยครับ

1. ทฤษฎี Neural Network ก่อนเขียน code




2. เขียนโคด Neural Network โดยไม่ใช้ Library กัน #1






3. เขียนโคด Neural Network โดยไม่ใช้ Library Final


วันอาทิตย์ที่ 29 มีนาคม พ.ศ. 2563

Genetic Algorithm#2


   สวัสดีครับหลังจากบทความที่แล้ว https://cakeknowledgeblogs.blogspot.com/2020/03/genetic-algorithm.html ได้พูดถึงทฤษฎีของอัลกอริทึมหนึ่งที่ชื่อว่า Genetic Algorithm วันนี้เราเลยจะนำความรู้มาใช้กันครับซึ่งเราจะนำความรู้มาแก้ปัญหา TSP(Traveling Salesman Problem) นั่นเอง

"แล้วปัญหา TSP(Traveling Salesman Problem) คืออะไร"

TSP(Traveling Salesman Problem) เป็นปัญหาสำหรับหาเส้นทางในการเดินทางไปยัง N สถานที่แล้วให้ได้ประโยชน์มากสุดเช่น เวลาที่สั้น หรือ ระยะทางที่สั้นที่สุดเป็นต้น

ตัวอย่างเช่น
เราต้องการไปทำบุญ 9 วัดซึ่งเรามีวัดในใจอยู่แล้ว แต่เราต้องการเดินทางไปทำบุญ 9 วัดโดยใช้ระยะทางทั้งหมดน้อยที่สุด ดังนั้นเราจะนำ Genetic Algorithm นี้แหละมาทำการจัดลำดับการเดินทางแล้วหวังว่าการเดินทางนั้นจะใช้เวลาที่น้อยที่สุดครับ



"แล้วเราจะเอา genetic algorithm มาใช้เพื่อแก้ปัญหา TSP อย่างไร?"



หลังจากที่เราได้เรียนรู้แล้วว่า genetic algorithm นั้น จะมีขั้นตอนหลักๆ คือ
1.         Initial population
2.         Fitness Function
3.         Selection
4.         Crossover
5.         Mutation
เราก็จะเอาขั้นตอนพวกนี้แหละมาดัดแปลงเพื่อแก้ปัญหา TSP(Traveling Salesman Problem) กันดังนี้

1. Initial population

   เราจะทำการสร้างคำตอบหลายคำตอบขึ้นมาก่อนซึ่งจะมีหน้าตาดังนี้

จากรูปจะเห็นว่าคำตอบของเราคือ การซุ่มลำดับของวัดที่เราจะเดินทางขึ้นมา และก็ทำการซุ่มอีกคำตอบเพื่อให้ได้หลายคำตอบ
จากคำตอบที่ 1 จะเห็นว่าจะมีการเดินทางดังนี้
จากบ้านไป วัดเอก, วัดจตุ, วัดสัตต , วัดโท , วัดตรี, วัดเบญจ, วัดนว ,วัดฉะ , วัดอัฎฐ, แล้วค่อยกลับมาบ้าน

(หมายเหตุชื่อวัดเป็นวัดที่คิดขึ้นมาเอง ดังนั้นอาจจะไม่มีชื่อวัดจริงบนโลก)

2. Fitness Function

   หลังจากนั้นเราก็มาทำการให้คะแนนคำตอบกันซึ่งการให้คะแนนนั้นจะให้คะแนนจากคนที่ใช้ระยะทางในการเดินทาง โดยคำตอบใหนใช้ระยะทางเดินทางสั้นก็จะได้คะแนนเยอะ ส่วนคำตอบใหนที่ใช้ระยะทางเยอะก็จะได้คแนนน้อยดังรูป

จากรูปจะเห็นว่าค่า fitness สำหรับปัญหา TSP TSP(Traveling Salesman Problem) เราจะใช้ 1/ระยะทางการเดินทางทั้งหมด เนื่องจากเราต้องการให้ระยะทางที่สั้นต้องได้คะแนนมากกว่าระยะทางที่ยาวนั่นเอง

3. Selection

   หลังจากเราให้ได้คะแนนของทุกคำตอบแล้วเราก็มาทำการเลือกคำตอบที่ดีที่สุดมา N จำนวนดังรูป โดยการเลือกคำตอบที่ดีที่สุดนั้นก็ดูจากค่า fitness ที่มากที่สุดมา N คำตอบนั่นเอง


4. Cross over

   หลังจากเราเลือกมาแล้วเราก็ทำการ Crossover กัน หรือก็คือการสร้างคำตอบขึ้นมาใหม่ที่เกิดจากการแลกคำตอบย่อยกันนั่นเองดังรูป



5. Mutation

   หลังจากที่เราได้คำตอบที่เกิดจาก Cross over มาใหม่แล้วเราก็อาจจะทำการสุ่มคำตอบย่อยมา เพื่อเปลี่ยนค่า โดยในที่นี้คือการสุ่มคำตอบย่อยมา 2 ตัวเพื่อมาสลับลำดับการเดินทางใหม่นั่นเอง



โดยขั้นตอนการทำงานของโปรแกรมนั้นก็จะทำ Initial population -> Fitness Function -> Selection -> Crossover -> Mutaion และก็เริ่มทำ Fitness Function ใหม่วนไปเรื่อยๆจนกระทั่งได้ระยะทางการเดินทางที่พอใจหรือระยะทางในแต่ละครั้งไม่ค่อยมีการเปลี่ยนแปลงนั่นเองครับ


ซึ่งหากใครสนใจอยากเขียนโปรแกรมการคำนวณ TSP(Traveling Salesman Problem) สามารถไปโหลดศึกษาดู code ได้ที https://github.com/CakeNuthep/GA_TSP โดยแอดได้เอาโคดต้นฉบับมากจาก https://github.com/7lb/TSP แล้วมาใส่คำอธิบายภาษาไทยไว้แล้วเพื่อให้สามารถเข้าใจได้เร็วขึ้น และสุดท้ายนี้หวังว่าโพสน์นี้จะมีประโยชน์นะครับ
ขอบคุณครับ


Refference