Neural Network: Matlab ใช้ฟังก์ชันการเปิดใช้งานที่แตกต่างกันสำหรับเลเยอร์ต่างๆ - ทำไม?
ฉันได้รับการฝึกอบรมเกี่ยวกับmatlab an Artificial Neural Networkโดยมีชั้นอินพุตหนึ่งชั้นชั้นซ่อนหนึ่งชั้นและชั้นเอาต์พุตหนึ่งชั้น (ผลลัพธ์ของฉันคือค่าระหว่างศูนย์และหนึ่งซึ่งฉันเปลี่ยนเป็น 0 หรือ 1 ตามเกณฑ์ 0.5)
ฉันได้สังเกตเห็นว่าโดยเริ่มต้น , MATLAB ใช้'tansig' ฟังก์ชั่นการถ่ายโอนสำหรับชั้นที่ซ่อนอยู่แล้ว'logsig' ฟังก์ชั่นการถ่ายโอนสำหรับชั้นเอาท์พุท ใครสามารถให้คำอธิบายเกี่ยวกับเรื่องนี้ได้บ้าง?
ขอบคุณล่วงหน้า!
คำตอบ
แนวคิดใหญ่คือไม่มีข้อกำหนดเฉพาะที่ทุกชั้นของเครือข่ายประสาทเทียมใช้ฟังก์ชันการเปิดใช้งานเดียวกัน คุณสามารถผสมและจับคู่ได้ตามที่คุณต้องการ ที่กล่าวว่ามีเหตุผลบางประการที่ชอบใช้$\tanh$ เป็นฟังก์ชันการเปิดใช้งานของเลเยอร์ที่ซ่อนอยู่และ $\sigma$ เป็นฟังก์ชันเอาต์พุต
$\tanh(x)=\frac{\exp(x)-\exp(-x)}{\exp(x)+\exp(-x)}$ฟังก์ชันเป็นฟังก์ชันการเปิดใช้งานมาตรฐาน การใช้มันในเครือข่ายประสาทเทียมไม่น่าแปลกใจไปกว่าการใช้กำลังสองน้อยที่สุดเป็นฟังก์ชันวัตถุประสงค์สำหรับงานถดถอย
ฟังก์ชั่น $\sigma(x)=\frac{1}{1+\exp(-x)}$เป็นวิธีมาตรฐานในการจับคู่จำนวนจริงกับค่าจริงใน (0,1) ดังนั้นจึงมักใช้ในการสร้างแบบจำลองความน่าจะเป็น เนื่องจากงานของคุณคือการทำนาย 0 หรือ 1 การใช้แบบจำลองนี้จึงแนะนำการสร้างแบบจำลองความน่าจะเป็นที่ตัวอย่างมีป้ายกำกับ 1
การใช้ไฟล์ $\tanh$ ฟังก์ชันในชั้นสุดท้ายจะไม่น่าเชื่อเนื่องจากไม่มีความสัมพันธ์ที่ชัดเจนกับการสร้างแบบจำลองความน่าจะเป็นที่ตัวอย่างมีป้ายกำกับ 1 ฟังก์ชัน $\tanh$ ส่งกลับค่าระหว่าง -1 ถึง 1 ดังนั้นจึงไม่ใช่ความน่าจะเป็น
หากคุณต้องการคุณสามารถใช้ไฟล์ $\sigma(x)$เป็นฟังก์ชันการเปิดใช้งาน แต่$\tanh$เป็นที่ต้องการเนื่องจากมีการไล่ระดับสีที่แข็งแกร่งกว่าและให้ผลลัพธ์ที่เป็นบวกและลบทำให้ง่ายต่อการปรับให้เหมาะสม ดู: ฟังก์ชันการเปิดใช้งาน tanh เทียบกับฟังก์ชันการเปิดใช้งาน sigmoid
แต่โปรดทราบว่าโดยทั่วไปแล้ว ReLU และฟังก์ชันที่คล้ายกันมักจะถูกเรียกใช้เป็นฟังก์ชันการเปิดใช้งานในเลเยอร์ที่ซ่อนอยู่ ดู: ข้อดีของ ReLU ที่มีต่อฟังก์ชัน sigmoid ในโครงข่ายประสาทเทียมแบบลึกคืออะไร?
ทางเลือกที่จะใช้ $\tanh$ตามค่าเริ่มต้นมักจะเกี่ยวกับแนวทางปฏิบัติในการพัฒนาซอฟต์แวร์มากกว่าหลักการทางคณิตศาสตร์: การเปลี่ยนแปลงพฤติกรรมเริ่มต้นของซอฟต์แวร์สามารถทำลายรหัสเดิมและทำให้เกิดพฤติกรรมที่ไม่คาดคิดได้ หน่วย ReLU เพิ่งได้รับความนิยมเมื่อไม่นานมานี้เมื่อเทียบกับอายุของ MATLAB ส่วนเสริม Neural Network Toolbox เผยแพร่ครั้งแรกในปี 1992 (ตั้งแต่นั้นมาได้รับการเปลี่ยนชื่อเป็น "Deep Learning Toolbox") ในปี 1992 การสร้างเครือข่ายประสาทเทียมเกือบจะตรงกันกับเครือข่ายชั้นเดียวกับ$\tanh$ หรือ $\sigma$ ฟังก์ชั่นการเปิดใช้งาน
แต่ไม่น่าจะมีคำอธิบายที่ชัดเจนว่าเหตุใด MATLAB จึงเลือกค่าเริ่มต้นนี้เว้นแต่พวกเขาจะเผยแพร่เหตุผลสำหรับตัวเลือกนี้ (เช่นบันทึกประจำรุ่นหรือเอกสารประกอบ)