PyTorch - พื้นฐานเกี่ยวกับโครงข่ายประสาทเทียม
หลักการสำคัญของโครงข่ายประสาทรวมถึงการรวบรวมองค์ประกอบพื้นฐาน ได้แก่ เซลล์ประสาทเทียมหรือเพอร์เซปตรอน ประกอบด้วยอินพุตพื้นฐานหลายอย่างเช่น x1, x2 … .. xn ซึ่งสร้างเอาต์พุตไบนารีหากผลรวมมากกว่าศักยภาพในการกระตุ้น
การแสดงแผนผังของเซลล์ประสาทตัวอย่างมีดังต่อไปนี้ -
ผลลัพธ์ที่สร้างขึ้นถือได้ว่าเป็นผลรวมถ่วงน้ำหนักที่มีศักยภาพในการเปิดใช้งานหรืออคติ
$$ เอาต์พุต = \ sum_jw_jx_j + อคติ $$
สถาปัตยกรรมเครือข่ายประสาทเทียมโดยทั่วไปอธิบายไว้ด้านล่าง -
เลเยอร์ระหว่างอินพุตและเอาต์พุตเรียกว่าเลเยอร์ที่ซ่อนอยู่และความหนาแน่นและประเภทของการเชื่อมต่อระหว่างเลเยอร์คือการกำหนดค่า ตัวอย่างเช่นการกำหนดค่าที่เชื่อมต่ออย่างสมบูรณ์จะมีเซลล์ประสาททั้งหมดของเลเยอร์ L เชื่อมต่อกับ L + 1 สำหรับการแปลให้ชัดเจนยิ่งขึ้นเราสามารถเชื่อมต่อเฉพาะพื้นที่ใกล้เคียงเช่นเซลล์ประสาทเก้าเซลล์กับเลเยอร์ถัดไป รูปที่ 1-9 แสดงเลเยอร์ที่ซ่อนอยู่สองชั้นด้วยการเชื่อมต่อที่หนาแน่น
โครงข่ายประสาทเทียมประเภทต่างๆมีดังนี้ -
Feedforward Neural Networks
เครือข่ายประสาทเทียม Feedforward ประกอบด้วยหน่วยพื้นฐานของครอบครัวเครือข่ายประสาทเทียม การเคลื่อนไหวของข้อมูลในโครงข่ายประสาทประเภทนี้มาจากชั้นอินพุตไปยังชั้นเอาต์พุตผ่านชั้นที่ซ่อนอยู่ในปัจจุบัน เอาต์พุตของเลเยอร์หนึ่งทำหน้าที่เป็นเลเยอร์อินพุตที่มีข้อ จำกัด เกี่ยวกับลูปประเภทใดก็ได้ในสถาปัตยกรรมเครือข่าย
เครือข่ายประสาทที่กำเริบ
Recurrent Neural Networks คือการที่รูปแบบข้อมูลเปลี่ยนแปลงตามมาในช่วงเวลาหนึ่ง ใน RNN เลเยอร์เดียวกันจะถูกใช้เพื่อยอมรับพารามิเตอร์อินพุตและแสดงพารามิเตอร์เอาต์พุตในโครงข่ายประสาทที่ระบุ
โครงข่ายประสาทเทียมสามารถสร้างได้โดยใช้แพ็คเกจ torch.nn
เป็นเครือข่ายฟีดไปข้างหน้าอย่างง่าย ใช้อินพุตป้อนข้อมูลผ่านหลายชั้นทีละชั้นจากนั้นจึงให้เอาต์พุตในที่สุด
ด้วยความช่วยเหลือของ PyTorch เราสามารถใช้ขั้นตอนต่อไปนี้สำหรับขั้นตอนการฝึกอบรมทั่วไปสำหรับโครงข่ายประสาทเทียม -
- กำหนดโครงข่ายประสาทเทียมที่มีพารามิเตอร์ (หรือน้ำหนัก) ที่เรียนรู้ได้
- วนซ้ำชุดข้อมูลของอินพุต
- ประมวลผลอินพุตผ่านเครือข่าย
- คำนวณการสูญเสีย (ผลลัพธ์อยู่ห่างจากความถูกต้องเท่าใด)
- กระจายการไล่ระดับสีกลับเข้าไปในพารามิเตอร์ของเครือข่าย
- อัปเดตน้ำหนักของเครือข่ายโดยทั่วไปจะใช้การอัปเดตอย่างง่ายตามที่ระบุด้านล่าง
rule: weight = weight -learning_rate * gradient