สำนกั งานคณะกรรมการดจิ ิทลั เพื่อเศรษฐกจิ และสงั คมแหง่ ชาติ
คือการเปลี่ยนตัวอักษรที่นำมาเรียงกันให้ออกเป็นเสยี ง โดยต้องเข้าใจการออกเสียงของภาษาของการ
ออกเสียงของภาษานั้นๆ ที่ประกอบด้วย ตัวอักษร สระ วรรณยุกต์ คำควบกล้ำ เป็นต้น โดยมีวิธีการที่ต้องลงลกึ
ไปถึงรากของการออกเสียงก่อนว่า วิธีการออกเสียงมีรูปแบบเฉพาะ สามารถไปดูวิธีการออกเสียงภาษาไทยแต่ละ
ตัวอักษรและสระรวมทั้งวิธีการควบกล้ำให้เป็นมาตรฐาน เรียกว่า International Phonetic Alphabet เป็น
ตัวอย่างที่สามารถใช้ออกเสียงภาษาอะไรก็ได้ เป็นวิธีการออกเสียงพื้นฐานของทุกภาษาในโลก เพราะฉะนั้นถ้า
สามารถสร้างรูปแบบพวกน้ีได้ จะทำใหค้ อมพวิ เตอรอ์ อกเสยี งภาษาอะไรก็ไดน้ นั่ เอง
เมื่อได้วิธีการออกเสียงในแต่ละตัวอกั ษรแล้ว จำเป็นต้องสร้างพจนานุกรมคำอ่านของเสียงอ่านในแต่ละ
คำ ซึ่งถ้าได้คำอ่านออกมาแล้วก็สามารถนำมาสร้างโครงสร้างข้อมูล สร้างสัญญาณเสียงในรูปแบบต่างๆ เสียงเบา
เสยี งหนกั เสยี งผ่อนคลาย หรือเสียงลากเสยี ง เมอื่ ได้ทัง้ หมดออกมาแลว้ จะได้แผนภมู วิ ธิ ีการแปลงตัวอกั ษรเปน็ เสยี ง
ภาพท่ี 12.8
ตัวอย่างจาก Google ซึ่งสามารถพูดได้หลายภาษา คือ ถ้าคุณมีคลังภาษาให้มากพอและมีการให้
Network เรยี นรวู้ ธิ ีการออกเสยี งภาษาให้เหมาะสมมากพอก็จะสามารถออกเสยี งเลียนแบบเสยี งภาษานัน้ ๆ ได้
ภาพที่ 12.9
โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐ์เพ่อื พัฒนาทักษะดา้ นดิจิทลั ของนักเรยี นและนักศกึ ษาในสายวชิ าชีพอาชวี ศกึ ษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 100
สำนกั งานคณะกรรมการดิจิทลั เพ่ือเศรษฐกิจและสงั คมแหง่ ชาติ
12.2.3 แปลงเสยี งเปน็ เสยี ง (Speech to Speech: STS)
เป็นการแปลงเสียงแล้วมีการตอบกลับมาเป็นเสียง เช่น การโทรหา Call Center ซึ่งการที่พูดและมี
เสียงตอบกลับนน้ั อาจเปน็ AI ท่กี ำลังคุยอยู่ โดยท่ีเปน็ การนำเอาข้อมลู สกดั ออกมา โดยสกดั ในลกั ษณะความเข้าใจ
เชิงโปรแกรมมิ่งว่ากำลังพูดอะไรอยู่ ผ่านเครือข่ายปัญญาประดิษฐ์ ที่เป็นตระกุล LSTM แล้วสิ่งที่เกิดขึ้นคือ เมื่อ
เขา้ ใจแลว้ ว่าพดู อะไร ก็จะให้มกี ารแปลงจากความเข้าใจนนั้ เปน็ เสียงออกมาจากสครปิ (Script) ของ Call Center
หรือที่ผใู้ ห้บริการออกแบบไว้
12.2.4 แปลงอักษรเป็นอกั ษร (Text to Text)
เป็นการแปลงอักษรมีการตอบกลับเป็นตัวอักษร โดยการตอบกลับเป็นตัวอักษรอาจจะเป็นเรื่องราวที่
ผ่าน AI เช่นการใชก้ ลมุ่ ทรานฟอรเ์ มอร์ หรือ GPT-3 เป็นต้น
โครงการพฒั นาชุดทดลองปญั ญาประดิษฐเ์ พือ่ พฒั นาทกั ษะดา้ นดิจิทัลของนกั เรียนและนักศึกษาในสายวชิ าชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 101
สำนกั งานคณะกรรมการดิจทิ ัลเพื่อเศรษฐกจิ และสงั คมแห่งชาติ
บทท่ี 13
คอมพิวเตอรป์ ริทศั น์
วัตถุประสงค์ ทำความเข้าใจคอมพิวเตอร์วิทัศน์ (Computer Vision) หลักการทำงานเบื้องหลังของระบ
ประมวลผลอมิ เมจ (Image Processing) และการประยกุ ตใ์ ช้งาน ประกอบดว้ ยหัวข้อดงั น้ี
13.1 บทนำเบ้ืองตน้ คอมพวิ เตอร์วทิ ศั น์ (Introduction Computer Vision)
13.2 คอมพิวเตอรป์ ริทศั น์และการประมวลผลภาพ (Computer Vision and Image Processing)
13.3 การประยกุ ต์ใช้คอมพวิ เตอรป์ รทิ ัศน์ท่ีแพรห่ ลาย (Popular computer vision applications)
13.1 บทนำเบอ้ื งตน้ คอมพวิ เตอรว์ ิทศั น์ (Introduction Computer Vision)
คอมพิวเตอร์วิทัศน์ (Computer Vision) เป็นศาสตร์ที่ใช้ในการเข้าใจว่าคอมพิวเตอร์สามารถเข้าใจภาพ
หรือวิดีโอในรูปแบบเดียวกับที่ระบบการมองเห็นของมนุษย์ คอมพิวเตอร์วิทัศน์รวมขั้นตอนการ ได้มา การ
ประมวลผล การวเิ คราะห์ และเขา้ ใจที่สามารถนำข้อมูลออกมาใช้ในการพยากรณ์หรอื การตดั สินใจได้
ภาพท่ี 13.1
คอมพิวเตอร์วิทัศน์ว่าด้วยเรื่องเกี่ยวกับการดึงสารสนเทศจากรูปภาพหรือวิดีทัศน์ เครื่องมือที่ใช้ใน
คอมพวิ เตอร์วทิ ัศน์ได้แก่ คณิตศาสตรโ์ ดยเฉพาะเรขาคณิต พชี คณติ เชงิ เส้น สถติ ิ และ การวจิ ัยดำเนินงาน (การหา
คา่ เหมาะทส่ี ดุ ) และการวเิ คราะห์เชิงฟงั ก์ชัน โดยเคร่อื งมือเหล่านใี้ ช้ในการสร้างข้ันตอนวธิ ีหรือ ขั้นตอนวิธี ในการ
แยกส่วนภาพ และ การจัดกลุ่มภาพเพ่ือให้คอมพวิ เตอรส์ ามารถ "เขา้ ใจ" ทัศนยี ภาพ หรือคณุ ลักษณะต่างๆ ในภาพ
โครงการพัฒนาชุดทดลองปญั ญาประดิษฐเ์ พอ่ื พฒั นาทักษะดา้ นดจิ ิทลั ของนกั เรียนและนักศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 102
สำนกั งานคณะกรรมการดิจิทลั เพอื่ เศรษฐกจิ และสงั คมแห่งชาติ
การบันทึกภาพมีหลายมาตรฐาน แต่มาตรฐานที่เราใช้กันมาก เรียกว่า RGB System หรือมาตรฐานการเก็บ
แหลง่ กำเนดิ แสงเป็น Red Green Blue
ภาพที่ 13.2
โดยที่การเก็บแต่ละสีเป็นแม่สีของแสงเพราะฉะนั้นเมื่อมีการนำมาประกอบกันจะได้สีขาวออกมา ในตัว
ภาพจะแบง่ เก็บออกเป็น 3 แพลน หรือ แหลง่ กำเนดิ สี คอื แพลน Red, แพลน Green, แพลน Blue หรอื บางคร้ัง
เรยี กวา่ แชลแนล (Chanel)
13.1.1 การจัดชัน้ แพลนของสี (Color Plans Stacked)
ภาพท่ี 13.3
เป็นการวางซ้อนทับกัน โดยแยกออกมาจะเป็นช่องสี แดง เขียว น้ำเงิน ซึ่งสิ่งที่อยู่ในช่วงนี้คือความเข้ม
แสง ซึ่งความเข้มแสงจะแสดงออกมาเป็นความเข้มคือ ขาวกับดำ จากตัวอย่างนี้จะเห็นได้ว่า Red Green Blue
แยกอิสระต่อกัน การที่เป็นแสงของมันเองถือว่าเป็นแหล่งกำเนิดหรือที่เรียกว่า แม่สีของแสง นี่คือต้นกำเนิดของ
การผสมสีท่ีเห็นด้วยสายตาของเรา
โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐ์เพอ่ื พฒั นาทกั ษะดา้ นดิจิทลั ของนกั เรยี นและนักศึกษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 103
สำนกั งานคณะกรรมการดิจิทัลเพือ่ เศรษฐกิจและสังคมแหง่ ชาติ
ภาพที่ 13.4
ภาพจะถูกเก็บในลักษณะพิกเซลล์ (Pixel) ซึ่ง 1 Pixel จะมีองค์ประกอบเป็น 3 สี หรือ 3 Plan ที่ทำการ
ทับซ้อนกัน แต่วิธีการจริงคือการนำมาเรียงตอ่ กัน ซึ่งแต่ละ Pixel จะเก็บข้อมูลตรงนั้น ในการเปลี่ยนภาพ 1 ภาพ
เป็น Pixel ก็สามารถเปรียบเทียบได้กับการเมตริกขนาดที่เป็น 2 มิติ ขนาดเท่ากับ Pixel โดยความกว้างกับความ
ยาวมาประกอบกัน และเมื่อเก็บทุกอย่างมาในเชิงของเมตริกว่าจะอยากได้อะไรออกจากเมตริก สามารถใช้ทฤษฎี
ทางคณิตศาสตร์ทเี่ กยี่ วขอ้ งกบั เมตริกได้
13.2 คอมพิวเตอรป์ รทิ ศั น์และการประมวลผลภาพ (Computer Vision and Image Processing)
การประมวลผลภาพ (Image Processing) คือ เป็นการประยุกต์ใช้งานการประมวลผลสัญญาณบน
สัญญาณ 2 มิติ เช่น ภาพนิ่ง (ภาพถ่าย) หรือภาพวิดีทัศน์ (วิดีโอ) และยังรวมถึงสัญญาณ 2 มิติอื่นๆ ที่ไม่ใช่ภาพ
ด้วยแนวความคิดและเทคนิค ในการประมวลผลสัญญาณ สำหรับสัญญาณ 1 มิตินั้น สามารถปรับมาใช้กับภาพได้
ไม่ยาก แตน่ อกเหนอื จากเทคนคิ จากการประมวลผลสญั ญาณแล้ว การประมวลผลภาพก็มเี ทคนิคและแนวความคิด
ทีเ่ ฉพาะ (เชน่ Connectivity และ Rotation Invariance) ซึง่ จะมคี วามหมายกับสัญญาณ 2 มิติเทา่ นั้น แต่อยา่ งไร
กต็ ามเทคนิคบางอยา่ ง จากการประมวลผลสญั ญาณใน 1 มิติ จะคอ่ นขา้ งซบั ซอ้ นเม่อื นำมาใช้กบั 2 มติ ิ
ในอดีต เมื่อหลายสิบปีมาแล้ว การประมวลผลภาพนั้น จะอยู่ในรูปของการประมวลผลสัญญาณแอนะล็อก
(Analog) โดยใช้อุปกรณ์ปรับแต่งแสง (Optics) ซึ่งวิธีเหล่านั้นก็ไม่ได้หายสาบสูญ หรือเลิกใช้ไป ยังมีใช้เป็นส่วน
สำคัญ สำหรับการประยุกต์ใช้งานบางอย่าง เช่น ฮอโลกราฟี (Holography) แต่เนื่องจากอุปกรณ์คอมพิวเตอร์ใน
ปัจจุบัน ราคาถูกลง และเร็วขึ้นมาก การประมวลผลภาพดิจิทัล (Digital Image Processing) จึงได้รับความนิยม
มากกวา่ เพราะการประมวลผลที่ทำไดซ้ บั ซ้อนขนึ้ แม่นยำ และง่ายในการลงมือปฏิบัติ
การที่จะดึงข้อมูลที่เราสนใจออกมาจากภาพ จะใช้เทคนิคที่เรียกว่า การประมวลผลภาพ ( Image
Processing) ซึ่ง Image Processing จริงๆ แล้วก็คือการทำงานในเชิงของเมตริก โดยที่เมตริกที่เกิดขึ้นอาจเกิด
จากการสกดั ข้อมูลทต่ี ้องการออกมาได้คือสิ่งทเี่ รียกว่า ฟีลเตอร์ (Filter) ออกมาจากภาพ ดึงส่ิงที่สนใจออกมาหรือ
ทำให้ภาพนน้ั ดีขน้ึ
โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐเ์ พอ่ื พฒั นาทักษะดา้ นดิจทิ ัลของนักเรยี นและนักศกึ ษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 104
สำนกั งานคณะกรรมการดจิ ิทัลเพือ่ เศรษฐกิจและสังคมแห่งชาติ
ภาพท่ี 13.5
ตัวอย่างการหาโครงสร้างของภาพหารูปทรงที่สนใจใส่ผ่าน Image Processing จะหาได้ว่าวงกลมอยู่
ตรงไหน สเี่ หลี่ยมอยตู่ รงไหน สามเหลีย่ มอย่ตู รงไหน นน่ั เอง
ภาพที่ 13.6
โดยพืน้ ฐานของ Image Processing แล้วทำการกระทำ (Operate) เมตรกิ ดว้ ยการทำ Convolution คือ
การ Convolute ระหวา่ งชน้ั กบั ตัวกรอง (Filter) หรอื เคอร์เนล (Kernel) ท่ชี ว่ ยดึงคุณลักษณะที่ใช้ในการรู้จำวัตถุ
ออกมา เพอ่ื ครอบคลมุ ของผลลพั ธ์ (Covered Output) หรอื แปลงสญั ญาณผลลพั ธ์ (Transform Output Signal)
โครงการพัฒนาชุดทดลองปัญญาประดิษฐเ์ พอื่ พัฒนาทักษะดา้ นดจิ ทิ ัลของนักเรียนและนกั ศกึ ษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 105
สำนักงานคณะกรรมการดิจิทลั เพอ่ื เศรษฐกจิ และสังคมแห่งชาติ
ให้ออกมาเป็นลกั ษณะที่ต้องการ หรือบางครั้งดงึ ขอ้ มูลบางอยา่ งของข้อมูลน้นั เช่น ถ้ามีสัญญาณเสยี ง และตอ้ งการ
ดึงความถี่สูงมา ทำการผ่านตัวกรองความถี่สูง (High Pass Filter) เป็นต้น เช่นเดียวกันกับภาพของเรา เป็นภาพ
สองมิติ ซึ่งในครั้งนี้ Convolute หรือ Filter จะไม่ใช่ลักษณะที่เป็นหนึ่งมิติ แต่จะเป็นสองมิติหรือเป็นเมตริก
เช่นเดียวกันโดย Concept ของมันก็เหมือนการจัดการเรื่อง Signal คือตัว Convolute หรือ Filter ไปวิ่งผ่าน
สัญญาณที่ปัจจุบันเป็นภาพแล้ว Generate Output ออกมา โดยที่ฟิลเตอร์มีชื่อเรียกเฉพาะเรียกว่า Kernel และ
มิติก็สามารถสร้างได้จากลักษณะสัญญาณทางไฟฟ้า และสุดท้ายสามารถแปลมันออกมาให้ได้เป็นสมการนี้คือ
สมการข้างบน Convolution แบบสหสัมพันธ์ไขว้ (Cross-correlation)
ภาพที่ 13.7
ถ้ามี Image processing ได้อะไรออกมาจากภาพบ้าง ตัวอย่างแรกสิ่งที่เรียกว่า Edge Detection
อยากจะหารูปทรง สามารถตรวจจับออกมาได้ว่าภาพนี้มี Edge หรือมีจุดอะไรออกมาได้บ้าง โดยที่ Edge
Detection จริงๆ แล้ว คือการทำ High Pass Filter นั่นเอง การฟิลเตอร์นอยซ์ ซึ่งสิ่งที่เราได้คือการทำให้
สิ่งรบกวน (Noise) หายไป ซึ่งเราจะใช้ Low Pass Filter เพราะว่า สิ่งรบกวน (Noise) ส่วนใหญ่จะอยู่ในรปู ของ
high frequency และเราก็สามารถทำให้ภาพของเราชัดได้ผ่าน sharpen filter การที่ input ของเราเยอะเรา
จำเปน็ ต้อง ตรวจจับ filter พเิ ศษบางอยา่ ง เพราะฉะน้ันแล้วเราเลยตอ้ งทำความเข้าใจในลักษณะ filter ต่าง ๆ มา
ประกอบกัน เพื่อจะทำให้ระบบในการพิจารณาคอมพิวเตอร์วิชชั่นของเราสามารถทำงานได้ดีขึ้น สามารถทำการ
ค้นหาขอ้ มลู ท่เี ราต้องการหรือต้องการบอกไว้วา่ สิ่งท่เี ราใสเ่ ขา้ ไปน้นั มันคืออะไรได้อย่างถูกตอ้ ง
โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐ์เพอ่ื พัฒนาทกั ษะดา้ นดิจทิ ลั ของนกั เรยี นและนกั ศึกษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 106
สำนักงานคณะกรรมการดิจิทัลเพ่อื เศรษฐกจิ และสังคมแหง่ ชาติ
ภาพที่ 13.8
ถา้ ไปดูโครงสร้างขา้ งใน มนั คือการทับซ้อนกัน คูณกัน บวกกัน เพราะฉะนน้ั ถา้ นำตัว Image Processing
มาประยกุ ต์ผสมกบั Neural Networks มันจะเกดิ เปน็ ลักษณะทว่ี า่ Image Processing ท่ีตัวฟลิ เตอร์หรือ Kernel
ทั้งหมด สามารถเรียนรู้ได้เนื่องจากมีลักษณะที่ คณิตศาสตร์เทียบเท่ากับโครงข่ายประสาท แปลได้ว่าจริงๆ แล้ว
สมการทั้งสองอันนี้เหมือนกัน ดังนั้น ถ้ามีทฤษฎีที่ทำให้โครงข่ายประสาทเรียนรู้ได้จากความผิดพลาดแปลว่า
ความผิดพลาดนั้น สามารถส่งข้อมูลกลับไปยังตัวเมตริกหรือ Image Processing ได้ ทำให้น้ำหนักกับไบแอส
(Bias) ของมันซึง่ ก็คอื ค่าในตวั Filter เปลี่ยนแปลงได้ให้เหมาะสม
และสุดทา้ ยสามารถนำเอามาประกอบกนั ให้กลายเป็น โครงขา่ ยประสาทขนาดใหญ่ตวั หนึ่งท่ีเรียกวา่ CNN
หรือ Convolutional Neural Networks ได้โดยนำมาประยุกต์ใช้ในการหาให้ได้ว่า Input คืออะไร โดยที่วิธีการ
เรียนรู้แบบนี้ง่ายๆ เหมือนกับที่ใช้โครงข่ายประสาทธรรมดา ก็คือการท่ีใช้เทคนิค Back Propagation ผ่าน
Gradient Descent เมื่อทำการหา Error ของสิ่งที่เกิดขึ้น เรียนรู้แล้วก็ทำการแก้น้ำหนัก (Weight) กับไบแอส
(Bias) ทั้งหมด ผ่าน Back Propagation และทำการ Forward ไปเพื่อหา Input ใหม่ เพื่อดูว่าจะเกิดข้อผิดพลาด
หรอื Error อย่างไร
13.3 การประยกุ ต์ใชค้ อมพวิ เตอรป์ รทิ ัศน์ทีแ่ พร่หลาย (Popular Computer Vision Applications)
เป้าหมายโดยทว่ั ไปของคอมพวิ เตอร์วทิ ัศน์ไดแ้ ก่
• การตรวจจับ ตัดแบ่งขอบเขต ระบุตำแหนง่ และ ร้จู ำ วัตถทุ ี่ตอ้ งการในภาพ เชน่ หน้าคน
• การประเมินผล สำหรับ การตัดเบง่ ขอบเขตวัตถใุ นภาพ หรอื การวางทาบเทียบ เปน็ ตน้
• การวางทาบเทยี บของ มมุ มองตา่ ง ๆ ของทัศนยี ภาพ หรอื วตั ถหุ นึ่ง ๆ
• การติดตาม วตั ถุหน่ึง ๆ ในภาพต่อเน่อื ง
• การเชื่อมโยงมุมมองต่าง ๆ ของทัศนียภาพหนึ่ง ๆ เพื่อสร้างแบบจำลองสามมิติ ของทัศนียภาพน้ัน
แบบจำลองดังกลา่ วอาจนำมาใช้เพอ่ื นำทางหุ่นยนต์ ในทัศนียภาพจรงิ
โครงการพฒั นาชุดทดลองปัญญาประดิษฐ์เพ่ือพฒั นาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนกั ศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 107
สำนกั งานคณะกรรมการดจิ ทิ ลั เพื่อเศรษฐกจิ และสังคมแหง่ ชาติ
• การกะประมาณ ทา่ ทางต่าง ๆ ของมนษุ ย์ และ ส่วนต่าง ๆ ของรา่ งกาย เช่น แขน ขา น้วิ มือ ฯลฯ ใน
สามมติ ิ
• การคน้ หา รูปภาพด้วยเนอื้ หาของภาพ ในฐานข้อมลู ภาพขนาดใหญ่
เพื่อที่จะบรรลุซึ่งเป้าหมายเหล่านี้ ระบบคอมพิวเตอร์วิทัศน์ จะต้องใช้กระบวนการต่างๆ เช่น การรู้จำ
แบบ การเรียนรู้เชิงสถิติ เรขาคณิตเชิงภาพฉาย การประมวลผลภาพ ทฤษฎีกราฟ และอื่นๆ คอมพิวเตอร์วิทัศน์
การรบั รนู้ ั้น เกี่ยวขอ้ งอย่างใกลช้ ดิ กบั จติ วิทยาการรบั รู้ และการคำนวณทางชีวภาพ
การประยุกต์ใช้คอมพิวเตอร์วิทัศน์ อันหนึ่งที่น่าสนใจ ได้แก่ การสร้างปรากฏการลวงตาต่างๆ ใน
ภาพยนตร์ ปัจจุบันจะพบการประยุกต์ใช้คอมพิวเตอร์วิทัศน์ในสาขาตา่ งๆ เช่น การแพทย์ การทหาร ระบบตรวจ
และรกั ษาความปลอดภัย การตรวจสอบและควบคมุ คุณภาพ ระบบหุน่ ยนต์ รถยนต์ และอืน่ ๆ
ในปจั จุบนั คอมพิวเตอร์วทิ ัศน์ และ การประมวลผลภาพทางการแพทย์ ทใ่ี ช้วิธกี ารตา่ งๆ ทางคอมพิวเตอร์
วิทศั น์ ไดร้ ับการพฒั นาและจดั จำหนา่ ยในตลาดโลก คดิ รวมเป็นมูลคา่ หลายหมื่นลา้ นบาทต่อปี
โครงการพัฒนาชดุ ทดลองปัญญาประดษิ ฐ์เพ่อื พฒั นาทกั ษะดา้ นดจิ ิทัลของนกั เรยี นและนักศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 108
สำนักงานคณะกรรมการดิจิทลั เพ่อื เศรษฐกิจและสังคมแห่งชาติ
บทที่ 14
บอท
วัตถุประสงค์ เรียนรู้เกีย่ วกับการสนทนากับบอท (Conversation Bots) รวมทั้งการสรา้ งพืน้ ฐานของการ
สนทนากบั บอท (Conversation Bots) โดยประกอบด้วยหัวข้อดังน้ี
14.1 บทนำเบื้องตน้ บอท (Introduction Bots - Conversation as a Platform)
14.2 ตวั อยา่ ง Chatbot สำหรับใชง้ านแบง่ แยกตามหน้าที่
14.3 การแบง่ ประเภท Chatbot
14.4 สถาปตั ยกรรม Chatbot
14.5 ความหมายและคำที่มคี วามหมายคล้ายกนั
14.1 บทนำเบือ้ งต้นบอท (Introduction Bots - Conversation as a Platform)
บอท (Bot) มาจากคำว่า แชทบอท (Chatbot) ประกอบด้วยคำว่า แชท กับ โรบอท รวมกันเป็น แชทบอท
และเรียกสั้นๆวา่ บอท เป็นแอปพลเิ คชันซอฟต์แวรท์ ีใ่ ช้ในการสนทนาออนไลนผ์ า่ นข้อความหรอื ข้อความเป็นคำพูด
แทนการติดต่อโดยตรงกับตัวแทนที่เป็นมนษุ ย์ ออกแบบมาเพื่อจำลองวิธีที่มนุษย์จะปฏิบัติตนในฐานะคู่สนทนาได้
อยา่ งนา่ เช่ือ โดยท่ัวไประบบแชตบอตยังต้องมีการปรับแต่งและทดสอบอย่างต่อเนื่อง และในการใช้งานในปัจจุบัน
ยังไมผ่ ่านตามมาตรฐานการทดสอบทวั ริง (Turing Test) ไดอ้ ยา่ งเพยี งพอ
แชทบอท เปน็ ระบบหนึง่ ของการประมวลผลภาษาธรรมชาติ (Natural Language Processing :NLP) ใน
รปู แบบการแปลง ขอ้ ความเป็นขอ้ ความ (Text to Text)
ภาพท่ี 14.1
โครงการพฒั นาชุดทดลองปญั ญาประดิษฐเ์ พ่อื พฒั นาทักษะดา้ นดจิ ิทลั ของนกั เรียนและนกั ศึกษาในสายวิชาชีพอาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 109
สำนกั งานคณะกรรมการดจิ ทิ ลั เพอื่ เศรษฐกิจและสังคมแห่งชาติ
แชทบอทคือ?
Chatbot มาจากคำว่า Chat + Robot คือ ซอฟต์แวร์หุ่นยนต์ ที่ทำงานในแอพแชท เช่น Facebook
Messenger หรือ LINE โดยปกติจะนำมาใช้เพื่อลดงานตอบคำถามซ้ำๆ หรือ ช่วยบริการผ่านแชท (In-chat
Services) ซ่ึงลกั ษณะของ Chatbot ทแี่ ตกตา่ งจากพวกซอฟตแ์ วรพ์ วก Auto Play
1. Chatbot มีประสิทธิภาพสามารถทำการตอบคำถามได้เหมือนมนุษย์
2. Chatbot สามารถตอบคำถามได้แบบ Dynamic (Auto – reply) จะเป็น Static เช่น ถ้าถามว่าตอนนี้
มภี าพยนตร์อะไรนา่ ดูบา้ ง คำตอบจะข้ึนอยกู่ บั ช่วงเวลาทถี่ าม ไม่ไดต้ อบซำ้ เดิมตลอดเวลา
Chatbot มี AI หรือ NLP สามารถเข้าใจภาษาได้มากกว่า Keyword เช่น ถ้าลูกค้าทำการพิมพ์ถามมาว่า
“หวดั ด”ี Chatbot กส็ ามารถทำการเรยี นร้ไู ด้วา่ หวดั ดี หรอื สวสั ดี หรอื ดีจา้ กค็ ือความหมายเดียวกัน
ตัวอย่างการใช้งาน Chatbot กับการใชง้ านระบบตอบคำถามสำหรับสายการบนิ ซึ่งสามารถทำการใช้งาน
Chatbot ไดต้ ง้ั แต่การคุยเพือ่ ทำการเช็คอนิ ไปจนถงึ การออกบอร์ดด้ิงพาส (Boarding Pass) ได้เลย
ตัวอย่าง Chatbot AVA เป็น Chatbot ของ สายการบินหนึ่ง ซึ่ง AVA สามารถใช้งานตอบคำถามต่างๆ
และยังสามารถรับ Complaint ต่างๆ จากลูกค้าได้ด้วย สามารถทำการเปลี่ยนตั๋วเครื่องบินได้ สามารถทำการรับ
เงินคืนได้
ภาพท่ี 14.2
ขอ้ ดี สำหรับการนำ Chatbot มาใช้งาน
โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐ์เพ่อื พฒั นาทกั ษะดา้ นดจิ ิทัลของนกั เรยี นและนักศึกษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 110
สำนักงานคณะกรรมการดิจิทัลเพ่อื เศรษฐกจิ และสังคมแหง่ ชาติ
1. บริการ แบบ 24-7-365
2. การจัดการลกู คา้ ปรมิ าณมาก ในช่วงเวลาจำกัด
3. ประหยดั คา่ ใชจ้ า่ ย
4. เพม่ิ ความพงึ พอใจใหก้ บั ลูกค้าให้มากขึ้น เพิ่มยอดขาย
5. ลดความเหนื่อยล้าของพนกั งาน สามารถเพิ่มขอ้ มูลใหม่ได้รวดเรว็
6. ผู้ช่วยสว่ นตวั
กลุ่มธุรกิจสว่ นใหญใ่ ช้ Chatbot มาใช้งานได้แก่
1. e-Commerce
2. Travel
3. Finance
4. Healthcare
5. Real Estate
14.2 ตัวอย่าง Chatbot สำหรบั ใชง้ านแบ่งแยกตามหนา้ ท่ี
Customer service
• ใช้ในการตอบคำถามที่มีลูกค้าถามบ่อย (FAQ) เพราะ ปกติแล้ว ประมาณ 80% คำถามที่ลูกค้าถาม
เขา้ มาจะเป็นคำถามหัวข้อเดิมๆ และ ไมซ่ ับซ้อน
• ใช้ในการชว่ ยเหลือลูกค้าเบ้อื งต้น เชน่ การใหค้ ำตอบเวลาในการสง่ สนิ ค้า
Marketing
• ใชใ้ นการนำเสนอสนิ ค้าใหม่ โปรโมชัน สำหรบั ลูกค้าเดมิ ส่งสินคา้ ไปนำเสนอลกู ค้าใหม่
• ใชใ้ นการสง่ แบบสอบถามและเก็บขอ้ มูลลกู ค้า
• ป้องกันการที่ลูกค้าขาประจำ ลูกค้าเก่า สมาชิก (Subscribers) ที่ซื้อสินค้าหรือใช้บริการของคุณอยู่
แล้ว หรอื มีการซื้อหรอื ใชบ้ ริการของคุณอย่เู ป็นประจำเกิดเปล่ยี นใจ หยุดใชห้ ยดุ ซ้ือ หรอื ยกเลกิ บรกิ ารกบั คณุ
ตัวอยา่ ง Chatbot สำหรับใช้งานแบง่ แยกตามหน้าที่
Sales
• ใช้ในการขายสินคา้ ออนไลน์ + ปดิ การขาย + ทำสนิ คา้ เฉพาะ (Custom)
• ใชใ้ นการแจง้ สถานการณ์สั่งซอ้ื สนิ คา้
HR
• ใช้ในการตอบคำถามพืน้ ฐานทาง Human Resources
• ใช้ในการแจ้งขา่ วตา่ ง ๆ
• ใชใ้ นการสง่ ข้อมลู แจง้ การ ลา ต่าง ๆ
• สอ่ื สารเพ่ือเสรมิ ศกั ยภาพ พนกั งาน เชน่ การจำลอง สถานการณ์ ในการตอบคำถามลูกคา้
โครงการพัฒนาชดุ ทดลองปัญญาประดษิ ฐ์เพื่อพัฒนาทกั ษะดา้ นดิจทิ ลั ของนักเรียนและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 111
สำนกั งานคณะกรรมการดจิ ิทลั เพอ่ื เศรษฐกิจและสงั คมแหง่ ชาติ
14.3 การแบง่ ประเภท Chatbot
สามารถแบง่ Chatbot ออกเปน็ แบบใหญๆ่ ได้แก่
1) Rule-Based Chatbots
Rule-based chatbots เปน็ Chatbots ท่จี ะทำตอบโตต้ ามคำถามท่ีได้กำหนดรปู แบบไว้อย่างแน่นอน
ตายตัว ไมไ่ ด้ มคี วามเข้าใจในภาษาศาสตร์ ใช่วธิ เี ปรียบเทียบคำ input ตาม กฎ (Rule) ท่ีกำหนดขน้ึ และ ถ้าตรง
ตามกฎ Chatbots จะแสดงคำตอบออกมา
2) NLP-Based Chatbots
NLP ย่อมาจาก Natural Language Processing ถือเป็น AI ประเภทหนึ่งที่เรียนรู้การใช้ภาษา และมี
การตอบสนองจากการใส่ Input ประเภทข้อความ ทำให้ระบบการเรียนรู้สามารถเข้าใจประโยคได้ จากการให้
คะแนน "คำ" หรอื "ตัวอักษร" ตา่ งๆ ทำให้เมือ่ นำคำนั้นๆ มาเรียงกันเป็นประโยค ก็สามารถทำความเข้าใจประโยค
นั้นได้ การทำงานของ Chat-Bot คอื ทำความเขา้ ใจ "ประโยค" ท่พี ิมพ์เข้าไป โดยไม่จำเป็นต้องมกี ารจดจำประโยค
ดังกล่าวเอาไว้ก่อน หลังจากนั้น Bot จะส่งคำตอบที่มีการกำหนดเอาไว้ เช่น ถ้าคำถามเกี่ยวข้องกับสภาพอากาศ
bot จะทำการดงึ ขอ้ มลู สภาพอากาศมาแสดงผล
3) NLP+AI-Based Chatbots
เป็นการต่อยอดจาก NLP แบบเดิม ตรงที่ตัว AI จะเก็บข้อมูลถามตอบที่เกิดข้ึนใหม่ ไปเป็นต้นแบบใน
การเรียนรู้ต่อไป ดังนั้น ในกรณีที่พิมพ์ผิด หรือพิมพ์ตกหล่น AI จะสามารถเข้าใจรายละเอียดได้ การเก็บ
รายละเอียดของ AI ทำได้โดยตงั้ คำถาม เพ่ือให้ผูต้ อบยนื ยนั วา่ AI เข้าใจถูก และตัว AI จะเรียนรู้ไปเรอื่ ย ๆ
14.4 สถาปัตยกรรม Chatbot
In put NLU Component เข้าไปในระบบที่เรียกว่า Tracker Slots ผ่านทาง Database แล้วส่งข้อมูล
ในทาง Massage Generator
ภาพท่ี 14.3
โครงการพัฒนาชดุ ทดลองปญั ญาประดิษฐ์เพ่ือพฒั นาทกั ษะดา้ นดจิ ิทลั ของนกั เรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 112
สำนกั งานคณะกรรมการดจิ ทิ ลั เพ่ือเศรษฐกิจและสงั คมแห่งชาติ
ตัวอย่าง Flow charts การสรา้ ง Chatbot ดังรูป 14.4
ภาพท่ี 14.4
ถ้าต้องการสร้าง Chatbot แบบง่ายๆ ขึ้นมาอันหนึ่งให้เลือก Rule – Based Chatbot : Python
Example ดังรูป 14.5 ใช้ภาษา Python และเลือก Library ชื่อว่า NLTK ทำการสร้าง Rule ตัวหนึ่งขึ้นมาช่ือ
Pairs ซึ่งเป็นตวั ต้ังคำถามว่า ถ้าทำการถามแบบนี้ จะต้องตอบคำถามแบบใหน
ภาพที่ 14.5
Corpus – คลงั ขอ้ มลู ภาษา
โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐ์เพื่อพัฒนาทักษะดา้ นดิจิทลั ของนกั เรียนและนักศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 113
สำนักงานคณะกรรมการดจิ ทิ ลั เพอ่ื เศรษฐกิจและสังคมแห่งชาติ
คลังข้อมูลภาษาสำหรับ NLP ในระดับพื้นฐาน เช่น การตัดคำ (Word, Sentence Segmentation,
Tokenization) การกำกับชนิดของคำ (Part-of-speech Tagging) ไวยากรณ์ (Syntax) การรู้จำชื่อเฉพาะ
(Named Entity Recognition) การวเิ คราะห์โครงสรา้ งไวยากรณ์ (Syntactic Parsing)
ภาษาไทยไม่ใช้เว้นวรรคเพื่อบ่งบอกขอบเขตของคำ NLP ระดับพื้นฐานที่สุดจึงต้องเริ่มจากการตัดคำ
(Word Segmentation)
“ตากลม” ซ่งึ ตัดคำได้ 2 แบบ คอื ตา|กลม และ ตาก|ลม
“ตามหามเหส”ี ซ่งึ ตดั คำได้เปน็ ตาม|หา|มเหสี, ตา|มหา|มเหสี, และ ตาม|หาม|เห|สี
ฉัน|นำ|ดอก|ไม|้ ไป|ไหว้|ศาล|พระ|ภมู |ิ ท|่ี โรง|เรยี น|ประจำ
ฉัน|นำ|ดอกไม้|ไป|ไหว้|ศาลพระภมู ิ|ที่|โรงเรียน|ประจำ
ฉัน|นำ|ดอก|ไม|้ ไป|ไหว้|ศาล|พระภมู ิ|ที่|โรงเรยี น|ประจำ
ฉนั |นำ|ดอกไม้|ไป|ไหว้|ศาลพระภมู ิ|ที่|โรงเรยี นประจำ
ภาพท่ี 14.6
14.5 ความหมายและคำท่ีมีความหมายคล้ายกนั
Vector Analysis คือการแปลงประโยคให้เป็น Vector Space
“ยนิ ดีท่ีได้
“ยนิ ดที ่ไี ด้
ภาพที่ 14.7
ตวั อย่าง มปี ระโยคอยู่ 5 ประโยค แล้วนามาทาการตัดคา ดังภาพตวั อยา่ งในรปู 14.8
Vector conversion of
sentence
“There used to be bronze age” =
[1,0,1,1,1,0,1,0,0,0,1,0,0,0,0]
“There used to be iron age” =
[1,0,1,1,1,0,0,1,0,0,1,0,0,0,0]
“There was age of revolution” =
[1,1,0,0,0,0,0,0,1,0,1,1,0,0,0]
โครงการพัฒนาชดุ ทดลองปญั ญาประดิษฐเ์ พอื่ พัฒนาทักษะดา้ นดจิ ิทัลของนกั เรยี นและนักศึกษาในสายวชิ าชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 114
สำนกั งานคณะกรรมการดจิ ิทัลเพื่อเศรษฐกจิ และสงั คมแห่งชาติ
ภาพท่ี 14.8
ตัวอย่างการใช้งาน Pythainlp การใช้งาน Python ทำการตัดคำที่เป็นภาษาไทย Pythainlp สามารถ
บอกได้ว่า คำศัพท์แต่ละคำ เป็น คำนาม คำสรรพนาม คำกริยา หรือ กรรม เป็นคำเชื่อมหรือเวลา สามารถนำ
ตัวอย่างนม้ี าสร้างโครงสร้างแบบต้นไม้ ก็จะสามารถทราบได้วา่ ใครทำอะไร ทใ่ี หน อยา่ งไร
ภาพที่ 14.9
ภาพที่ 14.10
Deep Cup AI Use CNNs คอื การมองตัวอักษรเปน็ ภาพ จากนัน้ ทำการทำการแปลงออกมาเปน็ ตัวอักษร
แลว้ สรา้ งกลมุ่ ของคำแตล่ ะคำแยกออกจากกนั
Deep
ภาพที่ 14.11
โครงการพฒั นาชดุ ทดลองปัญญาประดษิ ฐเ์ พือ่ พฒั นาทกั ษะดา้ นดจิ ทิ ลั ของนกั เรยี นและนักศึกษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 115
สำนกั งานคณะกรรมการดจิ ิทลั เพือ่ เศรษฐกิจและสังคมแห่งชาติ
การประยุกต์ใช้ Token จาก Library ตัวนี้ ก็จะได้ที่มีข้อความยาวๆ ก็จะสามารถทำการตัดคำออกมาได้
ดงั ตวั อย่างดังรปู ดา้ นลา่ ง
ภาพที่ 14.12
ภาพท่ี 14.13
การทำ Chatbot สามารถนำ Platform ที่มีอยู่แล้วมาทำได้ เช่น Messenger ต่างๆ ได้ ตัวอย่าง เช่น
Facebook, Line ในการคุยหลังจากนั้นลิงค์ไปยัง API ทำการดึงข้อมูลออกมาว่าเขาคุยอะไรกับเรา ทำการแปลง
API ให้เหมาะสม Engine ที่เป็น Chatbot ที่เราใช้ หลังจากนั้น Chatbot ทำการ Cut ข้อมูลเปรียบเทียบเป็น
Machine Learning เปรียบเทยี บข้อมูลตามที่เราทำการต้ังกฎเอาไวแ้ ลว้ ส่งค่าคำตอบกลบั มา
โครงการพัฒนาชุดทดลองปญั ญาประดิษฐเ์ พือ่ พัฒนาทักษะดา้ นดิจทิ ัลของนักเรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 116
สำนกั งานคณะกรรมการดจิ ทิ ัลเพอ่ื เศรษฐกจิ และสงั คมแหง่ ชาติ
ภาพที่ 14.14
โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐเ์ พื่อพฒั นาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 117
สำนกั งานคณะกรรมการดจิ ทิ ลั เพื่อเศรษฐกจิ และสังคมแหง่ ชาติ
บทที่ 15
การสร้างระบบแนะนำ
15.1คำนำ
ระบบผู้ช่วยแนะนำ หรือ Recommendation System (RS) คือ ระบบที่ช่วยแนะนำในสิ่งที่เราอาจจะ
ชอบมาให้ โดยอ้างอิงจากผู้ใช้งานที่คล้ายคลึงกับเรา และประวัติการใช้งานของเราเป็นพื้นฐาน ในบทนี้จะเรียนรู้
หลกั การทำงานของ Recommendation System เพื่อเรียนรูถ้ งึ รูปแบบและโครงสรา้ งทใ่ี ช้ Machine Learning
บริษัทยักษ์ใหญ่เช่น Amezon, Netflix, Linkedin และ Pandora ใช้ระบบแนะนำในการนำเสนอสิ่งใหม่
ๆ ทล่ี ูกคา้ อาจจะชอบเพอื่ ใหล้ ูกค้ามีโอกาสเลอื กสง่ิ ใหม่ๆ ไมจ่ ำเจ และทำให้บรษิ ัทมยี อดขายมากข้นึ อยา่ งเห็นไดช้ ัด
ตัวอย่างการใช้งาน Recommendation System เมื่อเข้าใช้งานเว็บของ Shopee เราก็จะเจอสินค้า
แนะนำต่างๆ กรณีที่เรา Login เข้าใช้งานเราก็จะเห็นการแสดงสินค้าในแบบหนึ่ง แต่ถ้ากรณีที่เราไม่ได้ทำการ
Login เข้าสรู่ ะบบเรากจ็ ะเหน็ หนา้ เวบ็ ในอีกรูปแบบหน่ึง
สาเหตุมาจากระบบมีการจัดเก็บขอ้ มูลวา่ คุณเคยซื้ออะไร เคยคลกิ ดูสินคา้ อะไรผา่ นทางเวบ็ ไซต์ แล้วระบบ
จะนำข้อมูลเหลานั้นมาทำการจัดเก็บข้อมูลแล้วนำสินค้าที่คุณสนใจมาโชว์ให้เราดู เพื่อเป็นการกระตุ้น ว่าเรามี
โอกาสที่จะซื้อสินค้าเหล่านั้น Recommendation system เราสามารถเจอได้จาก Amazon Netflix , Linkedin
และ Pandora Recommendation ช่วยให้ลูกค้าค้นพบสินค้าใหม่ๆ ไม่ว่าจะเป็นผลิตภัณฑ์ สินค้า วีดีโอ หรือ
เพลงตา่ ง ๆ เพื่อให้ผู้ใชง้ านไดพ้ บประสบการณ์ และเพม่ิ ยอดขาย
โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐ์เพือ่ พฒั นาทักษะดา้ นดิจิทัลของนักเรียนและนักศกึ ษาในสายวชิ าชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 118
สำนักงานคณะกรรมการดิจทิ ลั เพ่ือเศรษฐกจิ และสังคมแหง่ ชาติ
ภาพที่ 15.1
ตัวอย่างการใช้งาน Recommendation กับ YouTube เราจะเห็นว่า YouTube จะมีสิ่งที่เราเคยดู เคย
ฟังมาก่อน
ภาพท่ี 15.2
ตัวอย่างการใช้งาน Recommendation กับ Amazon เราจะพบว่าเราเห็นหนังสือต่างๆ ที่เราเคยดู เคย
เข้าไปสั่งซื้อหนังสือนัน้ แม้กระทั้งเสื้อผ้า ที่นำมาแสดงจะนำมาเปรียบเทียบกับคนที่ซือ้ เสื้อผ้าตัวน้ีมีการซื้อเส้ือผ้า
อกี สามตัวตอ่ มา
ภาพท่ี 15.3
ตวั อย่างการใช้งาน Recommendation กบั เว็บ Shopee เรากจ็ ะเจอสิง่ ที่เราเคยเจอ เคยดู
โครงการพฒั นาชุดทดลองปญั ญาประดิษฐ์เพ่ือพัฒนาทกั ษะดา้ นดิจิทลั ของนกั เรยี นและนักศึกษาในสายวิชาชพี อาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 119
สำนักงานคณะกรรมการดิจิทัลเพื่อเศรษฐกจิ และสงั คมแห่งชาติ
ภาพท่ี 15.4
สรุป Recommendation คือระบบผู้ช่วยแนะนำ หรือ Recommendation System (SRS) คือ ระบบท่ี
ช่วยแนะนำสิ่งที่เราชอบมาให้ โดยอ้างจาก ผู้ใช้งานที่มีประวัติการใช้งานคล้ายคลึงกับเรา และประวัติการใช้งาน
ของเราเปน็ พื้นฐาน
15.2 Content-based Recommender System
Content-Based คือ การหาความเหมือนของสินค้า ยกตัวอย่างเช่น นาย ก ชอบ Wonder Woman,
Superman, Iron man จะเหน็ วา่ นาย ก ชอบหนงั ท่ีมเี น้อื หาเปน็ แนวฮีโร่ แสดงว่า นาย ก อาจจะชอบดูหนังเร่ือง
Captain America ดว้ ยเชน่ กันเนอ่ื งจาก Captain America เป็นหนังแนวฮีโร่เหมอื นกัน
โครงการพัฒนาชุดทดลองปญั ญาประดิษฐ์เพ่อื พฒั นาทกั ษะดา้ นดิจทิ ัลของนกั เรียนและนักศึกษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 120
สำนกั งานคณะกรรมการดจิ ิทลั เพอื่ เศรษฐกิจและสงั คมแห่งชาติ
ภาพท่ี 15.5
ตัวอย่างกรณีที่เราเป็นผู้ใช้งาน วันแรกเราทำการสั่งซ้ือพิษซ่ามักโลนี ต่อมาเราทำการสั่งซื้อพิษซ่าเพิ่มแต่
เปน็ หนา้ ฮาวาเอยี่ น สง่ิ ทเ่ี กิดข้ึนคือในระบบ Recommendation จะทำการประมวลผลและทราบวา่ เราชอบพิษซ่า
มนั ก็จะทำการนำเสนอพษิ ซ่าหนา้ margherita มาใหเ้ รา โดยแสดงผ่านหนา้ เวบ็ ไซต์ในรปู แบบโปรโมช่นั
15.3 Collaborative Recommendation Engine
Collaborative-Based คือ การหาความเหมือนกันของกลุ่มคนที มีความชอบหรือไม่ชอบหนังชนิด
เดยี วกนั ยกตวั อยา่ งเช่น
นาย ก ชอบ Aquaman, Superman, Iron man
นาย ข ชอบ Aquaman, Superman
จะเหน็ วา่ นาย ก กบั นาย ข ชอบดหู นงั คล้ายๆกัน เราจงึ ขอสรปุ วา่ หาก นาย ก ชอบดู Iron man นาย ข
อาจจะชอบด้วยเชน่ กนั เราจงึ แนะนำหนงั Iron man ใหน้ าย ข
Collaborative Recommendation Engine เปน็ การเปรยี บเทยี บการใชง้ านของผใู้ ชง้ าน 2 คน
ตวั อย่าง การใชง้ าน Collaborative Recommendation Engine
นาย ก. ทำการซื้อพิษซา่ กาแฟ และนำ้ อดั ลม
นาย ข. ทำการซอ้ื พิษซา่ กาแฟ และนำ้ อัดลม
ระบบก็จะทราบว่า นาย ก. กบั นาย ข. มี Lifestyle ท่ีเหมอื นกนั เมื่อนาย ก ซ้อื แฮมเบอเกอร์ ระบบจะทำ
การนำเสนอ แฮมเบอเกรใ์ ห้กบั นาย ข ทันที
โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐ์เพ่ือพัฒนาทักษะดา้ นดจิ ิทลั ของนักเรียนและนักศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 121
สำนกั งานคณะกรรมการดจิ ิทัลเพ่ือเศรษฐกจิ และสงั คมแหง่ ชาติ
ภาพที่ 15.6
Collaborative Filtering (CF) techniques make collaborative research and process over user
or item ratings to deduce new recommendations for users. CF techniques are grouped in 2
methods: Memory-based and Model-based methods
ภาพที่ 15.7
15.4 Recommendation System
เทคนิคการใช้งาน Recommendation System คือการที่พยายามทำการลิงค์ User กับ Item เข้าด้วย
กับโดยผ่าน User – Item Interaction Matrix
การทำสามารถทำไดส้ องทศิ ทางคือ หน่งึ User ชอบซ้อื อะไร สองของๆ เราเหมาะกบั User ใหมซ่ ึง่ ถา้ User
ทช่ี อบอะไรคอื User – Based Filtering แต่ถา้ เราพดู ถงึ ของทีเ่ หมาะกบั ใครเราเรียกว่า Item – Based Filtering
ภาพที่ 15.8
โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐเ์ พ่ือพัฒนาทกั ษะดา้ นดจิ ทิ ัลของนักเรียนและนักศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 122
สำนักงานคณะกรรมการดิจิทัลเพอ่ื เศรษฐกจิ และสังคมแห่งชาติ
Memory-based Methods (Neighborhood-based) คือ การหาความใกลก้ ัน เช่น การทมี่ ีคนหลาย
คนเข้ามาในระบบแล้วทำการกดไลค์ส่ิงต่างๆ ในระบบ สามารถทำการสร้าง Matrix ขึ้นมาเพื่อหาว่าคนสุดทา้ ยจะ
ชอบสง่ิ ใด ทำการดงึ ข้อมูลความชอบการ User อนื่ ทคี่ ลายคลึงกันได้ ซ่งึ ดจู ากความชอบหรือไมช่ อบในสง่ิ ใด
Cosine Similarity
กรณีที่ใช้งาน Recommendation กับระบบที่มีขนาดใหญ่ มีการใช้งานระบบจำนวนมาก ควรใช้งาน
Cosine Similarity ในการเปรียบเทียบมมุ เพ่ือทำการหาความชอบหรอื ความไมช่ อบของผู้ใช้งานได้
ภาพท่ี 15.9
Memory-based Methods (Neighborhood-based)
ภาพที่ 15.10
ภาพท่ี 15.11
ภาพท่ี 15.12
โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐ์เพื่อพัฒนาทักษะดา้ นดิจทิ ัลของนกั เรียนและนกั ศึกษาในสายวชิ าชีพอาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 123
สำนกั งานคณะกรรมการดิจทิ ัลเพอ่ื เศรษฐกิจและสงั คมแหง่ ชาติ
Memory-based Methods (Neighborhood-based)
Sparseness เนอ่ื งจากการคำนวณนน้ั จะดูจากขอ้ มูลความชอบของผู้ใช้ ท่มี ีต่อสนิ คา้ ทง้ั หมด แตท่ งั้ น้ีผ้ใู ช้ก็
ไม่ได้ใช้สินค้าของเราทั้งหมด หรือแค่ส่วนน้อยนิดเท่านั้นเมื่อเทียบกับสินค้าทั้งหมดที่มี อย่างเว็บไซต์ขายของราย
ใหญ่ Amazon
การ Scalability เมอ่ื มีจำนวนสินค้า หรอื ลูกค้าที่มีจำนวนมาก การคำนวณน้ันกจ็ ะใช้ Resource มากข้ึน
ดว้ ย (เช่น ถา้ มลี ูกค้าเป็นล้านคน ก็ต้องมาหาผู้ใช้ทใี่ กล้ท่สี ุดมา k คน จาก 1 ล้านคน เปน็ ต้น) อีกทั้งต้องเก็บข้อมูล
เป็นขนาดจำนวน = จำนวนผูใ้ ช้ x จำนวนสินค้า
ในกรณีของลูกค้าใหม่ หรือ สินค้าใหม่ ระบบก็อาจจะยังไม่มีขอ้ มูลที่มากพอที่จะบอกได้ว่าผู้ใช้คนนี้คลา้ ย
กับใครบ้าง หรอื สินค้าอนั ไหนคลา้ ยกันบา้ ง
15.5 Model-based Methods (Deep Learning-based)
ภาพที่ 15.13
โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐเ์ พอ่ื พัฒนาทกั ษะดา้ นดิจทิ ลั ของนักเรียนและนักศกึ ษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 124
สำนกั งานคณะกรรมการดิจทิ ัลเพอื่ เศรษฐกจิ และสงั คมแห่งชาติ
Model-based Methods (Deep Learning-based)
ภาพท่ี 15.14
1. Amazon
โครงการพัฒนาชดุ ทดลองปัญญาประดษิ ฐ์เพอ่ื พฒั นาทักษะดา้ นดิจิทลั ของนักเรยี นและนกั ศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 125
สำนกั งานคณะกรรมการดิจทิ ัลเพอ่ื เศรษฐกิจและสงั คมแห่งชาติ
According to McKinsey & Company, 35% of Amazon.com’s revenue is generated by its
recommendation engine.
2. Netflix
According to McKinsey, 75 percent of what users watch on Netflix come from product
recommendations.
3. Spotify
The new recommendation system has helped Spotify increase its number of monthly
users from 75 million to 100 million at a time
4. YouTube
It has been successful in terms of their stated goals, with recommendations accounting
for around 60 percent of video clicks from the homepage.
โครงการพัฒนาชุดทดลองปัญญาประดิษฐ์เพ่ือพฒั นาทักษะดา้ นดจิ ทิ ลั ของนกั เรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 126
สำนักงานคณะกรรมการดิจทิ ัลเพือ่ เศรษฐกิจและสงั คมแหง่ ชาติ
บทท่ี 16
หลกั การเรกูไรเซชัน
16.1 โมเดลคณติ ศาสตร์ของนิวตรอน
ในบทนี้จะเรียนรู้เกี่ยวกับหลักการ Regularization ใน Machine Learning และความสำคัญเพื่อใช้ใน
การเพ่ิมประสิทธิภาพของ Model
Neural Network ใน Deep Learning มันคือการจำลองสมองของมนุษย์ โดยใช้ Mathematic Model
สง่ ที่ Mathematic Model ตัวน้เี ปดิ เผยใหเ้ ราไดเ้ หน็ คอื การแปลงลักษณะของ Input สู่ Output เปน็ สมการ
ถ้ามี 1 เชลล์ จะเป็นสมการเชิงเส้น ซึ่งมันคือ แกน X + B = Y ซึ่ง X คือ Input และY คือ Output
ถ้าสมการตัวนี้สร้างจากเวท X กับ Input X + B = Y เพราะฉะนั้น จะสามารถสร้างสมการเชิงเส้นได้ดัง
รูป เป็นเส้นสีแดงในการแบ่ง หน้าคนยิ้มกับเครื่องหมายกากบาท ซึ่งกรณีนี้เรียกว่าการทำ Class Application
หรือการทำกลุ่มของขอ้ มลู ทง้ั สองกลุม่ ออกจากกนั
ตัวอยา่ งท่ีสอง จากรปู นเี้ ช่นกนั สามารถสร้างสมการเสน้ ตรงได้ แสดงว่า Neural Network มีประโยชนอ์ ีก
อย่างหนึ่งคือการนำมาใช้สร้างสมการในการทำอะไรบางอย่าง เพราะฉะนั้นแล้ว จุดประสงค์ของการที่นำ Neural
Network แอพพลิเคชัน่ ตา่ งๆ สามารถแบ่งออกเป็น 2 ลักษณะ
ลักษณะแรกเรียกว่า Classification คือการแบ่งแยกข้อมูล ผลออกมาจะเป็นลักษณะ This Class หรือ
เป็นกลมุ่ ขอ้ มูล ตัวอยา่ ง เช่น ถกู ถูกมาก สามารถซือ้ ได้ หรือ แพง แพงมาก ไม่สามารถซ้ือได้
ลักษณะที่นำมาใช้เรียกว่า Regression Network ซึ่ง Regression Network จะไม่ให้กลุ่มของข้อมูล
แบง่ แยกออกมา แตส่ ่งิ ท่ใี หอ้ อกมาคือตวั เลข
ภาพท่ี 16.1
ตวั อยา่ ง
Classification คือการแบ่งกลุม่ ขอ้ มูลออกจากกนั
Regression คอื การประมาณกลุ่มของข้อมลู วา่ มนั ควรจะมีเส้นแนวโน้มเปน็ ยงั ไง
โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐเ์ พือ่ พัฒนาทกั ษะดา้ นดจิ ิทลั ของนักเรียนและนักศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 127
สำนักงานคณะกรรมการดจิ ิทลั เพ่ือเศรษฐกิจและสงั คมแห่งชาติ
ภาพท่ี 16.2
ตัวอยา่ ง
สมการ มีสอง Layer ใช้ Log – sigmoid เป็น Activation Function แล้วอีกอันหนึ่งใช้ Purelin เป็น
Activation Function สิ่งที่เกิดขึ้นคือ ถ้าเรากำหนดค่า Vat กับ Bias ใน Layer ต่าง ๆ ที่ออกแบบตาม Neural
Network นี้ไว้ สิ่งที่ได้ออกมาคือมันสามารถสร้างสมการตามรูป และถ้าทำการเปลี่ยนค่า Vat กับ Bias ของตัว
Neural Network สิ่งที่ได้ออกมาคือ จะสามารถสร้างสมการออกมาได้หลารูปแบบ แสดงว่ามันสามารถสร้าง
สมการออกมาได้หลายรูปแบบ ดังรูปภาพ แสดงว่าถ้ามี Neural Network ที่มากเพียงพอ มี Vat กับ Bias ที่มา
เพียงพอ แปลว่าสามารถจำลองพฤติกรรมของสญั ญาณหรอื ของกราฟอะไรได้ หรือแมแ้ ตเ่ ส้นแนวโนม้ อะไร
นอกจากน้ัน การทีเ่ รารู้ Activation Function ของเรามีหลายแบบ เพราะฉะน้ันถา้ เราเปรียบ Activation
Function ที่เกิดขึ้น กราฟที่เราได้หรือเส้นแนวโน้มที่เราได้ออกมานี่มันก็จะเป็นการคอมบายของตัว Activation
Function เหล่าน้ี
ภาพที่ 16.3
ตัวอยา่ ง
โครงการพฒั นาชดุ ทดลองปญั ญาประดิษฐ์เพอื่ พฒั นาทกั ษะดา้ นดจิ ิทลั ของนกั เรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 128
สำนกั งานคณะกรรมการดิจิทลั เพอ่ื เศรษฐกจิ และสงั คมแห่งชาติ
การวิเคราะหก์ ราฟตลาดหนุ้ การสร้าง Neural Network ขนาดใหญม่ ี 1 Input Layer มี 4 Hiden Layer
1 Output Layer สิ่งที่เกิดขึ้นคือเมื่อเรานำข้อมูลทำการเทรดตลาดหุ้นผ่าน Neural Network สิ่งที่สามารถได้
ออกมาคือการทำนายกราฟ
ภาพที่ 16.4
ข้อเสียจากการที่ Neural Network ทำการเรียนรู้มากเกินไปหรือเรียนรู้น้อยเกินไป เพราะฉะนั้นมาดู
ปัญหาของ Neural Network 2 ปัญหา
1. Under Fit คอื การเรยี นร้นู อ้ ยเกนิ ไป ไมส่ ามารถทำการประมาณหาเสน้ กราฟ
2. Over Fit คือ การเรียนรู้มากเกินไป มีข้อมูลมากเกินไปแล้ว พยายามใช้ข้อมูลทุกสิ่งที่เกิดขึ้นจะเกิด
สภาวะท่มี ากเกินไป หรือเรียกวา่ Over Fit ซงึ่ เป็นปญั หาใหญ่ เพราะการคำนวณบางอยา่ งมันจะคอมแพคมาก ทำ
ใหเ้ กิดข้อผดิ พลาดคอ่ นขา้ งสงู
ภาพที่ 16.5
โครงการพฒั นาชุดทดลองปัญญาประดษิ ฐ์เพ่ือพัฒนาทกั ษะดา้ นดจิ ทิ ัลของนักเรียนและนักศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 129
สำนกั งานคณะกรรมการดิจิทัลเพือ่ เศรษฐกจิ และสงั คมแห่งชาติ
ภาพท่ี 16.6
16.2 Regularization คอื อะไร
Regularization เป็นเทคนคิ การลดความซบั ซ้อนของโมเดลโดยการให้ Loss Function ในการแก้ปัญหา
ทที่ ำให้โมเดลคลอบคลุมมากเกนิ ไป จากคำนยิ ามนท้ี ำใหต้ ้องเรียนรู้
• การลดความซับซอ้ น
• การลงโทษด้วย loss function
• การแกป้ ัญหาทค่ี ลอบคลุมมากเกนิ ไป
Bias – เป็นขอ้ สมมตุ ิฐานทโี่ มเดลใช้สอื่ ให้การเรยี นร้ทู ำไดง้ ่าย
คือ วธิ ีการสมมตุ ใิ หโ้ มเดลของเรา Neural Network มคี วามงา่ ยในการเรยี นรู้
Variance – การฝึกระบบใหเ้ รยี นรู้โดยใชข้ ้อมลู ท่ีทำให้เกิดความไม่เทีย่ งแท้ลดลง แตเ่ ม่อื เปลย่ี นข้อมูลการ
ฝึกแต่ทำให้โมเดลนั้นให้ผลลัพธ์ที่มีค่าความแกว่งสูงขึ้น ต้องการค่า Variance ต่ำ เมื่อสร้าง Variance สภาวะท่ี
Neural Network เรียนรู้ไปรอบที่หนึ่งได้ผลลัพธ์ทีด่ ี แต่พอทำการเรียนรูค้ รั้งที่ 2 กับเกิด Error มหาศาล แสดงว่า
มันเกิดสภาวะทไี่ มด่ ี เพราะตอ่ ให้เทรนกี่ครง้ั ผลลพั ธ์ควรเหมือนเดมิ หรือใกลเ้ คียง
• Underfitting – High bias and low variance
• Overfitting – High variance and low bias
ภาพที่ 16.7
16.3 L1 and L2 Regularizations + Elastic Net
L1 - Least Absolute Deviations (LAD) and L2 - Least Square Errors (LS)
โครงการพฒั นาชุดทดลองปัญญาประดษิ ฐเ์ พอื่ พฒั นาทักษะดา้ นดิจิทลั ของนกั เรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 130
สำนักงานคณะกรรมการดจิ ิทัลเพื่อเศรษฐกิจและสงั คมแห่งชาติ
Cost Function = Loss + Regularization term
L1 - Least Absolute Deviations (LAD) คือ การวัดระยะว่ามันคอื อะไรและใส่ Absolute เข้าไป
L2 - Least Square Errors (LS) คือ เส้นแนวโน้มหาระยะห่างไปยังจุดของข้อมูลยกกำลังสองกับรวมกัน
แล้วถอดแสควร์รูดทำให้ลักษณะของระยะทางเฉลี่ยหรือความห่างเฉลี่ยของกราฟทั้งหมด ของข้อมูลทั้งหมดกับ
เส้นแนวโนม้ มคี า่ นอ้ ยท่สี ดุ อกี แบบหนึ่งนน้ั เอง
เพราะฉะนั้น สามารถนำส่งิ น้มี าชว่ ยใหร้ ะบบ Neural Network ไปตกอยูใ่ นสภาวะ Over Fit ได้
1
( ) = [∑ ( ̂ − )] + 2 (∑ 2 ) + 1 (∑| |)
=1 =1 =1
( ) = 1 ( ̂ − )] +
[∑ (∑| |)
=1 =1
ภาพท่ี 16.8
ภาพที่ 16.9
โครงการพัฒนาชดุ ทดลองปัญญาประดษิ ฐ์เพือ่ พฒั นาทักษะดา้ นดจิ ทิ ลั ของนักเรียนและนกั ศึกษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 131
สำนกั งานคณะกรรมการดจิ ทิ ัลเพอื่ เศรษฐกจิ และสังคมแห่งชาติ
รปู ท่ีข้อมลู ดี รูปทีข่ อ้ มูลเกดิ การ Over fit
ภาพที่ 16.10
16.4 Dropout Regularizations
ใช้แค่โมเดลเดียวมาจำลองเป็นหลายๆ โมเดลได้ โดยการสุ่มถอดบาง Neuron ออก ในระหว่างการเทรน
Mathematic Equivalence
ภาพท่ี 16.11
16.5 Data Augmentation
คือ การนำรูปภาพเดิมมาทำการขยับซ้าย ขยับขวา ทำการหมุนรูปภาพ ทำการย่อ ทำการขยายภาพ
เพื่อให้เกิดการเรียนรู้จากวัตถุเดิมมากขึ้น จะทำให้ Neural Network เกิดการเรียนรู้เพิ่มมากขึ้น และสามารถให้
ขอ้ มูลทถี่ กู ตอ้ งมากข้นึ
ภาพท่ี 16.11
Early Stopping
คอื การหาจดุ ลงตวั ระหว่าง Under Fit และ Over Fit
โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐ์เพ่อื พฒั นาทักษะดา้ นดิจิทัลของนักเรยี นและนกั ศึกษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 132
สำนกั งานคณะกรรมการดจิ ทิ ัลเพอ่ื เศรษฐกจิ และสงั คมแหง่ ชาติ
ภาพที่ 16.12
โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐเ์ พื่อพฒั นาทกั ษะดา้ นดิจทิ ัลของนักเรียนและนกั ศกึ ษาในสายวิชาชีพอาชวี ศึกษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 133
สำนักงานคณะกรรมการดิจทิ ัลเพ่ือเศรษฐกิจและสังคมแหง่ ชาติ
บทท่ี 17
พืน้ ฐานภาษาไพธอนของ Machine Learning
วัตถุประสงค์ เรียนรู้ภาษาไพธอน (Python) เพื่อเรียนรู้และมาประยุกต์ใช้กับการเรียนรู้ของเครื่อง
(Machine Learning) โดยประกอบดว้ ยหวั ขอ้ ดงั น้ี
17.1 ทำความรู้จักกบั ภาษาไพธอน (Python)
17.2 คำสงั่ พนื้ ฐานของภาษาไพธอน (Python)
17.3 หลักการเขยี นโปรแกรมภาษาไพธอน (Python)
17.1 ทำความรู้จักกบั ภาษาไพธอน (Python)
ภาษาไพธอนป็นภาษาคอมพิวเตอร์ทนี่ ำมาใช้ในการสัง่ ใหค้ อมพวิ เตอร์ทำงานตามความต้องการของผ้ใู ช้งาน
จากการสำรวจของ Stackoverflow ที่เป็นชุมชนท่ีใหญ่ที่สุดในโลกในด้านคอมพิวเตอร์ จาก https://insights.
stackoverflow.com/survey/2 0 2 0 #technology-most-loved-dreaded-and-wanted-languages-wanted
ในดา้ นความต้องการของภาษา จะเหน็ ได้วา่ ภาษาไพธอนมาเปน็ อันดับหนง่ึ
ภาพท่ี 17.1
โครงการพัฒนาชดุ ทดลองปญั ญาประดิษฐเ์ พื่อพฒั นาทกั ษะดา้ นดิจิทัลของนกั เรียนและนักศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 134
สำนกั งานคณะกรรมการดิจิทัลเพ่อื เศรษฐกจิ และสงั คมแห่งชาติ
โดยท่ัวไปภาษาของคอมพวิ เตอร์ จะมตี วั แปลภาษาหลกั ได้ 2 ประเภทคือ
1. คอมไพเลอร์ (Compiler) หรือโปรแกรมแปลโปรแกรมตวั แปลโปรแกรม เปน็ โปรแกรมคอมพวิ เตอร์
ที่ทำหน้าที่แปลงชุดคำสั่งภาษาคอมพิวเตอร์หนึ่งไปเป็นชุดคำสั่งที่มีความหมายเดียวกันในภาษาคอมพิวเตอร์อื่น
คอมไพเลอร์ส่วนใหญ่ จะทำการแปลรหัสต้นฉบับ (Source Code) ที่เขียนในภาษาระดับสูง เช่นภาษาซี
ภาษาซีพลัสพลัส เป็นภาษาระดับต่ำหรือภาษาเครื่อง ซึ่งคอมพิวเตอร์สามารถจะทำงานได้โดยตรง อย่างไรก็ตาม
การแปลจากภาษาระดบั ต่ำเป็นภาษาระดับสูง ก็เปน็ ไปไดด้ ว้ ยใช้ตวั แปลโปรแกรมยอ้ นกลับ (Decompiler)
ผลลัพธ์ของการแปลโปรแกรม (คอมไพล์) โดยทั่วไปที่เรียกว่า ออบเจกต์โค้ด จะประกอบด้วย
ภาษาเครื่อง (Machine Code) ที่เต็มไปด้วยข้อมูลเกี่ยวกับชื่อและ สถานที่ของแต่ละจุดและการเรียกใช้วัตถุ
ภายนอก (Link Object) (สำหรับฟังก์ชันที่ไม่ได้อยู่ใน อ็อบเจกต์) สำหรับเครื่องมือที่เราใช้รวมอ็อบเจกต์เข้า
ด้วยกัน จะเรียกวา่ โปรแกรมเชอ่ื มโยงเพอ่ื ที่ผลลัพธ์ทอ่ี อกมาในขัน้ สดุ ท้าย เปน็ ไฟล์ที่ผูใ้ ชง้ านท่ัวไปสามารถใช้งานได้
สะดวก
2. อินเทอร์พรีเตอร์ (Interpreter) หรือโปรแกรมแปลคำสั่ง ตัวแปลคำสั่งหมายถึงโปรแกรม
คอมพิวเตอร์ ที่ทำงานตามชุดคำสั่งท่ีเขียนไว้ทันที ซึ่งจะแตกต่างกับคอมไพเลอร์ (Compiler) ที่แปลชุดคำส่ังจาก
ภาษาคอมพิวเตอร์ภาษาหนึ่งไปเป็นอีกภาษาหนึ่งก่อนทำงาน (โดยส่วนมากจะแปลเป็นภาษาเครื่อง) โดยทั่วไป
การทำงานของโปรแกรมผ่านอินเทอร์พรีเตอร์จะช้ากว่าทำงานจากโปรแกรมที่ผ่านการแปลโปรแกรมเป็นภาษา
เครอื่ ง เพราะอนิ เทอรพ์ รีเตอรจ์ ะตอ้ งแปลแตล่ ะคำสง่ั ในระหวา่ งการทำงานว่าจะต้องทำอะไรตอ่ ไป
ภาพที่ 17.2
17.1.1 ภาษาไพธอน ในปัจจบุ ันยังเปน็ การทำงานประเภทอินเทอร์พรีเตอร์ เปน็ ภาษาระดบั สูงซึ่งสร้างโดย
คีโด ฟัน โรสซึม โดยเริ่มในปีพ.ศ. 2533 การออกแบบของภาษาไพธอนมุ่งเน้นให้ผู้โปรแกรมสามารถอ่านชุดคำส่ัง
ได้โดยง่ายผ่านการใช้งานอักขระเว้นว่าง (Whitespaces) จำนวนมาก นอกจากนั้นการออกแบบภาษา
ไพธอนและการประยุกต์ใช้แนวคิดการเขียนโปรแกรมเชิงวัตถุ ในตัวภาษา ยังช่วยให้นักเขียนโปรแกรมสามารถ
เขียนโปรแกรมท่ีเป็นระเบียบ อ่านงา่ ย มีขนาดเล็ก และง่ายตอ่ การบำรุง
ไพธอนเป็นภาษาแบบไดนามิกพร้อมการจัดการขยะในหน่วยความจำ (Garbage Collection) ไพธอน
รองรับกระบวนทัศน์การเขียนโปรแกรมหลายรูปแบบ ได้แก่ การเขียนโปรแกรมตามลำดบั ขั้น การเขียนโปรแกรม
โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐเ์ พอ่ื พัฒนาทักษะดา้ นดิจิทลั ของนกั เรยี นและนกั ศึกษาในสายวชิ าชีพอาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 135
สำนกั งานคณะกรรมการดิจิทลั เพือ่ เศรษฐกิจและสงั คมแห่งชาติ
เชิงวัตถุ หรือการเขียนโปรแกรมเชิงฟังก์ชัน เป็นต้น นอกจากนี้ไพธอนเป็นภาษาที่มักถูกอธิบายว่าเป็นภาษา
โปรแกรมแบบ "มาพร้อมถ่านแบตเตอรี่" (Batteries Included) กล่าวคือ ไพธอนมาพร้อมกับไลบรารีมาตรฐาน
จำนวนมาก เช่นโครงสร้างขอ้ มูลแบบซบั ซอ้ น และไลบรารีสำหรบั คณติ ศาสตร์ เปน็ ตน้
ไพธอนมักถูกมองว่าเปน็ ภาษาทีส่ ร้างต่อจากภาษา ABC โดยไพธอน 2.0 ซึ่งออกเผยแพร่เมือ่ ปีพ.ศ. 2543
มาพรอ้ มกบั เครือ่ งมอื สำหรับการเขียนโปรแกรมจำนวนหน่ึง อย่างเช่นตวั สร้างแถวรายการ (list comprehension)
ไพธอนรุ่น 3.0 เป็นไพธอนรุ่นที่ได้รับการปรับปรงุ และแก้ไขจำนวนมาก ทว่าความเปลี่ยนแปลงไนไพธอน
3 นั้นเป็นการเปลี่ยนแปลงทีไ่ ม่เข้ากันแบบย้อนหลังของโปรแกรมที่เขียนด้วยไพธอน 2.0 กล่าวคือชุดคำสั่งที่เขยี น
สำหรับไพธอน 2 อาจไมท่ ำงานตามปกติเมื่อสัง่ ให้ทำงานบนตวั แปลภาษาของไพธอน 3
ไพธอนรุ่น 2.0 หมดการสนับสนุนอย่างเป็นทางการในปีพ.ศ. 2563 โดยการหมดการสนับสนุนนี้ถูก
วางแผนต้งั แต่ปพี .ศ. 2558 และไพธอนรนุ่ 2.7.18 เปน็ ไพธอนรุ่น 2.7 และรนุ่ ตระกลู 2.0 ตัวสุดท้ายที่ออกเผยแพร่
โดยหลังจากนี้จะไม่มีการสนับสนุนความปลอดภัยหรือการปรับปรุงอื่นใดเพิ่มเติมสำหรับภาษาไพธอนรุ่น 2.0 อีก
แตย่ ังคงใชง้ านไดต้ ามปกติ
อินเทอร์พรีเตอร์ของภาษาไพธอนสามารถใช้งานได้บนหลายระบบปฏิบัติการ ชุมชนนักพัฒนาโปรแกรม
ของไพธอนรว่ มกันดูแลโครงการซีไพธอนโดยมีมลู นธิ ิซอฟต์แวร์ไพธอนซงึ่ เป็นองค์กรไมแ่ สวงผลกำไร ทำหน้าท่ีดูแล
และจดั การทรัพยากรสำหรบั การพฒั นาไพธอนและซไี พธอน
17.1.2 คณุ สมบัตแิ ละปรชั ญาการออกแบบของภาษาไพธอน
ผู้ใช้ภาษาไพธอนสามารถเลอื กกระบวนทัศน์การเขียนโปรแกรมตามที่ตนเองถนัดได้ โดยรองรับการเขียน
โปรแกรมเชิงโครงสร้างและการเขียนโปรแกรมเชิงวัตถุอย่างเต็มรูปแบบ รวมถึงรองรับการเขียนโปรแกรมเชิง
ฟังก์ชัน (ทั้งในรูปแบบของการเขียนโปรแกรมเชิงลักษณะ และการเขียนโปรแกรมเชิงเมตาออบเจกต์) ส่วนขยาย
ของไพธอนทำให้สามารถเขียนโปรแกรมด้วยกระบวนทศั น์อืน่ เชน่ การเขียนโปรแกรมเชงิ ตรรกะ
ไพธอนเก็บข้อมูลแบบไดนามิก (dynamic type) และใช้ขั้นตอนวิธีการนับการอ้างอิง (Reference
counting) ประกอบรวมกับตวั เก็บขยะ (garbage collector) เพือ่ จดั การหนว่ ยความจำ
ไพธอนมาพร้อมเครื่องมือสำหรับการเขียนโปรแกรมเชิงฟงั ก์ชันแบบที่พบในภาษาลสิ ป์ นอกจากนี้ไพธอน
มีเครื่องมืออย่างเช่นฟังก์ชัน filter map และ reduce, เครื่องมือการสร้างลิสต์ (List Comprehension), แถว
ลำดับแบบจบั คู่ (ในชอ่ื ของ Dictionary), เซต และเครอ่ื งมอื สรา้ งการวนซ้ำ (generator)
แนวคิดและหลักการของไพธอนถกู สรปุ ในเอกสารช่ือว่า Zen of Python ซ่งึ ระบุหลักการของภาษาไว้เช่น
• สวยงามดกี วา่ น่าเกลียด (Beautiful is better than ugly.)
• ชัดแจง้ ดกี วา่ ซ่อนเรน้ (Explicit is better than implicit.)
• เรียบงา่ ยดกี วา่ ซบั ซ้อน (Simple is better than complex.)
• ซบั ซอ้ นดีกวา่ ยุ่งเหยิง (Complex is better than complicated.)
• การอ่านที่งา่ ยตอ่ การเขา้ ใจ (Readability counts.)
ไพธอนไม่ไดถ้ ูกออกแบบมาใหม้ ีคุณสมบัติและความสามารถในการทำงานทุกอยา่ ง แตใ่ นปจั จุบัน สามารถ
นำไปใช้ได้กับงานทุกประเภท แต่ไพธอนถูกออกแบบมาให้สามารถนำไปต่อยอดได้ง่าย การออกแบบในลักษณะน้ี
ทำให้ตวั ของภาษาไพธอน
โครงการพัฒนาชดุ ทดลองปญั ญาประดษิ ฐเ์ พื่อพัฒนาทักษะดา้ นดจิ ทิ ัลของนักเรียนและนกั ศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 136
สำนกั งานคณะกรรมการดจิ ทิ ลั เพ่ือเศรษฐกิจและสังคมแหง่ ชาติ
ไดร้ ับความนิยมเน่ืองดว้ ยความสามารถในการเพ่ิมสว่ นต่อขยายหรือชุดคุณสมบัตลิ งไปในแอปพลิเคชันที่มี
อยู่ก่อนหน้านี้ การออกแบบในลักษณะนี้มาจากวิสัยทัศน์ของ ฟัน โรสซึม ที่ต้องการเห็นการออกแบบภาษา
โปรแกรมทีม่ ีระบบแกนกลางขนาดเลก็ แตม่ าพร้อมไลบรารีชุดคำสั่งขนาดใหญ่ โดยเป้าหมายการออกแบบลักษณะ
นี้มาจากความไม่สะดวกในการใชภ้ าษา ABC ท่ี ฟัน โรสซึม เคยเจอมากอ่ นหน้าน้ี
การออกแบบท่ีมีระบบแกนกลางขนาดเล็กทำใหส้ ามารถนำไปใชก้ ับอุปกรณ์ขนาดเล็กท่ีมีหนว่ ยความจำไม่
มากได้ เช่นอุปกรณ์ ไอโอที อุปกรณ์ไมโครคอโทรลเลอร์ เป็นต้น และมีการเลือกใช้ไลบรารีที่จำเป็นจริงๆ สำหรับ
อปุ กรณ์ท่ีจะนำไปใชเ้ ทา่ น้นั เป็นการลดความไม่จำเป็นของฟังก์ชนั หรอื คำสัง่ บางคำสงั่ เพื่อลดการใช้หนว่ ยความจำ
โครงสร้างทางวากยสัมพันธ์ (Syntax) ของภาษาไพธอนมุ่งเน้นความเรียบง่ายและไม่ยุ่งเหยิง ใน
ขณะเดียวกันยังคงใหอ้ ิสระกับนักพัฒนาโปรแกรมในการเลอื กวิธีการเขียนโปรแกรมได้เอง ปรัชญาการออกแบบน้ี
ของไพธอนอยู่บนความเชื่อที่ว่า "ควรจะมีทางเดียว—และทางเดียวเท่านั้น—ในการทำอะไรสักอย่าง" ("there
should be one—and preferably only one—obvious way to do it") ซึ่งตรงกันข้ามกับแนวคิดการ
ออกแบบของภาษาเพริ ล์ ที่เช่อื ว่า "เราควรทำอะไรไดม้ ากกว่าหนง่ึ วธิ ี" ("There's more than one way to do it")
หากจะกล่าวให้ละเอียด อะเล็กซ์ มาร์เตลลี ผู้เขียนตำราภาษาไพธอน และสมาชิกของมูลนิธิซอฟต์แวร์ไพธอน
กลา่ ววา่ "ในวัฒนธรรมของไพธอน การอธิบายว่า[วิธีการเขยี นโปรแกรม]บางอย่างนนั้ ฉลาดมาก ไม่ถอื เปน็ คำชม"
นักพัฒนาโปรแกรมที่ใช้ภาษาไพธอนมักพยายามหลีกเลี่ยงการปรับปรุงประสิ ทธิภาพก่อนถึงเวลาอันควร
(premature optimisation) และมักปฏิเสธการรวมโค้ดของโครงการ CPython ที่ต้องแลกประสิทธิภาพที่เพ่ิม
ขึ้นมาเล็กน้อยกับความอ่านยากของโค้ด โดยเมื่อต้องเขียนชุดคำสั่งที่เวลาประมวลผลเป็นเรื่องสำคัญ นักพัฒนา
โปรแกรมไพธอนจะนิยมเขียนส่วนขยายของโปรแกรมนั้นด้วยภาษา C แยกออกมา หรือใช้ PyPy ซึ่งเป็นตัว
แปลภาษาแบบในเวลา (Just-in-time compiler) สำหรับภาษาไพธอน นอกจากนี้นักพัฒนายังมีตัวเลือกอื่นเช่น
การใชไ้ ซทอนซ่งึ เป็นตัวแปลรหสั คำส่งั จากภาษาไพธอนไปเปน็ ภาษาซี
หนึ่งในเป้าหมายสำคัญของภาษาไพธอนคือความสนุกในการใช้งาน ชื่อของภาษาโปรแกรมมิงไพธอนน้ัน
มาจากชื่อของกลุ่มนักแสดงตลก Monty Python จากประเทศอังกฤษ ความมุ่งมั่นในการทำให้ภาษาไพธอนน้ัน
สนุกต่อการใชน้ ้นั พบเหน็ ได้เพมิ่ เตมิ จากตัวอย่างของชดุ คำสัง่ ในภาษาไพธอนบนเวบ็ ไซต์ของโครงการไพธอนเอง ซึ่ง
เลือกใช้คำอย่างเช่น "spam and eggs" (เพื่อล้อกับตอนหนึ่งของรายการตลกจาก Monty Python) แทนที่จะ
เลอื กใช้คำท่วั ไปอยา่ ง foo และ bar ตามตัวอยา่ งภาษาโปรแกรมมงิ อ่ืน
ชุมชนไพธอนมักนิยมใชว้ ลี "มีความเป็นไพธอน" (Pythonic) เพื่อกล่าวถึงรปู แบบของชดุ คำส่ังของไพธอน
ที่มีความสะอาดและถูกเขียนขึ้นในลักษณะที่สอดคล้องกับปรัชญาการออกแบบดังกล่าว กล่าวคือมีความอ่านง่าย
และแสดงถึงความรใู้ นการเขียนชุดคำสั่งภาษาไพธอนได้เป็นอยา่ งดี ในทางตรงกันขา้ ม ชุดคำสง่ั ทไี่ มส่ ามารถอ่านได้
โดยงา่ ย (กลา่ วคือชุดคำส่งั ทเ่ี หมือนการแปลงชุดคำส่ังจากภาษาโปรแกรมอ่ืนมาเป็นไพธอนแบบบรรทัดต่อบรรทัด)
มักจะถกู เรยี กว่าชดุ คำสัง่ ท่ี "ไมม่ ีความเปน็ ไพธอน" (Unpythonic)
ผู้ใช้ ผหู้ ลงใหล หรอื ผู้สันทดั ภาษาไพธอนมักได้รบั การขนานนามวา่ เป็น "ไพธอนนิสตา" (Pythonista)
17.1.3 จดุ เด่นของภาษาไพธอน
1) ความเป็นภาษาสครปิ ต์
เนื่องจากไพธอนเป็นภาษาสคริปต์ ทำให้ใช้เวลาในการเขียนและคอมไพล์ไม่มาก ทำให้เหมาะกับ
งานด้านการดูแลระบบ (System administration) เปน็ อยา่ งย่งิ มกี ารสนับสนุนภาษาไพธอนโดยเปน็ ส่วนหนงึ่ ของ
โครงการพฒั นาชดุ ทดลองปญั ญาประดิษฐ์เพ่อื พัฒนาทักษะดา้ นดิจิทัลของนกั เรียนและนกั ศึกษาในสายวิชาชพี อาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 137
สำนกั งานคณะกรรมการดิจทิ ัลเพอ่ื เศรษฐกิจและสังคมแหง่ ชาติ
ระบบปฏิบัติการยูนิกซ์, ลินุกซ์ และสามารถติดตั้งให้ทำงานเป็นภาษาสคริปต์ของวินโดวส์ ผ่านระบบ Windows
Script Host ได้อกี ดว้ ย
2) ไวยากรณ์ที่อ่านงา่ ย
ไวยากรณ์ของไพธอนได้กำจัดการใช้สัญลักษณ์ที่ใช้ในการแบ่งบล็อกของโปรแกรม และใช้การย่อ
หน้าแทน ทำให้สามารถอ่านโปรแกรมที่เขียนได้ง่าย นอกจากนั้นยังมีการสนับสนุนการเขียน doc string ซึ่งเป็น
ขอ้ ความสน้ั ๆ ท่ใี ช้อธบิ ายการทำงานของฟงั กช์ นั , คลาส และโมดลู อีกดว้ ย
3) ความเป็นภาษากาว
ไพธอนเป็นภาษากาว (Glue Language) ได้อย่างดีเนื่องจากสามารถเรียกใช้ภาษาโปรแกรมอื่น ๆ
ได้หลายภาษา ทำใหเ้ หมาะที่จะใช้เขยี นเพื่อประสานงานโปรแกรมท่ีเขยี นในภาษาต่างกันได้
4) มีความเสถียรในการทำงาน
ไพธอนสามารถเปดิ การใชง้ านไดโ้ ดยมีการหยุดการทำงานต่ำมาก อันเนือ่ งมาจากการจัดการขยะได้
ดีในหน่วยความจำ และเมื่อการใช้งานที่ควบคู่กับระบบปฏิบัติการที่เสถียร เป็นการช่วยให้การทำงานได้อย่าง
ราบรื่น
17.1.4 ไพธอนในแพลตฟอร์มต่างๆ
ตัวอย่างแพลตฟอร์มทีผ่ ้เู ขยี นโปรแกรมภาษาไพธอนหรอื ผู้พฒั นาสามารถเลือกใช้
17.1.4.1 ซไี พธอน
ซีไพธอน (CPython) คือแพลตฟอร์มภาษาไพธอนดั้งเดิม โปรแกรมอินเทอร์พรีเตอร์ถูกเขียนโดย
ภาษาซี ซึ่งคอมไพล์ใช้ได้บนหลายระบบปฏิบัติการ เช่น วินโดวส์, ยูนิกซ์, ลินุกซ์การใช้งานสามารถทำได้โดยการ
ติดตง้ั โปรแกรมอินเทอร์พรีเตอร์และแพค็ เกจท่ีจำเปน็ ตา่ งๆ
17.1.4.2 ไจธอน
ไจธอน (Jython) เป็นแพลตฟอร์มภาษาไพธอนที่ถูกพัฒนาบนแพลตฟอร์มจาวา เพื่อเพิ่มอำนวย
ความสะดวกในการใช้ความสามารถภาษาสคริปต์ของไพธอนลงในซอฟต์แวร์จาวาอื่น ๆ การใช้งานสามารถทำได้
โดยการติดต้งั จาวาและเรยี กไลบรารขี องไจธอน ซึ่งมาในรปู ไบนารีเพอื่ ใช้งาน
17.1.4.3 ไพธอนดอตเน็ต
Python.NET เป็นการพัฒนาภาษาไพธอนให้สามารถทำงานบนดอตเน็ตเฟรมเวิร์กของ
ไมโครซอฟท์ได้ โดยโปรแกรมที่ถูกเขียนจะถูกแปลงเป็น CLR ปัจจุบันมีโครงการที่นำภาษาไพธอนมาใช้บน .NET
Framework ของไมโครซอฟทแ์ ล้วคอื โครงการ IronPython
17.1.5 ไลบรารใี นไพธอน
ไลบรารี (library) หรือ คลังโปรแกรม ในทางวิทยาการคอมพิวเตอร์ เทคโนโลยีสารสนเทศ หรือ
ทางด้านคอมพวิ เตอร์ คือส่วนท่ีรวบรวมกระบวนการ (process) และฟงั ก์ชันย่อย (subroutine) ตา่ ง ๆ ซ่ึงอาจจะ
รวมซอร์สโค้ดหรือไม่ก็ได้ ที่จำเป็นต้องใช้ในการเขียนซอฟต์แวร์หรือใช้ในการทำงานของโปรแกรมหนึ่งๆ และ
ไลบรารใี นภาษาไพธอนกท็ ำงานเชน่ เดยี วกัน
การเขียนโปรแกรมในภาษาไพธอนโดยใช้ไลบรารีต่าง ๆ เป็นการลดภาระของโปรแกรมเมอร์ได้เป็น
อย่างดี ทำให้โปรแกรมเมอร์ไม่ต้องเสียเวลากับการเขียนคำสั่งที่ซ้ำ ๆ เช่นการแสดงผลข้อมูลทางเครื่องพิมพ์
จอภาพ การคำนวณ หรือการรับคา่ ต่าง ๆ เป็นตน้
โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐ์เพื่อพฒั นาทักษะดา้ นดิจทิ ัลของนกั เรยี นและนักศกึ ษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 138
สำนกั งานคณะกรรมการดจิ ิทลั เพือ่ เศรษฐกจิ และสงั คมแหง่ ชาติ
ไพธอนมีชุดไลบรารีมาตรฐานมาให้ตั้งแต่ติดตั้งอินเตอร์พรีเตอร์ นอกจากนั้นยังมีผู้พัฒนาจากทั่ว
โลกทเ่ี รยี กว่า คอมมูนติ ี้ (community) ดำเนินการพัฒนาไลบรารซี ่ึงช่วยอำนวยความสะดวกในด้านตา่ ง ๆ โดยจะ
เผยแพรใ่ นรูปแบบของแพค็ เกจต่าง ๆ ซึ่งสามารถติดตง้ั เพ่ิมเติมไดอ้ ีกด้วย
17.1.6 แพค็ เกจสำกรับภาษาไพธอน
wxPython: เป็นภาษาไพธอน สำหรับเขียนสว่ นติดต่อกับผู้ใช้แบบกราฟิกส์ ซึ่งสามารถใชไ้ ด้หลาย
ระบบปฏบิ ัตกิ าร
SciPy: รวมโครงสร้างข้อมูลและการคำนวณต่างๆ ที่จำเป็นต้องใช้ในการเขียนโปรแกรมคำนวณ
ทางวิทยาศาสตร์
py2exe: ใชส้ ำหรบั แปลงโปรแกรมที่เขยี นในภาษาไพธอนให้อยู่ในรปู แบบของ ในระบบปฏิบัติการ
วินโดวส์
PyWin32: ใช้สำหรับติดต่อเรียกใช้บริการบนระบบปฏิบัติการวินโดวส์และคลาสใน Microsoft
Foundation Classes: MFC
MySQLdb: ใชส้ ำหรับตดิ ตอ่ กับระบบฐานข้อมลู MySQL
psycopg2: ใชส้ ำหรับตดิ ต่อกับระบบฐานขอ้ มูล โพสต์เกรสคิวเอล
PyGTK: GTK+ สำหรับ Python ใช้สำหรับสร้างส่วนติดต่อกับผู้ใช้แบบกราฟิกส์ ซึ่งสามารถใช้ได้
หลายระบบปฏิบัตกิ าร
PyQt: Qt สำหรับ Python ใช้สำหรับสร้างส่วนติดต่อกับผู้ใช้แบบกราฟิกส์ ซึ่งสามารถใช้ได้หลาย
ระบบปฏบิ ตั กิ าร
17.1.7 ตวั แก้ไขหรือสร้างโปรแกรมสำหรับไพธอน
ผู้ใช้สามารถใช้ตัวแก้ไขข้อความ (text editor) ทั่วไปในการแก้ไขโปรแกรมภาษาไพธอน นอกจากนั้น
ยังมี Integrated Development Environment (IDE) อื่น ๆ ให้เลอื กใช้อกี มากมาย เช่น
• PyScripter: เป็นชุดเครื่องมือสำหรับพัฒนาภาษาไพธอน บนระบบปฏิบัติการวินโดวน์ ที่ให้ผู้ใช้
สามารถนำไปใช้ฟรี (Open Source)
• Python IDLE: มีอยูใ่ นชดุ อนิ เตอร์พรีเตอรอ์ ยู่แลว้ สามารถเลือกตดิ ตั้งไ
• PythonWin: เป็นตวั แก้ไขในชุดของ PyWin32
• ActivePython: จาก ActiveState (ล่าสดุ รุน่ 2.5.1)
• SPE (Stani's Python Editor) : เป็นตัวแก้ไขที่มาพร้อมกับตัวออกแบบยูสเซอร์อินเทอร์เฟส
wxGlade และเครื่องมือสำหรับ Regular Expression มีระบบ Syntax Highlight และการจัดย่อหน้าตาม
วากยสัมพันธ์ของไพธอนให้อัตโนมัติพัฒนาขึ้นจากภาษาไพธอนดาวน์โหลดใช้งานได้ฟรีที่ http://spe.pycs.net
• WingIDE: ตัวแก้ไขที่มีระบบ Syntax Highlight และการจัดย่อหน้าตามไวยกรณ์ของไพธอนให้
อัตโนมัติ แต่ไมใ่ ช่ฟรแี วร์
• Komodo: ตัวแกไ้ ขที่มีระบบ Syntax Highlight, การจดั ย่อหนา้ ตามไวยกรณ์ของไพธอนให้อัตโนมัติ
และเตมิ คำอัตโนมตั ิ เปน็ ตัวแก้ไขจาก ActiveState อกี ตวั หน่งึ ไม่ใช่ฟรแี วร์
• Pydev: เป็น Python IDE สำหรับ Eclipse สามารถใชพ้ ฒั นา Python, Jython และ Ironpython
โครงการพฒั นาชดุ ทดลองปัญญาประดิษฐเ์ พ่ือพฒั นาทักษะดา้ นดิจทิ ัลของนกั เรียนและนกั ศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 139
สำนกั งานคณะกรรมการดิจิทลั เพื่อเศรษฐกจิ และสังคมแห่งชาติ
• PyCharm: เป็น Python IDE ที่สร้างขึ้นโดยบริษัท JetBrains แบ่งออกเป็น 2 เวอร์ชัน ได้แก่
Community Edition (ใช้งานฟรี) และ Professional Edition (เสียเงินสามารถทดลองใช้ได้ 30 วัน) โดย
Professional Edition จะเพิ่มความสามารถในการตรวจ syntax ของเฟรมเวิรก์ ที่ได้รับความนิยมทีใ่ ช้งานร่วมกับ
ภาษาไพธอน เช่น ของเฟรมเวิร์กที่ได้รับความนิยมที่ใช้งานร่วมกับภาษาไพธอน เช่น Django, Flask, Google
App Engine เป็นต้น จากการสำรวจของ https://www.jetbrains.com/lp/python-developers-survey-
2020/ Pycharm มาเป็นอันดบั หนึ่ง
ภาพท่ี 17.3
17.2 คำสัง่ พื้นฐานของภาษาไพธอน (Python)
17.2.1 ชนิดของข้อมูล ตัวแปรและนิพจน์ (Data Type, Variable and Expression) ชนิดของข้อมูล
ชนิดของข้อมูลเป็นข้อมูลที่จัดเก็บและควบคุมโดยโปรแกรมชนิดของข้อมูล ได้แก่ ข้อมูลประเภทจำนวนเต็ม
(Integer Number) เป็นข้อมูลที่ไม่มีทศนิยม ในภาษาไพธอน จะใช้คำสั่ง int ข้อมูลประเภทจำนวนจริง (Real
Number) เป็นข้อมูลท่ีมีทศนิยม ในภาษาไพธอน จะใช้คำสัง่ float ข้อมูลที่เป็นข้อความ (String) ในภาษาไพธอน
จะใช้คำสัง่ str
ตัวแปร (Variable) ตัวแปรเป็นที่เก็บข้อมูลในโปรแกรม ต้องมีชื่อกำกับ ชื่อตัวแปรประกอบด้วย
ตัวอักษร ตัวเลข หรือเครื่องหมายขดี เสน้ ใต้ _ ตวั องั กฤษใหญ่ไม่เหมอื นตวั เล็ก หา้ มข้นึ ตน้ ช่อื ดว้ ยตวั เลข
อย่าตั้งชื่อตัวแปรซ้ำกับชื่อฟังก์ชันในไพธอน เช่น int, str, max, sum, abs, ... (ไม่ห้ามถ้าจะตั้งซ้ำ แต่ไม่ควรทำ
เพราะเมือ่ ผลลัพธอ์ อกมาไม่ตรงกับตงั้ ไว้ จะทำใหก้ ารหาขอ้ ผิดพลาดของโปรแกรมยากมาก)
โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐเ์ พ่อื พัฒนาทกั ษะดา้ นดิจทิ ลั ของนักเรียนและนักศึกษาในสายวิชาชีพอาชวี ศกึ ษาและสามัญศึกษา
(Open AI Kit for Thai Students) | 140
สำนกั งานคณะกรรมการดจิ ทิ ัลเพอื่ เศรษฐกิจและสงั คมแหง่ ชาติ
ฟังก์ชัน (Function) คือส่วนของโปรแกรมที่ทำงานเพื่อวัตถุประสงค์บางอย่าง ในภาษาไพธอน เรา
สามารถสร้างฟังก์ชันของตัวเราเองเพือ่ ให้ทำงานทีต่ ้องการ ในการเขียนโปรแกรมเรามักจะแยกโค้ดทีม่ ีการทำงาน
เหมือนๆ กันเป็นฟังก์ชันเอาไว้ และเรียกใช้ฟังก์ชันนั้นซ้ำๆ ซึ่งเป็นแนวคิดของการนำโค้ดกลับมาใช้ใหม่ ( Code
reuse)
ตัวดำเนินการ (Operator) เป็นกลุ่มของเครื่องหมายหรือสัญลักษณ์ที่ใช้ทำงานเหมือนกับฟังก์ชัน แต่
แตกต่างกันตรงไวยากรณ์หรือความหมายในการใช้งาน ในภาษา Python น้ันสนบั สนนุ ตวั ดำเนินการประเภทต่างๆ
สำหรบั การเขียนโปรแกรม เช่น ตวั ดำเนินการ + เปน็ ตัวดำเนนิ การทางคณิตศาสตรท์ ี่ใช้สำหรบั การบวกตัวเลขเข้า
ด้วยกัน ตวั ดำเนนิ การ * เปน็ ตวั ดำเนินการทางคณติ ศาสตรท์ ีใ่ ช้สำหรบั การคูณตัวเลข เป็นต้น
นิพจน์ (Expression) เป็นการทำงานร่วมกันระหว่างตัวแปร (หรือค่าคงที่) และตัวดำเนินการ โดยค่า
เหลา่ นี้จะมตี ัวดำเนนิ การสำหรบั ควบคุมการทำงาน ในภาษา Python นน้ั มี Expression อยู่สองแบบ แบบแรกคือ
Boolean expression เป็นการกระทำกันระหว่างตัวแปรและตัวดำเนินการเปรียบเทียบค่าหรือตัวดำเนินการ
ตรรกศาสตร์ และจะได้ผลลพั ธเ์ ป็น Boolean คอื จริง หรอื เทจ็
และแบบที่สองคือ Expression ทางคณิตศาสตร์เป็นการกระทำกันระหว่างตัวแปรและตัวดำเนินการ
คณิตศาสตร์ และจะได้รับค่าใหม่เป็นตัวเลขหรือค่าที่ไม่ใช่ Boolean นี่เป็นตัวอย่างของ Expressions ในภาษา
Python
คำสง่ั พ้ืนฐานท่ีใชก้ ารเขียนโปรแกรมภาษาไพธอน จากตัวอย่างโปรแกรม
ภาพที่ 17.4
หมายเลขบรรทัด ในตัวอย่างคือ หมายเลข 1-17 ใช้เพื่ออ้างอิงเท่านั้น เช่นการแก้ไข การทำงาน
ผิดพลาดของโปรแกรม
บรรทัดท่ี 1-3 เปน็ การใช้คำสง่ั หมายเหตทุ เี่ ปน็ กลุ่ม โดยเรม่ิ ตน้ ด้วยคำส่ัง “”” และปิดท้ายดว้ ย “””
บรรทดั ที่ 4 เปน็ การคำสั่งหมายเหตุท่เี ปน็ บรรทัดเดยี ว ข้นึ ต้นดว้ ยคำสั่ง //
โครงการพฒั นาชดุ ทดลองปญั ญาประดิษฐ์เพื่อพฒั นาทักษะดา้ นดิจทิ ัลของนักเรยี นและนักศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 141
สำนักงานคณะกรรมการดิจทิ ลั เพอ่ื เศรษฐกิจและสงั คมแห่งชาติ
บรรทัดที่ 5 เป็นการกำหนดตวั แปรที่ชื่อ University เพอ่ื เก็บค่าคงที่ที่เปน็ สตริง "KING MONGKUT'S
UNIVERSITY OF TECHNOLOGY NORTH BANGKOK"
บรรทัดท่ี 6 เปน็ การกำหนดตัวแปรทช่ี ือ่ LAB เพือ่ เกบ็ คา่ คงที่ท่เี ป็นสตรงิ ‘AI Kit’
หมายเหตุ การกำหนดค่าคงที่ที่เป็นสตริง จะขึ้นต้นด้วย “ หรือ ‘ ก็ได้ แต่ต้องมีการปิดด้วย
เครื่องหมายทีใ่ ช้น้นั ๆ
บรรทดั ที่ 7 เป็นการใชค้ ำส่ัง print ใหแ้ สดงผลหนา้ จอขอ้ ความ ‘Enter your name’
บรรทัดที่ 8 เปน็ กำหนดใหค้ ่าที่ใส่เข้าไปทางแป้นพิมพเ์ ก็บไว้ที่ตวั แปรท่ชี ่ือ x ทงั้ นี้ ค่าท่ีเก็บจะเป็นค่าท่ี
เปลยี่ นแปลงได้ทกุ ครั้งท่มี ีการเรยี กโปรแกรมใชง้ าน
บรรทดั ท่ี 9 เปน็ การใชค้ ำสัง่ print ให้แสดงผลหนา้ จอ พรอ้ มกบั คา่ ท่ีเกบ็ ไว้ท่ีตัวแปรทชี่ ่ือ x
หมายเหตุ การใช้เครื่องหมาย + ซึ่งเป็นตัวดำเนินการนั้น ถ้าเป็นการ + ของสตริง จะเป็นการนำ
ตวั อักษรมาตอ่ กัน แต่ถา้ เป็นตัวเลข จะเป็นการนำเลขมาบวกกัน
บรรทัดที่ 10-12 เป็นการกำหนดตัวแปรที่ชื่อ SCHOOL, AI_KIT, Total Kit เพื่อเก็บค่าที่เป็นจำนวน
เตม็ หรือ จำนวนจริง
บรรทดั ที่ 13-17 เปน็ การใชค้ ำสง่ั print ให้แสดงผลทางจอภาพ
17.3 หลักการเขยี นโปรแกรมภาษาไพธอน (Python)
หลักการในการเขียนโปรแกรมภาษาไพธอนจะเหมือนกับหลักการการเขียนโปรแกรมทั่วๆไป โดยมี
หลกั การดงั ต่อไปนี้
ภาพที่ 17.15
โครงการพฒั นาชุดทดลองปัญญาประดิษฐเ์ พอื่ พฒั นาทักษะดา้ นดิจิทัลของนักเรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามญั ศึกษา
(Open AI Kit for Thai Students) | 142
สำนกั งานคณะกรรมการดิจทิ ลั เพื่อเศรษฐกจิ และสงั คมแห่งชาติ
1. การกำหนดปญั หา (Problem Definition) หรอื Pain Point ของระบบท่ีต้องการให้ไปแก้ไข
2. วเิ คราะหป์ ญั หา (Problem Analysis)
2.1 อ่านโจทย์ เพอ่ื ให้เขา้ ใจถึงความตอ้ งการที่แทจ้ รงิ
2.2 ใหน้ ำความเขา้ ใจไปอธบิ ายใหก้ บั เจ้าของงาน เพ่ือใหม้ ่นั ใจวา่ มคี วามเขา้ ใจในการแก้ปัญหาตรงกนั
2.3 ขั้นตอนการวิเคราะห์ปัญหา สามารถแบง่ เปน็ 4 สว่ นหลักกวา้ งๆไดด้ งั นี้
1) สว่ นนำข้อมูลเขา้ (Input)
2) ส่วนการประมวลผล (Processing)
3) ส่วนผลลพั ธ์ (Output) หรือแสดงผล
4) สว่ นการกำหนดตัวแปร (Variable) และขอ้ ตกลงอน่ื ๆ ในการนำมาใช้ในแก้ปัญหา
3. การออกแบบโปรแกรมประกอบไปด้วยเคร่ืองมือและข้นั ตอน
3.1 เครื่องมือที่นำมาใช้ในการออกแบบโปรแกรม เช่น อัลกอริทึม (Algorithms) เป็นขั้นตอน วิธีการ
หรือกระบวนการที่ใช้อธิบายลำดับการทำงานของโปรแกรม เขียนเป็นภาษาไทยหรือภาษาอังกฤษที่มีความคล้าย
กบั ชดุ คำสงั่ ของภาษาไพธอนกไ็ ด้ ผงั งาน (Flowchart) ประกอบดว้ ยสญั ลกั ษณท์ ใ่ี ช้แทนความหมายต่างๆ เช่น การ
เริ่มต้นโปรแกรม การประมวลผล การแสดงผล การสิ้นสุดโปรแกรม การมีเงื่อนไข เป็นต้น ซูโดโค้ด (Pseudo
Code) มีรปู แบบเป็นโครงสรา้ งภาษาอังกฤษท่ีคลา้ ยคลึงกบั ภาษาไพธอนเพื่องา่ ยต่อการนำไปเขียนเป็นโปรแกรม
3.2 ขั้นตอนการออกแบบโปรแกรมประกอบดว้ ย กำหนดขัน้ ตอนการประมวลผลส่วนหลกั ๆ
การทำงานของส่วนงานย่อย การออกแบบส่วนประสานการทำงานระหว่างผู้ใช้ (User Interface) โครงสร้าง
ควบคุมการทำงาน เช่น การทำงานซ้ำ หรือการตรวจสอบเงื่อนไข ตัวแปร และโครงสร้างของเรคคอร์ด ตรรกะ
โปรแกรม (Logic)
4. การทดสอบโปรแกรม หรือการดีบั๊กโปรแกรม (Debugging) เป็นการนำโปรแกรมมาทำงาน โดยการ
ทำงานจะแปลชุดคำสั่งที่ละคำสั่งในแต่ละบรรทัด โดยโปรแกรมยังสามารถทำงานต่อไปได้ ถึงจะมีข้อผิดพลาดใน
โปรแกรม ตราบใดทต่ี ัวแปรภาษายงั ไม่ผ่านการแปลในบรรทดั ที่เขียนชุดคำส่ังผดิ
5. เอกสาร อาจจัดทำข้ึนตั้งแต่ขั้นตอนการกำหนดปัญหา จนถึงขั้นตอนสดุ ท้าย คือ การทดสอบโปรแกรม
โดยเอกสารเหล่านี้จะนำมาใช้สำหรับอ้างอิงถึงข้อผิดพลาดที่เกิดขึ้น วิธีการแก้ไขข้อผิดพลาด รวมถึงการนำไปใช้
เพื่อปรับปรุงโปรแกรมในอนาคต เอกสารสำหรับผู้ใช้โปรแกรม (User Documentation) จะเน้นการอธิบาย การ
ใช้งานโปรแกรมเป็นหลัก เอกสารสำหรับผู้เขียนโปรแกรม (Technical Documentation) จะอธิบายชื่อของ
โปรแกรมย่อยและการทำงานของแตล่ ะโปรแกรมยอ่ ย
6. การบำรุงรักษา เป็นการบำรุงรักษาเพื่อให้โปรแกรมสามารถยังคงใช้งานได้ตามปกติ และเมื่อมีการ
ปรบั ปรงุ ในส่วนงาน สามารถนำไปเรมิ่ ขอ้ 1. ได้
โครงการพัฒนาชุดทดลองปญั ญาประดษิ ฐ์เพ่อื พฒั นาทักษะดา้ นดจิ ทิ ัลของนักเรียนและนักศึกษาในสายวชิ าชีพอาชวี ศกึ ษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 143
สำนักงานคณะกรรมการดจิ ิทัลเพอื่ เศรษฐกิจและสังคมแหง่ ชาติ
บทที่ 18
อุปกรณร์ าสเบอร์รี่ไพกบั ภาษาไพธอน
วตั ถปุ ระสงค์ เรยี นรกู้ ารเขียนโปรแกรมไพธอน (Python) บนอุปกรณร์ าสเบอร์ร่ีพาย (Raspberry PI) เพื่อ
เรยี นรู้การเขียนโปรแกรมบนอปุ กรณ์ โดยประกอบด้วยหวั ข้อดังน้ี
18.1 บทนำเบ้ืองตน้ อุปกรณร์ าสเบอรร์ พี่ าย (Introduction Raspberry Pi)
18.2 โปรแกรมพ้นื ฐานด้วยภาษาไพธอน (Basic Program with Python)
18.3 การสรา้ งจียูไอด้วยภาษาไพธอน (Create Graphic User Interfaces in Python)
18.4 การใชง้ านไพธอน (python) บนอปุ กรณร์ าสเบอรร์ พ่ี าย (Raspberry Pi)
18.1 บทนำเบอื้ งตน้ อุปกรณร์ าสเบอรร์ พี่ าย (Introduction Raspberry Pi)
ราสเบอร์รี่พาย เป็นคอมพิวเตอร์ที่มีขนาดเล็ก มีขนาด 88 มม. × 58 มม. × 19.5 มม. หนัก 46 กรัม
ราสเบอรร์ ่พี าย (Raspberry Pi) เกิดขนึ้ ในปี 2549 ทม่ี หาวทิ ยาลยั เคมบริดจ์ ประเทศอังกฤษ โดยผู้สรา้ งทง้ั สี่คนคือ
อีเบน อพั ตั้น, ร๊อบ มลู ลิน่ ส์, แจ๊ค แลง และอลัน มายครอฟท์ มีจุดมงุ่ หมายท่ีจะให้ ราสเบอรร์ ่พี ายเป็นคอมพิวเตอร์
ราคาถกู ท่สี ามารถซ้ือมาใชไ้ ด้ และสามารถศึกษาการทำงานของคอมพวิ เตอร์พร้อมท้ังเขยี นโปรแกรมงา่ ยๆ ได้ทันที
การท่รี าสเบอรร์ ่ีพายเป็นบอรด์ วงจรรวมท่ีเปลือย ทำใหเ้ ดก็ ๆ ได้เห็นชิ้นสว่ นประกอบท้ังหมดของคอมพิวเตอร์และ
ทำให้เขา้ ใจการทำงานของคอมพิวเตอร์ได้อย่างชดั เจน
เนื่องจาก Raspberry Pi เปน็ คอมพวิ เตอรท์ มี่ ขี า GPIO (General Purpose Inputs and Outputs) หรือ
ขาอนิ พุตเอาท์พตุ แบบทวั่ ๆ ไป ในเวอรช์ ั่นแรกๆ จะมีการออกแบบทม่ี ีจำนวนขาไม่มาก ต่อมามกี ารพัฒนาเป็นเวอร์
ชน่ั ถัดมา จำนวนขากถ็ กู เพ่ิมขึ้นมาทำให้นกั พัฒนาหรือคนท่ีใช้งานนำไปประยุกตใ์ ช้งานได้มากข้ึน และจากเดิมที่ใช้
SD Card แบบตัวใหญ่ก็พัฒนาเปลี่ยนเป็น Micro SD Card แทน เพื่อลดพื้นที่ทำให้มีพื้นที่เยอะขึ้นโดยเอาไปใส่
ฟเี จอร์ฟงั กช์ ัน่ ตา่ งๆ ของ Raspberry Pi ใหม้ คี วามสามารถดขี ึ้นนั่นเอง
โครงการพฒั นาชุดทดลองปญั ญาประดิษฐ์เพอ่ื พัฒนาทกั ษะดา้ นดจิ ิทัลของนักเรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 144
สำนักงานคณะกรรมการดจิ ิทลั เพ่ือเศรษฐกิจและสงั คมแหง่ ชาติ
ภาพท่ี 18.1
ภาพท่ี 18.2 เวอรช์ ่ันต่างๆ ของ Raspberry Pi
เวอร์ชั่นต่างๆ ของ Raspberry Pi จะมีหลายเวอร์ชั่นมาก เวอร์ชั่นที่เล็กที่สุดและราคาถูกที่สุด เรียกว่า
Raspberry Pi Zero มสี เปคทีส่ ามารถต่อสายแลน (LAN) ไวไฟ (WIFI) ซงึ่ หมายความว่าเป็นคอมพิวเตอร์ท่ีมีขนาด
เล็กเล่นอินเตอร์เน็ตได้แล้ว และยังสามารถทำงานอินเทอร์เน็ตของสรรพสิ่ง (IoT) การประมวลผลภาพ (Image
Processing) ได้ ทำให้มคี วามยืดหยนุ่ มากยิ่งข้นึ ในการนำไปประยุกตใ์ ชง้ าน
Raspberry Pi ในรุ่นต่อมาซึ่งเป็นรุ่นเก่าไม่ค่อยได้ใช้แล้วจะเป็น Raspberry Pi Model A และรุ่นต่อมา
คือ Raspberry Pi Model B ซึ่งจะมรี ุ่น B1, B2, B3 และรุ่นลา่ สุดคอื B4 ซ่งึ จะสามารถตอ่ LAN, WIFI, Bluetooth
และมี RAM ที่มาก ปัจจุบัน Raspberry Pi B4 มี RAM ถึง 8GB ซึ่งถือว่าแรมค่อนข้างมากและเร็วขึ้น ปัจจุบันท่ี
นยิ มใชก้ ันจะเป็นรนุ่ Pi B4, PI B3, และ Pi Zero
จุดเด่นอีกอย่างหนึ่ง นอกเหนือจากราคาที่ไม่สูงมากของ Raspberry Pi คือขา GPIO ซึ่งสามารถต่อ
สัญญาณ ให้สามารถควบคุมอุปกรณ์ต่างๆ ได้ เช่น มอเตอร์ เซ็นเซอร์วัดต่างๆ ควบคุมการเปิดปิดไฟ เป็นต้น
เรียกว่า Pinout Diagram มีทงั้ หมด 40 ขา
โครงการพัฒนาชุดทดลองปัญญาประดิษฐ์เพอื่ พัฒนาทักษะดา้ นดจิ ทิ ัลของนกั เรียนและนักศกึ ษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 145
สำนักงานคณะกรรมการดิจทิ ลั เพื่อเศรษฐกจิ และสังคมแหง่ ชาติ
ภาพท่ี 18.3 เว็บไซต์ www. raspberrypi.org
การเรมิ่ ตน้ การใช้งาน Raspberry Pi ต้องมกี ารโหลดระบบปฏบิ ัติการเพอ่ื มาใชง้ าน ดังรูป
ภาพที่ 18.4
แล้วนำไฟลท์ โ่ี หลดมา ไปบนั ทกึ บน Micro SD ด้วย โปรแกรม
โครงการพัฒนาชุดทดลองปัญญาประดษิ ฐเ์ พอ่ื พัฒนาทกั ษะดา้ นดิจิทลั ของนกั เรียนและนักศึกษาในสายวิชาชพี อาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 146
สำนกั งานคณะกรรมการดิจทิ ลั เพอ่ื เศรษฐกจิ และสังคมแหง่ ชาติ
ภาพที่ 18.5
นำ MicroSD ที่บันทึกเป็นระบบปฏิบัติการสำหรับ RPI เสียบในช่อง Micro SD, เสียบสายจอเข้ากับ
จอภาพ แลว้ เปดิ เครอ่ื ง ที่จอภาพแสดงออกมาดังรปู น่ันหมายถึงวา่ RPI พรอ้ มสำหรับการทำงานแลว้
โครงการพฒั นาชุดทดลองปัญญาประดิษฐเ์ พ่อื พัฒนาทักษะดา้ นดจิ ิทัลของนกั เรยี นและนักศึกษาในสายวชิ าชีพอาชวี ศึกษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 147
สำนกั งานคณะกรรมการดจิ ทิ ัลเพอื่ เศรษฐกจิ และสงั คมแหง่ ชาติ
ภาพท่ี 18.6
18.2 โปรแกรมพืน้ ฐานด้วยภาษาไพธอน (Basic program with Python)
คำสัง่ พน้ื ฐานของไธทอน สามารถแบง่ ไดเ้ ปน็ 5 กล่มุ หลัก ได้แก่
1. Input/Output
2. Comment
3. Variable
4. String
5. Data Structure
6. Control Flow
7. Function
1. Input/Output
input() เป็นคำสั่งรบั คา่
print() เป็นคำสั่งแสดงผลลัพธ์ออกมา
หมายเหตุ ใช้ไพธอน รุ่น 3.x เป็นรนุ่ หลักในการใช้งาน
ในกรณีต้องการรับค่าเป็นตัวเลข สามารถใช้วิธีการทำให้ค่าที่รับเปลี่ยนจากสตริงเป็นเลขจำนวนเต็ม
(integer) หรอื เลขจำนวนจริง (float) ได้
ภาพที่ 18.7
โครงการพฒั นาชุดทดลองปญั ญาประดษิ ฐเ์ พ่ือพัฒนาทกั ษะดา้ นดจิ ิทัลของนักเรยี นและนักศกึ ษาในสายวิชาชพี อาชวี ศกึ ษาและสามญั ศกึ ษา
(Open AI Kit for Thai Students) | 148
สำนกั งานคณะกรรมการดจิ ิทลั เพอ่ื เศรษฐกจิ และสงั คมแห่งชาติ
ภาพท่ี 18.8
2. Comment
มีสองแบบ
• Inline ใช้เคร่ืองหมาย # อยูต่ ำแหน่งที่ตอ้ งการใหเ้ ปน็ หมายเหตุ
• block ใช้เคร่อื งหมาย """ … """
ภาพท่ี 18.9
3. Variable
ตัวแปรในภาษาไพธอนเป็นแบบ Dynamic-type คือ สามารถเป็นค่าได้ทุกชนิดโดยไม่ต้องกำหนด
ประเภทของชนิดขอ้ มูล
ชนิดของข้อมูลของไพธอน ทใี่ ช้กันบ่อยๆ ไดแ้ ก่
• int – จำนวนเต็ม เชน่ 5, 10, 20
• float – จำนวนจรงิ เชน่ 9.98, 0.11
• str – ตัวอกั ษรและอักขระและสามารถใช้ไดท้ ้ังแบบ "..." Double Quote และแบบ '...' Single Quote
• bool – คา่ ความจรงิ (Boolean) มี 2 ค่าเท่านั้นคอื True หรือ False
• None – ค่าที่ไม่มีค่าใดๆ (แต่จะทำให้เกิดตัวแปรข้ึน ใช้กับกรณีทีต่ ้องการใหต้ วั แปร ซึ่งฐานะของตวั
แปรตัวนัน้ จะตา่ งจากตวั แปรทยี่ ังไมไ่ ดก้ ำหนดค่ามากอ่ นทเี่ ปน็ Undefined)
โครงการพฒั นาชดุ ทดลองปญั ญาประดษิ ฐ์เพอื่ พัฒนาทักษะดา้ นดิจิทลั ของนกั เรยี นและนกั ศึกษาในสายวชิ าชพี อาชวี ศึกษาและสามัญศกึ ษา
(Open AI Kit for Thai Students) | 149