Perceptron หลายชั้นเทียบกับโครงข่ายประสาทเทียมแบบลึก


16

นี่เป็นคำถามของคำศัพท์ บางครั้งฉันเห็นคนพูดถึงเครือข่ายประสาทลึกว่า "perceptrons หลายชั้น" ทำไมถึงเป็นเช่นนี้ ฉันได้รับการสอน perceptron เป็นตัวแยกประเภทเลเยอร์เดี่ยว (หรือ regressor) ที่มีเอาต์พุต threshold แบบไบนารีโดยใช้วิธีเฉพาะในการฝึกน้ำหนัก (ไม่ใช่ back-prop) หากผลลัพธ์ของ perceptron ไม่ตรงกับผลลัพธ์ที่เป็นเป้าหมายเราจะเพิ่มหรือลบเวกเตอร์อินพุตให้กับน้ำหนัก (ขึ้นอยู่กับว่า Perceptron ให้ผลบวกปลอมหรือลบเป็นลบ) มันเป็นอัลกอริทึมการเรียนรู้เครื่องดั้งเดิมค่อนข้าง ขั้นตอนการฝึกอบรมไม่ปรากฏว่าจะพูดถึงกรณีทั่วไปหลายชั้น (อย่างน้อยก็ไม่ใช่โดยไม่มีการดัดแปลง) โครงข่ายประสาทเทียมแบบลึกผ่านการฝึกอบรมผ่าน backprop ซึ่งใช้กฎลูกโซ่เพื่อเผยแพร่การไล่ระดับสีของฟังก์ชันต้นทุนย้อนกลับไปจนถึงน้ำหนักทั้งหมดของเครือข่าย

ดังนั้นคำถามคือ "perceptron หลายชั้น" เป็นสิ่งเดียวกับ "เครือข่ายประสาทลึก" หรือไม่? ถ้าใช่ทำไมคำศัพท์นี้ใช้? ดูเหมือนจะสับสนโดยไม่จำเป็น นอกจากนี้สมมติว่าคำศัพท์นั้นใช้แทนกันได้ฉันเห็นเพียงคำศัพท์ "multi-layer perceptron" เมื่อกล่าวถึงเครือข่าย feed-forward ซึ่งประกอบด้วยเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ (ไม่มีชั้น convolutional หรือการเชื่อมต่อซ้ำ) คำศัพท์นี้กว้างแค่ไหน? หนึ่งจะใช้คำว่า "หลายชั้น perceptron" เมื่อกล่าวถึงเช่น Inception net? วิธีการเกี่ยวกับเครือข่ายที่เกิดขึ้นอีกโดยใช้โมดูล LSTM ที่ใช้ใน NLP


1
Deep neural network = neural network ที่มีเลเยอร์ที่ซ่อนอยู่> 1 เลเยอร์ MLP อยู่ในหมวดหมู่นี้
ทิม

มันเพิ่งเปลี่ยนโฉม MLPs ถูก hyped ใน 90s และแทนที่ด้วย SVMs ดังนั้นจึงจำเป็นต้องเรียกมันว่าสิ่งที่แตกต่างในปี 2000 ข้อเสนอแนะคือ dnn มีเลเยอร์มากกว่า แต่ก็ไม่แตกต่างกันมากนักเช่น Le Net [MLP / CNN] (1998) 2 convolutional 2 เชื่อมต่ออย่างเต็มที่ alexnet = DNN (2012) 5 convolutional และ 3 เชื่อมต่อเต็ม
seanv507

SVM จะขึ้นอยู่กับการไล่ระดับสีขึ้นลง ANN จะขึ้นอยู่กับการไล่ระดับสีดังนั้นพวกเขาจึงไม่ได้แทนที่ ANN SVM ถูกขายมากเกินไปและถูกใช้มากเกินไปเพราะนักเรียนระดับปริญญาไม่ได้รู้อะไรเกี่ยวกับ ANNs ในการเรียกใช้ SVM นักเรียนเพิ่งคว้าแพ็คเกจ R และทำเสร็จแล้ว แต่สำหรับ ANN คุณต้องมีทั้งภาคการศึกษาเพื่อทำความเข้าใจจากมุมมองวิธีการเชิงตัวเลขไม่ใช่มุมมองภาษาที่สื่อความหมาย (เช่นการตบรหัสด้วยกัน)
JoleT

