Tag Archives: python

Machine Learning in Action : เริ่มต้นด้วยเกมเล็กๆอย่าง Tic Tac Toe

มีไอเดียอยากลองทำเกมง่ายๆ ที่สามารถเรียนรู้ หรือพัฒนาตนเองได้ด้วยประสบการณ์ที่ตัวมันได้พบเจอมา ซึ่งมันก็มีหลายเทคนิคที่มีใช้กันอยู่ และที่เห็นว่าน่าสนใจก็เป็น Q-Learning และ Minimax ทั้งสองเทคนิคล้วนแล้วแต่เป็น State–Action–Reward–State คือ เริ่มต้นคิดจาก State ปัจจุบัน เพื่อหา Action และประเมินผลเป็น Reward จาก State อีกที ซึ่งเหมาะสมมากที่จะนำมาใช้ในระบบเกม ส่วนเกมที่สนใจจะนำมาทดลองนั้น ก็เป็นเกมง่ายๆ อย่างเกม Tic Tac Toe ที่มีรูปแบบไม่เยอะมากนัก กฎกติกาไม่ซับซ้อน และเป็นการแข่งขันกันของสองผู้เล่น ทำให้ระบบสามารถเรียนรู้ หรือเลียนแบบ วิธีการเล่นของฝั่งตรงข้ามได้โดยง่าย ผ่าน State ที่ได้บันทึกไว้ก่อนหน้านี้เท่านั้นเอง ข้อเสียของวิธีการใช้ State แบบนี้คือ รูปแบบในการเล่นมักจะถูกจำกัดอยู่เฉพาะจากประสบการณ์ที่ผ่านมาเท่านั้น แม้จะเป็นการเลือกวิธีการเล่นที่ดีที่สุด แต่ก็จะดีที่สุดเท่าที่รู้อยู่เท่านั้น ดังนั้นถ้าประสบการณ์ของมันเต็มไปด้วยวิธีการที่ไม่มีคุณภาพ หรือไร้ประสิทธิภาพแล้ว

มาแก้ปัญหา “AFBF+CGHB+DAFG+AEAB=BCBC” กันเถอะ

“In programming, the hard part isn’t solving problems, but deciding what problems to solve.” – Paul Graham “ในการเขียนโปรแกรมนั้น การแก้ปัญหาไม่ใช่สิ่งที่ยากที่สุด แต่สิ่งที่ยากที่สุดคือการตัดสินว่าปัญหาใดบ้างที่ควรได้รับการแก้ไข” – พอล เกรแฮม Paul Graham ‘s quotes หากข้อความข้างต้นนั้นถูกต้อง ผมก็คิดว่าปัญหาของนักเรียนประถมอันโด่งดังอย่าง “AFBF+CGHB+DAFG+AEAB=BCBC” ก็ควรได้รับการแก้ไขอย่างเป็นรูปธรรมเสียที การจะส่งต่อปัญหานี้ไปสู่คนรุ่นถัดไปนั้น ดูจะเป็นการไร้ความรับผิดชอบต่อคนรุ่นหลังอย่างรุนแรง เกินกว่าที่จะยอมรับได้ ดังนั้นเราจึงเริ่มพัฒนาโค้ดขึ้นมา เพื่อให้มันไม่ใช่ปัญหาอีกต่อไป แม้ว่ามันจะสร้างปัญหาอื่นตามมาก็ตาม จุดเริ่มต้น ทันทีที่เห็นคำถาม “AFBF+CGHB+DAFG+AEAB=BCBC” ในเว็บบอร์ดพันทิป ก็ทราบได้ทันทีว่านี่คงเป็นปัญหาใหญ่มากทีเดียว ผมจึงเริ่มโดยการวิเคราะห์ว่าจะมีหนทางใดบ้างที่แก้ปัญหานี้ได้ สุดท้ายเพื่อให้ปัญหานี้ได้รับการแก้ไขอย่างแท้จริง ผมจึงเลือกที่จะเขียนโค้ดเพื่อหาคำตอบของสมการแบบนี้

