หากต้องการดูว่าโครงข่ายประสาทจะช่วยแก้ปัญหาที่ไม่ใช่แบบเชิงเส้นได้อย่างไร มาเริ่มกันเลย ด้วยการนำเสนอรูปแบบเชิงเส้นเป็นกราฟ
รูปที่ 3 รูปแบบเชิงเส้นเป็นกราฟ
วงกลมสีน้ำเงินแต่ละวงกลมแสดงถึงคุณลักษณะการป้อนข้อมูล และวงกลมสีเขียวแสดงถึง ผลรวมถ่วงน้ำหนักของอินพุต
เราจะปรับเปลี่ยนรูปแบบนี้เพื่อปรับปรุงความสามารถในการจัดการกับเนื้อหาแบบไม่ใช่เชิงเส้นได้อย่างไร หรือไม่
เลเยอร์ที่ซ่อนอยู่
ในโมเดลที่แสดงเป็นกราฟต่อไปนี้ เราได้เพิ่ม "เลเยอร์ที่ซ่อนอยู่" ของค่ากลาง โหนดสีเหลืองแต่ละรายการในเลเยอร์ที่ซ่อนอยู่เป็นผลรวมถ่วงน้ำหนัก ของค่าโหนดอินพุตสีน้ำเงิน ผลลัพธ์คือผลรวมถ่วงน้ำหนักของฟิลด์สีเหลือง
รูปที่ 4 กราฟของโมเดล 2 เลเยอร์
โมเดลนี้เป็นเชิงเส้นใช่ไหม ใช่ เอาต์พุตยังคงเป็นชุดค่าผสมเชิงเส้นของ อินพุต
ในรูปแบบที่แสดงเป็นกราฟต่อไปนี้ เราได้เพิ่มแท็ก ของผลรวมถ่วงน้ำหนัก
รูปที่ 5 กราฟของโมเดล 3 เลเยอร์
รูปแบบนี้ยังคงเป็นเชิงเส้นใช่ไหม ใช่แล้ว เมื่อคุณแสดงเอาต์พุตเป็น ของอินพุตและลดความซับซ้อน คุณจะรับผลรวมแบบถ่วงน้ำหนักของ อินพุต ผลรวมนี้จะไม่สร้างแบบจำลองปัญหาที่ไม่ใช่เชิงเส้นในรูปที่ 2 อย่างมีประสิทธิภาพ
ฟังก์ชันการเปิดใช้งาน
ในการสร้างแบบจำลองปัญหาที่ไม่ใช่เชิงเส้น เราสามารถแนะนำรูปแบบที่ไม่เป็นเชิงเส้นได้โดยตรง เราสามารถ ไปป์ไลน์ที่โหนดของเลเยอร์ที่ซ่อนอยู่แต่ละโหนดผ่านฟังก์ชันที่ไม่ใช่เชิงเส้น
ในโมเดลที่แสดงด้วยกราฟต่อไปนี้ ค่าของแต่ละโหนดใน เลเยอร์ที่ซ่อน 1 ได้รับการเปลี่ยนรูปแบบโดยฟังก์ชันที่ไม่ใช่เชิงเส้นก่อนที่จะส่งต่อไป กับผลรวมถ่วงน้ำหนักของเลเยอร์ถัดไป ฟังก์ชันที่ไม่ใช่เชิงเส้นนี้เรียกว่า ฟังก์ชันการเปิดใช้งาน
รูปที่ 6 กราฟของโมเดล 3 เลเยอร์พร้อมฟังก์ชันการเปิดใช้งาน
ตอนนี้เราได้เพิ่มฟังก์ชันเปิดใช้งานแล้ว การเพิ่มเลเยอร์มีผลอย่างมาก การวางซ้อนสิ่งที่ไม่ใช่เชิงเส้นในรายการที่ไม่ใช่เชิงเส้นช่วยให้เราสร้างแบบจำลองที่ซับซ้อนมาก ๆ ได้ ความสัมพันธ์ระหว่างอินพุตและเอาต์พุตที่คาดการณ์ไว้ สรุปก็คือ คือการเรียนรู้ฟังก์ชันที่ซับซ้อนและระดับสูงขึ้นไปได้อย่างมีประสิทธิภาพ อินพุตดิบ หากคุณต้องการทำความเข้าใจเพิ่มเติมเกี่ยวกับวิธีการทำงาน โปรดดูที่ บล็อกโพสต์ที่ยอดเยี่ยมของ Chris Olah
ฟังก์ชันการเปิดใช้งานทั่วไป
ฟังก์ชันการเปิดใช้งาน sigmoid ต่อไปนี้จะแปลงผลรวมแบบถ่วงน้ำหนักเป็น ค่าระหว่าง 0 ถึง 1
โดยมีโครงเรื่องดังนี้
รูปที่ 7 ฟังก์ชันการเปิดใช้งาน Sigmoid
ฟังก์ชันเปิดใช้งานหน่วยเชิงเส้นแบบตรงต่อไปนี้ (หรือ ReLU สำหรับ สั้น) มักจะทำงานได้ดีกว่า ฟังก์ชันที่ราบรื่นอย่าง sigmoid และยังคำนวณได้ง่ายขึ้นอีกด้วย
ความเหนือกว่าของ ReLU นั้นอิงตามการค้นพบเชิงประจักษ์ ซึ่งอาจเกิดจาก ReLU มีการตอบสนองที่เป็นประโยชน์มากขึ้น การตอบสนองของซิกมอยด์ตก ดับได้อย่างรวดเร็วทั้ง 2 ฝั่ง
รูปที่ 8 ฟังก์ชันการเปิดใช้งาน ReLU
ที่จริงแล้ว ฟังก์ชันทางคณิตศาสตร์ใดๆ ก็สามารถทำหน้าที่เป็นฟังก์ชันเปิดใช้งานได้ สมมติว่า \(\sigma\) แสดงถึงฟังก์ชันการเปิดใช้งานของเรา (Relu, Sigmoid หรืออะไรก็ได้) ดังนั้น ค่าของโหนดในเครือข่ายจะกำหนดตามข้อมูลต่อไปนี้ สูตร:
สรุป
ตอนนี้โมเดลของเรามีคอมโพเนนต์มาตรฐานทั้งหมดเหมือนกับสิ่งที่ผู้ใช้มัก หมายถึง "โครงข่ายระบบประสาทเทียม"
- ชุดของโหนดคล้ายกับเซลล์ประสาทที่จัดเรียงเป็นเลเยอร์
- ชุดน้ำหนักที่แสดงการเชื่อมต่อระหว่างโครงข่ายระบบประสาทเทียมแต่ละเครือข่าย และเลเยอร์ที่อยู่ด้านล่าง เลเยอร์ด้านล่างอาจ ชั้นโครงข่ายระบบประสาทเทียมอีกชั้นหนึ่ง หรือชั้นอื่นๆ อีกชั้นหนึ่ง
- ชุดของการให้น้ำหนักพิเศษ 1 ชุดสำหรับแต่ละโหนด
- ฟังก์ชันเปิดใช้งานที่แปลงเอาต์พุตของแต่ละโหนดในเลเยอร์ เลเยอร์ต่างๆ อาจมีฟังก์ชันการเปิดใช้งานที่แตกต่างกัน
ข้อควรระวัง: โครงข่ายระบบประสาทเทียมไม่จำเป็นต้องดีกว่าเสมอไป ข้ามฟีเจอร์ แต่โครงข่ายระบบประสาทเทียมก็มีทางเลือกที่ยืดหยุ่นที่ได้ผล ในหลายๆ กรณี