จากกฎ Perceptron ไปยัง Gradient Descent: Perceptrons ที่มีฟังก์ชั่นการเปิดใช้งาน sigmoid แตกต่างจาก Logistic Regression อย่างไร


21

โดยพื้นฐานแล้วคำถามของฉันคือใน Multilayer Perceptrons, Perceptrons นั้นใช้กับฟังก์ชั่นการเปิดใช้งาน sigmoid ดังนั้นในการอัปเดตกฎจะถูกคำนวณดังนี้y^

y^=11+exp(wTxi)

Perceptron "sigmoid" นี้แตกต่างจากการถดถอยโลจิสติกอย่างไร

ฉันจะบอกว่า sigmoid perceptron ชั้นเดียวเทียบเท่ากับการถดถอยโลจิสติกในแง่ที่ว่าทั้งสองใช้ในกฎการอัพเดท นอกจากนี้ทั้งสองส่งกลับในการทำนาย อย่างไรก็ตามในมัลติเลเยอร์ Perceptrons ฟังก์ชั่นการเปิดใช้งาน sigmoid จะใช้เพื่อคืนความน่าจะเป็นไม่ใช่สัญญาณเปิดปิดในทางตรงกันข้ามกับการถดถอยโลจิสติกและ perceptron ชั้นเดียวy^=11+exp(wTxi)sign(y^=11+exp(wTxi))

ฉันคิดว่าการใช้คำว่า "Perceptron" อาจจะคลุมเครือเล็กน้อยดังนั้นให้ฉันให้พื้นหลังตามความเข้าใจในปัจจุบันของฉันเกี่ยวกับ perceptrons ชั้นเดียว:

กฎ Perceptron แบบคลาสสิก

ประการแรกคลาสสิก perceptron โดย F. Rosenblatt ที่เรามีฟังก์ชั่นขั้นตอน:

Δwd=η(yiyi^)xidyi,yi^{1,1}

เพื่ออัปเดตตุ้มน้ำหนัก

wk:=wk+Δwk(k{1,...,d})

ดังนั้นจึงถูกคำนวณเป็นy^

y^=sign(wTxi)=sign(w0+w1xi1+...+wdxid)


โคตรลาด

การใช้การไล่ระดับสีเราเพิ่มประสิทธิภาพ (ลด) ฟังก์ชันต้นทุน

J(w)=i12(yiyi^)2yi,yi^R

ที่ซึ่งเรามีตัวเลข "ของจริง" ดังนั้นฉันจึงเห็นว่านี่คล้ายกับการถดถอยเชิงเส้นตรงกับความแตกต่างที่เอาท์พุทการจัดหมวดหมู่ของเราถูกเกณฑ์

ที่นี่เราก้าวไปในทิศทางลบของการไล่ระดับสีเมื่อเราอัพเดทตุ้มน้ำหนัก

Δwk=ηJwk=ηi(yiyi^)(xik)=ηi(yiyi^)xik

แต่ที่นี่เรามีแทน Y =สัญญาณ(WTxฉัน)y^=wTxiy^=sign(wTxi)

wk:=wk+Δwk(k{1,...,d})

นอกจากนี้เรายังคำนวณผลรวมของข้อผิดพลาดกำลังสองสำหรับการส่งผ่านชุดข้อมูลการฝึกอบรมทั้งหมด (ในโหมดการเรียนรู้แบบแบทช์) ตรงข้ามกับกฎ perceptron แบบคลาสสิกซึ่งอัปเดตน้ำหนักเมื่อตัวอย่างการฝึกอบรมใหม่มาถึง การเรียนรู้)


ฟังก์ชันการเปิดใช้งาน Sigmoid

ตอนนี้นี่คือคำถามของฉัน:

ใน Multilayer Perceptrons จะใช้ Perceptrons พร้อมกับฟังก์ชั่นการเปิดใช้งาน sigmoid ดังนั้นในการอัปเดตกฎจะถูกคำนวณดังนี้y^

y^=11+exp(wTxi)

Perceptron "sigmoid" นี้แตกต่างจากการถดถอยโลจิสติกอย่างไร


