โครงข่ายระบบประสาทเทียม: แบบฝึกหัดเชิงอินเทอร์แอกทีฟ

ในแบบฝึกหัดเชิงอินเทอร์แอกทีฟด้านล่างนี้ คุณจะได้สำรวจเพิ่มเติมเกี่ยวกับการทำงานภายในของ โครงข่ายระบบประสาทเทียม ขั้นแรก คุณจะเห็นการเปลี่ยนแปลงของพารามิเตอร์และไฮเปอร์พารามิเตอร์ ส่งผลต่อการคาดการณ์ของเครือข่าย จากนั้น คุณจะได้ใช้สิ่งที่ได้เรียนรู้เพื่อฝึก โครงข่ายระบบประสาทเทียมให้พอดีกับข้อมูลแบบไม่เป็นเชิงเส้น

แบบฝึกหัด 1

วิดเจ็ตต่อไปนี้จะตั้งค่าโครงข่ายระบบประสาทเทียมด้วยการกำหนดค่าต่อไปนี้

  • เลเยอร์อินพุตที่มีเซลล์ประสาท 3 เซลล์ที่มีค่า 0.00, 0.00 และ 0.00
  • ชั้นที่ซ่อนอยู่ซึ่งมีเซลล์ประสาท 4 เซลล์
  • เลเยอร์เอาต์พุตที่มีเซลล์ประสาท 1 เซลล์
  • ใช้ฟังก์ชันการเปิดใช้งาน ReLU กับ โหนดเลเยอร์ที่ซ่อนอยู่และโหนดเอาต์พุต

ตรวจสอบการตั้งค่าเริ่มต้นของเครือข่าย (หมายเหตุ: อย่าคลิกปุ่ม ▶️ หรือ >|) แล้วทำงานด้านล่างวิดเจ็ตให้เสร็จสมบูรณ์

งาน 1

ค่าสำหรับฟีเจอร์อินพุตทั้ง 3 รายการของโมเดลโครงข่ายระบบประสาทเทียมทั้งหมด 0.00 คลิกแต่ละโหนดในเครือข่ายเพื่อดูโหนดเริ่มต้นทั้งหมด ก่อนกดปุ่มเล่น (▶️) ให้ตอบคำถามนี้

คุณใช้ค่าเอาต์พุตประเภทใด สิ่งที่คิดจะเกิดขึ้น ได้แก่ เชิงบวก เชิงลบ หรือ 0
ค่าเอาต์พุตที่เป็นบวก
ค่าเอาต์พุตเชิงลบ
ค่าเอาต์พุต 0

ตอนนี้คลิกปุ่มเล่น (▶️) เหนือเครือข่ายและดูเลเยอร์ที่ซ่อนอยู่ทั้งหมด และป้อนข้อมูลค่าโหนดเอาต์พุต คำตอบด้านบนถูกต้องไหม

คลิกที่นี่เพื่อดูคำอธิบาย

ค่าเอาต์พุตที่ถูกต้องที่คุณได้รับจะแตกต่างกันไปตามน้ำหนัก และพารามิเตอร์การให้น้ำหนักพิเศษ จะเกิดขึ้นแบบสุ่ม อย่างไรก็ตาม เนื่องจากเซลล์ประสาทแต่ละเซลล์ ในเลเยอร์อินพุตมีค่าเป็น 0 น้ำหนักที่ใช้ในการคำนวณค่า ค่าโหนดเลเยอร์ที่ซ่อนไว้จะเป็น 0 ทั้งหมด ตัวอย่างเช่น แท็ก การคำนวณโหนดเลเยอร์ที่ซ่อนอยู่จะมีลักษณะดังนี้

y = ReLU(กว้าง11* 0.00 + กว้าง21* 0.00 + กว้าง31* 0.00 + ข)

y = ReLU(b)

ดังนั้น ค่าของโหนดเลเยอร์ที่ซ่อนอยู่แต่ละโหนดจะเท่ากับค่า ReLU ของโหนด อคติ (b) ซึ่งจะเป็น 0 หาก b เป็นค่าลบ และ b เองหาก b เป็น 0 หรือ เชิงบวก

ค่าของโหนดเอาต์พุตจะมีการคำนวณดังนี้

y = ReLU(กว้าง11* x11 + กว้าง21* x21 + กว้าง31* x31 + กว้าง41* x41 + ข)

งาน 2

ก่อนที่จะแก้ไขโครงข่ายระบบประสาทเทียม ให้ตอบคำถามต่อไปนี้

