ฟังก์ชันเปิดใช้งาน tanh เทียบกับฟังก์ชันเปิดใช้งาน sigmoid


82

ฟังก์ชั่นเปิดใช้งาน tanh คือ:

tanh(x)=2σ(2x)1

ที่ไหน , ฟังก์ชั่น sigmoid ที่ถูกกำหนดให้เป็น:x}σ(x)

σ(x)=ex1+ex

คำถาม:

  • มันมีความสำคัญระหว่างการใช้ฟังก์ชั่นการเปิดใช้งานทั้งสอง (tanh vs. sigma) หรือไม่?
  • ฟังก์ชั่นไหนดีกว่ากัน

12
tanh(x)=2σ(2x)1
Roman Shapovalov

Deep Neural Networks ได้ก้าวต่อไป การตั้งค่าปัจจุบันคือฟังก์ชั่น RELU
Paul Nord

7
@PaulNord ทั้ง tanh และ sigmoids ยังคงใช้งานร่วมกับการเปิดใช้งานอื่น ๆ เช่น RELU ขึ้นอยู่กับสิ่งที่คุณพยายามทำ
Tahlor

คำตอบ:


80

ใช่มันเป็นเรื่องสำคัญด้วยเหตุผลทางเทคนิค โดยทั่วไปสำหรับการเพิ่มประสิทธิภาพ มันคุ้มค่าที่จะอ่านE Backprop ที่มีประสิทธิภาพโดย LeCun และคณะ

มีสองเหตุผลสำหรับตัวเลือกนั้น (สมมติว่าคุณทำให้ข้อมูลของคุณเป็นมาตรฐานและสิ่งนี้สำคัญมาก):

  1. มีการไล่ระดับสีที่แข็งแกร่งกว่า: เนื่องจากข้อมูลอยู่กึ่งกลาง 0 ศูนย์อนุพันธ์จึงสูงกว่า หากต้องการดูสิ่งนี้ให้คำนวณอนุพันธ์ของฟังก์ชัน tanh และสังเกตว่าช่วง (ค่าเอาต์พุต) คือ [0,1]

ช่วงของฟังก์ชัน tanh คือ [-1,1] และของฟังก์ชัน sigmoid คือ [0,1]

  1. หลีกเลี่ยงอคติในการไล่ระดับสี บทความนี้อธิบายได้ดีมากในบทความและควรอ่านเพื่อทำความเข้าใจปัญหาเหล่านี้

ฉันมีข้อสงสัยเล็กน้อยในเอกสารที่คุณแนะนำ ในหน้า 14 "เมื่อ MLP ได้แบ่งปันน้ำหนัก (เช่น: ตาข่าย Convolutional) ควรเลือกอัตราการเรียนรู้ในลักษณะที่เป็นสัดส่วนกับรากที่สองของการเชื่อมต่อที่ไม่แบ่งปันน้ำหนัก" คุณช่วยอธิบายได้ไหม
satya

คำถามนี้ได้รับการตอบแล้วที่นี่stats.stackexchange.com/questions/47590/…
jpmuc

1
นั่นเป็นคำถามทั่วไปมาก เรื่องสั้นสั้น: ฟังก์ชั่นค่าใช้จ่ายกำหนดสิ่งที่เครือข่ายประสาทควรทำ: การจำแนกหรือการถดถอยและวิธีการ หากคุณสามารถรับสำเนาของ "โครงข่ายประสาทเทียมสำหรับการจดจำรูปแบบ" โดย Christopher Bishop นั่นจะยอดเยี่ยม นอกจากนี้ "การเรียนรู้ของเครื่อง" โดย Mitchell ยังให้คำอธิบายที่ดีในระดับพื้นฐานมากขึ้น
jpmuc

1
ฉันขอโทษ Satya ฉันมักจะค่อนข้างยุ่งในระหว่างสัปดาห์ คุณทำให้ข้อมูลของคุณเป็นปกติอย่างไร en.wikipedia.org/wiki/Whitening_transformationฉันไม่แน่ใจจริงๆว่าปัญหาของคุณจะเป็นอย่างไร วิธีที่ง่ายที่สุดคือลดค่าเฉลี่ยลงแล้วทำให้เท่ากันกับเมทริกซ์ความแปรปรวนร่วม evtl. คุณต้องเพิ่มองค์ประกอบบางส่วนสำหรับความถี่สูง (ดูการแปลง ZCA ในการอ้างอิงข้างต้น)
jpmuc

1
ขอบคุณมาก juampa คุณช่วยฉันได้มากจริงๆ การอ่านที่แนะนำนั้นดีมาก ฉันกำลังทำโครงการเกี่ยวกับการขุดข้อมูลสภาพภูมิอากาศ 50% ของคุณสมบัติอินพุตของฉันคืออุณหภูมิ (ช่วง 200K-310K) และ 50% ของคุณสมบัติอินพุตของฉันคือค่าความดัน (ช่วง 50000 pa ถึง 100000 pa) ฉันกำลังทำไวท์เทนนิ่ง ก่อน pca มีความจำเป็นใด ๆ ที่จะทำให้เป็นมาตรฐานหรือไม่ ... ถ้าใช่ฉันจะทำให้ปกติเป็นมาตรฐานได้อย่างไร? ฉันควรทำให้เป็นมาตรฐานก่อนที่จะลบด้วยค่าเฉลี่ยหรือหลังลบด้วยค่าเฉลี่ยหรือไม่ ฉันได้รับผลลัพธ์ที่แตกต่างถ้าฉัน normalizing โดยวิธีการที่แตกต่างกัน ...
สัตยา

32

ขอบคุณมาก @jpmuc! แรงบันดาลใจจากคำตอบของคุณฉันคำนวณและวางแผนอนุพันธ์ของฟังก์ชัน tanh และฟังก์ชัน sigmoid มาตรฐานแยกกัน ฉันต้องการแบ่งปันกับคุณทั้งหมด นี่คือสิ่งที่ฉันได้รับ นี่คืออนุพันธ์ของฟังก์ชัน tanh สำหรับอินพุตระหว่าง [-1,1] เรามีอนุพันธ์ระหว่าง [0.42, 1] ป้อนคำอธิบายรูปภาพที่นี่

นี่คืออนุพันธ์ของฟังก์ชัน sigmoid มาตรฐาน f (x) = 1 / (1 + exp (-x)) สำหรับอินพุตระหว่าง [0,1] เรามีอนุพันธ์ระหว่าง [0.20, 0.25] ป้อนคำอธิบายรูปภาพที่นี่

เห็นได้ชัดว่าฟังก์ชัน tanh ให้การไล่ระดับสีที่แข็งแกร่ง


6
อีกวิธีในการดูนี่คือσ (2x) เหมือนกับ same (x) แต่เมื่อใช้การยืดแนวนอนสเกลแฟกเตอร์ 1/2 (เช่นกราฟนี้เป็นกราฟเดียวกัน เมื่อคุณ
บีบ

2
ฉันไม่เห็นว่าทำไมสิ่งนี้ถึงสร้างความแตกต่าง สเกลและการบีบจะสุ่มสำหรับแต่ละโหนดและ (ด้วยออฟเซ็ตและน้ำหนักของอินพุตและเอาต์พุต) ทั้งคู่จะเป็นตัวประมาณสากลการรวมเข้าด้วยกันในผลลัพธ์เดียวกัน
endolith
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.