ฟังก์ชั่นการเปิดใช้งานประสาท - ความแตกต่างระหว่าง Logistic / Tanh / ฯลฯ

ฉันกำลังเขียนวิธีการโครงข่ายประสาทเทียมขั้นพื้นฐานบางอย่าง โดยเฉพาะฟังก์ชันการเปิดใช้งาน และได้เข้าถึงขีดจำกัดความรู้คณิตศาสตร์อันไร้สาระของฉันแล้ว ฉันเข้าใจช่วงที่เกี่ยวข้อง (-1/1) (0/1) ฯลฯ แต่คำอธิบายและการใช้งานที่แตกต่างกันทำให้ฉันสับสน

โดยเฉพาะ sigmoid, โลจิสติก, ไบโพลาร์ sigmoid, tanh ฯลฯ

sigmoid เป็นเพียงการอธิบายรูปร่างของฟังก์ชันโดยไม่คำนึงถึงช่วงหรือไม่ ถ้าเป็นเช่นนั้น tanh ถือเป็น 'ฟังก์ชันซิกมอยด์' หรือไม่

ฉันเคยเห็น 'bipolar sigmoid' เมื่อเปรียบเทียบกับ 'tanh' ในกระดาษ แต่ฉันได้เห็นการใช้งานทั้งสองฟังก์ชั่น (ในห้องสมุดต่างๆ) ด้วยรหัสเดียวกัน:

(( 2/ (1 + ประสบการณ์(-2 * n))) - 1). พวกเขาเป็นสิ่งเดียวกันทุกประการหรือไม่?

ในทำนองเดียวกัน ฉันได้เห็นการเปิดใช้งาน logistic และ sigmoid ด้วยโค้ดเดียวกัน:

( 1/ (1 + ประสบการณ์(-1 * n))). สิ่งเหล่านี้เทียบเท่ากันหรือไม่?

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


person Satellite    schedule 07.08.2012    source แหล่งที่มา


คำตอบ (4)


ฟังก์ชันลอจิสติก: ex/(ex + ec)

กรณีพิเศษ ("มาตรฐาน") ของฟังก์ชันลอจิสติก: 1/(1 + e-x)

ไบโพลาร์ซิกมอยด์: ไม่เคยได้ยินเรื่องนี้มาก่อน

ทานห์: (ex-e-x)/(ex + e-x)

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

(( 2/ (1 + Exp(-2 * x))) - 1) เทียบเท่ากับ tanh(x)

person Beta    schedule 07.08.2012
comment
คำตอบที่ดี ขอบคุณ! ฉันตรวจสอบฟังก์ชัน 'ไบโพลาร์ซิกมอยด์' แล้ว และในรายงานที่ฉันมีต่อหน้าฉัน พวกเขาได้นำไปใช้เป็น: (( 2/ (1 + Exp(-1 * x))) - 1) = tanh(x /2) - person Satellite; 08.08.2012
comment
ที่จริงแล้วคุณต้องระวังว่าคุณใช้ซิกมอยด์ตัวไหน - เช่น อย่างน้อยก็ตรงกับช่วงเอาต์พุต (หรือลดขนาดเอาต์พุตใหม่) นอกจากนี้ด้วย backpropagation tanh/tansig มีแนวโน้มที่จะทำงานได้ดีกว่า logsig ในเลเยอร์ที่ซ่อนอยู่ เนื่องจากค่าจะอยู่ระหว่าง -1 ถึง +1 (ไบโพลาร์) มากกว่า 0 ถึง +1 (ยูนิโพลาร์) และรักษาสมดุลให้ดีขึ้น - person David M W Powers; 07.04.2017

โดยทั่วไปความแตกต่างที่สำคัญที่สุดคือ สามารถสร้างความแตกต่างได้อย่างต่อเนื่องอย่างราบรื่น เช่น tanh และ logistic เทียบกับ step หรือ truncated b การแข่งขัน vs การโอน ค. ซิกมอยด์กับรัศมี d สมมาตร (-1,+1) เทียบกับไม่สมมาตร (0,1)

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