คำตอบ:


21

หนึ่งสามารถพิจารณาหลายชั้น perceptron (MLP) เป็นส่วนหนึ่งของเครือข่ายประสาทลึก (DNN) แต่มักจะใช้แทนกันในวรรณคดี

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

การใช้กลับมาขยายพันธุ์ในเครือข่ายการฝึกอบรมนำไปสู่การใช้ฟังก์ชั่นการเปิดใช้งานการบีบอื่นเช่นtanhและsigmoid

ดังนั้นเพื่อตอบคำถาม

คำถามคือ. "perceptron หลายชั้น" เป็นสิ่งเดียวกับ "เครือข่ายประสาทลึก" หรือไม่?

MLP เป็นชุดย่อยของ DNN ในขณะที่ DNN สามารถมีลูปได้และ MLP จะป้อนไปข้างหน้าเสมอเช่น

Multi layer perceptrons (MLP) เป็นกราฟที่มีขอบเขต จำกัด

เหตุใดจึงใช้คำศัพท์นี้

คำศัพท์จำนวนมากที่ใช้ในวรรณคดีของวิทยาศาสตร์เกี่ยวข้องกับแนวโน้มของเวลาและเป็นที่จับได้

คำศัพท์นี้กว้างแค่ไหน? หนึ่งจะใช้คำว่า "หลายชั้น perceptron" เมื่อกล่าวถึงเช่น Inception net? วิธีการเกี่ยวกับเครือข่ายที่เกิดขึ้นอีกโดยใช้โมดูล LSTM ที่ใช้ใน NLP

ดังนั้นใช่เริ่มก่อตั้งเครือข่าย convolutional, resnet ฯลฯ เป็น MLP ทั้งหมดเพราะไม่มีวงจรระหว่างการเชื่อมต่อ แม้ว่าจะมีการเชื่อมต่อทางลัดข้ามเลเยอร์ตราบใดที่มันอยู่ในทิศทางไปข้างหน้ามันสามารถเรียกได้ว่า perceptron หลายชั้น แต่ LSTMs หรือ Vanilla RNNs ฯลฯ มีการเชื่อมต่อแบบวนรอบจึงไม่สามารถเรียก MLP ได้ แต่เป็นส่วนย่อยของ DNN

นี่คือความเข้าใจของฉันในสิ่งต่าง ๆ โปรดแก้ไขฉันหากฉันผิด

ลิงค์อ้างอิง:

/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf


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

@IWS คุณพูดถูก ผู้ใช้หลายรายในไซต์นี้ได้ทำซ้ำ ๆ ซ้ำ ๆ จุดที่การถดถอยแบบลอจิสติกเป็นแบบจำลองสำหรับการประมาณความน่าจะเป็นแบบมีเงื่อนไข ดูตัวอย่างที่นี่
DeltaIV

1
แก้ไขการตอบสนองต่อการแก้ไขยกตัวอย่างเช่น "การถดถอยโลจิสติก" เป็นเทคนิคการจัดหมวดหมู่และไม่ควรจะเรียกว่าเป็น "ถดถอย" ถ้าเพื่อที่จะพูด ลิงก์ที่แชร์โดย @DeltaIV ทำให้ชัดเจนมากว่าทำไมถึงเป็นการถดถอยและไม่ใช่ตัวจําแนก
m1cro1ce

8

