ฉันสนใจเครือข่ายประสาทเทียมมาก แต่กำลังมองหาจุดเริ่มต้น
มีทรัพยากรอะไรบ้างและโครงการเริ่มต้นที่ดีคืออะไร?
ฉันสนใจเครือข่ายประสาทเทียมมาก แต่กำลังมองหาจุดเริ่มต้น
มีทรัพยากรอะไรบ้างและโครงการเริ่มต้นที่ดีคืออะไร?
คำตอบ:
นี่คือตัวอย่างบางส่วนของการเขียนโปรแกรม Neural Net http://www.codeproject.com/KB/recipes/neural_dot_net.aspx
คุณสามารถเริ่มอ่านได้ที่นี่: http://web.archive.org/web/20071025010456/http://www.geocities.com/CapeCanaveral/Lab/3765/neural.html
ในส่วนของฉันได้ไปเยี่ยมชมหลักสูตรเกี่ยวกับเรื่องนี้และทำงานเกี่ยวกับวรรณกรรมบางเรื่อง
ก่อนอื่นให้ละทิ้งความคิดที่ว่าเครือข่ายประสาทเทียมมีส่วนเกี่ยวข้องกับสมอง แต่เพื่อความคล้ายคลึงกับเครือข่ายของเซลล์ประสาททางชีววิทยา การเรียนรู้ชีววิทยาจะไม่ช่วยให้คุณใช้เครือข่ายประสาทเทียมได้อย่างมีประสิทธิภาพ การเรียนรู้พีชคณิตเชิงเส้นแคลคูลัสและทฤษฎีความน่าจะเป็น อย่างน้อยที่สุดคุณควรทำให้ตัวเองคุ้นเคยกับแนวคิดเรื่องความแตกต่างพื้นฐานของฟังก์ชันกฎลูกโซ่อนุพันธ์บางส่วน (การไล่ระดับสีจาโคเบียนและเฮสเซียน) และทำความเข้าใจการคูณเมทริกซ์และการทแยงมุม
จริงๆแล้วสิ่งที่คุณกำลังทำเมื่อคุณฝึกอบรมเครือข่ายคือการเพิ่มประสิทธิภาพฟังก์ชันหลายมิติขนาดใหญ่ (ลดการวัดข้อผิดพลาดของคุณเมื่อเทียบกับน้ำหนักแต่ละตัวในเครือข่าย) ดังนั้นการตรวจสอบเทคนิคสำหรับการเพิ่มประสิทธิภาพเชิงตัวเลขที่ไม่ใช่เชิงเส้นอาจพิสูจน์ได้ว่าเป็นประโยชน์ นี่เป็นปัญหาที่ได้รับการศึกษาอย่างกว้างขวางเกี่ยวกับวรรณกรรมจำนวนมากนอกเครือข่ายประสาทเทียมและมีบันทึกการบรรยายมากมายเกี่ยวกับการเพิ่มประสิทธิภาพเชิงตัวเลขที่มีอยู่บนเว็บ ในการเริ่มต้นคนส่วนใหญ่ใช้การไล่ระดับสีแบบง่าย ๆแต่อาจช้ากว่ามากและได้ผลน้อยกว่าวิธีการที่เหมาะสมกว่าเช่น
เมื่อคุณได้แนวคิดพื้นฐานแล้วคุณสามารถเริ่มทดลองกับฟังก์ชัน "squashing" ต่างๆในเลเยอร์ที่ซ่อนอยู่ของคุณเพิ่มการทำให้เป็นระเบียบต่างๆและการปรับแต่งต่างๆเพื่อให้การเรียนรู้เร็วขึ้น ดูบทความนี้สำหรับรายการ "แนวทางปฏิบัติที่ดีที่สุด" โดยละเอียด
หนึ่งในหนังสือที่ดีที่สุดในเรื่องนี้คือคริสบิชอปโครงข่ายประสาทสำหรับการจดจำรูปแบบ มันค่อนข้างเก่าในขั้นตอนนี้ แต่ยังคงเป็นแหล่งข้อมูลที่ยอดเยี่ยมและคุณมักจะพบสำเนาที่ใช้ทางออนไลน์ในราคาประมาณ $ 30 บทโครงข่ายประสาทเทียมในหนังสือเล่มใหม่ของเขาคือPattern Recognition และ Machine Learningก็ค่อนข้างครอบคลุมเช่นกัน สำหรับบทช่วยสอนที่เน้นการนำไปใช้งานที่ดีเป็นพิเศษโปรดดูที่ CodeProject.comซึ่งใช้เครือข่ายที่ชาญฉลาดที่เรียกว่าเครือข่าย Convolutional ซึ่ง จำกัด การเชื่อมต่อในลักษณะที่จะทำให้การเรียนรู้การจำแนกรูปแบบภาพทำได้ดีมาก
สนับสนุนเครื่องเวกเตอร์และวิธีการเคอร์เนลอื่น ๆ ได้รับความนิยมมากเพราะคุณสามารถนำไปใช้โดยไม่รู้ว่าคุณกำลังทำอะไรอยู่และมักจะได้ผลลัพธ์ที่ยอมรับได้ ในทางกลับกันเครือข่ายประสาทเทียมเป็นปัญหาการเพิ่มประสิทธิภาพขนาดใหญ่ซึ่งต้องมีการปรับแต่งอย่างรอบคอบแม้ว่าจะยังคงเป็นที่นิยมสำหรับปัญหามากมายโดยเฉพาะปัญหาขนาดใหญ่ในโดเมนเช่นการมองเห็นของคอมพิวเตอร์
ฉันขอแนะนำชุดที่ยอดเยี่ยมนี้โดย Anoop Madhusudanan ในรหัสโครงการ
เขานำคุณผ่านพื้นฐานเพื่อทำความเข้าใจวิธีการทำงานอย่างเข้าใจง่ายและแสดงวิธีใช้brainnet
ห้องสมุดของเขาเพื่อสร้างของคุณเอง
Neural Networks เป็นสิ่งที่เสื่อมโทรมในทุกวันนี้ การสนับสนุนเครื่องเวกเตอร์และวิธีการเคอร์เนลจะดีกว่าสำหรับคลาสอื่น ๆ ของปัญหาจากนั้นการขยายภาพกลับ โครงข่ายประสาทเทียมและอัลกอริธึมทางพันธุกรรมจับภาพจินตนาการของผู้คนที่ไม่รู้มากเกี่ยวกับแมชชีนเลิร์นนิงสมัยใหม่ แต่ไม่ใช่สิ่งที่ทันสมัย
หากคุณต้องการที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ AI และการเรียนรู้เครื่องผมขอแนะนำให้อ่าน Peter Norvig ของปัญญาประดิษฐ์: วิธีโมเดิร์น เป็นการสำรวจ AI และเทคโนโลยีสมัยใหม่มากมาย นอกจากนี้ยังกล่าวถึงประวัติศาสตร์และเทคนิคเก่า ๆ ด้วยและจะทำให้คุณมีพื้นฐานที่สมบูรณ์ยิ่งขึ้นในพื้นฐานของ AI และการเรียนรู้ของเครื่อง
โครงข่ายประสาทเทียมนั้นค่อนข้างง่าย โดยเฉพาะอย่างยิ่งถ้าคุณใช้อัลกอริธึมทางพันธุกรรมในการกำหนดน้ำหนักแทนที่จะเป็น backpropagation ที่เหมาะสม
ผมสองDWF 's คำแนะนำของโครงข่ายประสาทเทียมสำหรับการจดจำรูปแบบโดยคริสบิชอป แม้ว่าอาจไม่ใช่ข้อความเริ่มต้น Norvig หรือบทช่วยสอนออนไลน์ (พร้อมรหัสใน Matlab!) น่าจะเป็นการแนะนำที่อ่อนโยนกว่า
โครงการเริ่มต้นที่ดีคือ OCR (Optical Character Recognition) คุณสามารถสแกนเป็นหน้าข้อความและป้อนอักขระแต่ละตัวผ่านเครือข่ายเพื่อทำการจัดหมวดหมู่ (คุณต้องฝึกเครือข่ายก่อนแน่นอน!)
หนังสือของ Raul Rojasเป็นการเริ่มต้นที่ดีมาก (ฟรีด้วย) นอกจากนี้หนังสือรุ่นที่ 3 ของ Haykinแม้จะมีปริมาณมาก แต่ก็อธิบายได้ดีมาก
ฉันสามารถแนะนำจุดที่ไม่ควรเริ่มต้นได้ ฉันซื้อAn Introduction to Neural Networksโดย Kevin Gurney ซึ่งมีบทวิจารณ์ที่ดีใน Amazon และอ้างว่าเป็น "การแนะนำหัวข้อที่สำคัญที่สุดหัวข้อหนึ่งในด้านความรู้ความเข้าใจและคอมพิวเตอร์" โดยส่วนตัวแล้วฉันจะไม่แนะนำหนังสือเล่มนี้เป็นเล่มเริ่มต้น ฉันเข้าใจได้แค่ประมาณ 10% แต่อาจเป็นแค่ฉัน (ภาษาอังกฤษไม่ใช่ภาษาแม่ของฉัน) ฉันจะดูตัวเลือกอื่น ๆ จากหัวข้อนี้
http://www.ai-junkie.com/ann/evolved/nnt1.htmlเป็นการแนะนำที่ชัดเจนเกี่ยวกับ perceptron แบบหลายชั้นแม้ว่าจะไม่ได้อธิบายอัลกอริทึม backpropagation
คุณยังสามารถดู generation5.org ซึ่งมีบทความมากมายเกี่ยวกับ AI โดยทั่วไปและมีข้อความดีๆเกี่ยวกับเครือข่ายประสาทเทียม
ถ้าคุณไม่คิดค่าใช้จ่ายเงินคู่มือทฤษฎีสมองและโครงข่ายประสาทเป็นสิ่งที่ดีมาก มีบทความ 287 บทความครอบคลุมงานวิจัยในหลายสาขาวิชา เริ่มต้นด้วยบทนำและทฤษฎีจากนั้นไฮไลต์เส้นทางผ่านบทความเพื่อให้ครอบคลุมความสนใจของคุณมากที่สุด
สำหรับโครงการแรกKohonen แผนที่เป็นที่น่าสนใจสำหรับการจัดหมวดหมู่ : พบความสัมพันธ์ที่ซ่อนอยู่ในคอลเลกชันเพลงของคุณสร้างหุ่นยนต์มาร์ทหรือแก้รางวัล Netflix
หนังสือสองเล่มที่ใช้ระหว่างการศึกษาของฉัน:
หลักสูตรเบื้องต้น: บทนำเกี่ยวกับ Neural Computing โดย Igor Aleksander และ Helen Morton
หลักสูตรขั้นสูง: Neurocomputing โดย Robert Hecht-Nielsen
ฉันพบว่า Fausett's Fundamentals of Neural Networksเป็นหนังสือเรียนเบื้องต้นที่ตรงไปตรงมาและง่ายต่อการเข้าใจ
ฉันพบว่าตำรา "Computational Intelligence" มีประโยชน์อย่างเหลือเชื่อ
Programming Collective Intelligenceกล่าวถึงเรื่องนี้ในบริบทของอัลกอริทึมการค้นหาและการจัดอันดับ นอกจากนี้ในโค้ดที่มีอยู่ที่นี่ (ใน ch.4) แนวคิดที่กล่าวถึงในหนังสือจะแสดงในตัวอย่าง Python
ฉันเห็นด้วยกับคนอื่น ๆ ที่บอกว่าการเรียนชีววิทยาไม่ใช่จุดเริ่มต้นที่ดี ... เพราะมีข้อมูลที่ไม่เกี่ยวข้องมากมายในชีววิทยา คุณไม่จำเป็นต้องเข้าใจว่าเซลล์ประสาททำงานอย่างไรเพื่อสร้างฟังก์ชันการทำงานของมันขึ้นมาใหม่คุณจะต้องจำลองการทำงานของมันเท่านั้น ฉันขอแนะนำ "วิธีสร้างจิตใจ" โดย Ray Kurzweil ซึ่งจะกล่าวถึงแง่มุมของชีววิทยาที่เกี่ยวข้องกับแบบจำลองการคำนวณ (การสร้างเซลล์ประสาทจำลองโดยการรวมอินพุตหลายตัวและเริ่มทำงานเมื่อถึงเกณฑ์) แต่ไม่สนใจสิ่งที่ไม่เกี่ยวข้องเช่น วิธีที่เซลล์ประสาทเพิ่มปัจจัยการผลิตให้กับเธอ (คุณจะใช้ + และอสมการเพื่อเปรียบเทียบกับเกณฑ์เป็นต้น)
ฉันควรชี้ให้เห็นว่าหนังสือเล่มนี้ไม่ได้เกี่ยวกับ 'การสร้างจิตใจ' แต่เน้นเฉพาะการจดจำรูปแบบการสืบสกุล / นีโอคอร์เท็กซ์เท่านั้น หัวข้อทั่วไปได้รับการพูดถึงตั้งแต่ปี 1980 ที่ฉันหลงเชื่อดังนั้นจึงมีหนังสือเก่า ๆ มากมายที่อาจมีรูปแบบข้อมูลเดียวกันเล็กน้อย ฉันได้อ่านเอกสารรุ่นเก่าที่ระบุว่าระบบการมองเห็นเป็นเครื่องจดจำรูปแบบหลายชั้น เขาเชื่อว่าสิ่งนี้ใช้ได้กับนีโอคอร์เท็กซ์ทั้งหมด นอกจากนี้ให้ใช้ 'การคาดการณ์' ของเขาด้วยเม็ดเกลือ - ค่าประมาณฮาร์ดแวร์ของเขาน่าจะค่อนข้างแม่นยำ แต่ฉันคิดว่าเขาประเมินว่างานง่ายๆที่ซับซ้อนอาจต่ำเกินไป (เช่นการขับรถ) จริงอยู่ที่เขาเห็นความก้าวหน้ามากมาย (และเป็นส่วนหนึ่งของมัน) แต่ฉันก็ยังคิดว่าเขาเป็นคนมองโลกในแง่ดี มีความแตกต่างอย่างมากระหว่างรถยนต์ AI ที่สามารถขับหนึ่งไมล์ได้สำเร็จ 90% ของเวลาเมื่อเทียบกับ 99.9 +% ที่มนุษย์สามารถทำได้ ฉันไม่คาดหวังว่า AI จะขับไล่ฉันอย่างแท้จริงเป็นเวลาอย่างน้อย 20 ปี ... (ฉันไม่นับรถติดตาม BMW ที่ต้อง 'ฝึก' ในสนามจริงเพราะพวกเขาไม่ได้เล่นแบบเดียวกันจริงๆ เกม)
หากคุณมีแนวคิดพื้นฐานแล้วว่า AI คืออะไรและสามารถสร้างแบบจำลองได้อย่างไรคุณอาจจะข้ามไปที่เทคนิคอื่น ๆ ได้ดีกว่า
หากคุณต้องการเรียนรู้อย่างรวดเร็วเกี่ยวกับการประยุกต์ใช้แนวคิดเกี่ยวกับเครือข่ายประสาทเทียมในโปรแกรมจำลองจริงมีหนังสือออนไลน์ที่ยอดเยี่ยม (ปัจจุบันเป็นวิกิพีเดีย) ชื่อ 'Computational Cognitive Neuroscience' ที่http://grey.colorado.edu/CompCogNeuro/index php / CCNBook / หลัก
หนังสือเล่มนี้ใช้ในโรงเรียนเป็นหนังสือเรียนและนำคุณไปสู่พื้นที่สมองที่แตกต่างกันมากมายตั้งแต่เซลล์ประสาทแต่ละเซลล์ไปจนถึงการทำงานของผู้บริหารระดับสูง
นอกจากนี้แต่ละส่วนยังเสริมด้วย 'โครงการ' การบ้านที่พร้อมสำหรับคุณแล้ว เพียงดาวน์โหลดทำตามขั้นตอนและจำลองทุกสิ่งที่บทพูดถึง ซอฟต์แวร์ที่พวกเขาใช้คือ Emergent เป็นเพียงเล็กน้อย แต่มีประสิทธิภาพอย่างไม่น่าเชื่อนั่นคือผลิตภัณฑ์จากการทำงานมากกว่า 10 ปีที่ฉันเชื่อ
ฉันผ่านมันมาในชั้นเรียนระดับปริญญาตรีภาคการศึกษาที่ผ่านมาและมันก็เยี่ยม นำคุณผ่านทุกสิ่งทีละขั้นตอน