โดยทั่วไป คำแนะนำมีไว้สำหรับ tanh บนเลเยอร์ระดับกลางเพื่อความสมดุล +/- และเหมาะกับเลเยอร์เอาท์พุตกับงาน (การตัดสินใจคลาสบูลีน/ไดโคโตมัสด้วยเกณฑ์ เอาท์พุตลอจิสติกหรือการแข่งขัน (เช่น softmax การทำให้เป็นมาตรฐานทั่วไปของมัลติคลาสของลอจิสติกส์ด้วยตนเอง ); งานการถดถอยอาจเป็นเชิงเส้นก็ได้) เลเยอร์เอาต์พุตไม่จำเป็นต้องสามารถหาอนุพันธ์ได้อย่างต่อเนื่อง เลเยอร์อินพุตควรได้รับการทำให้เป็นมาตรฐานในทางใดทางหนึ่ง ไม่ว่าจะเป็น [0,1] หรือดีกว่านั้นยังคงเป็นมาตรฐานหรือการทำให้เป็นมาตรฐานโดยลดค่าเป็น [-1,+1] หากคุณรวมอินพุตจำลองเป็น 1 ให้ทำให้เป็นมาตรฐาน ดังนั้น ||x||p = 1 คุณจะหารด้วยผลรวมหรือความยาว และข้อมูลขนาดนี้จะยังคงอยู่ในอินพุตอคติจำลอง แทนที่จะสูญหายไป หากคุณทำให้ตัวอย่างเป็นมาตรฐาน สิ่งนี้จะรบกวนข้อมูลการทดสอบของคุณในทางเทคนิคหากคุณดูข้อมูลเหล่านั้น หรือข้อมูลเหล่านั้นอาจอยู่นอกขอบเขตหากคุณไม่ทำ แต่ด้วย ||2 การทำให้เป็นมาตรฐาน การแปรผันหรือข้อผิดพลาดดังกล่าวควรเข้าใกล้การแจกแจงแบบปกติหากเป็นผลของการแจกแจงตามธรรมชาติหรือข้อผิดพลาด ซึ่งหมายความว่ามีความเป็นไปได้สูงที่จะไม่เกินช่วงเดิม (อาจประมาณ 2 ส่วนเบี่ยงเบนมาตรฐาน) มากกว่าปัจจัยเล็กๆ (กล่าวคือ ค่าที่เกินขอบเขตดังกล่าวถือเป็นค่าผิดปกติและไม่มีนัยสำคัญ)

ดังนั้น ฉันขอแนะนำการทำให้อินสแตนซ์เป็นมาตรฐานหรือมาตรฐานรูปแบบเอนเอียงหรือทั้งสองอย่างบนเลเยอร์อินพุต (อาจมีการลดข้อมูลด้วย SVD) แทนบนเลเยอร์ที่ซ่อนอยู่ และฟังก์ชันขีดจำกัด ฟังก์ชันลอจิสติก หรือฟังก์ชันการแข่งขันบนเอาต์พุตสำหรับการจำแนกประเภท แต่เป็นเชิงเส้นด้วย เป้าหมายที่ไม่เป็นมาตรฐานหรืออาจบันทึกด้วยเป้าหมายที่ทำให้เป็นมาตรฐานสำหรับการถดถอย

person David M W Powers    schedule 22.08.2014

คำนี้ก็คือ (และฉันได้ทดสอบแล้ว) ว่าในบางกรณี การใช้ tanh อาจจะดีกว่า logistic เนื่องจาก

  1. เอาต์พุตใกล้ Y = 0 บน โลจิสติก คูณด้วยน้ำหนัก w ให้ค่าใกล้ 0 ซึ่ง ไม่มีผลกระทบมากนัก ในชั้นบนสุดซึ่งส่งผลกระทบ (แม้ว่าการขาดงานจะส่งผลต่อด้วย) อย่างไรก็ตาม ค่าใกล้ Y = -1 บน tahn คูณด้วยน้ำหนัก w อาจให้ผลลัพธ์จำนวนมากซึ่งมีผลเป็นตัวเลขมากกว่า
  2. อนุพันธ์ของ tanh (1 - y^2) ให้ค่าที่มากกว่า logistic (y (1 -y) = y - y^2) ตัวอย่างเช่น เมื่อ z = 0 ฟังก์ชัน logistic ให้ผลตอบแทน y = 0.5 และ y' = 0.25 สำหรับ tanh y = 0 แต่ y' = 1 (คุณสามารถเห็นสิ่งนี้โดยทั่วไปได้จากการดูกราฟ) หมายความว่า เลเยอร์ tanh อาจเรียนรู้ได้เร็วกว่าเลเยอร์ logistic เนื่องจากขนาดของการไล่ระดับสี
person Cristian Garcia    schedule 02.02.2015

ซิกมอยด์แบบไบโพลาร์ = (1-e^(-x))/(1 + e^(-x))

สามารถดูคำอธิบายโดยละเอียดได้ที่ที่นี่

person Gongqin Shen    schedule 23.09.2015