คำถามที่ดี: โปรดทราบว่าในส่วนของการเรียนรู้เชิงลึกนั้นไม่ได้ถูกตัดและกำหนดไว้อย่างชัดเจนเหมือนในการเรียนรู้เชิงสถิติ (เพราะมีจำนวนมาก) ดังนั้นอย่าคาดหวังว่าจะพบคำจำกัดความที่เข้มงวดเช่นเดียวกับคณิตศาสตร์ อย่างไรก็ตามมัลติเลเยอร์ perceptron เป็นสถาปัตยกรรมเครือข่ายนิวรัลฟีดไปข้างหน้าโดยเฉพาะซึ่งคุณสแต็กเลเยอร์ที่เชื่อมต่ออย่างเต็มที่หลายเลเยอร์ (ดังนั้นไม่มีเลเยอร์ Convolution เลย) ซึ่งฟังก์ชันการเปิดใช้งานของยูนิตที่ซ่อนอยู่มักเป็น sigmoid หรือ tanh โหนดของเลเยอร์เอาท์พุทมักจะมีฟังก์ชั่นการเปิดใช้งาน softmax (สำหรับการจำแนกประเภท) หรือฟังก์ชั่นการเปิดใช้งานเชิงเส้น (สำหรับการถดถอย) สถาปัตยกรรม MLP ทั่วไปนั้นไม่ "ลึก" กล่าวคือเราไม่มีเลเยอร์ที่ซ่อนอยู่มากมาย ปกติคุณจะมีเลเยอร์ที่ซ่อนอยู่ 1 ถึง 5 ชั้น เครือข่ายประสาทเหล่านี้เป็นเรื่องปกติใน '80

ขณะนี้ด้วย Deep Neural Network เราหมายถึงเครือข่ายที่มีหลายเลเยอร์ (19, 22, 152, ... แม้แต่> 1200แม้ว่าจะยอมรับว่าสุดขั้วมาก) สังเกตได้ว่า

  • เราไม่ได้ระบุสถาปัตยกรรมของเครือข่ายดังนั้นจึงอาจเป็นฟีดไปข้างหน้าเกิดซ้ำและอื่น ๆ
  • เราไม่ได้ระบุลักษณะของการเชื่อมต่อดังนั้นเราสามารถมีเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์เลเยอร์ convolutional การเกิดซ้ำเป็นต้น
  • เลเยอร์ "จำนวนมาก" เป็นที่ยอมรับไม่ใช่คำจำกัดความที่เข้มงวด

32×32+32×10=134411584น้ำหนัก นี่คือจิ๋ว NN ตามมาตรฐานของวันนี้ อย่างไรก็ตามเมื่อคุณไปฝึกกับชุดข้อมูลที่มีขนาดใหญ่พอสมควรคุณจะพบว่าอัตราการลู่เข้าได้ช้าลงอย่างมาก สิ่งนี้ไม่เพียงเกิดจากน้ำหนักที่มากขึ้น แต่ยังเกิดปัญหาการไล่ระดับสีที่หายไป - การกระจายกลับคำนวณการไล่ระดับของฟังก์ชันการสูญเสียโดยการคูณข้อผิดพลาดในแต่ละชั้นและตัวเลขขนาดเล็กเหล่านี้จะกลายเป็นเลเยอร์เพิ่มเติมที่คุณเพิ่ม ดังนั้นข้อผิดพลาดจะไม่แพร่กระจาย (หรือแพร่กระจายช้ามาก) ลงบนเครือข่ายของคุณและดูเหมือนว่าข้อผิดพลาดในชุดการฝึกอบรมจะหยุดลดลงด้วยยุคการฝึกอบรม

และนี่คือเครือข่ายขนาดเล็ก - โครงข่ายประสาทเทียมแบบลึกที่เรียกว่า AlexNet มี 5 ชั้น แต่มีน้ำหนัก 60 ล้านและถือว่าเล็กตามมาตรฐานของวันนี้! เมื่อคุณมีน้ำหนักมากชุดข้อมูลใด ๆ ก็คือ "เล็ก" - แม้แต่ ImageNet ซึ่งเป็นชุดข้อมูลของรูปภาพที่ใช้สำหรับการจัดหมวดหมู่มี "เพียง" ประมาณ 1 ล้านภาพดังนั้นความเสี่ยงของการ overfitting นั้นใหญ่กว่าเครือข่ายแบบตื้น

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


คำตอบก่อนหน้าโดย m1cro1ce บอกว่า conv-net (เหมือนการลงทะเบียนเรียน) สามารถจัดเป็น MLP ได้ในขณะที่คุณระบุว่า MLP ไม่สามารถมีเลเยอร์ convolutional ได้ (และดูเหมือนว่าคุณหมายถึงการเลือกฟังก์ชั่นการเปิดใช้งานด้วย ส่งผลกระทบต่อสิ่งที่เรียกว่า MLP หรือไม่?) มีข้อตกลงในวรรณคดี (หรือภายในชุมชน ML) ว่า MLP หมายถึงอะไรและไม่ได้หมายความว่าอย่างไร ถ้ามีคนพูดกับฉันว่า "ฉันต้องการให้คุณสร้าง MLP สำหรับงาน X" ฉันต้องทำอะไร?
enumaris