4
น่าทึ่งคำถามนี้ด้วยตัวเองทำให้ฉันสามารถย่อการเรียนรู้ของเครื่องและพื้นฐานเครือข่ายประสาทเทียมได้!
varun

คำตอบ:


4

การใช้การไล่ระดับสีเราเพิ่มประสิทธิภาพ (ลด) ฟังก์ชันต้นทุน

J(w)=i12(yiyi^)2yi,yi^R

หากคุณลดข้อผิดพลาดกำลังสองเฉลี่ยหมายความว่ามันแตกต่างจากการถดถอยโลจิสติก การถดถอยโลจิสติกเป็นปกติที่เกี่ยวข้องกับการสูญเสียเอนโทรปีข้ามที่นี่เป็นหน้าแนะนำจากห้องสมุด scikit เรียนรู้


(ฉันจะถือว่าตัวรับหลายชั้นเป็นสิ่งเดียวกันกับที่เรียกว่าโครงข่ายประสาทเทียม)

ถ้าคุณใช้ cross entropy loss (กับ normalization) สำหรับโครงข่ายประสาทชั้นเดียวมันก็จะเป็นรูปแบบเดียวกัน (log-linear model) เป็นการถดถอยโลจิสติกส์ หากคุณใช้เครือข่ายหลายเลเยอร์แทนอาจถือว่าเป็นการถดถอยโลจิสติกพร้อมฟังก์ชันพื้นฐานแบบไม่เชิงเส้น


อย่างไรก็ตามในมัลติเลเยอร์ Perceptrons ฟังก์ชั่นการเปิดใช้งาน sigmoid จะใช้เพื่อคืนความน่าจะเป็นไม่ใช่สัญญาณเปิดปิดในทางตรงกันข้ามกับการถดถอยโลจิสติกและ perceptron ชั้นเดียว

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


2

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

นี่คือ NN ชั้นเดียว

dJ(w,b)dωkj=dJ(w,b)dzkdzkdωkj

dJ(w,b)dzk=(akyk)(ak(1ak))

dzkdωkj=xk

J(w,b)=12(ykak)2

ak=sigm(zk)=sigm(Wkjxk+bk)

ถ้าฟังก์ชั่นการเปิดใช้งานเป็นฟังก์ชั่นขั้นตอนพื้นฐาน (เกณฑ์) อนุพันธ์ของ wrtจะไม่สามารถหาอนุพันธ์ได้Jzk

นี่คือลิงค์ที่อธิบายโดยทั่วไป

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


3
สิ่งนี้ไม่ตอบคำถาม
Neil G

ขอบคุณที่เขียนความคิดเห็นที่ดี แต่นี่ไม่ใช่สิ่งที่ฉันขอ คำถามของฉันไม่ใช่ "ทำไมการไล่ระดับสีลาด" แต่ "สิ่งที่ทำให้ perceptron ที่มีฟังก์ชั่นเปิดใช้งาน sigmoid แตกต่างจากการถดถอยโลจิสติก"

@SebastianRaschka พวกเขาเหมือนกัน อะไรที่ทำให้คุณคิดว่ามันต่างกัน ฉันขับโคตรไล่โทนสีเพราะฉันเห็นข้อผิดพลาดในการประเมินการไล่ระดับสีไล่ระดับของคุณ คุณถือว่าเมื่อคุณขับรถ นั่นคือเหตุผลที่คุณพบว่ามีแหล่งที่มาเดียวกันสำหรับทั้ง Perceptron และ Gradient update y=WTX
yasin.yazici

1
"อะไรทำให้คุณคิดว่าพวกเขาแตกต่างกัน?" - ศัพท์เฉพาะดังนั้นฉันสงสัยว่ามีสิ่งอื่นอีกหรือไม่ ฉันแค่อยากรู้ว่าทำไมเราถึงมี 2 เทอมที่แตกต่างกันในสิ่งเดียวกัน Btw ฉันไม่เห็นความผิดพลาดใด ๆ ในการไล่ระดับสีในคำถามของฉัน ถูกต้อง และฉันยังไม่พบแหล่งที่มาเดียวกันระหว่างการอัปเดต "กฎ perceptron" และ "gradient descent" อดีตทำในลักษณะการเรียนรู้ออนไลน์ (ตัวอย่างโดยตัวอย่าง) หลังทำในชุดและเรายังลดผลรวมของข้อผิดพลาดกำลังสองแทนการใช้ฟังก์ชันแบบขั้นตอน y=wjTxji

