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

สำหรับคำถามเกี่ยวกับ "เครือข่ายประสาทเทียม" (CNN)

10
ชั้น deconvolutional คืออะไร?
ฉันเพิ่งอ่านเครือข่าย Convolutional ครบวงจรสำหรับการแบ่งส่วนแบบ Semanticโดย Jonathan Long, Evan Shelhamer, Trevor Darrell ฉันไม่เข้าใจว่า "เลเยอร์ deconvolutional" ทำอะไร / ทำงานอย่างไร ส่วนที่เกี่ยวข้องคือ 3.3 การยกกลับคือการบิดอย่างช้าๆ อีกวิธีหนึ่งในการเชื่อมต่อเอาต์พุตหยาบกับพิกเซลหนาแน่นคือการแก้ไข ตัวอย่างเช่นการประมาณค่าแบบสองจังหวะง่ายคำนวณแต่ละเอาต์พุตจากอินพุตสี่ที่ใกล้ที่สุดโดยแผนที่เชิงเส้นที่ขึ้นอยู่กับตำแหน่งสัมพัทธ์ของเซลล์อินพุตและเอาต์พุตเท่านั้น เรียกอีกอย่างว่าการยกตัวอย่างด้วยแฟคเตอร์fนั้นจะทำให้เกิดการโน้มน้าวใจด้วยการป้อนข้อมูลเศษส่วนที่ 1 / f ตราบใดที่ฉเป็นส่วนประกอบสำคัญเป็นวิธีธรรมชาติในการ upsample จึงย้อนกลับบิด (บางครั้งเรียก deconvolution) กับกางเกงของการส่งออกของ ฉ การดำเนินการเช่นนี้ไม่สำคัญที่จะนำมาใช้เพราะมันเพียงแค่ย้อนกลับไปข้างหน้าและย้อนกลับผ่านการบิดyijyijy_{ij}fffffffff ดังนั้นการสุ่มตัวอย่างจะดำเนินการในเครือข่ายสำหรับการเรียนรู้แบบ end-to-end โดย backpropagation จากการสูญเสียพิกเซล โปรดทราบว่าตัวกรอง deconvolution ในเลเยอร์ดังกล่าวไม่จำเป็นต้องได้รับการแก้ไข (เช่นไปยังการสุ่มตัวอย่าง bilinear) แต่สามารถเรียนรู้ได้ สแต็คของ deconvolution เลเยอร์และฟังก์ชั่นการเปิดใช้งานยังสามารถเรียนรู้การยกตัวอย่างแบบไม่เชิงเส้น ในการทดลองของเราเราพบว่าการอัปแซมปลิงในเครือข่ายนั้นรวดเร็วและมีประสิทธิภาพสำหรับการเรียนรู้การทำนายที่หนาแน่น สถาปัตยกรรมการแบ่งส่วนที่ดีที่สุดของเราใช้เลเยอร์เหล่านี้เพื่อเรียนรู้ที่จะยกตัวอย่างสำหรับการทำนายที่ละเอียดในหัวข้อ 4.2 …

4
1x1 Convolutions เหมือนกับเลเยอร์ที่เชื่อมต่ออย่างเต็มที่อย่างไร
ฉันเพิ่งอ่านYan LeCuns แสดงความคิดเห็นใน 1x1 convolutions : ใน Convolutional Nets ไม่มีสิ่งเช่น "เลเยอร์ที่เชื่อมต่อเต็มที่" มีเลเยอร์ Convolution เพียงชั้นเดียวที่มีเมล็ดคอนวีเนียน 1x1 และตารางการเชื่อมต่อเต็มรูปแบบ มันเป็นความจริงที่ไม่ค่อยเข้าใจมากนักที่ ConvNets ไม่จำเป็นต้องมีอินพุตที่มีขนาดคงที่ คุณสามารถฝึกอบรมพวกเขาเกี่ยวกับอินพุตที่เกิดขึ้นเพื่อสร้างเวกเตอร์เอาต์พุตเดี่ยว (โดยไม่มีขอบเขต) แล้วนำไปใช้กับภาพที่มีขนาดใหญ่ขึ้น แทนที่จะเป็นเวกเตอร์เอาต์พุตเดี่ยวคุณก็จะได้แผนที่อวกาศของเวกเตอร์เอาต์พุต เวกเตอร์แต่ละตัวจะเห็นหน้าต่างอินพุตในตำแหน่งต่างๆของอินพุต ในสถานการณ์นั้น "เลเยอร์ที่เชื่อมต่ออย่างเต็มที่" ทำหน้าที่เป็นความเชื่อมั่น 1x1 ฉันต้องการดูตัวอย่างง่ายๆสำหรับสิ่งนี้ ตัวอย่าง สมมติว่าคุณมีเครือข่ายที่เชื่อมต่ออย่างสมบูรณ์ มันมีเพียงชั้นเข้าและชั้นออก เลเยอร์อินพุตมี 3 โหนดชั้นเลเยอร์มี 2 โหนด เครือข่ายนี้มีพารามิเตอร์เพื่อให้เป็นรูปธรรมมากยิ่งขึ้นสมมติว่าคุณมีฟังก์ชั่นการเปิดใช้งาน ReLU ในชั้นเอาต์พุตและเมทริกซ์น้ำหนัก3⋅2=63⋅2=63 \cdot 2 = 6 Wb=(021315)∈R2×3=(813)∈R2W=(011235)∈R2×3b=(813)∈R2 \begin{align} W &= \begin{pmatrix} 0 …

