PJJOP

PJJOP

AI and NLP Research

การทำ Regularization แบบสมัยใหม่ ด้วยเทคนิค Augmentation, Batch Normalization และ Dropout

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ในการเพิ่มประสิทธิภาพ Machine Learning Model มีวิธีการหลัก 2 อย่าง ที่ต้องให้ความสำคัญ คือ 1) การลด Generalization Error ด้วย Regularization และ 2) การลด Cost Value ด้
12 min read

การวิเคราะห์ประสิทธิภาพ Machine Learning Model ด้วย Learning Curve

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร Learning Curve เป็นสิ่งที่แสดงถึงประสิทธิภาพการเรียนรู้ของ Model จาก Training Dataset ซึ่งแกน x ของกราฟจะเป็น Epoch และแกน y จะเป็นประสิทธิภาพของ Model โดยประสิทธิภาพของ Model จะถูกวัดหลั
10 min read

การ Deploy Machine Learning Model บน Production ด้วย FastAPI, Uvicorn และ Docker

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ในการให้คำปรึกษาโครงงานวิทยานิพนธ์ (Project) บ่อยครั้งที่เมื่อนักศึกษาได้พัฒนา Deep Learning Model ที่มีประสิทธิภาพพอจะใช้งานได้ระดับหนึ่งแล้ว ผมก็จะให้พวกเขานำ Model ไป Deploy บน
9 min read

The Effects of the Learning Rate on Model Performance

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร สำหรับผู้อ่านบางท่านที่เริ่มต้นศึกษา Machine Learning Model อาจจะเคยสับสนกับคำว่า Parameter และ Hyperparameter กันมาบ้าง โดย Parameter จะเป็นตัวแปร (Variable) ที่อยู่ภายใน Model เช่น Weight
7 min read

Introduction to Stochastic Gradient Descent with Tensorflow and Keras Framework

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร Stochastic Gradient Descent (SGD) เป็นวิธีการหลักในการ Train Neural Network Model โดยใช้ Gradient หรือ ความชัน เป็นตัวบอกขนาดและทิศทางในการปรับ Parameters ที่จะทำให้ Loss Value เคลื่อนที่ไปยัง จุดต่
7 min read

Implement the Back-propagation Algorithm from Scratch with NumPy

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร บทความโดย อ.ดร.ณัฐโชติ พรหมฤทธิ์ในบทความนี้เราจะศึกษา Neural Network อย่างละเอียดขึ้น ด้วยการทำความเข้าใจ Back-propagation Algorithm ซึ่งเป็นกระบวนการที่สำคัญในการย้อนกลับ (Backward) เพื่อปรับ Parameters (Weight และ Bias)
4 min read

Feature Engineering for AI and Machine Learning (การทำ Feature Engineering ด้วย Pandas)

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร "Data is the new oil!" หลายคนคงเคยได้ยินประโยคนี้ใช่ไหมครับ แต่อันที่จริงหากเป็นเรื่องเกี่ยวกับ AI และ Machine Learning แล้ว Data น่าจะเป็นเหมือนกับน้ำมันดิบ
5 min read

Sentiment Analysis 101

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ใน Workshop นี้เราจะได้เรียนรู้เกี่ยวกับการทำ Sentiment Analysis โดยใช้ Model แบบ RNN ที่รับ Dataset ผ่าน Input Node แบบ Time Series หรือข้อมูลที่มีลักษณะเป็นลำดับ
7 min read

Introduction to Word2Vec

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ในการใช้ NLP Application เพื่อแก้ปัญหา เช่น การทำ Intent Classificaion หรือ Sentiment Analysis เราอาจต้องมีการตัดคำ และแปลงคำเป็นตัวเลข เพื่อนำเข้า Neural Network Model เช่น ประโยค "Need help pleese"
5 min read

Intent Classification

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ใน Workshop นี้เราจะได้เรียนรู้เกี่ยวกับการทำ Intent Classification กับ Dataset ที่เป็นประโยคภาษาอังกฤษ จำนวน 1,113 ประโยค ซึ่งมีการแบ่ง Intent ออกเป็น  21 Class โดยใช้ Model แบบ RNN
7 min read

Introduction to NLP

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร NLP (Natural Language Processing) เป็น Field หนึ่งของ Artificial Intelligence (AI) ที่จะทำให้มนุษย์มีปฏิสัมพันธ์กับคอมพิวเตอร์ด้วยภาษาธรรมชาติ หรือช่วยให้คอมพิวเตอร์เข้าใจภาษาธรรมชาติของมนุษย์
7 min read

Introduction to Deep Learning (Machine Learning Pipeline)

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร Deep Learning เป็น Neural Network แบบหนึ่ง ที่มักจะใช้ในการแก้ปัญหาในงานอย่างเช่น การแยกประเภทภาพ (Image Classification) การตรวจจับใบหน้า (Face Detection) และการวิเคราะห์ความรู้สึก (Sentiment Analysis) ฯลฯ ซึ่งในการ Train
8 min read

Introduction to AI, Machine Learning and AI Toolboxes

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร AI หรือ Artificial Intelligence เป็นศาสตร์ในการทำให้ Computer มีความฉลาดเหมือนมนุษย์ โดยเทคนิคหนึ่งที่จะทำให้คอมพิวเตอร์มีความฉลาด คือการทำให้คอมพิวเตอร์สามารถเรียนรู้ได้เองจาก Data ที่นำมาสอน โดยปราศจากการป้อนกฎหรือเขี
9 min read

