คำถามติดแท็ก softmax

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

4
ฟังก์ชั่น Softmax vs Sigmoid ในลอจิสติกลอจิก
อะไรคือตัวเลือกของฟังก์ชั่น (Softmax vs Sigmoid) ในลอจิสติกลักษณนาม? สมมติว่ามี 4 ชั้นเรียนเอาท์พุท แต่ละฟังก์ชั่นด้านบนให้ความน่าจะเป็นของแต่ละคลาสเป็นเอาต์พุตที่ถูกต้อง ดังนั้นอันไหนที่จะใช้สำหรับลักษณนาม

6
Backpropagation ด้วย Softmax / Cross Entropy
ฉันพยายามที่จะเข้าใจวิธีการทำงานของ backpropagation สำหรับเลเยอร์เอาต์พุต softmax / cross-entropy ฟังก์ชันข้อผิดพลาดข้ามเอนโทรปีคือ E(t,o)=−∑jtjlogojE(t,o)=−∑jtjlog⁡ojE(t,o)=-\sum_j t_j \log o_j ด้วยและเป็นเป้าหมายและเอาต์พุตที่เซลล์ประสาทตามลำดับ ผลรวมอยู่เหนือเซลล์ประสาทแต่ละเซลล์ในชั้นเอาต์พุต นั้นเป็นผลมาจากฟังก์ชั่น softmax:tttooojjjojojo_j oj=softmax(zj)=ezj∑jezjoj=softmax(zj)=ezj∑jezjo_j=softmax(z_j)=\frac{e^{z_j}}{\sum_j e^{z_j}} อีกครั้งผลรวมจะอยู่เหนือแต่ละเซลล์ประสาทในเลเยอร์เอาต์พุตและคืออินพุตไปยังเซลล์ประสาท :zjzjz_jjjj zj=∑iwijoi+bzj=∑iwijoi+bz_j=\sum_i w_{ij}o_i+b นั่นคือผลรวมกว่าเซลล์ทั้งหมดในชั้นก่อนหน้านี้กับการส่งออกของพวกเขาที่สอดคล้องกันและน้ำหนักต่อเซลล์ประสาทบวกอคติขoioio_iwijwijw_{ij}jjjbbb ตอนนี้เพื่ออัปเดตน้ำหนักที่เชื่อมต่อเซลล์ประสาทในชั้นเลเยอร์เอาท์พุทกับเซลล์ประสาทในชั้นก่อนหน้าฉันต้องคำนวณอนุพันธ์บางส่วนของฟังก์ชันข้อผิดพลาดโดยใช้กฎลูกโซ่:wijwijw_{ij}jjjiii ∂E∂wij=∂E∂oj∂oj∂zj∂zj∂wij∂E∂wij=∂E∂oj∂oj∂zj∂zj∂wij\frac{\partial E} {\partial w_{ij}}=\frac{\partial E} {\partial o_j} \frac{\partial o_j} {\partial z_{j}} \frac{\partial z_j} {\partial w_{ij}} กับเป็น input เพื่อเซลล์ประสาทญzjzjz_jjjj เทอมสุดท้ายค่อนข้างเรียบง่าย เนื่องจากมีน้ำหนักเพียงหนึ่งเดียวระหว่างและอนุพันธ์คือ:iiijjj ∂zj∂wij=oi∂zj∂wij=oi\frac{\partial z_j} {\partial w_{ij}}=o_i เทอมแรกคือการสืบทอดของฟังก์ชันข้อผิดพลาดเกี่ยวกับเอาต์พุต :ojojo_j ∂E∂oj=−tjoj∂E∂oj=−tjoj\frac{\partial …

1
Cross-Entropy หรือ Log Likelihood ในเลเยอร์เอาต์พุต
ฉันอ่านหน้านี้: http://neuralnetworksanddeeplearning.com/chap3.html และมันบอกว่าชั้นเอาท์พุท sigmoid ที่มีการข้ามเอนโทรปีนั้นค่อนข้างจะคล้ายกับเลเยอร์เอาต์พุต softmax ที่มีความเป็นไปได้ในการบันทึก จะเกิดอะไรขึ้นถ้าฉันใช้ sigmoid กับ log-likelihood หรือ softmax กับ cross entropy ใน layer output มันดีไหม เพราะฉันเห็นว่ามีความแตกต่างเพียงเล็กน้อยในสมการระหว่างเอนโทรปีของครอส C= - 1nΣx( yLNa + ( 1 - y) ln( 1 - a ) )C=−1n∑x(yln⁡a+(1−y)ln⁡(1−a))C = -\frac{1}{n} \sum\limits_x (y \ln a + (1-y) \ln (1-a)) และบันทึกโอกาส (eq.80): C= - …

4
ทำไม softmax เอาท์พุตจึงไม่ใช่สิ่งที่ไม่แน่นอนสำหรับการเรียนรู้แบบลึก?
ฉันได้ทำงานกับ Convolutional Neural Networks (CNNs) มาระยะหนึ่งแล้วซึ่งส่วนใหญ่เป็นข้อมูลภาพสำหรับเซกเมนต์เซกเมนต์ / เซกเมนต์อินสแตนซ์ ฉันมักจะเห็นภาพซอฟต์แม็กซ์ของเอาต์พุตเครือข่ายเป็น "แผนที่ความร้อน" เพื่อดูว่าการเปิดใช้งานพิกเซลต่อคลาสสำหรับระดับหนึ่งนั้นสูงเพียงใด ฉันตีความการเปิดใช้งานในระดับต่ำว่า "ไม่แน่นอน" / "ไม่มั่นใจ" และมีการเปิดใช้งานสูงตามการคาดการณ์ "มั่นใจ" / "มั่นใจ" โดยทั่วไปสิ่งนี้หมายถึงการตีความเอาต์พุต softmax (ค่าภายใน( 0 , 1 )(0,1)(0,1) ) เป็นความน่าจะเป็นหรือ (ไม่) การวัดความแน่นอนของโมเดล ( เช่นฉันตีความวัตถุ / พื้นที่ที่มีการเปิดใช้งานซอฟต์แม็กซ์ต่ำโดยเฉลี่ยอยู่ที่พิกเซลของมันยากสำหรับ CNN ในการตรวจจับดังนั้น CNN จึง "ไม่แน่ใจ" เกี่ยวกับการทำนายวัตถุชนิดนี้ ) ในการรับรู้ของฉันนี้มักจะทำงานและเพิ่มตัวอย่างเพิ่มเติมของพื้นที่ "ไม่แน่นอน" เพื่อผลลัพธ์การฝึกอบรมปรับปรุงผลลัพธ์เหล่านี้ อย่างไรก็ตามตอนนี้ฉันได้ยินมาค่อนข้างบ่อยจากหลาย ๆ ด้านที่การใช้ / การตีความเอาต์พุต softmax …

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

1
วิธีการตั้งค่าเครือข่ายประสาทเพื่อส่งออกข้อมูลลำดับ
ฉันมีโครงข่ายใยประสาทเทียมที่ตั้งค่าเพื่อคาดเดาบางสิ่งที่ตัวแปรเอาต์พุตเป็นลำดับ ฉันจะอธิบายด้านล่างโดยใช้สามเอาต์พุตที่เป็นไปได้ A <B <C มันค่อนข้างชัดเจนว่าจะใช้โครงข่ายประสาทเทียมเพื่อส่งออกข้อมูลที่เป็นหมวดหมู่ได้อย่างไร: เอาต์พุตเป็นเลเยอร์ softmax ของเลเยอร์สุดท้าย (โดยปกติจะเชื่อมต่อเต็มที่) หนึ่งต่อหมวดหมู่และหมวดที่คาดการณ์ไว้คือหนึ่งที่มีค่าเอาต์พุตที่ใหญ่ที่สุด ค่าเริ่มต้นในรุ่นยอดนิยมจำนวนมาก) ฉันใช้การตั้งค่าเดียวกันสำหรับค่าลำดับ อย่างไรก็ตามในกรณีนี้ผลลัพธ์มักจะไม่สมเหตุสมผลตัวอย่างเช่นเอาท์พุทเครือข่ายสำหรับ A และ C สูง แต่ B ต่ำ: นี่ไม่น่าเชื่อถือสำหรับค่าลำดับ ฉันมีความคิดหนึ่งสำหรับสิ่งนี้ซึ่งเป็นการคำนวณการสูญเสียจากการเปรียบเทียบผลลัพธ์กับ 1 0 0 สำหรับ A, 1 1 0 สำหรับ B และ 1 1 1 สำหรับ C เกณฑ์ที่แน่นอนสามารถปรับได้ภายหลังโดยใช้ตัวแยกประเภทอื่น (Bayesian Bayesian) ) แต่นี่ดูเหมือนจะจับความคิดที่สำคัญของการสั่งซื้ออินพุตโดยไม่ต้องกำหนดช่วงเวลาเฉพาะใด ๆ วิธีมาตรฐานในการแก้ไขปัญหานี้คืออะไร มีการวิจัยหรือการอ้างอิงใด ๆ ที่อธิบายข้อดีข้อเสียของวิธีการต่าง ๆ …