2
วิธีการเตรียม / ขยายภาพสำหรับโครงข่ายประสาทเทียม
ฉันต้องการใช้เครือข่ายประสาทเทียมสำหรับการจัดประเภทรูปภาพ ฉันจะเริ่มต้นด้วย CaffeNet ที่ได้รับการฝึกฝนมาล่วงหน้าและฝึกอบรมเพื่อการสมัครของฉัน ฉันควรเตรียมภาพอินพุตอย่างไร ในกรณีนี้ภาพทั้งหมดเป็นวัตถุเดียวกัน แต่มีการเปลี่ยนแปลง (คิดว่า: การควบคุมคุณภาพ) พวกเขาอยู่ในระดับที่แตกต่างกันค่อนข้าง / ความละเอียด / ระยะทาง / สภาพแสง (และในหลายกรณีฉันไม่ทราบขนาด) นอกจากนี้ในแต่ละภาพยังมีพื้นที่ (รู้จัก) รอบวัตถุที่น่าสนใจซึ่งเครือข่ายควรละเว้น ฉันสามารถครอบตัดจุดศูนย์กลางของภาพแต่ละภาพซึ่งรับประกันว่าจะมีส่วนของวัตถุที่น่าสนใจและไม่มีพื้นที่ที่ถูกละเว้น แต่ดูเหมือนว่ามันจะส่งข้อมูลออกไปและผลลัพธ์ก็ไม่ได้มีขนาดเท่ากันจริง ๆ (อาจมีการเปลี่ยนแปลง 1.5 เท่า) การเสริมชุดข้อมูล ฉันเคยได้ยินการสร้างข้อมูลการฝึกอบรมเพิ่มเติมโดยการครอบตัดแบบสุ่ม / มิเรอร์ / ฯลฯ มีวิธีการมาตรฐานสำหรับสิ่งนี้หรือไม่ ผลลัพธ์ใด ๆ เกี่ยวกับการปรับปรุงที่เกิดขึ้นกับความแม่นยำของลักษณนาม

4
เลเยอร์ Convolution ที่ตามมาทำงานอย่างไร?
คำถามนี้เดือดลงไป "วิธีการทำชั้นบิดว่าการทำงาน สมมติว่าฉันมีภาพเฉดสีเทาขนาดดังนั้นภาพจึงมีหนึ่งช่อง ในชั้นแรกฉันใช้การแปลง3 × 3กับตัวกรองk 1และช่องว่างภายใน จากนั้นฉันก็มีชั้นสังวัตนาอีกชั้นหนึ่งที่มีตัวกรอง5 × 5และตัวกรองk 2 ฉันมีแผนที่คุณลักษณะกี่อันn×mn×mn \times m3×33×33\times 3k1k1k_15×55×55 \times 5k2k2k_2 Convolution แบบที่ 1 เลเยอร์แรกจะถูกดำเนินการ หลังจากนั้นฉันมีแผนที่คุณลักษณะ (อันสำหรับตัวกรองแต่ละตัว) แต่ละคนมีขนาดn ×เมตร ทุกพิกเซลถูกสร้างขึ้นโดยการใช้3 ⋅ 3 = 9พิกเซลจากภาพอินพุตเสริมk1k1k_1n×mn×mn \times m3⋅3=93⋅3=93 \cdot 3 = 9 จากนั้นเลเยอร์ที่สองจะถูกนำไปใช้ ทุกคนได้รับการกรองมาใช้แยกแต่ละแผนที่คุณลักษณะ ผลลัพธ์นี้มีการแม็พฟีเจอร์สำหรับแมปฟีเจอร์k 1ทุกรายการ ดังนั้นจึงมีแผนที่คุณลักษณะk 1 × k 2หลังจากเลเยอร์ที่สอง ทุกพิกเซลเดียวของแผนที่คุณลักษณะใหม่แต่ละรายการได้สร้างขึ้นโดยใช้ขนาด5 ⋅ 5 = 25 …

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