@enumaris คุณไม่ถูกกฎหมายให้ทำอะไร ครั้งล่าสุดที่ฉันตรวจสอบมันยังคงถูกกฎหมายในการสร้าง CNN และเรียกว่า MLP แน่นอนว่าฉันจะปฏิเสธกระดาษ / โปสเตอร์ / อะไรก็ตาม แต่นั่นคือฉันและฉันไม่สามารถพูดกับชุมชน DL ทั้งหมดซึ่งไม่ได้มีชื่อเสียงในเรื่องการใช้คำศัพท์อย่างเข้มงวด อย่างไรก็ตามคำจำกัดความของฉัน: เครือข่ายประสาทส่งต่อพร้อมเลเยอร์ที่เชื่อมต่ออย่างเต็มที่และอย่างน้อยฟังก์ชั่นการเปิดใช้งานแบบไม่เชิงเส้น (มิฉะนั้นไม่ว่าจะมีเลเยอร์กี่ชั้นก็ตามเสมอไปกับเครือข่ายเชิงเส้นแบบชั้นเดียว) .
DeltaIV

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

ฉันต้องการทำเครื่องหมายหนึ่งใน 2 คำตอบเหล่านี้เป็นคำตอบที่ยอมรับได้ แต่เนื่องจากพวกเขาให้คำตอบที่ขัดแย้งกันฉันต้องการทราบว่าคำตอบใดเป็นคำตอบที่พบได้ทั่วไปในวรรณคดีหรือในชุมชน ML
enumaris

@enumaris ชื่อคำถามของคุณคือ "Multi-layer perceptron vs deep neural network" และคุณถามว่าa "multi-layer perceptron" the same thing as a "deep neural network": คำถามนี้ได้รับการตอบโดยละเอียดทั้งในคำตอบของฉันและ m1cro1ce ตอนนี้คุณกำลังถามคำถาม "CNNs เป็นส่วนหนึ่งของ MLP หรือไม่" - เว็บไซต์ Stack แลกเปลี่ยนมีนโยบายของคำถามหนึ่งสำหรับโพสต์
DeltaIV

0

ฉันต้องการเพิ่มสิ่งนั้นตามสิ่งที่ฉันได้อ่านจากกระทู้จำนวนมาก:

มีสถาปัตยกรรมที่แตกต่างกันมากมายผ่าน DNN เช่น: MLPs (Multi-Layer Perceptron) และ CNNs (Convolutional Neural Networks) ดังนั้น DNN ประเภทต่างๆจึงออกแบบมาเพื่อแก้ปัญหาประเภทต่างๆ

MLPsเป็น NN ประเภทคลาสสิคที่ใช้สำหรับ:

  • ชุดข้อมูลแบบตาราง (มีข้อมูลในรูปแบบเรียงเป็นแนวเหมือนในตารางฐานข้อมูล)
  • การจำแนกประเภท / การถดถอยการทำนาย pbs

MLP เป็นอย่างมากและสามารถนำมาใช้โดยทั่วไปในการทำแผนที่ยันจากใส่ในเพื่อเอาท์พุท

แต่คุณสามารถลองรูปแบบอื่นเช่นข้อมูลภาพเป็นจุดเส้นฐานการเปรียบเทียบเพื่อยืนยันว่ารุ่นอื่นเหมาะสมกว่า

CNNออกแบบมาเพื่อจับคู่ข้อมูลภาพกับตัวแปรเอาต์พุต มันใช้สำหรับ:

  • ข้อมูลรูปภาพ
  • การจำแนกประเภท / การทำนายถดถอย pbs

มันทำงานได้ดีกับข้อมูลที่มีความสัมพันธ์พิเศษ

โดยปกติจะใช้กับข้อมูล 2D แต่สามารถใช้กับข้อมูล 1D ได้ CNN จะได้รับสถานะของศิลปะใน 1D pbs บางส่วน

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

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

หวังว่าการเพิ่มนี้จะเป็นประโยชน์: p

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