มาสร้างไฟล์ Cascade ไว้ใช้ตรวจจับวัตถุกัน

ในตอนที่แล้วนั้น ได้แสดงตัวอย่างการเขียนโปรแกรม Face Detection โดยใช้ Library SimpleCV บนภาษา Python ที่มีข้อดีคือ ใช้งานง่าย ไม่ยุ่งยาก โดยในตอนนั้นเราจะเห็นว่า มีไฟล์ xml ชื่อ face.xml ที่ถูกใช้ในฟังก์ชัน findHaarFeature  และในตอนนี้เราจะมาทำความรู้จักกับ Haar feature-based ซึ่งถูกพัฒนาขึ้นมาเพื่อใช้ในการตรวจจับวัตถุ และเราจะมาสร้างไฟล์ xml ของเราเองกันครับ

แนะนำ SimpleCV ที่ทำให้ Image Processing นั้นง่ายขึ้น

วันนี้จะมาแนะนำ Library สำหรับติดต่อกับกล้อง และวิเคราะห์ภาพแบบง่ายๆกันครับ โดย Library ตัวนี้พัฒนาต่อจาก OpenCV ของ Intel อันโด่งดังอีกที แต่เนื่องจากการใช้ OepnCV นั้นจะเป็นที่จะต้องพึ่งพาความรู้พื้นฐานเรื่อง Image Processing ในระดับหนึ่งเลยทีเดียว ซึ่งแปลว่าต้องใช้เวลาศึกษาอีกพอสมควรเลยทีเดียวกว่าจะทำอะไรได้เป็นชิ้นเป็นอัน แต่… บ่อยครั้งเราก็ไม่ได้อยากจะศึกษาอะไรลึกซึ้งมากขนาดนั้น หรือบ่อยครั้งที่เราเพียงอยากได้อะไรที่ง่ายๆ มาทำเล่นสนุกๆดูก่อนเพียงเท่านั้น อยากพักเรื่องทฤษฏีอะไรมากมายลงบ้าง ถ้าเช่นนั้นแล้ว เราขอแนะนำให้รู้จักกับ SimpleCV ไลบรารี่ สำหรับ Image Processing แบบง่ายๆ ให้รู้จักครับ

[ Raspberry Pi ] บันทึกอุณหภูมิ-ความชื้นจากเซ็นเซอร์ลงไฟล์ csv

ก่อนหน้าโน้นเราอ่านค่าอุณหภูมิและความชื้น จากนั้นก็ทวิตขึ้นทวิตเตอร์ มารอบนี้ลองมาบันทึกค่าลงไฟล์ .csv อันก่อนหน้าอ่านค่าอุณหภูมิ-ความชื้นอย่างไร ลงไปอ่านดูก่อนนะ https://playelek.com/raspberry-pi-temp-humidity-am2302/

< Orange Pi > ไฟกระพริบต้องมี สวิตส์กดๆต้องมา ด้วยภาษา Python [2]

ในตอนที่แล้ว เราได้แนะนำให้รู้จัก และวิธีการติดตั้ง Library ของ Python ที่ชื่อ WiringPi-Python-OP กันไปแล้ว ในตอนนี้ เราจะมาเริ่มต้นใช้งาน Library ตัวนี้กัน ด้วยการเขียนโปรแกรมควบคุม LED ผ่านสวิตซ์ แบบง่ายๆ ก่อนอื่นเลย เราคงต้องเตรียมวงจรที่จะใช้ทดสอบเสียก่อน โดยจะใช้ I/O pin ที่ 0-7 เป็น Output และ 8-15 เป็น Input วงจร Input นั้นเป็นแบบ Active Low ดังนั้นสถานะปกติจะเป็น 1 เสมอ และวงจร Output จะเป็นแบบ Active Low นั่นคือ ไฟจะติดสว่างเมื่อเราสั่งให้