1
มีกฎสำหรับการเลือกขนาดของ mini-batch หรือไม่?
เมื่อฝึกอบรมโครงข่ายประสาทเทียมหนึ่งพารามิเตอร์ขนาดใหญ่คือขนาดของรถมินิบัส ตัวเลือกทั่วไปคือองค์ประกอบ 32, 64 และ 128 ต่อมินิแบทช์ มีกฎ / แนวทางใดบ้างที่ควรมี mini-batch ขนาดใหญ่? สิ่งพิมพ์ใดบ้างที่ตรวจสอบผลกระทบของการฝึกอบรม?

2
อะไรคือ / เป็นตัวกรองเริ่มต้นที่ใช้โดย Keras Convolution2d ()
ฉันค่อนข้างใหม่สำหรับเครือข่ายประสาท แต่ฉันเข้าใจพีชคณิตเชิงเส้นและคณิตศาสตร์ของการโน้มน้าวค่อนข้างดี ฉันพยายามที่จะเข้าใจโค้ดตัวอย่างที่ฉันพบในที่ต่างๆบนอินเทอร์เน็ตเพื่อฝึกอบรม NN ของ Keras convolutional พร้อมข้อมูล MNIST เพื่อจดจำตัวเลข ความคาดหวังของฉันคือเมื่อฉันสร้างเลเยอร์ convolutional ฉันจะต้องระบุตัวกรองหรือชุดตัวกรองเพื่อใช้กับอินพุต แต่ตัวอย่างทั้งสามที่ฉันพบพบทั้งหมดสร้างเลเยอร์ convolutional เช่นนี้ model.add(Convolution2D(nb_filter = 32, nb_row = 3, nb_col = 3, border_mode='valid', input_shape=input_shape)) ดูเหมือนว่าจะมีการใช้ตัวกรองรวม 32 3x3 กับภาพที่ประมวลผลโดย CNN แต่ตัวกรองเหล่านั้นคืออะไร? ฉันจะอธิบายพวกเขาทางคณิตศาสตร์ได้อย่างไร เอกสาร keras ไม่ได้ช่วยอะไร ขอบคุณล่วงหน้า,
18 convnet  keras 

4
อะไรคือความแตกต่างระหว่าง Inception v2 และ Inception v3?
บทความที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับการโน้มน้าวใจอธิบายถึง GoogleNet ซึ่งมีโมดูลการลงทะเบียนดั้งเดิม: การเปลี่ยนเป็นการเริ่มต้น v2 คือพวกเขาแทนที่การ convolutions 5x5 โดยการ convolutions 3x3 ที่ต่อเนื่องกันสองครั้งและใช้การรวมกำไร: อะไรคือความแตกต่างระหว่าง Inception v2 และ Inception v3?

5
ทำให้แผนที่ความร้อนของทะเลใหญ่ขึ้น
ฉันสร้างcorr()df จาก df ดั้งเดิม corr()DF ออก 70 X 70 มาและมันเป็นไปไม่ได้ที่จะเห็นภาพ heatmap ส sns.heatmap(df)... ถ้าฉันพยายามที่จะแสดงcorr = df.corr()ตารางที่ไม่พอดีกับหน้าจอและฉันสามารถดูความสัมพันธ์ทั้งหมด มันเป็นวิธีที่จะพิมพ์ทั้งdfโดยไม่คำนึงถึงขนาดของมันหรือเพื่อควบคุมขนาดของ heatmap หรือไม่?
17 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 

5
โครงข่ายประสาทเทียมมากเกินไป การออกกลางคันไม่ได้ช่วยอะไร
ฉันกำลังเล่นกับ convnets เล็กน้อย โดยเฉพาะฉันใช้ชุดข้อมูล cats-vs-dogs kaggle ซึ่งประกอบไปด้วยรูปภาพ 25,000 ภาพที่มีป้ายกำกับว่าเป็น cat หรือ dog (12500 อัน) ฉันจัดการเพื่อให้บรรลุความถูกต้องจำแนก 85% ในชุดทดสอบของฉัน แต่ฉันกำหนดเป้าหมายของการบรรลุความแม่นยำ 90% ปัญหาหลักของฉันคือ overfitting อย่างใดก็มักจะเกิดขึ้นเสมอ (ปกติหลังจากยุค 8-10) สถาปัตยกรรมของเครือข่ายของฉันได้รับแรงบันดาลใจมาจาก VGG-16 โดยเฉพาะอย่างยิ่งภาพของฉันได้รับการปรับขนาดเป็น128x128x3128x128x3128x128x3จากนั้นฉันเรียกใช้: Convolution 1 128x128x32 (kernel size is 3, strides is 1) Convolution 2 128x128x32 (kernel size is 3, strides is 1) Max pool 1 …

