Deep Learning ประกอบด้วยส่วนประกอบหลักต่อไปนี้:
- Neural Network (โครงข่ายประสาทเทียม): เป็นโครงสร้างที่สำคัญใน Deep Learning ที่ประกอบด้วยชั้นของโหนด (neurons) ที่เชื่อมต่อกัน ซึ่งแต่ละโหนดมีการคำนวณและส่งผลลัพธ์ไปยังโหนดต่อไป
- Activation Function (ฟังก์ชันกระตุ้น): อยู่ที่โหนดแต่ละตัวใน Neural Network และใช้ในการปรับผลลัพธ์ของโหนดให้อยู่ในรูปแบบที่เหมาะสม เช่น Sigmoid, ReLU, Tanh, Softmax
- Loss Function (ฟังก์ชันสูญเสีย): เป็นตัวบ่งชี้ความคลาดเคลื่อนระหว่างค่าผลลัพธ์ที่โมเดลทำนายและค่าเป้าหมาย (ground truth) ซึ่งใช้ในการปรับและสร้างโมเดล
- Optimization Algorithm (อัลกอริทึมการปรับแต่ง): เป็นอัลกอริทึมที่ใช้ในการปรับค่าน้ำหนักของโครงข่ายประสาทเทียมเพื่อให้ได้ผลลัพธ์ที่แม่นยำที่สุด ซึ่งเช่น Gradient Descent, Adam, RMSprop
- Layers (ชั้น): Neural Network ประกอบด้วยชั้นต่างๆ เช่น ชั้นเข้า (Input Layer), ชั้นซ่อน (Hidden Layer), และชั้นออก (Output Layer) แต่ละชั้นมีหน้าที่ในการประมวลผลข้อมูลในขั้นตอนการเรียนรู้
- Backpropagation (การถอยกลับ): เป็นกระบวนการในการคำนวณค่าความคลาดเคลื่อนและปรับค่าน้ำหนักของโครงข่ายประสาทเทียมเพื่อเรียนรู้และปรับปรุงความแม่นยำ
- Regularization (การลดการเกินการฝึกฝน): เป็นเทคนิคในการลดความเกินการฝึกฝนในโมเดลเพื่อป้องกัน Overfitting ซึ่งสามารถใช้ Dropout หรือ L1/L2 Regularization ได้
- Data Preprocessing (การเตรียมข้อมูล): การก่อนการฝึกฝนโมเดล ควรทำการแปลงข้อมูลเป็นรูปแบบที่เหมาะสม เช่น การสเกลข้อมูล การเข้ารหัสข้อมูล
- Hyperparameter Tuning (การปรับแต่งพารามิเตอร์): การปรับแต่งค่าพารามิเตอร์ของโมเดลเพื่อหาค่าที่ดีที่สุดที่ส่งผลลัพธ์ที่ดีที่สุด
- Transfer Learning (การเรียนรู้โอนย้าย): เป็นกระบวนการนำโมเดลที่ฝึกฝนไว้มาใช้ในงานอื่นๆ หรือประยุกต์ใช้โมเดลที่ฝึกฝนไว้ในงานที่คล้ายคลึงกัน
ใน Deep Learning, โครงข่ายประสาทเทียม (Neural Networks) ประกอบด้วยหลายชั้น (layers) ที่ทำหน้าที่ในการประมวลผลข้อมูล โดยแต่ละชั้นมีหน้าที่และการทำงานที่แตกต่างกันดังนี้:
- Input Layer (ชั้นเข้า): เป็นชั้นแรกที่รับข้อมูลเข้าสู่โครงข่ายประสาทเทียม แต่ละโหนดในชั้นเข้าแสดงค่าข้อมูลนำเข้าที่ต้องการประมวลผล ส่วนใหญ่ใช้แนวข้อมูลแยกแยะที่จำนวนโหนดเท่ากับจำนวนลักษณะของข้อมูลนำเข้า
- Hidden Layers (ชั้นซ่อน): เป็นชั้นที่ตั้งอยู่ระหว่างชั้นเข้าและชั้นออก โครงข่ายประสาทเทียมมักมีหลายชั้นซ่อน เป้าหมายของชั้นซ่อนคือการค้นหาความสัมพันธ์และลักษณะที่ซับซ้อนในข้อมูลที่ไม่สามารถหาเจอได้ในชั้นเข้า
- Dropout Layer (ชั้น Dropout): เป็นชั้นที่ใช้ในการลดการเกิดการเรียนรู้เกินไป (overfitting) โดยการปิดใช้งานบางโหนดที่สุ่มของชั้นซ่อนในขณะฝึกฝน การทำ Dropout ช่วยให้โมเดลเรียนรู้และทำนายข้อมูลที่ไม่เห็นมาก่อนได้ดีขึ้น
- Output Layer (ชั้นออก): เป็นชั้นที่ให้ผลลัพธ์ที่ออกมาจากโครงข่ายประสาทเทียม เช่น การจำแนกคลาสของข้อมูล, การคาดคะเนค่าต่างๆ ชั้นออกมักจะมีจำนวนโหนดที่เท่ากับจำนวนคลาสหรือจำนวนค่าที่ต้องการทำนาย
การเรียงลำดับและจำนวนชั้นของโครงข่ายประสาทเทียมสามารถปรับเปลี่ยนตามความซับซ้อนของงานและประสิทธิภาพที่ต้องการ โดยโครงข่ายประสาทเทียมที่มีจำนวนชั้นซ่อนมาก สามารถจับความซับซ้อนของข้อมูลได้ดีขึ้น แต่อาจมีปัญหาในการเรียนรู้เกินไปและใช้เวลาในการฝึกฝนมากขึ้น การใช้ Dropout ช่วยลดปัญหาการเรียนรู้เกินไปในโครงข่ายประสาทเทียมที่ซับซ้อน และช่วยให้โมเดลมีความแม่นยำในการทำนายและตัดสินใจที่ดีกว่า
ภาพจาก https://towardsdatascience.com/training-deep-neural-networks-9fdb1964b964