การทำ CI/CD Pipeline ด้วย GitLab Server ของตัวเอง สำหรับ DevOps Team

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร เป้าหมายสำคัญของการพัฒนา Software คือ การสร้าง Software ให้ดีขึ้นในเวลาที่น้อยลง ซึ่งในการพัฒนา Software สมัยใหม่ จะมีกระบวนท่าหลักๆ ที่มุ่งไปสู่เป้าหมายดังกล่าวอยู่ 3 กระบวนท่
11 min read

การพัฒนา Web Application แบบ (เกือบจะ) Zero Downtime บน Swarm Cluster

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ในช่วงหนึ่งสัปดาห์ที่ผ่านมา ถ้าถามว่าเว็บไซต์ไหนถูกกล่าวถึงมากที่สุด คำตอบคงจะหนีไม่พ้น Website https://www.เราไม่ทิ้งกัน.com www.เราไม่ทิ้งกัน.com
20 min read

การพัฒนาระบบ OTP (One Time Password) และ Session Server ด้วย Redis และ Flask สำหรับ Microservice

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร บทความนี้ผู้อ่านจะได้คลายข้อสงสัยเกี่ยวกับการทำเว็บไซต์ ในส่วนของการเข้าสู่ระบบ ซึ่งมีการพิสูจน์ตัวตนด้วย OTP ที่ส่งไปยังผู้ใช้ ทาง Email รวมทั้งเทคนิคการทำให้ Session ไม่
12 min read

สร้าง API Gateway และระบบ Monitoring Microservice ด้วย Kong, Prometheus และ Grafana แบบง่ายๆ

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร บทความนี้เราจะสร้าง API Gateway และระบบ Monitoring งานทะเบียนนักศึกษาซึ่งถูกพัฒนาแบบ Microservice Architecture สำหรับผู้อ่านใหม่ที่ต้องการจะ Implement ตาม สามารถอ่านบทความ 2 บทความก่อนหน้านี้ ได้แก่ * วิธี
7 min read

การพัฒนา Microservice บน Docker Container สำหรับผู้เริ่มต้น

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร บทความนี้เราจะทำความเข้าใจแนวคิดของ Microservice ซึ่งเป็นสถาปัตยกรรมการพัฒนา Software ด้วยการแตกระบบออกเป็นส่วนย่อยที่มีหน้าที่การทำงานเพียงเรื่องเดียว ซึ่งในปัจจุบันบริษัทชั้นนำหลายบริษัทได้นำสถาปัตยกรรมแบบนี
8 min read

วิธีติดตั้ง VPS และ Let’s Encrypt ด้วย Docker Container แบบง่ายๆ

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ในสมัยก่อนหากใครเคย Config Virtual Private Server (VPS) และติดตั้ง SSL Certificate เพื่อรันเว็บไซต์มาบ้าง คงทราบดีว่าไม่ใช่เรื่องง่ายนัก แต่ในปัจจุบันการ Config VPS และติ
7 min read

วิธีติดตั้ง LEMP Stack ด้วย Docker Container สำหรับผู้เริ่มต้น

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ในบทความนี้เราจะติดตั้ง LEMP Stack ที่เป็นกลุ่มของ Open Source Software สำหรับเขียน Website ด้วยภาษา PHP บน Docker Container ซึ่งประกอบไปด้วย Software ดังต่อไปนี้ * L = Linux OS * E = (E)
6 min read

Docker tutorial for beginners : Part 2

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ใน Part นี้เราจะมารู้จักคำสั่งของ Dockerfile สำหรับการสร้าง Image และการใช้ Docker-compose เพื่อจัดการกับ Container รวมทั้งการจัดการ Container แบบง่ายๆ ด้วย Web Based GUI ครับ Dockerfile Dockerfile คื
6 min read

Docker tutorial for beginners : Part 1

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร หลายคนคงเคยได้ยินคำว่า Containers ที่เป็นเครื่องมือสำหรับการบรรจุ จัดส่ง และ Deploy Application กันมาบ้าง ซึ่งถ้าคุณเป็น Software Developer ของบริษัท Software ในปัจจุบัน
3 min read

Version Control and Git From Zero to Hero : Part 7.1 (Branch Management)

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ถึงตอนนี้ผู้อ่านก็เข้าใจแนวคิดของ Branch กันแล้ว ซึ่งจะเห็นว่าเมื่อ 15 ปีที่แล้ว Linus ได้ออกแบบ Git Branch ไว้อย่างชาญฉลาดมาก เพราะ Branch ไม่ได้เป็
5 min read

Version Control and Git From Zero to Hero : Part 6 (แนวคิดของ Branch)

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร Version Control System เกือบทุกตัวจะมี Branch Feature ให้ใช้งานในรูปหนึ่งรูปแบบใด แต่การแตก Branch ใน Version Control System เหล่านั้นค่อนข้างมีค่าใช้จ่ายที่สูงเหมือนกับการทำสำเนา
3 min read

Version Control and Git From Zero to Hero : Part 5 (Fixing the Mistakes)

บทความโดย ผศ.ดร.ณัฐโชติ พรหมฤทธิ์ ภาควิชาคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศิลปากร ใน Part 1-4 เราได้เรียนรู้แนวคิดและความเป็นมาของ Version Control รวมทั้งการใช้งาน Git เบื้องต้น ได้แก่ * การสร้าง Project บน Gitlab Server * การดู Version ของ Git * การ Config Username และ Email
4 min read