1
Caret glmnet กับ cv.glmnet
ดูเหมือนจะมีความสับสนมากในการเปรียบเทียบการใช้glmnetภายในcaretเพื่อค้นหาแลมบ์ดาที่ดีที่สุดและใช้cv.glmnetในการทำงานเดียวกัน มีการตั้งคำถามมากมายเช่น: โมเดลการจำแนกประเภท train.glmnet vs. cv.glmnet วิธีที่เหมาะสมในการใช้ glmnet กับคาเร็ตคืออะไร? การตรวจสอบข้าม `glmnet 'โดยใช้` คาเร็ต' แต่ไม่ได้รับคำตอบซึ่งอาจเป็นเพราะความสามารถในการทำซ้ำของคำถาม ตามคำถามแรกฉันให้ตัวอย่างที่คล้ายกัน แต่มีคำถามเดียวกัน: ทำไม lambdas โดยประมาณแตกต่างกันอย่างไร library(caret) library(glmnet) set.seed(849) training <- twoClassSim(50, linearVars = 2) set.seed(849) testing <- twoClassSim(500, linearVars = 2) trainX <- training[, -ncol(training)] testX <- testing[, -ncol(testing)] trainY <- training$Class # Using glmnet to …

3
ทำไม softmax แบบลำดับขั้นดีกว่าสำหรับคำที่ไม่บ่อยนักในขณะที่การสุ่มตัวอย่างเชิงลบจะดีกว่าสำหรับคำที่ใช้บ่อย
ฉันสงสัยว่าทำไม softmax แบบลำดับชั้นนั้นดีกว่าสำหรับคำที่ไม่บ่อยนักในขณะที่การสุ่มตัวอย่างเชิงลบจะดีกว่าสำหรับคำที่ใช้บ่อยใน CBOW ของ word2vec และโมเดล skip-gram ฉันได้อ่านข้อเรียกร้องในhttps://code.google.com/p/word2vec/