หากคุณเพิ่มอีกชั้นหนึ่งที่ซ่อนอยู่ ต่อโครงข่ายระบบประสาทเทียมหลังจากชั้นแรกที่ซ่อนอยู่ และให้โหนดเลเยอร์ใหม่นี้ 3 โหนด โดยเก็บ และน้ำหนัก/ความเอนเอียงของพารามิเตอร์เดียวกัน ซึ่งโหนดอื่นๆ การคำนวณ จะได้รับผลกระทบไหม
โหนดทั้งหมด ในเครือข่าย ยกเว้นโหนดอินพุต
เฉพาะโหนดใน เลเยอร์แรกที่ซ่อนอยู่
เฉพาะโหนดเอาต์พุต

ตอนนี้ให้แก้ไขโครงข่ายระบบประสาทเทียมเพื่อเพิ่มเลเยอร์ใหม่ที่ซ่อนอยู่ซึ่งมีโหนด 3 โหนด ดังนี้

  1. คลิกปุ่ม + ทางด้านซ้ายของข้อความเลเยอร์ที่ซ่อนอยู่ 1 เลเยอร์เพื่อเพิ่ม และเลเยอร์ที่ซ่อนอยู่ก่อนเลเยอร์เอาต์พุต
  2. คลิกปุ่ม + เหนือเลเยอร์ใหม่ที่ซ่อนอยู่ 2 ครั้งเพื่อเพิ่มโหนดอีก 2 รายการ ลงในเลเยอร์

คำตอบด้านบนถูกต้องไหม

คลิกที่นี่เพื่อดูคำอธิบาย

เฉพาะโหนดเอาต์พุตเท่านั้นที่จะเปลี่ยนแปลง เพราะการอนุมานสำหรับโครงข่ายประสาทนี้ เป็น "ส่งต่อฟีด" (การคำนวณความคืบหน้าตั้งแต่ต้นจนจบ) การเพิ่ม ของเลเยอร์ใหม่ไปยังเครือข่ายจะมีผลกับโหนดหลังจาก ไม่ใช่ที่อยู่ก่อนหน้า

งาน 3

คลิกโหนดที่สอง (จากด้านบน) ในเลเยอร์ที่ซ่อนอยู่ของเครือข่าย กราฟ ก่อนทำการเปลี่ยนแปลงใดๆ กับการกำหนดค่าเครือข่าย ให้ตอบคำถาม คำถามต่อไปนี้:

หากคุณเปลี่ยนค่าของพารามิเตอร์ น้ำหนัก12 (แสดงใต้โหนดอินพุตแรก x1) โหนดไหนของ การคำนวณอาจได้รับผลกระทบในอินพุตบางรายการ ได้อย่างไร
ไม่มี
โหนดที่สองใน ในเลเยอร์ที่ซ่อนอยู่ โหนดทั้งหมดในเลเยอร์ที่สองที่ซ่อนอยู่ และ โหนดเอาต์พุต
โหนดทั้งหมดใน เลเยอร์ที่ซ่อนอยู่ เลเยอร์แรกที่ซ่อนอยู่ และเลเยอร์เอาต์พุตที่ 2

จากนั้นคลิกช่องข้อความสำหรับน้ำหนัก12 (แสดงใต้ โหนดอินพุตแรก x1) เปลี่ยนค่าเป็น 5.00 แล้วกด Enter สังเกตการอัปเดตกราฟ

คำตอบของคุณถูกต้องไหม โปรดใช้ความระมัดระวังในการยืนยันคำตอบของคุณ ถ้าโหนด ค่าไม่เปลี่ยนแปลง หมายความว่าการคำนวณเบื้องหลังไม่มีการเปลี่ยนแปลงใช่ไหม

คลิกที่นี่เพื่อดูคำอธิบาย

โหนดเดียวที่ได้รับผลกระทบในเลเยอร์ที่ซ่อนอยู่รายการแรกคือโหนดที่สอง ( ที่คุณคลิก) การคำนวณค่าสำหรับโหนดอื่นๆ ใน เลเยอร์ที่ซ่อนอยู่ไม่มี w12 เป็นพารามิเตอร์ จึงไม่มี ที่ได้รับผลกระทบ โหนดทั้งหมดในเลเยอร์ที่ซ่อนไว้ชั้นที่สองจะได้รับผลกระทบ เนื่องจาก การคำนวณจะขึ้นอยู่กับค่าของโหนดที่สองในช่วง เลเยอร์ที่ซ่อนอยู่ ในทำนองเดียวกัน ค่าโหนดเอาต์พุตจะได้รับผลกระทบเนื่องจาก การคำนวณจะขึ้นอยู่กับค่าของโหนดในเลเยอร์ที่ซ่อนอยู่ที่สอง

