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