1
การขยายพันธุ์กลับในซีเอ็นเอ็น
ฉันมีซีเอ็นเอ็นต่อไปนี้: ฉันเริ่มต้นด้วยภาพอินพุตขนาด 5x5 จากนั้นฉันใช้การแปลงโดยใช้เคอร์เนล 2x2 และ stride = 1 ซึ่งสร้างแผนที่คุณลักษณะขนาด 4x4 จากนั้นฉันใช้ 2x2 max-pooling ร่วมกับ stride = 2 ซึ่งจะลดขนาดของแผนที่ขนาด 2x2 จากนั้นฉันก็ใช้ sigmoid โลจิสติก จากนั้นหนึ่งเลเยอร์ที่เชื่อมต่ออย่างเต็มที่กับ 2 เซลล์ประสาท และชั้นเอาท์พุท เพื่อความเรียบง่ายสมมติว่าฉันได้ทำพาสพาสไปแล้วและคำนวณδH1 = 0.25และ δH2 = -0.15 ดังนั้นหลังจากผ่านไปข้างหน้าอย่างสมบูรณ์และทำย้อนหลังผ่านบางส่วนเครือข่ายของฉันมีลักษณะเช่นนี้: จากนั้นฉันคำนวณ delta สำหรับเลเยอร์ที่ไม่ใช่เชิงเส้น (sigmoid โลจิสติก): δ11=(0.25∗0.61+−0.15∗0.02)∗0.58∗(1−0.58)=0.0364182δ12=(0.25∗0.82+−0.15∗−0.50)∗0.57∗(1−0.57)=0.068628δ21=(0.25∗0.96+−0.15∗0.23)∗0.65∗(1−0.65)=0.04675125δ22=(0.25∗−1.00+−0.15∗0.17)∗0.55∗(1−0.55)=−0.06818625δ11=(0.25∗0.61+−0.15∗0.02)∗0.58∗(1−0.58)=0.0364182δ12=(0.25∗0.82+−0.15∗−0.50)∗0.57∗(1−0.57)=0.068628δ21=(0.25∗0.96+−0.15∗0.23)∗0.65∗(1−0.65)=0.04675125δ22=(0.25∗−1.00+−0.15∗0.17)∗0.55∗(1−0.55)=−0.06818625 \begin{align} &\delta_{11}=(0.25 * 0.61 + -0.15 * 0.02) * 0.58 …

3
ImageNet มีคลาสบุคคลใน ImageNet หรือไม่? มีคลาสที่เกี่ยวข้องกับมนุษย์หรือไม่?
ถ้าฉันมองไปที่หนึ่งในหลายแหล่งเรียน Imagenet บนอินเทอร์เน็ตฉันไม่สามารถหาชั้นเดียวที่เกี่ยวข้องกับมนุษย์ (และไม่มีคนเกี่ยวข้าวเก็บเกี่ยวไม่ได้เป็นคนที่เก็บเกี่ยว แต่มันเป็นสิ่งที่ผมรู้ว่าเป็น Longlegs พ่อชนิดของ แมงมุม :-) เป็นไปได้อย่างไร? ผมจะมีที่คาดว่าอย่างน้อยpersonระดับและแม้กระทั่งสิ่งที่เฉพาะเจาะจงมากขึ้นเช่นman, woman, toddlerฯลฯ ไม่มีการจัดเรียง ทำไม? ไม่เฟยเฟยหลี่และทีมงานของเธอให้เป็นทางเลือกที่ใส่ใจไม่ให้มีภาพคนที่อยู่ในฐานข้อมูลหรือไม่ ฉันดูไฟล์ผิดหรือเปล่า? เพื่อประโยชน์ของคำถามเราสามารถพิจารณาImageNetรุ่นตั้งแต่ปี 2014 เป็นต้นไป

