โครงข่ายประสาทเทียมเป็นคลาสของอัลกอริทึมที่มีอัลกอริทึมหลายชนิดที่แตกต่างกันตามกราฟดังนั้นฉันจะไม่พูดถึงรายละเอียดที่นี่เกินกว่าที่คุณถามเพราะมันมีอะไรจะพูดมากเกินไป
เครือข่ายประสาทเทียมชนิดแรกคือเซลล์ประสาท McCulloch-Pitts ที่มีชื่อเสียงเป็นเส้นตรงซึ่งหมายความว่าพวกเขาสามารถแก้ปัญหาการตัดสินใจเชิงเส้นได้เท่านั้น (เช่นชุดข้อมูลที่สามารถแยกได้เป็นเส้นตรงโดยการวาดเส้น) เมื่อเวลาผ่านไปแบบจำลองโครงข่ายประสาทเชิงเส้นนี้เป็นที่รู้จักในนาม Perceptron หรือ Adaline (ขึ้นอยู่กับว่าคุณคำนวณการปรับปรุงตุ้มน้ำหนัก)
เครือข่ายเชิงเส้นเชิงเส้นประกอบด้วยกราฟสองส่วนซึ่งโหนดด้านซ้ายเป็นอินพุตและโหนดด้านขวาเป็นเอาต์พุต เฉพาะน้ำหนักของขอบระหว่างโหนดเหล่านี้เท่านั้นที่จะได้รับการเรียนรู้ (เกณฑ์การเปิดใช้งานโหนดสามารถปรับได้ แต่สิ่งนี้ไม่ค่อยเกิดขึ้น)
ขั้นตอนใหญ่ถูกนำเมื่อตื้นเครือข่ายประสาทถูกคิดค้น: แทนที่จะมีเพียงฝ่ายกราฟเราจะใช้กราฟ 3partite: การป้อนข้อมูล "ชั้น" ส่งออก "ชั้น" และหนึ่ง "ชั้นที่ซ่อนอยู่"ระหว่างพวกเขา ขอบคุณเลเยอร์ที่ซ่อนอยู่ตอนนี้เครือข่ายสามารถทำการตัดสินใจที่ไม่ใช่เชิงเส้นและแก้ปัญหาเช่น XOR มาตรฐาน
โปรดทราบว่าคำว่า "ตื้น" ประกาศเกียรติคุณย้อนหลังเมื่อเครือข่ายประสาทลึก (หรือที่เรียกว่าเครือข่ายประสาทn- ชั้น ) ถูกประดิษฐ์ขึ้น นี้คือการต่อต้านเครือข่ายประสาทมีเพียงชั้นที่ซ่อนอยู่หนึ่งที่มีเครือข่ายประสาทลึกกับ n ชั้นซ่อน ในขณะที่คุณสามารถเดาได้ว่าการใช้เลเยอร์ที่ซ่อนอยู่มากขึ้นช่วยให้สามารถตัดสินใจเกี่ยวกับชุดข้อมูลที่ซับซ้อนมากขึ้นเนื่องจากมีเลเยอร์จำนวนมากขึ้นเพื่อปรับเปลี่ยนการตัดสินใจ (กล่าวคือคุณกำลังเพิ่มมิติของขอบเขตการตัดสินใจ
คุณอาจถามว่า: ทำไมไม่มีใครลองใช้เครือข่ายประสาทหลายชั้น (ลึก) ก่อน? ในความเป็นจริงพวกเขาทำเร็วเท่าที่ 1975 โดย Fukushima กับCognitronและNeocognitron (ซึ่งอันที่จริงแล้วเป็นเครือข่ายประสาทเทียมที่เกี่ยวเนื่อง แต่นั่นเป็นอีกเรื่องหนึ่ง) อย่างไรก็ตามปัญหาคือไม่มีใครที่รู้วิธีที่จะเรียนรู้ได้อย่างมีประสิทธิภาพเครือข่ายดังกล่าวปัญหาใหญ่เป็นกู AutoEncoders ของ Hintonเปิดทางและหลังจากนั้นหน่วยแก้ไขเชิงเส้นของ LeCun ได้แก้ไขปัญหาให้ดี
เครือข่าย Deep Beliefs (DBN) เป็นอย่างไร พวกเขาเป็นเพียงเครื่องจักร Boltzmann กึ่ง จำกัด หลายชั้น ดังนั้นพวกเขาจึงเป็นชนิดของเครือข่ายประสาทลึก แต่มีรูปแบบที่แตกต่างกันพื้นฐานเครือข่าย (เช่น: ชั้นนี้เป็นรูปแบบที่ซ้ำแล้วซ้ำอีก): เครื่อง Boltzmann จะแตกต่างจากเครือข่ายอื่น ๆ ในการที่พวกเขาจะกำเนิดซึ่งหมายความว่าพวกเขามักจะ ใช้เพื่อเรียนรู้จากข้อมูลของคุณเพื่อสร้างมันขึ้นมาใหม่ ("สร้าง" มัน) ในขณะที่เครือข่ายนิวรัลลึก ๆ จะถูกใช้เพื่อแยกข้อมูลของคุณ (โดยการวาด "ขอบเขตการตัดสินใจ")
กล่าวอีกนัยหนึ่ง DNN นั้นยอดเยี่ยมในการจำแนก / ทำนายค่าจากชุดข้อมูลของคุณในขณะที่ DBN นั้นยอดเยี่ยมในการ "ซ่อมแซม" ข้อมูลที่เสียหาย (เมื่อฉันบอกว่าการซ่อมแซมไม่ใช่จากข้อมูลที่เสียหายเท่านั้น แต่ยังเป็นข้อมูลที่สมบูรณ์แบบด้วย ที่คุณต้องการแก้ไขเล็กน้อยเพื่อให้โปรเฟสเซอร์มากขึ้นเพื่อให้จดจำได้ง่ายขึ้นด้วยเครือข่ายประสาทอื่นเช่นตัวเลขที่เขียนด้วยมือ)
ในความเป็นจริงเพื่อสรุปอย่างเป็นระเบียบคุณสามารถพูดได้ว่า AutoEncoders เป็นรูปแบบที่ง่ายกว่าของ Deep Belief Network นี่คือตัวอย่างของ DBN ที่ได้รับการฝึกฝนให้จดจำใบหน้า แต่ไม่ใช่ตัวเลขตัวเลขจะจางหายไปโดยอัตโนมัติ (นี่คือผลกระทบ "การตรึง" ของ DBN):
ดังนั้นในท้ายที่สุด DBN และ DNN ไม่ตรงข้าม: สมบูรณ์ ตัวอย่างเช่นคุณสามารถจินตนาการระบบที่จะจดจำอักขระที่เขียนด้วยมือซึ่งจะป้อนรูปภาพของอักขระไปยัง DBN ก่อนเพื่อให้มีโปรเฟสเซอร์มากกว่าและจากนั้นให้ฟีดอิมเมจ stereotyped ไปยัง DNN ที่จะแสดงผลลัพธ์ของอักขระที่รูปภาพแทน
หมายเหตุสุดท้าย: Deep Belief Nets นั้นอยู่ใกล้กับ Deep Boltzmann Machines มาก: Deep Boltzmann Machines ใช้เลเยอร์ของ Boltzmann Machines (ซึ่งเป็นเครือข่ายประสาทสองทิศทางแบบสองทางหรือที่เรียกว่าเครือข่ายประสาทแบบเรียกซ้ำ) ในขณะที่ Deep Belief Nets ใช้ Boltzmann Machines แบบกึ่ง จำกัด จำกัด หมายความว่าพวกเขาจะเปลี่ยนเป็นทิศทางเดียวจึงช่วยให้ใช้ backpropagation เพื่อเรียนรู้เครือข่ายที่มีประสิทธิภาพมากกว่าการเรียนรู้เครือข่าย reccurent) ทั้งสองเครือข่ายใช้เพื่อจุดประสงค์เดียวกัน (การสร้างชุดข้อมูลใหม่) แต่ค่าใช้จ่ายในการคำนวณแตกต่างกัน (Deep Boltzmann Machines มีค่าใช้จ่ายในการเรียนรู้อย่างมีนัยสำคัญมากกว่าเนื่องจากมีลักษณะเกิดขึ้นอีก: มันยากที่จะ "คงที่" น้ำหนัก)
โบนัส: เกี่ยวกับ Convolutional Neural Networks (CNN) คุณจะพบข้อเรียกร้องที่ขัดแย้งและสับสนจำนวนมากและโดยปกติคุณจะพบว่าพวกเขาเป็นเพียงเครือข่ายประสาทลึก อย่างไรก็ตามดูเหมือนว่าฉันทามติจะใช้คำจำกัดความดั้งเดิมของ Neocognitron ของฟูกูชิม่า: CNN เป็น DNN ที่ถูกบังคับให้แยกคุณลักษณะต่าง ๆ ในระดับลำดับขั้นที่แตกต่างกันโดยการจัดทำข้อตกลงก่อนการเปิดใช้งาน (ซึ่ง DNN สามารถทำได้ตามธรรมชาติ โดยการตั้งค่าฟังก์ชั่น convolution / activation ที่แตกต่างกันในเลเยอร์ต่างๆของเครือข่ายอาจให้ผลลัพธ์ที่ดีกว่าอย่างน้อยนั่นก็คือการเดิมพันของ CNN):
และในที่สุดก็หาที่เข้มงวดมากขึ้นไทม์ไลน์ของปัญญาประดิษฐ์ให้ดูที่นี่