คุณคิดว่าคำตอบคือ "ไม่มี" ใช่ไหม เพราะไม่มีค่าโหนดใน เครือข่ายเปลี่ยนไปเมื่อคุณเปลี่ยนค่าน้ำหนักหรือไม่ โปรดทราบว่า การคำนวณสำหรับโหนดอาจเปลี่ยนแปลงโดยไม่เปลี่ยนค่าของโหนด (เช่น ReLU(0) และ ReLU(–5) ให้ผลลัพธ์เป็น 0) อย่าคาดเดาเองว่าเครือข่ายได้รับผลกระทบอย่างไรจาก โดยดูจากค่าโหนด อย่าลืมดูการคำนวณด้วย

แบบฝึกหัด 2

ในแบบฝึกหัดไขว้ที่มีฟีเจอร์ ในโมดูลข้อมูลเชิงหมวดหมู่ กากบาทคุณลักษณะที่สร้างขึ้นด้วยตนเอง เพื่อให้พอดีกับข้อมูลที่ไม่ใช่เชิงเส้น ตอนนี้ คุณจะเห็นว่าคุณสามารถสร้างโครงข่ายระบบประสาทเทียมที่สามารถเรียนรู้โดยอัตโนมัติ วิธีปรับข้อมูลที่ไม่ใช่เชิงเส้นในระหว่างการฝึก

งานของคุณ: กำหนดค่าโครงข่ายระบบประสาทเทียมที่แยกจุดสีส้มออกจาก จุดสีน้ำเงินในแผนภาพด้านล่าง ทำให้สูญเสียค่าน้อยกว่า 0.2 ข้อมูลการฝึกอบรมและการทดสอบ

Instructions:

ในวิดเจ็ตแบบอินเทอร์แอกทีฟด้านล่าง

  1. แก้ไขไฮเปอร์พารามิเตอร์ของโครงข่ายระบบประสาทเทียมด้วยการทดลองกับ ของการตั้งค่าการกำหนดค่าต่อไปนี้
    • เพิ่มหรือนำเลเยอร์ที่ซ่อนไว้ออกโดยคลิกปุ่ม + และ - ด้านซ้ายของส่วนหัวเลเยอร์ที่ซ่อนในแผนภาพเครือข่าย
    • เพิ่มหรือนำเซลล์ประสาทออกจากเลเยอร์ที่ซ่อนอยู่โดยคลิก + และ - ปุ่มเหนือคอลัมน์เลเยอร์ที่ซ่อนอยู่
    • เปลี่ยนอัตราการเรียนรู้โดยเลือกค่าใหม่จากอัตราการเรียนรู้ เหนือแผนภาพ
    • เปลี่ยนฟังก์ชันการเปิดใช้งานโดยเลือกค่าใหม่จาก เมนูแบบเลื่อนลงการเปิดใช้งานเหนือแผนภาพ
  2. คลิกปุ่มเล่น (▶️) เหนือแผนภาพเพื่อฝึกโครงข่ายประสาท โดยใช้พารามิเตอร์ที่ระบุ
  3. สังเกตการแสดงภาพของโมเดลที่ตรงกับข้อมูลเป็นการฝึก มีความคืบหน้า และ การสูญเสียการทดสอบและ ค่าการสูญเสียการฝึกใน ส่วนเอาต์พุต
  4. หากโมเดลไม่สูญเสียข้อมูลการทดสอบและการฝึกต่ำกว่า 0.2 คลิกรีเซ็ต แล้วทำขั้นตอนที่ 1-3 ซ้ำโดยใช้การกำหนดค่าอีกชุดหนึ่ง การตั้งค่า ทำขั้นตอนนี้ซ้ำจนกว่าจะได้ผลลัพธ์ที่ต้องการ

คลิกที่นี่เพื่อดูโซลูชันของเรา

เราประสบผลสำเร็จทั้งการสูญเสียจากการทดสอบและการฝึกอบรมต่ำกว่า 0.2 โดย

  • การเพิ่มเลเยอร์ที่ซ่อนอยู่ 1 ชั้นที่มีเซลล์ประสาท 3 เซลล์
  • เลือกอัตราการเรียนรู้เป็น 0.01
  • เลือกฟังก์ชันเปิดใช้งานของ ReLU