ทางเลือกของฟังก์ชั่นการเปิดใช้งานตาข่ายซ่อนเร้น


14

ฉันได้อ่านที่อื่นแล้วว่าฟังก์ชั่นการเปิดใช้งานเลเยอร์ที่ซ่อนอยู่ใน NN ควรเป็นไปตามความต้องการเช่นถ้าคุณต้องการค่าในช่วง -1 ถึง 1 ใช้ tanh และใช้ sigmoid สำหรับช่วง 0 ถึง 1

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


3
อาร์กิวเมนต์นี้เป็น bs เนื่องจาก (tanh + 1) / 2 อยู่ใน 0-1 ด้วยไม่ต้องพูดถึงว่า "sigmoid" เป็นคำที่คลุมเครือซึ่งค่อนข้างครอบคลุม tanh

มันอาจเป็นมูลค่าการกล่าวขวัญว่าชุดข้อมูลใด ๆ ที่สามารถนัย 0-> 1 1 + (1 / exp(-sum))และทำเพื่อให้ใช้การเปิดใช้งาน ทำให้ความต้องการในการทำความเข้าใจนั้นยากมากโดยไม่ต้องลองทั้งคู่ในแต่ละชุดข้อมูล ความต้องการตามที่คุณอธิบายที่นี่นั้นเชื่อมโยงกับความสัมพันธ์ที่เกิดขึ้นจริงเช่นชุดข้อมูลไบนารีจะเรียนรู้ได้เร็วขึ้นหรือไม่ได้รับการเปิดใช้งานที่แตกต่างกันเลย
Adrian Seeley

คำตอบ:


12

LeCun กล่าวถึงเรื่องนี้ในส่วนที่มีประสิทธิภาพ Backprop 4.4 แรงจูงใจนั้นคล้ายกับแรงจูงใจในการทำให้อินพุตเป็นศูนย์ให้เป็นมาตรฐาน (มาตรา 4.3) เอาต์พุตเฉลี่ยของฟังก์ชันการเปิดใช้งาน tanh มีแนวโน้มที่จะใกล้เคียงกับศูนย์มากกว่า sigmoid ซึ่งเอาต์พุตเฉลี่ยต้องเป็นค่าบวก


อ่านข้อมูลมาก!
babelproofreader

6

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

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

ในระยะสั้นใช้ tanh สำหรับฟังก์ชั่นการเปิดใช้งานเลเยอร์ที่ซ่อนอยู่เลือกฟังก์ชั่นการเปิดใช้งานเลเยอร์เอาท์พุทเพื่อบังคับใช้ข้อ จำกัด ที่ต้องการในการส่งออก (ตัวเลือกทั่วไป: เชิงเส้น - ไม่มีข้อ จำกัด โลจิสติก - เอาท์พุทอยู่ระหว่าง 0 และ 1


ฉันไม่ได้รับ "... ทั้งคู่เป็นศูนย์ ... " ฉันเห็นผลลัพธ์อาจเป็นศูนย์ แต่เป็นไปได้อย่างไรที่จะมีอนุพันธ์ของฟังก์ชันลอจิสติกเป็นศูนย์โดยที่ไม่ต้อง
erogol

มันไม่ได้ไปที่ศูนย์เลยสำหรับฟังก์ชันลอจิสติกมันเล็กมาก สำหรับฟังก์ชัน tanh อนุพันธ์จะใหญ่ที่สุดเมื่อเอาต์พุตเป็นศูนย์และเอาต์พุตที่ใหญ่ที่สุดเมื่ออนุพันธ์มีขนาดเล็กที่สุด กระดาษต้นฉบับเขียนขึ้นในช่วงปลายยุค 80 ฉันจะดูว่าฉันสามารถจำรายละเอียดได้หรือไม่
Dikran Marsupial

2
ฉันไม่พบกระดาษต้นฉบับ แต่เอกสารบางส่วนในหนังสือ "Neural Networks - Tricks of the Trade" แนะนำว่า tanh จะดีกว่าในเลเยอร์ที่ซ่อนอยู่เนื่องจากเครือข่ายทำงานได้ดีกว่าหากการเปิดใช้งานเลเยอร์ที่ซ่อนอยู่กึ่งกลาง )
Dikran Marsupial

2

1.7159×tanh(x×(2/3))-1+1[-1.5,+1.5]

แนวคิดทั่วไปในการเลือก sigmoid สำหรับจุดประสงค์ของคุณคือเลือกตามกฎค่าผลลัพธ์ของคุณอยู่ในช่วงของจุดทำให้อนุพันธ์อันดับสองของฟังก์ชัน sigmoid สูงสุด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.