คำถามติดแท็ก neural-network

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

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


6
ข้อดีของเครือข่ายประสาทเทียมเหนือเครื่องเวกเตอร์สนับสนุนคืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ANN (Artificial Neural Networks) และ SVM (Support Vector Machines) เป็นสองกลยุทธ์ยอดนิยมสำหรับการเรียนรู้และการจัดหมวดหมู่ของเครื่อง มักไม่ค่อยชัดเจนว่าวิธีใดดีกว่าสำหรับโครงการใดโครงการหนึ่งและฉันมั่นใจว่าคำตอบนั้นมักจะ "ขึ้นอยู่กับ" บ่อยครั้งที่มีการใช้ทั้งสองอย่างร่วมกันกับการจำแนกแบบเบย์ คำถามเหล่านี้ใน Stackoverflow ถูกถามเกี่ยวกับ ANN vs SVM: การจำแนกประเภท ANN และ SVM ความแตกต่างระหว่าง ANN, SVM และ KNN ในคำถามการจัดหมวดหมู่ของฉันคืออะไร รองรับ Vector Machine หรือ Neural Network สำหรับการประมวลผลข้อความหรือไม่? ในคำถามนี้ฉันต้องการทราบอย่างชัดเจนว่า ANN (โดยเฉพาะ Multilayer Perceptron) ด้านใดที่อาจทำให้เป็นที่พึงปรารถนาที่จะใช้กับ …