2
นิยามที่แตกต่างกันของฟังก์ชั่นการสูญเสียเอนโทรปี
ฉันเริ่มเรียนรู้เกี่ยวกับเครือข่ายประสาทด้วยการสอนเกี่ยวกับโครงข่ายประสาทเทียมและคำแนะนำ dot com โดยเฉพาะอย่างยิ่งในบทที่ 3มีส่วนที่เกี่ยวกับฟังก์ชั่นเอนโทรปีของการข้ามและกำหนดการสูญเสียเอนโทรปีของครอสเป็น: C=−1n∑x∑j(yjlnaLj+(1−yj)ln(1−aLj))C=−1n∑x∑j(yjln⁡ajL+(1−yj)ln⁡(1−ajL))C = -\frac{1}{n} \sum\limits_x \sum\limits_j (y_j \ln a^L_j + (1-y_j) \ln (1 - a^L_j)) อย่างไรก็ตามการอ่านการแนะนำ Tensorflowการสูญเสียเอนโทรปีถูกกำหนดเป็น: C=−1n∑x∑j(yjlnaLj)C=−1n∑x∑j(yjln⁡ajL)C = -\frac{1}{n} \sum\limits_x \sum\limits_j (y_j \ln a^L_j) (เมื่อใช้สัญลักษณ์เดียวกันกับด้านบน) จากนั้นค้นหาไปรอบ ๆ เพื่อค้นหาว่าเกิดอะไรขึ้นฉันพบบันทึกอีกชุดหนึ่ง: ( https://cs231n.github.io/linear-classify/#softmax-classifier ) ซึ่งใช้คำจำกัดความที่แตกต่างกันโดยสิ้นเชิงของการสูญเสียเอนโทรปีของการข้าม เวลาสำหรับตัวจําแนก softmax แทนเครือข่ายประสาท บางคนสามารถอธิบายให้ฉันฟังได้ว่าเกิดอะไรขึ้นที่นี่ ทำไมถึงมีข้อแตกต่าง btw สิ่งที่ผู้คนกำหนดการสูญเสียข้ามเอนโทรปีเป็น? มีเพียงหลักการบางอย่างที่ครอบคลุมอยู่หรือไม่

2
การเชื่อมต่อระหว่างฟังก์ชั่น softmax ใน ML และการกระจาย Boltzmann ในอุณหพลศาสตร์มีความลึกเพียงใด
ฟังก์ชั่น softmax ที่ใช้กันทั่วไปในเครือข่ายประสาทเทียมเพื่อแปลงจำนวนจริงเป็นความน่าจะเป็นเป็นฟังก์ชันเดียวกับการแจกแจง Boltzmann การกระจายความน่าจะเป็นเหนือพลังงานสำหรับทั้งมวลของอนุภาคในสมดุลความร้อนที่อุณหภูมิ T ในอุณหพลศาสตร์ ฉันเห็นเหตุผลบางประการที่ชัดเจนว่าทำไมถึงเป็นจริง: ไม่ว่าหากค่าอินพุตเป็นลบ softmax จะส่งออกค่าบวกที่รวมเป็นหนึ่ง มันแตกต่างกันเสมอซึ่งเป็นประโยชน์สำหรับการ backpropagation มันมีพารามิเตอร์ 'อุณหภูมิ' ที่ควบคุมว่าเครือข่ายควรผ่อนปรนค่าขนาดเล็กได้อย่างไร (เมื่อ T มีขนาดใหญ่มากผลลัพธ์ทั้งหมดมีแนวโน้มเท่ากันเมื่อมีขนาดเล็กมากเฉพาะค่าที่เลือกอินพุตมากที่สุดเท่านั้น) ฟังก์ชั่น Boltzmann ใช้เป็น softmax เพียงอย่างเดียวสำหรับเหตุผลในทางปฏิบัติหรือมีการเชื่อมต่อกับอุณหพลศาสตร์ / ฟิสิกส์เชิงสถิติที่ลึกซึ้งขึ้นหรือไม่?

3
Non-linearity ก่อนชั้น Softmax สุดท้ายในเครือข่ายประสาทเทียม
ฉันกำลังศึกษาและพยายามใช้โครงข่ายประสาทเทียม แต่ฉันคิดว่าคำถามนี้ใช้ได้กับผู้เรียนหลายคนโดยทั่วไป เซลล์ส่งออกในเครือข่ายของฉันเป็นตัวแทนของการเปิดใช้งานของแต่ละชั้นเรียน: เซลล์ประสาทที่ใช้งานมากที่สุดสอดคล้องกับระดับที่คาดการณ์ไว้สำหรับการป้อนข้อมูลที่กำหนด ในการพิจารณาค่าใช้จ่ายข้ามเอนโทรปีสำหรับการฝึกอบรมฉันเพิ่มเลเยอร์ softmax ที่ส่วนท้ายของเครือข่ายเพื่อให้ค่าการเปิดใช้งานของเซลล์ประสาทแต่ละค่าถูกตีความเป็นค่าความน่าจะเป็น คำถามของฉันคือ: เซลล์ประสาทในชั้นเอาต์พุตควรใช้ฟังก์ชันที่ไม่ใช่เชิงเส้นกับอินพุตหรือไม่ สัญชาตญาณของฉันคือมันไม่จำเป็น: ถ้าอินพุตกับ th เอาต์พุตเซลล์ประสาทคือจุดผลิตภัณฑ์ระหว่างเวกเตอร์ (มาจากเลเยอร์ก่อนหน้า) และน้ำหนักสำหรับเซลล์ประสาทนั้นx T θ ฉัน x θ ฉันผมผมixTθผมxTθผมx^T\theta_ixxxθผมθผม\theta_i และถ้าฉันใช้ฟังก์ชั่นที่ไม่ใช่เชิงเส้นเดียวเช่น sigmoid หรือ ReLU ดังนั้นการเปิดใช้งานเอาต์พุตขนาดใหญ่จะยังคงสอดคล้องกับใหญ่ที่สุดดังนั้นจากมุมมองนี้ฟังก์ชั่นที่ไม่ใช่เชิงเส้นจะไม่เปลี่ยนการทำนายxTθผมxTθผมx^T\theta_i มีอะไรผิดปกติกับการตีความนี้หรือไม่? มีปัจจัยการฝึกอบรมบางอย่างที่ฉันมองเห็นหรือไม่ และถ้าฉันพูดถูกสิ่งใดจะเปลี่ยนไปถ้าแทนที่จะใช้ฟังก์ชั่น sigmoid ฉันใช้ฟังก์ชั่น ReLUซึ่งไม่ใช่ฟังก์ชั่นโมโนโทนิกอย่างแน่นอนสูงสุด( 0 , xTθผม)สูงสุด(0,xTθผม)\max(0,x^T\theta_i) แก้ไข จากการอ้างอิงถึงคำตอบของ Karel ซึ่งคำตอบโดยทั่วไปคือ "ขึ้นอยู่กับ" นี่คือคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับเครือข่ายและข้อสงสัยของฉัน: สมมติว่าฉันมีเลเยอร์ที่ซ่อนอยู่ N ชั้นและชั้นการส่งออกของฉันเป็นเพียงชั้น softmax เหนือชุดของเซลล์ประสาทที่เป็นตัวแทนของคลาส (ดังนั้นผลลัพธ์ที่คาดหวังของฉันคือความน่าจะเป็นที่ข้อมูลอินพุตเป็นของแต่ละชั้นเรียน) สมมติว่าเลเยอร์ N-1 แรกมีเซลล์ประสาทแบบไม่เชิงเส้นอะไรคือความแตกต่างระหว่างการใช้เซลล์ประสาทแบบไม่เชิงเส้นกับเชิงเส้นตรงในเลเยอร์ …

2
เหตุใด softmax จึงถูกใช้เพื่อแสดงการแจกแจงความน่าจะเป็น
ในวรรณคดีการเรียนรู้ของเครื่องเพื่อแสดงถึงการแจกแจงความน่าจะเป็นฟังก์ชัน softmax มักถูกใช้ มีเหตุผลสำหรับสิ่งนี้หรือไม่? เหตุใดจึงไม่ใช้ฟังก์ชันอื่น

3
จะใช้ Softmax เป็นฟังก์ชั่น Activation ใน Multi-layer Perceptron ใน scikit-Learn ได้อย่างไร? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามดังนั้นจึงเป็นหัวข้อสำหรับการตรวจสอบข้าม ปิดให้บริการในวันที่ 11 เดือนที่ผ่านมา ฉันจำเป็นต้องใช้ฟังก์ชั่นการเปิดใช้งาน Softmax กับ Perceptron หลายเลเยอร์ใน scikit Scikit documantationในหัวข้อของ Neural network models (ภายใต้การดูแล) กล่าวว่า"MLPClassifier รองรับการจำแนกประเภทหลายคลาสโดยใช้ Softmax เป็นฟังก์ชันเอาต์พุต" คำถามคือวิธีการใช้ฟังก์ชั่น? ในโค้ด snip ด้านล่างเมื่อฉันเพิ่ม Softmax ภายใต้พารามิเตอร์การเปิดใช้งานมันไม่ยอมรับ MLPClassifier(activation='Softmax', alpha=1e-05, batch_size='auto', beta_1=0.9, beta_2=0.999, early_stopping=False, epsilon=1e-08, hidden_layer_sizes=(15,), learning_rate='constant', learning_rate_init=0.001, max_iter=200, momentum=0.9, nesterovs_momentum=True, power_t=0.5, random_state=1, shuffle=True, solver='lbfgs', tol=0.0001, validation_fraction=0.1, verbose=False, …

3
Multinomial Logistic Loss vs (Cross Entropy vs Square Error)
ฉันสังเกตเห็นว่า Caffe (กรอบการเรียนรู้ลึก) ใช้Softmax Loss Layer SoftmaxWithLossเป็นเลเยอร์การส่งออกสำหรับตัวอย่างส่วนใหญ่ เท่าที่ผมรู้ว่าชั้น Softmax การสูญเสียคือการรวมกันของพหุโลจิสติกชั้นสูญเสียและSoftmax ชั้น จาก Caffe พวกเขาบอกว่า การคำนวณการไล่ระดับสี Softmax Loss Layer นั้นมีความเสถียรทางตัวเลข แต่คำอธิบายนี้ไม่ได้คำตอบที่ฉันต้องการคำอธิบายเป็นเพียงการเปรียบเทียบการรวมกันของพหุโลจิสติกชั้นสูญเสียและชั้นสูญเสีย Softmaxแทนชั้นโดยชั้น แต่ไม่เปรียบเทียบกับฟังก์ชันการสูญเสียชนิดอื่น อย่างไรก็ตามฉันต้องการทราบเพิ่มเติมว่าข้อแตกต่าง / ข้อดี / ข้อเสียของฟังก์ชันข้อผิดพลาด 3 ข้อคืออะไรคือMultinomial Logistic Loss , Cross Entropy (CE) และSquare Error (SE) ในมุมมองการเรียนรู้แบบมีผู้ดูแล? มีบทความสนับสนุนอะไรบ้าง?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.