ฉันคิดว่าสิ่งที่อาจทำให้เกิดความสับสนคือคุณมีความแตกต่างระหว่าง "การจำแนก" และขั้นตอน "การเรียนรู้" ขั้นตอนการจัดหมวดหมู่จะถูกเกณฑ์เสมอ (-1 หรือ 1 หรือ 0 และ 1 หากคุณต้องการ) อย่างไรก็ตามการอัปเดตนั้นแตกต่างกันใน perceptron แบบคลาสสิกการอัปเดตจะกระทำผ่านในขณะที่สมมติว่าการไล่ระดับสีแบบสุ่ม stochastic นั้นคือ η ( y - w T x i ) x iη(ysign(wTxi))xη(ywTxi)xi

2

โดยสัญชาตญาณฉันคิดว่าหลายคนรับรู้เป็นการคำนวณการเปลี่ยนแปลงแบบไม่เชิงเส้นในคุณสมบัติการป้อนข้อมูลของฉันและจากนั้นให้อาหารตัวแปรที่แปลงเหล่านี้เป็นถดถอยโลจิสติก

กรณี Multinomial (นั่นคือ N> 2 ป้ายที่เป็นไปได้) อาจทำให้เรื่องนี้ชัดเจนยิ่งขึ้น ในการถดถอยโลจิสติกแบบดั้งเดิมสำหรับจุดข้อมูลที่กำหนดคุณต้องการที่จะคำนวณ "คะแนน"สำหรับแต่ละระดับฉันและวิธีที่คุณแปลงเหล่านี้เพื่อความน่าจะเป็นเพียงโดยการให้คะแนนสำหรับระดับที่กำหนดมากกว่าผลรวมของคะแนนสำหรับทุกชั้นเรียน,X} ดังนั้นคลาสที่มีคะแนนมากจะมีคะแนนรวมที่มากกว่าและมีโอกาสสูงกว่า หากถูกบังคับให้คาดการณ์ชั้นเดียวคุณเลือกชั้นเรียนที่มีความน่าจะเป็นมากที่สุด (ซึ่งเป็นคะแนนที่ใหญ่ที่สุดด้วย)ฉันβ ฉัน XβiXiβiXjβjX

ฉันไม่รู้เกี่ยวกับตัวคุณ แต่ในหลักสูตรการทำแบบจำลองและการวิจัยของฉันฉันได้ลองการแปลงคุณสมบัติการป้อนข้อมูลที่สมเหตุสมผลและโง่เง่าเพื่อปรับปรุงความสำคัญและการทำนายแบบจำลองโดยรวมทั้งหมด การยกระดับสิ่งต่าง ๆ การจดบันทึกการรวมสองอย่างเข้าด้วยกันเป็นต้นฉันไม่มีความละอาย แต่มีความอดทน จำกัด

Perceptron หลายคนเปรียบเสมือนนักศึกษาปริญญาโทที่มีเวลาเหลือเฟือ ผ่านการฝึกอบรมการไล่ลงของการไล่ระดับสีและการเปิดใช้ sigmoid มันจะคำนวณค่าผสมที่ไม่เป็นเชิงเส้นโดยพลการของตัวแปรอินพุตดั้งเดิมของคุณ ในเลเยอร์สุดท้ายของ perceptron ตัวแปรเหล่านี้จะกลายเป็นในสมการข้างต้นได้อย่างมีประสิทธิภาพและการไล่ระดับสีของคุณยังคำนวณ finalเกี่ยวข้อง กรอบการทำงาน MLP เป็นเพียงส่วนหนึ่งของสิ่งนี้β iXβi

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