1
Back-propagation ผ่านเลเยอร์การรวมสูงสุด
ฉันมีขนาดเล็กย่อยคำถามคำถามนี้ ฉันเข้าใจว่าเมื่อการแพร่กระจายย้อนกลับผ่านเลเยอร์รวมกำไรสูงสุดการไล่ระดับสีจะถูกส่งกลับในลักษณะที่เซลล์ประสาทในเลเยอร์ก่อนหน้าซึ่งถูกเลือกเมื่อแม็กซ์ได้รับการไล่ระดับสีทั้งหมด สิ่งที่ฉันไม่แน่ใจ 100% คือวิธีการไล่ระดับสีในเลเยอร์ถัดไปที่ได้รับการส่งกลับไปยังเลเยอร์รวมกำไร ดังนั้นคำถามแรกคือถ้าฉันมีเลเยอร์ร่วมกันเชื่อมต่อกับเลเยอร์เชื่อมต่ออย่างเต็มที่ - เช่นภาพด้านล่าง เมื่อคำนวณการไล่สีสำหรับ cyan "neuron" ของ pooling layer ฉันจะรวมการไล่ระดับสีทั้งหมดจากเซลล์เลเยอร์ FC หรือไม่ หากสิ่งนี้ถูกต้องแล้ว "เซลล์ประสาท" ของเลเยอร์รวมกำไรทุกคนมีการไล่ระดับสีเดียวกันหรือไม่ ตัวอย่างเช่นถ้าเซลล์ประสาทแรกของเลเยอร์ FC มีการไล่ระดับสีที่ 2, ที่สองมีการไล่ระดับสีที่ 3 และที่สามการไล่ระดับที่ 6 การไล่ระดับสีของ "เซลล์ประสาท" สีน้ำเงินและสีม่วงในชั้นรวมกำไรคืออะไรและทำไม? และคำถามที่สองคือเมื่อเลเยอร์ร่วมกันเชื่อมต่อกับอีกชั้นหนึ่ง ฉันจะคำนวณการไล่ระดับสีได้อย่างไร ดูตัวอย่างด้านล่าง สำหรับ "เซลล์ประสาท" ที่อยู่บนสุดสุดของชั้นรวมกำไร (สีเขียวที่กำหนดไว้) ฉันแค่ใช้การไล่ระดับสีของเซลล์ประสาทสีม่วงในชั้น Conv ต่อไปและกำหนดเส้นทางกลับใช่ไหม? สีเขียวที่เติมเต็มแล้วล่ะ? ฉันต้องคูณคอลัมน์แรกของเซลล์ประสาทในเลเยอร์ถัดไปเนื่องจากกฎลูกโซ่ หรือฉันจะต้องเพิ่มพวกเขา? โปรดอย่าโพสต์สมการและบอกฉันว่าคำตอบของฉันอยู่ตรงนั้นเพราะฉันพยายามคลุมหัวสมการและฉันยังไม่เข้าใจมันอย่างสมบูรณ์แบบนั่นคือเหตุผลที่ฉันถามคำถามนี้ในแบบง่าย ๆ ทาง

1
ความแตกต่างระหว่างการสุ่มตัวอย่างการอัปแซมปลิงและแบบสองจังหวะในซีเอ็นเอ็นคืออะไร?
ฉันกำลังพยายามที่จะเข้าใจกระดาษนี้และไม่แน่ใจในสิ่งที่การสุ่มตัวอย่างแบบสองทิศทางคืออะไร ใครสามารถอธิบายสิ่งนี้ในระดับสูงได้บ้าง https://arxiv.org/abs/1606.00915

3
ทำไม Convolutions จึงใช้เลขคี่เป็นตัวกรอง
ถ้าเราดูเอกสารที่ตีพิมพ์ 90-99% โดยใช้ CNN (ConvNet) ส่วนใหญ่ใช้ขนาดตัวกรองของตัวเลขคี่ : {1, 3, 5, 7} สำหรับการใช้งานมากที่สุด สถานการณ์นี้อาจนำไปสู่ปัญหาบางอย่าง: ด้วยขนาดตัวกรองเหล่านี้โดยปกติแล้วการดำเนินการสังวัตนาจะไม่สมบูรณ์แบบด้วยการเติม 2 (การเติมทั่วไป) และขอบบางส่วนของ input_field หายไปในกระบวนการ ... คำถามที่ 1:เหตุใดจึงใช้เพียง odd_numbers สำหรับขนาดตัวกรอง Convolutions คำถามที่ 2:จริง ๆ แล้วมันเป็นปัญหาที่จะละเว้นส่วนเล็ก ๆ ของ input_field ในระหว่างการโน้มน้าว? ทำไมต้องเป็นเช่นนั้น /

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