1
ค่า NaN ที่น้อยมากจะปรากฏในโครงข่ายประสาทเทียม
ฉันกำลังพยายามใช้สถาปัตยกรรมเครือข่ายประสาทเทียมใน Haskell และใช้กับ MNIST ฉันกำลังใช้hmatrixแพ็คเกจสำหรับพีชคณิตเชิงเส้น กรอบการฝึกอบรมของฉันสร้างขึ้นโดยใช้pipesแพ็คเกจ โค้ดของฉันคอมไพล์และไม่ผิดพลาด แต่ปัญหาคือการผสมขนาดเลเยอร์บางอย่าง (เช่น 1,000) ขนาดมินิแบทช์และอัตราการเรียนรู้ทำให้เกิดNaNค่าในการคำนวณ หลังจากการตรวจสอบบางครั้งฉันเห็นว่าในที่สุดค่าที่เล็กมาก (ลำดับของ1e-100) จะปรากฏในการเปิดใช้งาน แต่แม้ว่าจะไม่เกิดขึ้นการฝึกอบรมก็ยังไม่ได้ผล ไม่มีการปรับปรุงการสูญเสียหรือความแม่นยำ ฉันตรวจสอบและตรวจสอบรหัสของฉันอีกครั้งและฉันก็สูญเสียว่าต้นตอของปัญหาอาจเป็นอย่างไร นี่คือการฝึก backpropagation ซึ่งคำนวณเดลต้าสำหรับแต่ละเลเยอร์: backward lf n (out,tar) das = do let δout = tr (derivate lf (tar, out)) -- dE/dy deltas = scanr (\(l, a') δ -> let w = weights l in …

2
คำอธิบายอินพุต Keras: input_shape, หน่วย, batch_size, dim, ฯลฯ
สำหรับการใด ๆ ชั้น Keras ( Layerclass), คนที่สามารถอธิบายวิธีการที่จะเข้าใจความแตกต่างระหว่างinput_shape, units, dimฯลฯ ? ตัวอย่างเช่น doc says unitsระบุรูปร่างผลลัพธ์ของเลเยอร์ ในภาพของโครงข่ายประสาทด้านล่างhidden layer1มี 4 หน่วย สิ่งนี้แปลโดยตรงกับunitsคุณสมบัติของLayerวัตถุหรือไม่ หรือunitsใน Keras มีรูปร่างเท่ากันทุกน้ำหนักในเลเยอร์ที่ซ่อนอยู่คูณด้วยจำนวนของหน่วย? ในระยะสั้นหนึ่งจะเข้าใจ / แสดงคุณลักษณะของโมเดล - โดยเฉพาะเลเยอร์ - ด้วยภาพด้านล่างได้อย่างไร

11
ความหมายของคำว่า logits ใน TensorFlow คืออะไร?
ในฟังก์ชั่น TensorFlow ต่อไปนี้เราจะต้องป้อนการเปิดใช้งานของเซลล์ประสาทเทียมในชั้นสุดท้าย ที่ฉันเข้าใจ แต่ฉันไม่เข้าใจว่าทำไมเรียกว่าบันทึก นั่นคือฟังก์ชันทางคณิตศาสตร์ใช่ไหม loss_function = tf.nn.softmax_cross_entropy_with_logits( logits = last_layer, labels = target_output )

3
วิธีตีความ“ การสูญเสีย” และ“ ความแม่นยำ” สำหรับโมเดลการเรียนรู้ของเครื่อง
เมื่อฉันฝึกโครงข่ายประสาทเทียมด้วย Theano หรือ Tensorflow พวกเขาจะรายงานตัวแปรที่เรียกว่า "การสูญเสีย" ต่อยุค ฉันควรตีความตัวแปรนี้อย่างไร การสูญเสียที่สูงขึ้นนั้นดีขึ้นหรือแย่ลงหรือความหมายของประสิทธิภาพขั้นสุดท้าย (ความถูกต้อง) ของเครือข่ายประสาทของฉันคืออะไร

7
ฉันจะเรียกใช้ฟังก์ชัน BatchNormalization ใน Keras ได้ที่ไหน
ถ้าฉันต้องการใช้ฟังก์ชั่น BatchNormalization ใน Keras ฉันต้องโทรหามันแค่ครั้งแรกตอนเริ่มต้นหรือไม่? ฉันอ่านเอกสารนี้แล้ว: http://keras.io/layers/normalization/ ฉันไม่เห็นที่ฉันควรจะเรียกมันว่า ด้านล่างเป็นรหัสของฉันพยายามใช้: model = Sequential() keras.layers.normalization.BatchNormalization(epsilon=1e-06, mode=0, momentum=0.9, weights=None) model.add(Dense(64, input_dim=14, init='uniform')) model.add(Activation('tanh')) model.add(Dropout(0.5)) model.add(Dense(64, init='uniform')) model.add(Activation('tanh')) model.add(Dropout(0.5)) model.add(Dense(2, init='uniform')) model.add(Activation('softmax')) sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True) model.compile(loss='binary_crossentropy', optimizer=sgd) model.fit(X_train, y_train, nb_epoch=20, batch_size=16, show_accuracy=True, validation_split=0.2, verbose = 2) ฉันถามเพราะถ้าฉันเรียกใช้รหัสด้วยบรรทัดที่สองรวมถึงการทำให้เป็นมาตรฐานชุดงานและถ้าฉันเรียกใช้รหัสโดยไม่มีบรรทัดที่สองฉันได้รับผลลัพธ์ที่คล้ายกัน ดังนั้นฉันไม่ได้เรียกฟังก์ชั่นในตำแหน่งที่ถูกต้องหรือฉันเดาว่ามันไม่ได้สร้างความแตกต่างมากนัก

11
ทำไม binary_crossentropy และ categorical_crossentropy ให้การแสดงต่างกันสำหรับปัญหาเดียวกัน?
ฉันพยายามฝึก CNN เพื่อจัดหมวดหมู่ข้อความตามหัวข้อ เมื่อฉันใช้ไบนารีข้ามเอนโทรปีฉันจะได้รับความแม่นยำประมาณ 80% และจากการข้ามเอนโทรปีอย่างเด็ดขาดฉันจะได้รับความแม่นยำ 50% ฉันไม่เข้าใจว่าทำไมถึงเป็นเช่นนี้ มันเป็นปัญหามัลติคลาสนั่นไม่ได้หมายความว่าฉันต้องใช้การข้ามเอนโทรปีแบบเด็ดขาดและผลลัพธ์ที่ได้จากการข้ามเอนโทรปีแบบไบนารีนั้นไร้ความหมาย? model.add(embedding_layer) model.add(Dropout(0.25)) # convolution layers model.add(Conv1D(nb_filter=32, filter_length=4, border_mode='valid', activation='relu')) model.add(MaxPooling1D(pool_length=2)) # dense layers model.add(Flatten()) model.add(Dense(256)) model.add(Dropout(0.25)) model.add(Activation('relu')) # output layer model.add(Dense(len(class_id_index))) model.add(Activation('softmax')) จากนั้นฉันก็คอมไพล์มันแบบนี้โดยใช้categorical_crossentropyเป็นฟังก์ชันการสูญเสีย: model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) หรือ model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) โดยสัญชาตญาณมันสมเหตุสมผลแล้วว่าทำไมฉันถึงต้องการใช้เอนโทรปีแบบข้ามหมวดหมู่ฉันไม่เข้าใจว่าทำไมฉันถึงได้ผลลัพธ์ที่ดีด้วยเลขฐานสองและผลลัพธ์ที่ไม่ดีกับการจัดหมวดหมู่

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

7
การตรวจสอบความถูกต้องและชุดทดสอบแตกต่างกันอย่างไรในเครือข่ายประสาทเทียม
ฉันใช้ห้องสมุดนี้เพื่อสร้างตัวแทนการเรียนรู้ ฉันได้สร้างกรณีฝึกอบรม แต่ฉันไม่รู้ว่าชุดการตรวจสอบและการทดสอบคืออะไร ครูพูดว่า: 70% ควรเป็นกรณีรถไฟ 10% จะเป็นกรณีทดสอบและ 20% ที่เหลือควรเป็นกรณีตรวจสอบ แก้ไข ฉันมีรหัสนี้สำหรับการฝึกอบรม แต่ฉันไม่มีความคิดที่จะหยุดการฝึกอบรมเมื่อใด def train(self, train, validation, N=0.3, M=0.1): # N: learning rate # M: momentum factor accuracy = list() while(True): error = 0.0 for p in train: input, target = p self.update(input) error = error + self.backPropagate(target, N, M) …

9
ทำไมเราต้องทำให้อินพุตของเครือข่ายประสาทเทียมเป็นปกติ?
มันเป็นคำถามหลักเกี่ยวกับทฤษฎีของโครงข่ายประสาทเทียม: ทำไมเราต้องทำให้อินพุตของเครือข่ายประสาทเป็นปกติ? ฉันเข้าใจว่าบางครั้งเมื่อเช่นค่าที่ป้อนเข้าไม่ใช่ตัวเลขต้องทำการแปลงบางอย่าง แต่เมื่อเรามีอินพุตที่เป็นตัวเลข ทำไมตัวเลขต้องอยู่ในช่วงเวลาที่แน่นอน? จะเกิดอะไรขึ้นหากข้อมูลไม่ได้มาตรฐาน

8
ฉันควรใช้อัลกอริธึมทางพันธุกรรมเมื่อเทียบกับเครือข่ายประสาท [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา มีกฎง่ายๆ (หรือชุดตัวอย่าง) เพื่อตรวจสอบว่าเมื่อใดจะใช้อัลกอริทึมทางพันธุกรรมเมื่อเทียบกับเครือข่ายประสาท (และในทางกลับกัน) เพื่อแก้ปัญหา? ฉันรู้ว่ามีหลายกรณีที่คุณสามารถผสมทั้งสองวิธีได้ แต่ฉันกำลังมองหาการเปรียบเทียบระดับสูงระหว่างสองวิธี

7
วิธีการฝึกอบรมเครือข่ายประสาทเทียมเพื่อเล่น Diablo 2 โดยใช้การป้อนข้อมูลด้วยภาพ
ฉันกำลังพยายามรับ ANN เพื่อเล่นวิดีโอเกมและฉันหวังว่าจะได้รับความช่วยเหลือจากชุมชนที่ยอดเยี่ยมที่นี่ ฉันได้ตัดสินจาก Diablo 2 แล้วการเล่นเกมจึงเป็นแบบเรียลไทม์และจากมุมมองภาพวาดสามมิติโดยผู้เล่นสามารถควบคุมอวาตาร์ตัวเดียวที่กล้องมีศูนย์กลางอยู่ ในการสร้างสิ่งที่เป็นรูปธรรมภารกิจคือการได้รับคะแนนประสบการณ์ x โดยไม่ทำให้สุขภาพลดลงเหลือ 0 ซึ่งจะได้รับค่าประสบการณ์จากการฆ่ามอนสเตอร์ นี่คือตัวอย่างของการเล่นเกม: ตอนนี้เนื่องจากฉันต้องการให้เน็ตทำงานโดยอาศัยข้อมูลที่ได้รับจากพิกเซลบนหน้าจอเท่านั้นจึงต้องเรียนรู้การแสดงที่หลากหลายเพื่อที่จะเล่นได้อย่างมีประสิทธิภาพเนื่องจากสิ่งนี้น่าจะต้องการให้รู้ (โดยปริยาย) แบ่งโลกของเกมออกเป็นวัตถุและวิธีการโต้ตอบกับพวกเขา และข้อมูลทั้งหมดนี้จะต้องถูกสอนให้กับเครือข่ายอย่างใด ฉันทำไม่ได้สำหรับชีวิตของฉันคิดว่าจะฝึกเรื่องนี้อย่างไร ความคิดเดียวของฉันคือมีโปรแกรมแยกสิ่งที่มองเห็นสิ่งที่ดี / ไม่ดีโดยธรรมชาติในเกม (เช่นสุขภาพ, ทอง, ประสบการณ์) จากหน้าจอจากนั้นใช้สถิตินั้นในกระบวนการเรียนรู้การเสริมแรง ฉันคิดว่ามันจะเป็นส่วนหนึ่งของคำตอบ แต่ฉันคิดว่ามันจะไม่เพียงพอ มีเพียงนามธรรมในระดับที่มากเกินไปจากการป้อนข้อมูลแบบวิชวลไปจนถึงพฤติกรรมที่มุ่งเน้นเป้าหมายสำหรับข้อเสนอแนะที่ จำกัด เช่นนี้เพื่อฝึกฝนเน็ตภายในชีวิตของฉัน ดังนั้นคำถามของฉัน: คุณมีวิธีอื่นอย่างไรในการฝึกอบรมให้ทำอย่างน้อยส่วนหนึ่งของงานนี้ โดยไม่ต้องทำตัวอย่างหลายพันรายการ ขอทิศทางอีกเล็กน้อย: ฉันกำลังมองหาแหล่งการเรียนรู้การเสริมแรงอื่น ๆ และ / หรือวิธีการที่ไม่ได้รับการสนับสนุนสำหรับการดึงข้อมูลที่เป็นประโยชน์ในการตั้งค่านี้ หรืออัลกอริทึมการดูแลถ้าคุณสามารถคิดหาวิธีที่จะติดป้ายกำกับข้อมูลจากโลกของเกมโดยไม่ต้องติดป้ายกำกับด้วยตนเอง UPDATE (04/27/12): แปลกฉันยังคงทำงานนี้และดูเหมือนจะก้าวหน้า ความลับที่ใหญ่ที่สุดในการทำให้คอนโทรลเลอร์ ANN ทำงานได้คือใช้สถาปัตยกรรม ANN ที่ทันสมัยที่สุดที่เหมาะสมกับงาน ดังนั้นผมเคยใช้สุทธิความเชื่อลึกประกอบด้วยเอาเรื่องเงื่อนไข จำกัด …

12
ทำไมต้องเปิดใช้งานฟังก์ชั่นแบบไม่เชิงเส้นในเครือข่ายนิวรัล backpropagation
ฉันได้อ่านบางอย่างเกี่ยวกับโครงข่ายประสาทและฉันเข้าใจหลักการทั่วไปของโครงข่ายประสาทชั้นเดียว ฉันเข้าใจความต้องการเลเยอร์ aditional แล้ว แต่ทำไมจึงใช้ฟังก์ชั่นเปิดใช้งานแบบไม่เชิงเส้น คำถามนี้ตามมาด้วยคำถามนี้: อะไรคืออนุพันธ์ของฟังก์ชั่นการเปิดใช้งานที่ใช้ในการแพร่กระจายย้อนหลัง?

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