โครงข่ายประสาทเทียม - คู่มือฉบับย่อ

เครือข่ายประสาทเทียมเป็นอุปกรณ์คอมพิวเตอร์แบบขนานซึ่งโดยพื้นฐานแล้วเป็นความพยายามที่จะสร้างแบบจำลองคอมพิวเตอร์ของสมอง วัตถุประสงค์หลักคือการพัฒนาระบบให้ทำงานด้านการคำนวณต่างๆได้เร็วกว่าระบบแบบเดิม งานเหล่านี้รวมถึงการจดจำและการจำแนกรูปแบบการประมาณการเพิ่มประสิทธิภาพและการจัดกลุ่มข้อมูล

โครงข่ายประสาทเทียมคืออะไร?

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

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

ประวัติย่อของ ANN

ประวัติของ ANN สามารถแบ่งออกเป็นสามยุคดังต่อไปนี้ -

ANN ในช่วงทศวรรษที่ 1940 ถึง 1960

พัฒนาการที่สำคัญบางประการในยุคนี้มีดังนี้ -

  • 1943 - มีการสันนิษฐานว่าแนวคิดของโครงข่ายประสาทเทียมเริ่มต้นจากการทำงานของนักสรีรวิทยาวอร์เรนแมคคัลล็อกและนักคณิตศาสตร์วอลเตอร์พิตส์เมื่อในปีพ. ศ. 2486 พวกเขาได้สร้างแบบจำลองเครือข่ายประสาทที่เรียบง่ายโดยใช้วงจรไฟฟ้าเพื่ออธิบายว่าเซลล์ประสาทในสมองอาจทำงานได้อย่างไร .

  • 1949- หนังสือของโดนัลด์เฮบบ์เรื่องThe Organization of Behaviorกล่าวถึงความจริงที่ว่าการกระตุ้นเซลล์ประสาทหนึ่งซ้ำ ๆ โดยอีกเซลล์หนึ่งจะเพิ่มความแข็งแรงทุกครั้งที่ใช้

  • 1956 - เครือข่ายหน่วยความจำเชื่อมโยงได้รับการแนะนำโดย Taylor

  • 1958 - วิธีการเรียนรู้สำหรับแบบจำลองเซลล์ประสาท McCulloch และ Pitts ชื่อ Perceptron ถูกคิดค้นโดย Rosenblatt

  • 1960 - Bernard Widrow และ Marcian Hoff พัฒนาโมเดลที่เรียกว่า "ADALINE" และ "MADALINE"

ANN ในช่วงปี 1960 ถึง 1980

พัฒนาการที่สำคัญบางประการในยุคนี้มีดังนี้ -

  • 1961 - Rosenblatt ทำไม่สำเร็จ แต่เสนอโครงการ "backpropagation" สำหรับเครือข่ายหลายชั้น

  • 1964 - เทย์เลอร์สร้างวงจรผู้ชนะ - รับทั้งหมดโดยมีการยับยั้งระหว่างหน่วยเอาต์พุต

  • 1969 - Multilayer perceptron (MLP) ถูกคิดค้นโดย Minsky และ Papert

  • 1971 - Kohonen พัฒนาความทรงจำ Associative

  • 1976 - Stephen Grossberg และ Gail Carpenter ได้พัฒนาทฤษฎี Adaptive resonance

ANN ตั้งแต่ปี 1980 จนถึงปัจจุบัน

พัฒนาการที่สำคัญบางประการในยุคนี้มีดังนี้ -

  • 1982 - การพัฒนาที่สำคัญคือแนวทางด้านพลังงานของ Hopfield

  • 1985 - เครื่อง Boltzmann ได้รับการพัฒนาโดย Ackley, Hinton และ Sejnowski

  • 1986 - Rumelhart, Hinton และ Williams แนะนำ Generalized Delta Rule

  • 1988 - Kosko พัฒนา Binary Associative Memory (BAM) และยังให้แนวคิดเรื่อง Fuzzy Logic ใน ANN

การทบทวนในอดีตแสดงให้เห็นว่ามีความคืบหน้าอย่างมีนัยสำคัญในสาขานี้ ชิปบนเครือข่ายประสาทเทียมกำลังเกิดขึ้นและมีการพัฒนาแอปพลิเคชันสำหรับปัญหาที่ซับซ้อน แน่นอนว่าวันนี้เป็นช่วงแห่งการเปลี่ยนแปลงของเทคโนโลยีเครือข่ายประสาทเทียม

เซลล์ประสาททางชีวภาพ

เซลล์ประสาท (neuron) เป็นเซลล์ทางชีววิทยาพิเศษที่ประมวลผลข้อมูล ตามการประมาณค่าที่มีจำนวนมากของเซลล์ประสาทประมาณ 10 11ที่มีการเชื่อมโยงหลายประมาณ 10 15

แผนภาพ

การทำงานของเซลล์ประสาททางชีวภาพ

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

  • Dendrites- เป็นกิ่งไม้คล้ายต้นไม้มีหน้าที่รับข้อมูลจากเซลล์ประสาทอื่นที่เชื่อมต่ออยู่ ในอีกแง่หนึ่งเราสามารถพูดได้ว่าพวกมันเป็นเหมือนหูของเซลล์ประสาท

  • Soma - เป็นเซลล์ร่างกายของเซลล์ประสาทและมีหน้าที่ในการประมวลผลข้อมูลที่ได้รับจากเดนไดรต์

  • Axon - มันเหมือนกับสายเคเบิลที่เซลล์ประสาทส่งข้อมูล

  • Synapses - เป็นการเชื่อมต่อระหว่างแอกซอนและเดนไดรต์เซลล์ประสาทอื่น ๆ

ANN เทียบกับ BNN

ก่อนที่จะดูความแตกต่างระหว่าง Artificial Neural Network (ANN) และ Biological Neural Network (BNN) เรามาดูความคล้ายคลึงกันตามคำศัพท์ระหว่างสองสิ่งนี้

โครงข่ายประสาทชีวภาพ (BNN) โครงข่ายประสาทเทียม (ANN)
โซมะ โหนด
เดนไดรต์ อินพุต
ไซแนปส์ น้ำหนักหรือการเชื่อมต่อระหว่างกัน
แอกซอน เอาต์พุต

ตารางต่อไปนี้แสดงการเปรียบเทียบระหว่าง ANN และ BNN ตามเกณฑ์บางประการที่กล่าวถึง

เกณฑ์ บีเอ็น ANN
Processing ขนานใหญ่ช้า แต่เหนือกว่า ANN ขนานใหญ่เร็ว แต่ด้อยกว่า BNN
Size 10 11เซลล์ประสาทและ 10 15 การเชื่อมต่อระหว่างกัน 10 2ถึง 10 4โหนด (ส่วนใหญ่ขึ้นอยู่กับประเภทของแอปพลิเคชันและผู้ออกแบบเครือข่าย)
Learning พวกเขาสามารถทนต่อความคลุมเครือ ข้อมูลที่มีโครงสร้างและการจัดรูปแบบที่แม่นยำมากจำเป็นต้องทนต่อความคลุมเครือ
Fault tolerance ประสิทธิภาพลดลงแม้กระทั่งความเสียหายบางส่วน มีความสามารถในการทำงานที่แข็งแกร่งดังนั้นจึงมีศักยภาพที่จะทนต่อความผิดพลาดได้
Storage capacity เก็บข้อมูลในไซแนปส์ เก็บข้อมูลในตำแหน่งหน่วยความจำต่อเนื่อง

แบบจำลองโครงข่ายประสาทเทียม

แผนภาพต่อไปนี้แสดงถึงโมเดลทั่วไปของ ANN ตามด้วยการประมวลผล

สำหรับแบบจำลองโครงข่ายประสาทเทียมทั่วไปข้างต้นสามารถคำนวณอินพุตสุทธิได้ดังนี้ -

$$ y_ {in} \: = \: x_ {1} .w_ {1} \: + \: x_ {2} .w_ {2} \: + \: x_ {3} .w_ {3} \: \ dotso \: x_ {m} .w_ {m} $$

กล่าวคืออินพุตสุทธิ $ y_ {in} \: = \: \ sum_i ^ m \: x_ {i} .w_ {i} $

ผลลัพธ์สามารถคำนวณได้โดยใช้ฟังก์ชันการเปิดใช้งานกับอินพุตสุทธิ

$$ Y \: = \: F (y_ {in}) $$

เอาท์พุท = ฟังก์ชัน (คำนวณอินพุตสุทธิ)

การประมวลผล ANN ขึ้นอยู่กับองค์ประกอบพื้นฐานสามประการต่อไปนี้ -

  • โทโพโลยีเครือข่าย
  • การปรับน้ำหนักหรือการเรียนรู้
  • ฟังก์ชั่นการเปิดใช้งาน

ในบทนี้เราจะพูดถึงรายละเอียดเกี่ยวกับองค์ประกอบทั้งสามของ ANN

โทโพโลยีเครือข่าย

โทโพโลยีเครือข่ายคือการจัดเรียงเครือข่ายพร้อมกับโหนดและสายเชื่อมต่อ ตามโทโพโลยี ANN สามารถจัดเป็นประเภทต่อไปนี้ -

เครือข่าย Feedforward

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

  • Single layer feedforward network- แนวคิดคือ ANN feedforward ที่มีเลเยอร์ถ่วงน้ำหนักเพียงชั้นเดียว กล่าวอีกนัยหนึ่งเราสามารถพูดได้ว่าเลเยอร์อินพุตเชื่อมต่อกับเลเยอร์เอาต์พุตอย่างสมบูรณ์

  • Multilayer feedforward network- แนวคิดคือ ANN feedforward ที่มีเลเยอร์ถ่วงน้ำหนักมากกว่าหนึ่งชั้น เนื่องจากเครือข่ายนี้มีเลเยอร์อย่างน้อยหนึ่งชั้นระหว่างอินพุตและเลเยอร์เอาต์พุตจึงเรียกว่าเลเยอร์ที่ซ่อนอยู่

เครือข่ายข้อเสนอแนะ

ตามชื่อที่แนะนำเครือข่ายป้อนกลับมีเส้นทางป้อนกลับซึ่งหมายความว่าสัญญาณสามารถไหลได้ทั้งสองทิศทางโดยใช้ลูป สิ่งนี้ทำให้เป็นระบบไดนามิกที่ไม่ใช่เชิงเส้นซึ่งเปลี่ยนแปลงไปเรื่อย ๆ จนกว่าจะเข้าสู่สภาวะสมดุล อาจแบ่งออกเป็นประเภทต่างๆดังต่อไปนี้ -

  • Recurrent networks- เป็นเครือข่ายข้อเสนอแนะที่มีลูปปิด ต่อไปนี้เป็นเครือข่ายที่เกิดซ้ำสองประเภท

  • Fully recurrent network - เป็นสถาปัตยกรรมเครือข่ายประสาทเทียมที่ง่ายที่สุดเนื่องจากโหนดทั้งหมดเชื่อมต่อกับโหนดอื่น ๆ ทั้งหมดและแต่ละโหนดทำงานเป็นทั้งอินพุตและเอาต์พุต

  • Jordan network - เป็นเครือข่ายวงปิดซึ่งเอาต์พุตจะไปที่อินพุตอีกครั้งเป็นข้อมูลป้อนกลับดังแสดงในแผนภาพต่อไปนี้

การปรับน้ำหนักหรือการเรียนรู้

การเรียนรู้ในโครงข่ายประสาทเทียมเป็นวิธีการปรับเปลี่ยนน้ำหนักของการเชื่อมต่อระหว่างเซลล์ประสาทของเครือข่ายที่ระบุ การเรียนรู้ใน ANN สามารถแบ่งออกเป็นสามประเภท ได้แก่ การเรียนรู้ภายใต้การดูแลการเรียนรู้ที่ไม่มีผู้ดูแลและการเรียนรู้แบบเสริมกำลัง

การเรียนรู้ภายใต้การดูแล

ตามชื่อการเรียนรู้ประเภทนี้ทำภายใต้การดูแลของครู กระบวนการเรียนรู้นี้ขึ้นอยู่กับ

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

การเรียนรู้ที่ไม่มีผู้ดูแล

ตามชื่อการเรียนรู้ประเภทนี้ทำได้โดยไม่ต้องอยู่ภายใต้การดูแลของครู กระบวนการเรียนรู้นี้เป็นอิสระ

ในระหว่างการฝึกอบรม ANN ภายใต้การเรียนรู้ที่ไม่มีการดูแลจะรวมเวกเตอร์อินพุตประเภทที่คล้ายคลึงกันเพื่อสร้างคลัสเตอร์ เมื่อใช้รูปแบบการป้อนข้อมูลใหม่เครือข่ายประสาทจะให้การตอบสนองของเอาต์พุตที่ระบุคลาสที่เป็นรูปแบบการป้อนข้อมูล

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

การเรียนรู้เสริมแรง

ตามชื่อที่แนะนำการเรียนรู้ประเภทนี้ใช้เพื่อเสริมสร้างหรือเสริมสร้างเครือข่ายผ่านข้อมูลนักวิจารณ์บางอย่าง กระบวนการเรียนรู้นี้คล้ายกับการเรียนรู้ภายใต้การดูแล แต่เราอาจมีข้อมูลน้อยมาก

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

ฟังก์ชั่นการเปิดใช้งาน

อาจถูกกำหนดให้เป็นแรงพิเศษหรือความพยายามที่ใช้กับอินพุตเพื่อให้ได้เอาต์พุตที่แน่นอน ใน ANN เรายังสามารถใช้ฟังก์ชันการเปิดใช้งานกับอินพุตเพื่อให้ได้ผลลัพธ์ที่แน่นอน ต่อไปนี้เป็นฟังก์ชั่นการเปิดใช้งานที่น่าสนใจ -

ฟังก์ชันการเปิดใช้งานเชิงเส้น

เรียกอีกอย่างว่าฟังก์ชันเอกลักษณ์เนื่องจากไม่มีการแก้ไขอินพุต สามารถกำหนดเป็น -

$$ F (x) \: = \: x $$

ฟังก์ชันการเปิดใช้งาน Sigmoid

มีสองประเภทดังนี้ -

  • Binary sigmoidal function- ฟังก์ชันการเปิดใช้งานนี้ทำการแก้ไขอินพุตระหว่าง 0 ถึง 1 ซึ่งเป็นค่าบวก มีขอบเขตเสมอซึ่งหมายความว่าเอาต์พุตต้องไม่น้อยกว่า 0 และมากกว่า 1 นอกจากนี้ยังเพิ่มขึ้นอย่างเคร่งครัดตามธรรมชาติซึ่งหมายความว่าอินพุตที่สูงขึ้นจะเป็นเอาต์พุต สามารถกำหนดเป็น

    $$ F (x) \: = \: sigm (x) \: = \: \ frac {1} {1 \: + \: exp (-x)} $$

  • Bipolar sigmoidal function- ฟังก์ชันการเปิดใช้งานนี้ทำการแก้ไขอินพุตระหว่าง -1 ถึง 1 ซึ่งอาจเป็นค่าบวกหรือลบก็ได้ มีขอบเขตเสมอซึ่งหมายความว่าเอาต์พุตต้องไม่น้อยกว่า -1 และมากกว่า 1 นอกจากนี้ยังเพิ่มขึ้นอย่างเคร่งครัดในลักษณะเช่นฟังก์ชัน sigmoid สามารถกำหนดเป็น

    $$ F (x) \: = \: sigm (x) \: = \: \ frac {2} {1 \: + \: exp (-x)} \: - \: 1 \: = \: \ frac {1 \: - \: exp (x)} {1 \: + \: exp (x)} $$

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

การเรียนรู้ใน ANN คืออะไร?

โดยพื้นฐานแล้วการเรียนรู้หมายถึงการทำและปรับตัวให้เข้ากับการเปลี่ยนแปลงในตัวของมันเองและเมื่อมีการเปลี่ยนแปลงในสิ่งแวดล้อม ANN เป็นระบบที่ซับซ้อนหรือเราสามารถพูดได้อย่างชัดเจนว่าเป็นระบบปรับตัวที่ซับซ้อนซึ่งสามารถเปลี่ยนแปลงโครงสร้างภายในได้ตามข้อมูลที่ส่งผ่าน

ทำไมมันถึงสำคัญ?

การเป็นระบบการปรับตัวที่ซับซ้อนการเรียนรู้ใน ANN หมายความว่าหน่วยประมวลผลสามารถเปลี่ยนพฤติกรรมอินพุต / เอาต์พุตได้เนื่องจากการเปลี่ยนแปลงของสภาพแวดล้อม ความสำคัญของการเรียนรู้ใน ANN เพิ่มขึ้นเนื่องจากฟังก์ชันการเปิดใช้งานคงที่เช่นเดียวกับเวกเตอร์อินพุต / เอาต์พุตเมื่อสร้างเครือข่ายเฉพาะ ตอนนี้เพื่อเปลี่ยนพฤติกรรมอินพุต / เอาต์พุตเราจำเป็นต้องปรับน้ำหนัก

การจำแนกประเภท

อาจถูกกำหนดให้เป็นกระบวนการเรียนรู้เพื่อแยกแยะข้อมูลของกลุ่มตัวอย่างออกเป็นชั้นเรียนต่างๆโดยการค้นหาคุณลักษณะทั่วไประหว่างกลุ่มตัวอย่างในชั้นเรียนเดียวกัน ตัวอย่างเช่นในการฝึกอบรม ANN เรามีตัวอย่างการฝึกอบรมที่มีคุณสมบัติเฉพาะและในการทดสอบเรามีตัวอย่างการทดสอบที่มีคุณสมบัติเฉพาะอื่น ๆ การจัดหมวดหมู่เป็นตัวอย่างของการเรียนรู้ภายใต้การดูแล

กฎการเรียนรู้ของโครงข่ายประสาทเทียม

เรารู้ว่าในระหว่างการเรียนรู้ ANN ในการเปลี่ยนพฤติกรรมอินพุต / เอาต์พุตเราจำเป็นต้องปรับน้ำหนัก ดังนั้นจึงจำเป็นต้องใช้วิธีการที่สามารถแก้ไขน้ำหนักได้ วิธีการเหล่านี้เรียกว่ากฎการเรียนรู้ซึ่งเป็นเพียงอัลกอริทึมหรือสมการ ต่อไปนี้เป็นกฎการเรียนรู้บางประการสำหรับโครงข่ายประสาทเทียม -

กฎการเรียนรู้ Hebbian

กฎนี้หนึ่งในกฎที่เก่าแก่ที่สุดและง่ายที่สุดได้รับการแนะนำโดย Donald Hebb ในหนังสือของเขาThe Organization of Behaviorในปีพ. ศ. 2492 เป็นการเรียนรู้แบบป้อนไปข้างหน้าและไม่มีการดูแล

Basic Concept - กฎนี้เป็นไปตามข้อเสนอของ Hebb ผู้เขียน -

“ เมื่อแอกซอนของเซลล์ A อยู่ใกล้มากพอที่จะกระตุ้นเซลล์ B และมีส่วนร่วมในการยิงเซลล์ B ซ้ำ ๆ หรืออย่างต่อเนื่องกระบวนการเจริญเติบโตหรือการเปลี่ยนแปลงการเผาผลาญบางอย่างจะเกิดขึ้นในเซลล์เดียวหรือทั้งสองเซลล์เช่นประสิทธิภาพของ A ในขณะที่เซลล์ใดเซลล์หนึ่งยิง B เพิ่มขึ้น”

จากสมมติฐานข้างต้นเราสามารถสรุปได้ว่าการเชื่อมต่อระหว่างเซลล์ประสาทสองเซลล์อาจแข็งแรงขึ้นหากเซลล์ประสาททำงานในเวลาเดียวกันและอาจอ่อนแอลงหากพวกมันยิงในเวลาที่ต่างกัน

Mathematical Formulation - ตามกฎการเรียนรู้ของ Hebbian ต่อไปนี้เป็นสูตรในการเพิ่มน้ำหนักของการเชื่อมต่อในทุกขั้นตอน

$$ \ Delta w_ {ji} (t) \: = \: \ alpha x_ {i} (t) .y_ {j} (t) $$

ที่นี่ $ \ Delta w_ {ji} (t) $ ⁡ = เพิ่มขึ้นโดยที่น้ำหนักของการเชื่อมต่อเพิ่มขึ้นในขั้นตอนเวลา t

$ \ alpha $ = อัตราการเรียนรู้เชิงบวกและคงที่

$ x_ {i} (t) $ = ค่าอินพุตจากเซลล์ประสาท pre-synaptic ในขั้นตอนเวลา t

$ y_ {i} (t) $ = ผลลัพธ์ของเซลล์ประสาท pre-synaptic ในขั้นตอนเดียวกัน t

กฎการเรียนรู้ของ Perceptron

กฎนี้เป็นข้อผิดพลาดในการแก้ไขอัลกอริธึมการเรียนรู้ภายใต้การดูแลของเครือข่ายฟีดฟอร์เวิร์ดชั้นเดียวที่มีฟังก์ชันการเปิดใช้งานเชิงเส้นซึ่งแนะนำโดย Rosenblatt

Basic Concept- ตามที่ได้รับการดูแลโดยธรรมชาติในการคำนวณข้อผิดพลาดจะมีการเปรียบเทียบระหว่างเอาต์พุตที่ต้องการ / เป้าหมายและเอาต์พุตจริง หากพบความแตกต่างจะต้องทำการเปลี่ยนแปลงน้ำหนักของการเชื่อมต่อ

Mathematical Formulation - เพื่ออธิบายการกำหนดทางคณิตศาสตร์สมมติว่าเรามีจำนวน 'n' ของเวกเตอร์อินพุต จำกัด x (n) พร้อมกับเวกเตอร์เอาต์พุตที่ต้องการ / เป้าหมาย t (n) โดยที่ n = 1 ถึง N

ตอนนี้สามารถคำนวณเอาต์พุต 'y' ได้ตามที่อธิบายไว้ก่อนหน้าบนพื้นฐานของอินพุตสุทธิและฟังก์ชันการเปิดใช้งานที่ใช้กับอินพุตสุทธินั้นสามารถแสดงได้ดังนี้ -

$$ y \: = \: f (y_ {in}) \: = \: \ begin {cases} 1, & y_ {in} \:> \: \ theta \\ 0, & y_ {in} \: \ leqslant \: \ theta \ end {cases} $$

ที่ไหน θ คือเกณฑ์

การอัปเดตน้ำหนักสามารถทำได้ในสองกรณีต่อไปนี้ -

Case I - เมื่อไหร่ t ≠ yแล้ว

$$ w (ใหม่) \: = \: w (เก่า) \: + \; tx $$

Case II - เมื่อไหร่ t = yแล้ว

ไม่มีการเปลี่ยนแปลงน้ำหนัก

กฎการเรียนรู้เดลต้า (กฎ Widrow-Hoff)

ได้รับการแนะนำโดย Bernard Widrow และ Marcian Hoff หรือที่เรียกว่าวิธี Least Mean Square (LMS) เพื่อลดข้อผิดพลาดในรูปแบบการฝึกอบรมทั้งหมด เป็นอัลกอริธึมการเรียนรู้ภายใต้การดูแลที่มีฟังก์ชันการเปิดใช้งานอย่างต่อเนื่อง

Basic Concept- พื้นฐานของกฎนี้คือแนวทางการไล่ระดับสีซึ่งจะดำเนินต่อไปตลอดกาล กฎเดลต้าจะอัปเดตน้ำหนักซิแนปติกเพื่อลดอินพุตสุทธิไปยังหน่วยเอาต์พุตและค่าเป้าหมาย

Mathematical Formulation - ในการอัปเดตน้ำหนัก synaptic กฎเดลต้าจะกำหนดโดย

$$ \ Delta w_ {i} \: = \: \ alpha \ :. x_ {i} .e_ {j} $$

ที่นี่ $ \ Delta w_ {i} $ = weight change for i th ⁡pattern;

$ \ alpha $ = อัตราการเรียนรู้เชิงบวกและคงที่

$ x_ {i} $ = ค่าอินพุตจากเซลล์ประสาท pre-synaptic;

$ e_ {j} $ = $ (t \: - \: y_ {in}) $ ความแตกต่างระหว่างผลลัพธ์ที่ต้องการ / เป้าหมายและผลลัพธ์จริง⁡ $ y_ {in} $

กฎเดลต้าข้างต้นมีไว้สำหรับหน่วยเอาต์พุตเดียวเท่านั้น

การอัปเดตน้ำหนักสามารถทำได้ในสองกรณีต่อไปนี้ -

Case-I - เมื่อไหร่ t ≠ yแล้ว

$$ w (ใหม่) \: = \: w (เก่า) \: + \: \ Delta w $$

Case-II - เมื่อไหร่ t = yแล้ว

ไม่มีการเปลี่ยนแปลงน้ำหนัก

กฎการเรียนรู้ที่แข่งขันได้ (ผู้ชนะจะได้ทั้งหมด)

เกี่ยวข้องกับการฝึกอบรมที่ไม่มีผู้ดูแลซึ่งโหนดเอาต์พุตพยายามแข่งขันกันเพื่อแสดงรูปแบบการป้อนข้อมูล เพื่อให้เข้าใจกฎการเรียนรู้นี้เราต้องเข้าใจเครือข่ายการแข่งขันซึ่งได้รับดังต่อไปนี้ -

Basic Concept of Competitive Network- เครือข่ายนี้เหมือนกับเครือข่าย feedforward แบบชั้นเดียวที่มีการเชื่อมต่อข้อมูลป้อนกลับระหว่างเอาต์พุต การเชื่อมต่อระหว่างเอาท์พุทเป็นประเภทการยับยั้งซึ่งแสดงโดยเส้นประซึ่งหมายความว่าคู่แข่งไม่เคยสนับสนุนตัวเอง

Basic Concept of Competitive Learning Rule- ดังที่กล่าวไว้ก่อนหน้านี้จะมีการแข่งขันระหว่างโหนดเอาต์พุต ดังนั้นแนวคิดหลักคือในระหว่างการฝึกอบรมหน่วยเอาต์พุตที่มีการเปิดใช้งานสูงสุดตามรูปแบบอินพุตที่กำหนดจะได้รับการประกาศให้เป็นผู้ชนะ กฎนี้เรียกอีกอย่างว่า Winner-take-all เนื่องจากมีการอัปเดตเฉพาะเซลล์ประสาทที่ชนะเท่านั้นและเซลล์ประสาทที่เหลือจะไม่เปลี่ยนแปลง

Mathematical formulation - ต่อไปนี้เป็นปัจจัยสำคัญสามประการสำหรับการกำหนดทางคณิตศาสตร์ของกฎการเรียนรู้นี้ -

  • Condition to be a winner - สมมติว่าถ้าเซลล์ประสาท $ y_ {k} $ ⁡⁡อยากเป็นผู้ชนะก็จะมีเงื่อนไขดังต่อไปนี้ -

    $$ y_ {k} \: = \: \ begin {cases} 1 & if \: v_ {k} \:> \: v_ {j} \: for \: all \: j, \: j \: \ neq \: k \\ 0 & มิฉะนั้น \ end {cases} $$

หมายความว่าหากเซลล์ประสาทใด ๆ พูดว่า $ y_ {k} $ ⁡ต้องการที่จะชนะจากนั้นฟิลด์ท้องถิ่นที่เกิดขึ้น (ผลลัพธ์ของหน่วยการรวม) กล่าวว่า $ v_ {k} $ จะต้องมีขนาดใหญ่ที่สุดในบรรดาเซลล์ประสาทอื่น ๆ ทั้งหมด ในเครือข่าย

  • Condition of sum total of weight - ข้อ จำกัด อีกประการหนึ่งของกฎการเรียนรู้เชิงแข่งขันคือผลรวมของน้ำหนักของเซลล์ประสาทขาออกเฉพาะจะเป็น 1 ตัวอย่างเช่นถ้าเราพิจารณาเซลล์ประสาท k แล้ว -

    $$ \ displaystyle \ sum \ LIMIT_ {j} w_ {kj} \: = \: 1 \: \: \: \: \: \: \: \: \: สำหรับ \: ทั้งหมด \: k $$

  • Change of weight for winner- หากเซลล์ประสาทไม่ตอบสนองต่อรูปแบบการป้อนข้อมูลจะไม่มีการเรียนรู้เกิดขึ้นในเซลล์ประสาทนั้น อย่างไรก็ตามหากเซลล์ประสาทตัวใดตัวหนึ่งชนะน้ำหนักที่เกี่ยวข้องจะถูกปรับดังต่อไปนี้

    $$ \ Delta w_ {kj} \: = \: \ begin {cases} - \ alpha (x_ {j} \: - \: w_ {kj}), & if \: neuron \: k \: wins \\ 0, & if \: neuron \: k \: Loss \ end {cases} $$

ที่นี่ $ \ alpha $ คืออัตราการเรียนรู้

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

กฎการเรียนรู้ของ Outstar

กฎนี้นำเสนอโดย Grossberg เกี่ยวข้องกับการเรียนรู้ภายใต้การดูแลเนื่องจากทราบผลลัพธ์ที่ต้องการ เรียกอีกอย่างว่า Grossberg learning

Basic Concept- กฎนี้ใช้กับเซลล์ประสาทที่เรียงเป็นชั้น ๆ ได้รับการออกแบบมาเป็นพิเศษเพื่อให้ได้ผลลัพธ์ที่ต้องการd ของเลเยอร์ของ p เซลล์ประสาท.

Mathematical Formulation - การปรับน้ำหนักในกฎนี้คำนวณได้ดังนี้

$$ \ Delta w_ {j} \: = \: \ alpha \ :( d \: - \: w_ {j}) $$

ที่นี่ d คือผลลัพธ์ของเซลล์ประสาทที่ต้องการและ $ \ alpha $ คืออัตราการเรียนรู้

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

เพอร์เซปตรอน

พัฒนาโดย Frank Rosenblatt โดยใช้แบบจำลอง McCulloch และ Pitts perceptron เป็นหน่วยปฏิบัติการพื้นฐานของโครงข่ายประสาทเทียม ใช้กฎการเรียนรู้ภายใต้การดูแลและสามารถจำแนกข้อมูลออกเป็นสองชั้น

ลักษณะการทำงานของเพอร์เซปตรอน: ประกอบด้วยเซลล์ประสาทเดียวที่มีจำนวนอินพุตตามอำเภอใจพร้อมกับน้ำหนักที่ปรับได้ แต่เอาต์พุตของเซลล์ประสาทคือ 1 หรือ 0 ขึ้นอยู่กับเกณฑ์ นอกจากนี้ยังประกอบด้วยอคติที่มีน้ำหนักเสมอ 1 รูปต่อไปนี้ให้การแสดงแผนผังของเพอร์เซปตรอน

Perceptron จึงมีองค์ประกอบพื้นฐานสามประการดังต่อไปนี้ -

  • Links - มันจะมีชุดของลิงค์การเชื่อมต่อซึ่งมีน้ำหนักรวมถึงอคติที่มีน้ำหนักเสมอ 1

  • Adder - เพิ่มอินพุตหลังจากคูณด้วยน้ำหนักตามลำดับ

  • Activation function- มัน จำกัด การส่งออกของเซลล์ประสาท ฟังก์ชันการเปิดใช้งานขั้นพื้นฐานที่สุดคือฟังก์ชันขั้นตอน Heaviside ที่มีเอาต์พุตที่เป็นไปได้สองแบบ ฟังก์ชันนี้จะคืนค่า 1 หากอินพุตเป็นบวกและ 0 สำหรับอินพุตเชิงลบใด ๆ

อัลกอริทึมการฝึกอบรม

สามารถฝึกเครือข่าย Perceptron สำหรับยูนิตเอาต์พุตเดี่ยวและยูนิตเอาต์พุตหลายยูนิต

อัลกอริทึมการฝึกอบรมสำหรับหน่วยเอาต์พุตเดี่ยว

Step 1 - เริ่มต้นสิ่งต่อไปนี้เพื่อเริ่มการฝึกอบรม -

  • Weights
  • Bias
  • อัตราการเรียนรู้ $ \ alpha $

เพื่อการคำนวณที่ง่ายและเรียบง่ายต้องกำหนดน้ำหนักและอคติให้เท่ากับ 0 และต้องกำหนดอัตราการเรียนรู้ให้เท่ากับ 1

Step 2 - ทำตามขั้นตอนที่ 3-8 ต่อเมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ทำต่อขั้นตอนที่ 4-6 สำหรับเวกเตอร์การฝึกทุกตัว x.

Step 4 - เปิดใช้งานหน่วยอินพุตแต่ละหน่วยดังนี้ -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: ถึง \: n) $$

Step 5 - ตอนนี้รับอินพุตสุทธิด้วยความสัมพันธ์ต่อไปนี้ -

$$ y_ {in} \: = \: b \: + \: \ displaystyle \ sum \ LIMIT_ {i} ^ n x_ {i}. \: w_ {i} $$

ที่นี่ ‘b’ เป็นอคติและ ‘n’ คือจำนวนเซลล์ประสาทอินพุตทั้งหมด

Step 6 - ใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้เพื่อรับผลลัพธ์สุดท้าย

$$ f (y_ {in}) \: = \: \ begin {cases} 1 & if \: y_ {in} \:> \: \ theta \\ 0 & if \: - \ theta \: \ leqslant \ : y_ {in} \: \ leqslant \: \ theta \\ - 1 & if \: y_ {in} \: <\: - \ theta \ end {cases} $$

Step 7 - ปรับน้ำหนักและอคติดังนี้ -

Case 1 - ถ้า y ≠ t จากนั้น

$$ w_ {i} (ใหม่) \: = \: w_ {i} (เก่า) \: + \: \ alpha \: tx_ {i} $$

$$ b (ใหม่) \: = \: b (เก่า) \: + \: \ alpha t $$

Case 2 - ถ้า y = t จากนั้น

$$ w_ {i} (ใหม่) \: = \: w_ {i} (เก่า) $$

$$ b (ใหม่) \: = \: b (เก่า) $$

ที่นี่ ‘y’ คือผลลัพธ์จริงและ ‘t’ คือผลลัพธ์ที่ต้องการ / เป้าหมาย

Step 8 - ทดสอบสภาพการหยุดซึ่งจะเกิดขึ้นเมื่อไม่มีการเปลี่ยนแปลงของน้ำหนัก

อัลกอริทึมการฝึกอบรมสำหรับหน่วยเอาต์พุตหลายหน่วย

แผนภาพต่อไปนี้เป็นสถาปัตยกรรมของ perceptron สำหรับเอาต์พุตหลายคลาส

Step 1 - เริ่มต้นสิ่งต่อไปนี้เพื่อเริ่มการฝึกอบรม -

  • Weights
  • Bias
  • อัตราการเรียนรู้ $ \ alpha $

เพื่อการคำนวณที่ง่ายและเรียบง่ายต้องกำหนดน้ำหนักและอคติให้เท่ากับ 0 และต้องกำหนดอัตราการเรียนรู้ให้เท่ากับ 1

Step 2 - ทำตามขั้นตอนที่ 3-8 ต่อเมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ทำต่อขั้นตอนที่ 4-6 สำหรับเวกเตอร์การฝึกทุกตัว x.

Step 4 - เปิดใช้งานหน่วยอินพุตแต่ละหน่วยดังนี้ -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: ถึง \: n) $$

Step 5 - รับอินพุตสุทธิด้วยความสัมพันธ์ต่อไปนี้ -

$$ y_ {in} \: = \: b \: + \: \ displaystyle \ sum \ LIMIT_ {i} ^ n x_ {i} \: w_ {ij} $$

ที่นี่ ‘b’ เป็นอคติและ ‘n’ คือจำนวนเซลล์ประสาทอินพุตทั้งหมด

Step 6 - ใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้เพื่อรับเอาต์พุตสุดท้ายสำหรับเอาต์พุตแต่ละยูนิต j = 1 to m -

$$ f (y_ {in}) \: = \: \ begin {cases} 1 & if \: y_ {อันตราย} \:> \: \ theta \\ 0 & if \: - \ theta \: \ leqslant \ : y_ {อันตราย} \: \ leqslant \: \ theta \\ - 1 & if \: y_ {อันตราย} \: <\: - \ theta \ end {cases} $$

Step 7 - ปรับน้ำหนักและอคติสำหรับ x = 1 to n และ j = 1 to m ดังต่อไปนี้ -

Case 1 - ถ้า yj ≠ tj จากนั้น

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) \: + \: \ alpha \: t_ {j} x_ {i} $$

$$ b_ {j} (ใหม่) \: = \: b_ {j} (เก่า) \: + \: \ alpha t_ {j} $$

Case 2 - ถ้า yj = tj จากนั้น

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) $$

$$ b_ {j} (ใหม่) \: = \: b_ {j} (เก่า) $$

ที่นี่ ‘y’ คือผลลัพธ์จริงและ ‘t’ คือผลลัพธ์ที่ต้องการ / เป้าหมาย

Step 8 - ทดสอบสภาพการหยุดซึ่งจะเกิดขึ้นเมื่อไม่มีการเปลี่ยนแปลงของน้ำหนัก

เซลล์ประสาทเชิงเส้นปรับตัว (Adaline)

Adaline ซึ่งย่อมาจาก Adaptive Linear Neuron คือเครือข่ายที่มีหน่วยเชิงเส้นเดียว ได้รับการพัฒนาโดย Widrow and Hoff ในปี 1960 จุดสำคัญบางประการเกี่ยวกับ Adaline มีดังนี้ -

  • ใช้ฟังก์ชันการเปิดใช้งานสองขั้ว

  • ใช้กฎเดลต้าสำหรับการฝึกอบรมเพื่อลดข้อผิดพลาด Mean-Squared Error (MSE) ระหว่างเอาต์พุตจริงและเอาต์พุตที่ต้องการ / เป้าหมาย

  • น้ำหนักและอคติสามารถปรับได้

สถาปัตยกรรม

โครงสร้างพื้นฐานของ Adaline นั้นคล้ายกับ perceptron ที่มีลูปข้อเสนอแนะพิเศษซึ่งจะเปรียบเทียบผลลัพธ์จริงกับเอาต์พุตที่ต้องการ / เป้าหมาย หลังจากเปรียบเทียบบนพื้นฐานของอัลกอริทึมการฝึกแล้วน้ำหนักและอคติจะได้รับการอัปเดต

อัลกอริทึมการฝึกอบรม

Step 1 - เริ่มต้นสิ่งต่อไปนี้เพื่อเริ่มการฝึกอบรม -

  • Weights
  • Bias
  • อัตราการเรียนรู้ $ \ alpha $

เพื่อการคำนวณที่ง่ายและเรียบง่ายต้องกำหนดน้ำหนักและอคติให้เท่ากับ 0 และต้องกำหนดอัตราการเรียนรู้ให้เท่ากับ 1

Step 2 - ทำตามขั้นตอนที่ 3-8 ต่อเมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ทำขั้นตอนที่ 4-6 ต่อสำหรับคู่ฝึกไบโพลาร์ทุกคู่ s:t.

Step 4 - เปิดใช้งานหน่วยอินพุตแต่ละหน่วยดังนี้ -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: ถึง \: n) $$

Step 5 - รับอินพุตสุทธิด้วยความสัมพันธ์ต่อไปนี้ -

$$ y_ {in} \: = \: b \: + \: \ displaystyle \ sum \ LIMIT_ {i} ^ n x_ {i} \: w_ {i} $$

ที่นี่ ‘b’ เป็นอคติและ ‘n’ คือจำนวนเซลล์ประสาทอินพุตทั้งหมด

Step 6 - ใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้เพื่อรับผลลัพธ์สุดท้าย -

$$ f (y_ {in}) \: = \: \ begin {cases} 1 & if \: y_ {in} \: \ geqslant \: 0 \\ - 1 & if \: y_ {in} \: < \: 0 \ end {cases} $$

Step 7 - ปรับน้ำหนักและอคติดังนี้ -

Case 1 - ถ้า y ≠ t จากนั้น

$$ w_ {i} (ใหม่) \: = \: w_ {i} (เก่า) \: + \: \ alpha (t \: - \: y_ {in}) x_ {i} $$

$$ b (ใหม่) \: = \: b (เก่า) \: + \: \ alpha (t \: - \: y_ {in}) $$

Case 2 - ถ้า y = t จากนั้น

$$ w_ {i} (ใหม่) \: = \: w_ {i} (เก่า) $$

$$ b (ใหม่) \: = \: b (เก่า) $$

ที่นี่ ‘y’ คือผลลัพธ์จริงและ ‘t’ คือผลลัพธ์ที่ต้องการ / เป้าหมาย

$ (t \: - \; y_ {in}) $ คือข้อผิดพลาดในการคำนวณ

Step 8 - ทดสอบสภาพการหยุดซึ่งจะเกิดขึ้นเมื่อไม่มีการเปลี่ยนแปลงของน้ำหนักหรือการเปลี่ยนแปลงของน้ำหนักสูงสุดที่เกิดขึ้นระหว่างการฝึกซ้อมมีค่าน้อยกว่าค่าเผื่อที่กำหนด

เซลล์ประสาทเชิงเส้นปรับตัวหลายตัว (Madaline)

Madaline ซึ่งย่อมาจาก Multiple Adaptive Linear Neuron เป็นเครือข่ายที่ประกอบด้วย Adalines จำนวนมากควบคู่กัน มันจะมีหน่วยเอาท์พุตเดียว ประเด็นสำคัญบางประการเกี่ยวกับ Madaline มีดังนี้ -

  • มันเหมือนกับ Perceptron หลายชั้นโดยที่ Adaline จะทำหน้าที่เป็นหน่วยที่ซ่อนอยู่ระหว่างอินพุตและเลเยอร์ Madaline

  • น้ำหนักและความลำเอียงระหว่างชั้นอินพุตและชั้นอะดาไลน์ตามที่เราเห็นในสถาปัตยกรรม Adaline สามารถปรับได้

  • ชั้น Adaline และ Madaline มีน้ำหนักและอคติคงที่เท่ากับ 1

  • การฝึกอบรมสามารถทำได้ด้วยความช่วยเหลือของกฎเดลต้า

สถาปัตยกรรม

สถาปัตยกรรมของ Madaline ประกอบด้วย “n” เซลล์ประสาทของชั้นอินพุต “m”เซลล์ประสาทของชั้น Adaline และ 1 เซลล์ประสาทของชั้น Madaline ชั้น Adaline ถือได้ว่าเป็นชั้นที่ซ่อนอยู่เนื่องจากอยู่ระหว่างชั้นอินพุตและชั้นเอาต์พุตนั่นคือชั้น Madaline

อัลกอริทึมการฝึกอบรม

ถึงตอนนี้เรารู้แล้วว่าต้องปรับเฉพาะน้ำหนักและอคติระหว่างชั้นอินพุตและชั้นอะดาลีนและน้ำหนักและอคติระหว่างชั้นอะดาลีนและชั้นมาดาไลน์ได้รับการแก้ไข

Step 1 - เริ่มต้นสิ่งต่อไปนี้เพื่อเริ่มการฝึกอบรม -

  • Weights
  • Bias
  • อัตราการเรียนรู้ $ \ alpha $

เพื่อการคำนวณที่ง่ายและเรียบง่ายต้องกำหนดน้ำหนักและอคติให้เท่ากับ 0 และต้องกำหนดอัตราการเรียนรู้ให้เท่ากับ 1

Step 2 - ทำตามขั้นตอนที่ 3-8 ต่อเมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ทำขั้นตอนที่ 4-6 ต่อสำหรับคู่ฝึกไบโพลาร์ทุกคู่ s:t.

Step 4 - เปิดใช้งานหน่วยอินพุตแต่ละหน่วยดังนี้ -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: ถึง \: n) $$

Step 5 - รับอินพุตสุทธิในแต่ละชั้นที่ซ่อนอยู่นั่นคือชั้น Adaline ที่มีความสัมพันธ์ดังต่อไปนี้ -

$$ Q_ {อันตราย} \: = \: b_ {j} \: + \: \ displaystyle \ sum \ LIMIT_ {i} ^ n x_ {i} \: w_ {ij} \: \: \: j \: = \: 1 \: ถึง \: m $$

ที่นี่ ‘b’ เป็นอคติและ ‘n’ คือจำนวนเซลล์ประสาทอินพุตทั้งหมด

Step 6 - ใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้เพื่อให้ได้ผลลัพธ์สุดท้ายที่ชั้น Adaline และชั้น Madaline -

$$ f (x) \: = \: \ begin {cases} 1 & if \: x \: \ geqslant \: 0 \\ - 1 & if \: x \: <\: 0 \ end {cases} $ $

เอาท์พุทที่หน่วย (Adaline) ที่ซ่อนอยู่

$$ Q_ {j} \: = \: f (Q_ {อันตราย}) $$

ผลลัพธ์สุดท้ายของเครือข่าย

$$ y \: = \: f (y_ {in}) $$

i.e. $ \: \: y_ {อันตราย} \: = \: b_ {0} \: + \: \ sum_ {j = 1} ^ m \: Q_ {j} \: v_ {j} $

Step 7 - คำนวณข้อผิดพลาดและปรับน้ำหนักดังนี้ -

Case 1 - ถ้า y ≠ t และ t = 1 จากนั้น

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) \: + \: \ alpha (1 \: - \: Q_ {อันตราย}) x_ {i} $$

$$ b_ {j} (ใหม่) \: = \: b_ {j} (เก่า) \: + \: \ alpha (1 \: - \: Q_ {อันตราย}) $$

ในกรณีนี้น้ำหนักจะได้รับการอัปเดตเมื่อ Qj โดยที่อินพุตสุทธิใกล้เคียงกับ 0 เนื่องจาก t = 1.

Case 2 - ถ้า y ≠ t และ t = -1 จากนั้น

$$ w_ {ik} (ใหม่) \: = \: w_ {ik} (เก่า) \: + \: \ alpha (-1 \: - \: Q_ {ink}) x_ {i} $$

$$ b_ {k} (ใหม่) \: = \: b_ {k} (เก่า) \: + \: \ alpha (-1 \: - \: Q_ {ink}) $$

ในกรณีนี้น้ำหนักจะได้รับการอัปเดตเมื่อ Qk โดยที่อินพุตสุทธิเป็นบวกเพราะ t = -1.

ที่นี่ ‘y’ คือผลลัพธ์จริงและ ‘t’ คือผลลัพธ์ที่ต้องการ / เป้าหมาย

Case 3 - ถ้า y = t แล้ว

น้ำหนักจะไม่มีการเปลี่ยนแปลง

Step 8 - ทดสอบสภาพการหยุดซึ่งจะเกิดขึ้นเมื่อไม่มีการเปลี่ยนแปลงของน้ำหนักหรือการเปลี่ยนแปลงของน้ำหนักสูงสุดที่เกิดขึ้นระหว่างการฝึกซ้อมมีค่าน้อยกว่าค่าเผื่อที่กำหนด

ย้อนกลับเครือข่ายประสาทการแพร่กระจาย

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

สถาปัตยกรรม

ดังที่แสดงในแผนภาพสถาปัตยกรรมของ BPN มีสามชั้นที่เชื่อมต่อกันซึ่งมีน้ำหนักอยู่ เลเยอร์ที่ซ่อนอยู่และเลเยอร์เอาต์พุตยังมีอคติซึ่งมีน้ำหนักเท่ากับ 1 เสมอ ดังที่เห็นได้ชัดจากแผนภาพการทำงานของ BPN มีสองขั้นตอน เฟสหนึ่งส่งสัญญาณจากชั้นอินพุตไปยังชั้นเอาต์พุตและอีกเฟสกลับเผยแพร่ข้อผิดพลาดจากชั้นเอาต์พุตไปยังชั้นอินพุต

อัลกอริทึมการฝึกอบรม

สำหรับการฝึกอบรม BPN จะใช้ฟังก์ชันการเปิดใช้งานไบนารีซิกมอยด์ การฝึกอบรมของ BPN จะมีสามขั้นตอนดังต่อไปนี้

  • Phase 1 - ฟีดไปข้างหน้าเฟส

  • Phase 2 - กลับเผยแพร่ข้อผิดพลาด

  • Phase 3 - อัปเดตน้ำหนัก

ขั้นตอนทั้งหมดนี้จะสรุปได้ในอัลกอริทึมดังนี้

Step 1 - เริ่มต้นสิ่งต่อไปนี้เพื่อเริ่มการฝึกอบรม -

  • Weights
  • อัตราการเรียนรู้ $ \ alpha $

สำหรับการคำนวณที่ง่ายและเรียบง่ายให้ใช้ค่าสุ่มเล็ก ๆ

Step 2 - ทำต่อขั้นตอนที่ 3-11 เมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ทำขั้นตอนที่ 4-10 ต่อทุกคู่การฝึก

ขั้นตอนที่ 1

Step 4 - หน่วยอินพุตแต่ละหน่วยรับสัญญาณอินพุต xi และส่งไปยังหน่วยที่ซ่อนอยู่สำหรับทุกคน i = 1 to n

Step 5 - คำนวณอินพุตสุทธิที่หน่วยที่ซ่อนอยู่โดยใช้ความสัมพันธ์ต่อไปนี้ -

$$ Q_ {อันตราย} \: = \: b_ {0j} \: + \: \ sum_ {i = 1} ^ n x_ {i} v_ {ij} \: \: \: \: j \: = \ : 1 \: ถึง \: p $$

ที่นี่ b0j คืออคติของหน่วยที่ซ่อนอยู่ vij น้ำหนักอยู่ที่ j หน่วยของเลเยอร์ที่ซ่อนอยู่มาจาก i หน่วยของชั้นอินพุต

ตอนนี้คำนวณผลลัพธ์สุทธิโดยใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้

$$ Q_ {j} \: = \: f (Q_ {อันตราย}) $$

ส่งสัญญาณเอาต์พุตเหล่านี้ของยูนิตเลเยอร์ที่ซ่อนอยู่ไปยังยูนิตเลเยอร์เอาต์พุต

Step 6 - คำนวณอินพุตสุทธิที่หน่วยชั้นเอาต์พุตโดยใช้ความสัมพันธ์ต่อไปนี้ -

$$ y_ {ink} \: = \: b_ {0k} \: + \: \ sum_ {j = 1} ^ p \: Q_ {j} \: w_ {jk} \: \: k \: = \ : 1 \: ถึง \: m $$

ที่นี่ b0k ⁡เป็นอคติของหน่วยเอาท์พุท wjk น้ำหนักอยู่ที่ k หน่วยของชั้นเอาต์พุตที่มาจาก j หน่วยของชั้นที่ซ่อนอยู่

คำนวณผลลัพธ์สุทธิโดยใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้

$$ y_ {k} \: = \: f (y_ {ink}) $$

ระยะที่ 2

Step 7 - คำนวณระยะการแก้ไขข้อผิดพลาดให้สอดคล้องกับรูปแบบเป้าหมายที่ได้รับในแต่ละหน่วยเอาต์พุตดังนี้ -

$$ \ delta_ {k} \: = \ :( t_ {k} \: - \: y_ {k}) f ^ {'} (y_ {ink}) $$

บนพื้นฐานนี้ให้อัปเดตน้ำหนักและอคติดังนี้ -

$$ \ Delta v_ {jk} \: = \: \ alpha \ delta_ {k} \: Q_ {ij} $$

$$ \ Delta b_ {0k} \: = \: \ alpha \ delta_ {k} $$

จากนั้นส่ง $ \ delta_ {k} $ กลับไปที่เลเยอร์ที่ซ่อนอยู่

Step 8 - ตอนนี้แต่ละหน่วยที่ซ่อนอยู่จะเป็นผลรวมของอินพุตเดลต้าจากหน่วยเอาต์พุต

$$ \ delta_ {อันตราย} \: = \: \ displaystyle \ sum \ LIMIT_ {k = 1} ^ m \ delta_ {k} \: w_ {jk} $$

สามารถคำนวณระยะผิดพลาดได้ดังนี้ -

$$ \ delta_ {j} \: = \: \ delta_ {อันตราย} f ^ {'} (Q_ {อันตราย}) $$

บนพื้นฐานนี้ให้อัปเดตน้ำหนักและอคติดังนี้ -

$$ \ Delta w_ {ij} \: = \: \ alpha \ delta_ {j} x_ {i} $$

$$ \ Delta b_ {0j} \: = \: \ alpha \ delta_ {j} $$

ระยะที่ 3

Step 9 - แต่ละหน่วยเอาต์พุต (ykk = 1 to m) ปรับปรุงน้ำหนักและอคติดังนี้ -

$$ v_ {jk} (ใหม่) \: = \: v_ {jk} (เก่า) \: + \: \ Delta v_ {jk} $$

$$ b_ {0k} (ใหม่) \: = \: b_ {0k} (เก่า) \: + \: \ Delta b_ {0k} $$

Step 10 - แต่ละหน่วยเอาต์พุต (zjj = 1 to p) ปรับปรุงน้ำหนักและอคติดังนี้ -

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) \: + \: \ Delta w_ {ij} $$

$$ b_ {0j} (ใหม่) \: = \: b_ {0j} (เก่า) \: + \: \ Delta b_ {0j} $$

Step 11 - ตรวจสอบเงื่อนไขการหยุดซึ่งอาจเป็นได้ทั้งจำนวนยุคที่ถึงหรือผลลัพธ์เป้าหมายตรงกับผลลัพธ์จริง

กฎการเรียนรู้ทั่วไปของ Delta

กฎเดลต้าใช้งานได้กับเลเยอร์เอาต์พุตเท่านั้น ในทางกลับกันกฎเดลต้าทั่วไปเรียกอีกอย่างว่าback-propagation กฎคือวิธีการสร้างค่าที่ต้องการของเลเยอร์ที่ซ่อนอยู่

การกำหนดทางคณิตศาสตร์

สำหรับฟังก์ชั่นการเปิดใช้งาน $ y_ {k} \: = \: f (y_ {ink}) $ การมาของอินพุตสุทธิบนเลเยอร์ที่ซ่อนอยู่และในชั้นเอาต์พุตสามารถกำหนดได้โดย

$$ y_ {ink} \: = \: \ displaystyle \ sum \ LIMIT_i \: z_ {i} w_ {jk} $$

และ $ \: \: y_ {อันตราย} \: = \: \ sum_i x_ {i} v_ {ij} $

ตอนนี้ข้อผิดพลาดที่ต้องย่อให้เล็กที่สุดคือ

$$ E \: = \: \ frac {1} {2} \ displaystyle \ sum \ LIMIT_ {k} \: [t_ {k} \: - \: y_ {k}] ^ 2 $$

โดยใช้กฎลูกโซ่เรามี

$$ \ frac {\ partial E} {\ partial w_ {jk}} \: = \: \ frac {\ partial} {\ partial w_ {jk}} (\ frac {1} {2} \ displaystyle \ sum \ Limit_ {k} \: [t_ {k} \: - \: y_ {k}] ^ 2) $$

$$ = \: \ frac {\ partial} {\ partial w_ {jk}} \ lgroup \ frac {1} {2} [t_ {k} \: - \: t (y_ {ink})] ^ 2 \ rgroup $$

$$ = \: - [t_ {k} \: - \: y_ {k}] \ frac {\ partial} {\ partial w_ {jk}} f (y_ {ink}) $$

$$ = \: - [t_ {k} \: - \: y_ {k}] f (y_ {ink}) \ frac {\ partial} {\ partial w_ {jk}} (y_ {ink}) $$

$$ = \: - [t_ {k} \: - \: y_ {k}] f ^ {'} (y_ {ink}) z_ {j} $$

ตอนนี้ให้เราพูดว่า $ \ delta_ {k} \: = \: - [t_ {k} \: - \: y_ {k}] f ^ {'} (y_ {ink}) $

น้ำหนักในการเชื่อมต่อกับหน่วยที่ซ่อนอยู่ zj ได้โดย -

$$ \ frac {\ partial E} {\ partial v_ {ij}} \: = \: - \ displaystyle \ sum \ LIMIT_ {k} \ delta_ {k} \ frac {\ partial} {\ partial v_ {ij} } \ :( y_ {ink}) $$

ใส่ค่า $ y_ {ink} $ เราจะได้สิ่งต่อไปนี้

$$ \ delta_ {j} \: = \: - \ displaystyle \ sum \ LIMIT_ {k} \ delta_ {k} w_ {jk} f ^ {'} (z_ {อันตราย}) $$

การอัปเดตน้ำหนักสามารถทำได้ดังนี้ -

สำหรับหน่วยเอาต์พุต -

$$ \ Delta w_ {jk} \: = \: - \ alpha \ frac {\ partial E} {\ partial w_ {jk}} $$

$$ = \: \ alpha \: \ delta_ {k} \: z_ {j} $$

สำหรับยูนิตที่ซ่อนอยู่ -

$$ \ Delta v_ {ij} \: = \: - \ alpha \ frac {\ partial E} {\ partial v_ {ij}} $$

$$ = \: \ alpha \: \ delta_ {j} \: x_ {i} $$

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

ผู้ชนะ - รับ - เครือข่ายทั้งหมด

เครือข่ายประเภทนี้ตั้งอยู่บนกฎการเรียนรู้ที่แข่งขันกันและจะใช้กลยุทธ์ที่มันเลือกเซลล์ประสาทที่มีอินพุตรวมมากที่สุดเป็นผู้ชนะ การเชื่อมต่อระหว่างเซลล์ประสาทเอาต์พุตแสดงการแข่งขันระหว่างพวกมันและหนึ่งในนั้นจะเป็น 'เปิด' ซึ่งหมายความว่าจะเป็นผู้ชนะและอื่น ๆ จะเป็น 'ปิด'

ต่อไปนี้เป็นเครือข่ายบางส่วนที่ใช้แนวคิดง่ายๆนี้โดยใช้การเรียนรู้ที่ไม่มีผู้ดูแล

Hamming Network

ในโครงข่ายประสาทเทียมส่วนใหญ่ใช้การเรียนรู้ที่ไม่มีผู้ดูแลจำเป็นอย่างยิ่งที่จะต้องคำนวณระยะทางและทำการเปรียบเทียบ เครือข่ายประเภทนี้คือเครือข่าย Hamming ซึ่งสำหรับเวกเตอร์อินพุตที่กำหนดทุกตัวจะรวมกลุ่มกันเป็นกลุ่มต่างๆ ต่อไปนี้เป็นคุณสมบัติที่สำคัญบางประการของ Hamming Networks -

  • Lippmann เริ่มทำงานกับเครือข่าย Hamming ในปี 1987

  • มันเป็นเครือข่ายชั้นเดียว

  • อินพุตอาจเป็นไบนารี {0, 1} ของไบโพลาร์ {-1, 1} ก็ได้

  • น้ำหนักของตาข่ายคำนวณโดยเวกเตอร์ตัวอย่าง

  • เป็นโครงข่ายน้ำหนักคงที่ซึ่งหมายความว่าน้ำหนักจะยังคงเหมือนเดิมแม้ในระหว่างการฝึก

สุทธิสูงสุด

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

สถาปัตยกรรม

ใช้กลไกซึ่งเป็นกระบวนการซ้ำและแต่ละโหนดจะรับอินพุตยับยั้งจากโหนดอื่น ๆ ทั้งหมดผ่านการเชื่อมต่อ โหนดเดียวที่มีค่าสูงสุดจะใช้งานได้หรือเป็นผู้ชนะและการเปิดใช้งานของโหนดอื่น ๆ ทั้งหมดจะไม่ทำงาน Max Net ใช้ฟังก์ชันการเปิดใช้งานข้อมูลประจำตัวด้วย $$ f (x) \: = \: \ begin {cases} x & if \: x> 0 \\ 0 & if \: x \ leq 0 \ end {cases} $$

ภารกิจของตาข่ายนี้ทำได้โดยน้ำหนักกระตุ้นตัวเองที่ +1 และขนาดการยับยั้งซึ่งกันและกันซึ่งกำหนดไว้เช่น [0 <ɛ <$ \ frac {1} {m} $] โดยที่ “m” คือจำนวนโหนดทั้งหมด

การเรียนรู้เชิงแข่งขันใน ANN

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

แนวคิดพื้นฐานของเครือข่ายการแข่งขัน

เครือข่ายนี้เหมือนกับเครือข่ายฟีดฟอร์เวิร์ดชั้นเดียวที่มีการเชื่อมต่อข้อมูลป้อนกลับระหว่างเอาต์พุต การเชื่อมต่อระหว่างเอาต์พุตเป็นประเภทการยับยั้งซึ่งแสดงโดยเส้นประซึ่งหมายความว่าคู่แข่งไม่เคยสนับสนุนตัวเอง

แนวคิดพื้นฐานของกฎการเรียนรู้เชิงแข่งขัน

ดังที่กล่าวไว้ก่อนหน้านี้จะมีการแข่งขันระหว่างโหนดเอาต์พุตดังนั้นแนวคิดหลักคือ - ระหว่างการฝึกอบรมหน่วยเอาต์พุตที่มีการเปิดใช้งานสูงสุดสำหรับรูปแบบอินพุตที่กำหนดจะได้รับการประกาศให้เป็นผู้ชนะ กฎนี้เรียกอีกอย่างว่า Winner-take-all เนื่องจากมีการอัปเดตเฉพาะเซลล์ประสาทที่ชนะเท่านั้นและเซลล์ประสาทที่เหลือจะไม่เปลี่ยนแปลง

การกำหนดทางคณิตศาสตร์

ต่อไปนี้เป็นปัจจัยสำคัญสามประการสำหรับการกำหนดทางคณิตศาสตร์ของกฎการเรียนรู้นี้ -

  • เงื่อนไขที่จะเป็นผู้ชนะ

    สมมติว่าถ้าเซลล์ประสาท yk ต้องการเป็นผู้ชนะก็จะมีเงื่อนไขดังต่อไปนี้

    $$ y_ {k} \: = \: \ begin {cases} 1 & if \: v_ {k}> v_ {j} \: for \: all \: \: j, \: j \: \ neq \ : k \\ 0 & มิฉะนั้น \ end {cases} $$

    หมายความว่าถ้าเซลล์ประสาทใด ๆ พูดว่า yk ต้องการที่จะชนะจากนั้นฟิลด์ท้องถิ่นที่เกิดขึ้น (ผลลัพธ์ของหน่วยผลรวม) พูด vkต้องมีขนาดใหญ่ที่สุดในบรรดาเซลล์ประสาทอื่น ๆ ในเครือข่าย

  • เงื่อนไขของผลรวมของน้ำหนัก

    ข้อ จำกัด อีกประการหนึ่งของกฎการเรียนรู้แบบแข่งขันคือผลรวมของน้ำหนักของเซลล์ประสาทเอาท์พุตเฉพาะจะเท่ากับ 1 ตัวอย่างเช่นถ้าเราพิจารณาเซลล์ประสาท k แล้ว

    $$ \ displaystyle \ sum \ LIMIT_ {k} w_ {kj} \: = \: 1 \: \: \: \: สำหรับ \: ทั้งหมด \: \: k $$

  • การเปลี่ยนแปลงน้ำหนักสำหรับผู้ชนะ

    หากเซลล์ประสาทไม่ตอบสนองต่อรูปแบบการป้อนข้อมูลจะไม่มีการเรียนรู้เกิดขึ้นในเซลล์ประสาทนั้น อย่างไรก็ตามหากเซลล์ประสาทตัวใดตัวหนึ่งชนะน้ำหนักที่เกี่ยวข้องจะถูกปรับดังนี้ -

    $$ \ Delta w_ {kj} \: = \: \ begin {cases} - \ alpha (x_ {j} \: - \: w_ {kj}), & if \: neuron \: k \: wins \\ 0 & if \: neuron \: k \: Loss \ end {cases} $$

    ที่นี่ $ \ alpha $ คืออัตราการเรียนรู้

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

K-mean Clustering Algorithm

K-mean เป็นหนึ่งในอัลกอริทึมการทำคลัสเตอร์ที่ได้รับความนิยมมากที่สุดซึ่งเราใช้แนวคิดของขั้นตอนการแบ่งพาร์ติชัน เราเริ่มต้นด้วยพาร์ติชันเริ่มต้นและย้ายรูปแบบจากคลัสเตอร์หนึ่งไปยังอีกคลัสเตอร์ซ้ำ ๆ จนกว่าเราจะได้ผลลัพธ์ที่น่าพอใจ

อัลกอริทึม

Step 1 - เลือก kจุดเป็นเซนทรอยด์เริ่มต้น เริ่มต้นk ต้นแบบ (w1,…,wk)ตัวอย่างเช่นเราสามารถระบุได้ด้วยเวกเตอร์อินพุตที่เลือกแบบสุ่ม -

$$ W_ {j} \: = \: i_ {p}, \: \: \: โดยที่ \: j \: \ in \ lbrace1, .... , k \ rbrace \: และ \: p \: \ ใน \ lbrace1, .... , n \ rbrace $$

แต่ละคลัสเตอร์ Cj เกี่ยวข้องกับต้นแบบ wj.

Step 2 - ทำซ้ำขั้นตอนที่ 3-5 จนกว่า E จะไม่ลดลงอีกต่อไปมิฉะนั้นการเป็นสมาชิกคลัสเตอร์จะไม่เปลี่ยนแปลงอีกต่อไป

Step 3 - สำหรับเวกเตอร์อินพุตแต่ละรายการ ip ที่ไหน p ∈ {1,…,n}ใส่ ip ในคลัสเตอร์ Cj* ด้วยต้นแบบที่ใกล้ที่สุด wj* มีความสัมพันธ์ดังต่อไปนี้

$$ | i_ {p} \: - \: w_ {j *} | \: \ leq \: | i_ {p} \: - \: w_ {j} |, \: j \: \ in \ lbrace1, .... , k \ rbrace $$

Step 4 - สำหรับแต่ละคลัสเตอร์ Cj, ที่ไหน j ∈ { 1,…,k}ปรับปรุงต้นแบบ wj เป็นเซนทรอยด์ของตัวอย่างทั้งหมดในปัจจุบัน Cj , ดังนั้น

$$ w_ {j} \: = \: \ sum_ {i_ {p} \ in C_ {j}} \ frac {i_ {p}} {| C_ {j} |} $$

Step 5 - คำนวณข้อผิดพลาดเชิงปริมาณทั้งหมดดังนี้ -

$$ E \: = \: \ sum_ {j = 1} ^ k \ sum_ {i_ {p} \ in w_ {j}} | i_ {p} \: - \: w_ {j} | ^ 2 $$

นีโอโกนิตรอน

เป็นเครือข่ายฟีดฟอร์เวิร์ดหลายชั้นซึ่งพัฒนาโดย Fukushima ในปี 1980 โมเดลนี้ใช้การเรียนรู้ภายใต้การดูแลและใช้สำหรับการจดจำรูปแบบภาพซึ่งส่วนใหญ่เป็นอักขระที่เขียนด้วยมือ โดยพื้นฐานแล้วเป็นส่วนขยายของเครือข่าย Cognitron ซึ่งได้รับการพัฒนาโดย Fukushima ในปีพ. ศ. 2518

สถาปัตยกรรม

เป็นเครือข่ายแบบลำดับชั้นซึ่งประกอบด้วยหลายชั้นและมีรูปแบบการเชื่อมต่อภายในในเลเยอร์เหล่านั้น

ดังที่เราได้เห็นในแผนภาพด้านบน neocognitron ถูกแบ่งออกเป็นชั้นต่างๆที่เชื่อมต่อกันและแต่ละชั้นมีสองเซลล์ คำอธิบายของเซลล์เหล่านี้มีดังนี้ -

S-Cell - เรียกว่าเซลล์ธรรมดาซึ่งได้รับการฝึกฝนให้ตอบสนองต่อรูปแบบเฉพาะหรือกลุ่มของรูปแบบ

C-Cell- เรียกว่าเซลล์ที่ซับซ้อนซึ่งรวมเอาผลลัพธ์จากเซลล์ S เข้าด้วยกันและลดจำนวนหน่วยในแต่ละอาร์เรย์ ในอีกแง่หนึ่ง C-cell แทนที่ผลลัพธ์ของ S-cell

อัลกอริทึมการฝึกอบรม

การฝึกของ neocognitron พบว่ามีความก้าวหน้าทีละชั้น น้ำหนักจากชั้นอินพุตไปยังชั้นแรกได้รับการฝึกฝนและแช่แข็ง จากนั้นน้ำหนักจากชั้นแรกถึงชั้นที่สองจะได้รับการฝึกฝนและอื่น ๆ การคำนวณภายในระหว่าง S-cell และ Ccell ขึ้นอยู่กับน้ำหนักที่มาจากชั้นก่อนหน้า ดังนั้นเราสามารถพูดได้ว่าอัลกอริทึมการฝึกขึ้นอยู่กับการคำนวณของ S-cell และ C-cell

การคำนวณใน S-cell

เซลล์ S มีสัญญาณกระตุ้นที่ได้รับจากชั้นก่อนหน้าและมีสัญญาณยับยั้งที่ได้รับภายในชั้นเดียวกัน

$$ \ theta = \: \ sqrt {\ sum \ sum t_ {i} c_ {i} ^ 2} $$

ที่นี่ ti คือน้ำหนักคงที่และ ci คือผลลัพธ์จากเซลล์ C

อินพุตที่ปรับขนาดของ S-cell สามารถคำนวณได้ดังนี้ -

$$ x \: = \: \ frac {1 \: + \: e} {1 \: + \: vw_ {0}} \: - \: 1 $$

ที่นี่ $ e \: = \: \ sum_i c_ {i} w_ {i} $

wi คือน้ำหนักที่ปรับจาก C-cell เป็น S-cell

w0 คือน้ำหนักที่ปรับได้ระหว่างอินพุตและเซลล์ S

v เป็นอินพุตกระตุ้นจากเซลล์ C

การเปิดใช้งานสัญญาณเอาต์พุตคือ

$$ s \: = \: \ begin {cases} x, & if \: x \ geq 0 \\ 0, & if \: x <0 \ end {cases} $$

การคำนวณในเซลล์ C

อินพุตสุทธิของ C-layer คือ

$$ C \: = \: \ displaystyle \ sum \ LIMIT_i s_ {i} x_ {i} $$

ที่นี่ si คือเอาต์พุตจาก S-cell และ xi คือน้ำหนักคงที่จาก S-cell ถึง C-cell

ผลลัพธ์สุดท้ายมีดังนี้ -

$$ C_ {out} \: = \: \ begin {cases} \ frac {C} {a + C}, & if \: C> 0 \\ 0, & else \ end {cases} $$

ที่นี่ ‘a’ คือพารามิเตอร์ที่ขึ้นอยู่กับประสิทธิภาพของเครือข่าย

Learning Vector Quantization (LVQ) ซึ่งแตกต่างจาก Vector quantization (VQ) และ Kohonen Self-Organizing Maps (KSOM) โดยพื้นฐานแล้วเป็นเครือข่ายการแข่งขันที่ใช้การเรียนรู้ภายใต้การดูแล เราอาจกำหนดให้เป็นกระบวนการในการจำแนกรูปแบบโดยที่แต่ละหน่วยเอาต์พุตแสดงถึงคลาส เมื่อใช้การเรียนรู้ภายใต้การดูแลเครือข่ายจะได้รับชุดของรูปแบบการฝึกอบรมที่มีการจำแนกประเภทที่รู้จักพร้อมกับการกระจายเริ่มต้นของคลาสเอาต์พุต หลังจากเสร็จสิ้นขั้นตอนการฝึก LVQ จะจำแนกเวกเตอร์อินพุตโดยกำหนดให้เป็นคลาสเดียวกับของหน่วยเอาต์พุต

สถาปัตยกรรม

รูปต่อไปนี้แสดงสถาปัตยกรรมของ LVQ ซึ่งค่อนข้างคล้ายกับสถาปัตยกรรมของ KSOM อย่างที่เราเห็นก็มี“n” จำนวนหน่วยอินพุตและ “m”จำนวนหน่วยเอาต์พุต เลเยอร์มีการเชื่อมต่อกันอย่างเต็มที่โดยมีน้ำหนักอยู่

พารามิเตอร์ที่ใช้

ต่อไปนี้เป็นพารามิเตอร์ที่ใช้ในกระบวนการฝึกอบรม LVQ รวมทั้งในผังงาน

  • x= เวกเตอร์การฝึก (x 1 , ... , x i , ... , x n )

  • T = คลาสสำหรับเวกเตอร์การฝึกอบรม x

  • wj = เวกเตอร์น้ำหนักสำหรับ jth หน่วยเอาต์พุต

  • Cj = คลาสที่เชื่อมโยงกับ jth หน่วยเอาต์พุต

อัลกอริทึมการฝึกอบรม

Step 1 - เริ่มต้นเวกเตอร์อ้างอิงซึ่งสามารถทำได้ดังนี้ -

  • Step 1(a) - จากชุดเวกเตอร์การฝึกที่กำหนดให้เลือก "m” (จำนวนคลัสเตอร์) ฝึกเวกเตอร์และใช้เป็นเวกเตอร์น้ำหนัก เวกเตอร์ที่เหลือสามารถใช้สำหรับการฝึกอบรม

  • Step 1(b) - กำหนดน้ำหนักเริ่มต้นและการจำแนกแบบสุ่ม

  • Step 1(c) - ใช้ K-mean clustering method

Step 2 - เริ่มต้นเวกเตอร์อ้างอิง $ \ alpha $

Step 3 - ทำตามขั้นตอนที่ 4-9 ต่อไปหากไม่เป็นไปตามเงื่อนไขในการหยุดอัลกอริทึมนี้

Step 4 - ทำตามขั้นตอนที่ 5-6 สำหรับเวกเตอร์อินพุตการฝึกทุกตัว x.

Step 5 - คำนวณกำลังสองของระยะทางแบบยุคลิดสำหรับ j = 1 to m และ i = 1 to n

$$ D (j) \: = \: \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ displaystyle \ sum \ LIMIT_ {j = 1} ^ m (x_ {i} \: - \: w_ {ij }) ^ 2 $$

Step 6 - รับหน่วยที่ชนะ J ที่ไหน D(j) เป็นขั้นต่ำ

Step 7 - คำนวณน้ำหนักใหม่ของหน่วยที่ชนะตามความสัมพันธ์ต่อไปนี้ -

ถ้า T = Cj แล้ว $ w_ {j} (ใหม่) \: = \: w_ {j} (เก่า) \: + \: \ alpha [x \: - \: w_ {j} (เก่า)] $

ถ้า T ≠ Cj แล้ว $ w_ {j} (ใหม่) \: = \: w_ {j} (เก่า) \: - \: \ alpha [x \: - \: w_ {j} (เก่า)] $

Step 8 - ลดอัตราการเรียนรู้ $ \ alpha $

Step 9- ทดสอบสภาพการหยุด อาจเป็นดังนี้ -

  • ถึงจำนวนสูงสุดของยุคแล้ว
  • อัตราการเรียนรู้ลดลงเหลือเพียงเล็กน้อย

ผังงาน

ตัวแปร

อีกสามสายพันธุ์ ได้แก่ LVQ2, LVQ2.1 และ LVQ3 ได้รับการพัฒนาโดย Kohonen ความซับซ้อนในทั้งสามสายพันธุ์เนื่องจากแนวคิดที่ว่าผู้ชนะและหน่วยรองชนะเลิศจะได้เรียนรู้มากกว่าใน LVQ

LVQ2

ตามที่กล่าวไว้แนวคิดของสายพันธุ์อื่น ๆ ของ LVQ ข้างต้นเงื่อนไขของ LVQ2 ถูกสร้างขึ้นโดยหน้าต่าง หน้าต่างนี้จะขึ้นอยู่กับพารามิเตอร์ต่อไปนี้ -

  • x - เวกเตอร์อินพุตปัจจุบัน

  • yc - เวกเตอร์อ้างอิงที่ใกล้เคียงที่สุด x

  • yr - เวกเตอร์อ้างอิงอื่น ๆ ซึ่งอยู่ใกล้ที่สุด x

  • dc - ระยะทางจาก x ถึง yc

  • dr - ระยะทางจาก x ถึง yr

เวกเตอร์อินพุต x ตกหน้าต่างถ้า

$$ \ frac {d_ {c}} {d_ {r}} \:> \: 1 \: - \: \ theta \: \: และ \: \: \ frac {d_ {r}} {d_ {c }} \:> \: 1 \: + \: \ theta $$

ที่นี่ $ \ theta $ คือจำนวนตัวอย่างการฝึกอบรม

การอัปเดตสามารถทำได้ด้วยสูตรต่อไปนี้ -

$ y_ {c} (t \: + \: 1) \: = \: y_ {c} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c} (ท)] $ (belongs to different class)

$ y_ {r} (t \: + \: 1) \: = \: y_ {r} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {r} (ท)] $ (belongs to same class)

ที่นี่ $ \ alpha $ คืออัตราการเรียนรู้

LVQ2.1

ใน LVQ2.1 เราจะหาเวกเตอร์ที่ใกล้เคียงที่สุดสองตัวคือ yc1 และ yc2 และเงื่อนไขสำหรับหน้าต่างมีดังนี้ -

$$ นาที \ เริ่มต้น {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) $$

$$ Max \ begin {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \: <\ :( 1 \ : + \: \ theta) $$

การอัปเดตสามารถทำได้ด้วยสูตรต่อไปนี้ -

$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c1} (ท)] $ (belongs to different class)

$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ alpha (t) [x (t) \: - \: y_ {c2} (ท)] $ (belongs to same class)

ที่นี่ $ \ alpha $ คืออัตราการเรียนรู้

LVQ3

ใน LVQ3 เราจะหาเวกเตอร์ที่ใกล้เคียงที่สุดสองตัวคือ yc1 และ yc2 และเงื่อนไขสำหรับหน้าต่างมีดังนี้ -

$$ นาที \ เริ่มต้น {bmatrix} \ frac {d_ {c1}} {d_ {c2}}, \ frac {d_ {c2}} {d_ {c1}} \ end {bmatrix} \:> \ :( 1 \ : - \: \ theta) (1 \: + \: \ theta) $$

ที่นี่ $ \ theta \ ประมาณ 0.2 $

การอัปเดตสามารถทำได้ด้วยสูตรต่อไปนี้ -

$ y_ {c1} (t \: + \: 1) \: = \: y_ {c1} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c1} (ท)] $ (belongs to different class)

$ y_ {c2} (t \: + \: 1) \: = \: y_ {c2} (t) \: + \: \ beta (t) [x (t) \: - \: y_ {c2} (ท)] $ (belongs to same class)

ที่นี่ $ \ beta $ คือผลคูณของอัตราการเรียนรู้ $ \ alpha $ และ $\beta\:=\:m \alpha(t)$ สำหรับทุกๆ 0.1 < m < 0.5

เครือข่ายนี้ได้รับการพัฒนาโดย Stephen Grossberg และ Gail Carpenter ในปี 1987 โดยมีพื้นฐานมาจากการแข่งขันและใช้รูปแบบการเรียนรู้ที่ไม่มีผู้ดูแล เครือข่าย Adaptive Resonance Theory (ART) ตามชื่อที่แนะนำนั้นเปิดกว้างสำหรับการเรียนรู้ใหม่ ๆ (ปรับตัวได้) โดยไม่สูญเสียรูปแบบเก่า ๆ โดยทั่วไปเครือข่าย ART เป็นลักษณนามเวกเตอร์ซึ่งรับเวกเตอร์อินพุตและจำแนกเป็นประเภทใดประเภทหนึ่งขึ้นอยู่กับรูปแบบที่จัดเก็บไว้ซึ่งคล้ายคลึงกันมากที่สุด

หัวหน้าฝ่ายปฏิบัติการ

การดำเนินการหลักของการจำแนกประเภท ART สามารถแบ่งออกเป็นขั้นตอนต่อไปนี้ -

  • Recognition phase- เวกเตอร์อินพุตถูกเปรียบเทียบกับการจำแนกประเภทที่นำเสนอในทุกโหนดในชั้นเอาต์พุต ผลลัพธ์ของเซลล์ประสาทจะกลายเป็น“ 1” หากตรงกับการจำแนกประเภทที่ใช้มากที่สุดมิฉะนั้นจะกลายเป็น“ 0”

  • Comparison phase- ในขั้นตอนนี้จะทำการเปรียบเทียบเวกเตอร์อินพุตกับเวกเตอร์เลเยอร์เปรียบเทียบ เงื่อนไขสำหรับการรีเซ็ตคือระดับของความคล้ายคลึงกันจะน้อยกว่าพารามิเตอร์การเฝ้าระวัง

  • Search phase- ในขั้นตอนนี้เครือข่ายจะค้นหาการรีเซ็ตและการจับคู่ที่ทำในขั้นตอนข้างต้น ดังนั้นหากไม่มีการรีเซ็ตและการแข่งขันค่อนข้างดีการจัดประเภทจะสิ้นสุดลง มิฉะนั้นกระบวนการจะซ้ำและต้องส่งรูปแบบอื่น ๆ ที่จัดเก็บไว้เพื่อค้นหาการจับคู่ที่ถูกต้อง

ART1

เป็น ART ประเภทหนึ่งซึ่งออกแบบมาเพื่อจัดกลุ่มเวกเตอร์ไบนารี เราสามารถเข้าใจเกี่ยวกับเรื่องนี้ได้ด้วยสถาปัตยกรรมของมัน

สถาปัตยกรรมของ ART1

ประกอบด้วยสองหน่วยต่อไปนี้ -

Computational Unit - ประกอบด้วยสิ่งต่อไปนี้ -

  • Input unit (F1 layer) - นอกจากนี้ยังมีสองส่วนต่อไปนี้ -

    • F1(a) layer (Input portion)- ใน ART1 จะไม่มีการประมวลผลในส่วนนี้แทนที่จะมีเวกเตอร์อินพุตเท่านั้น เชื่อมต่อกับเลเยอร์F 1 (b) (ส่วนอินเตอร์เฟส)

    • F1(b) layer (Interface portion)- ส่วนนี้รวมสัญญาณจากส่วนอินพุตกับเลเยอร์F 2 เลเยอร์F 1 (b) เชื่อมต่อกับเลเยอร์F 2โดยใช้น้ำหนักจากล่างขึ้นบนbijและชั้นF 2เชื่อมต่อกับชั้น F 1 (b) ผ่านน้ำหนักจากบนลงล่างtji.

  • Cluster Unit (F2 layer)- นี่คือเลเยอร์การแข่งขัน หน่วยที่มีอินพุตสุทธิที่ใหญ่ที่สุดถูกเลือกเพื่อเรียนรู้รูปแบบการป้อนข้อมูล การเปิดใช้งานของคลัสเตอร์ยูนิตอื่น ๆ ทั้งหมดถูกตั้งค่าเป็น 0

  • Reset Mechanism- การทำงานของกลไกนี้ขึ้นอยู่กับความคล้ายคลึงกันระหว่างน้ำหนักจากบนลงล่างและเวกเตอร์อินพุต ตอนนี้ถ้าระดับของความคล้ายคลึงกันนี้น้อยกว่าพารามิเตอร์การเฝ้าระวังคลัสเตอร์จะไม่ได้รับอนุญาตให้เรียนรู้รูปแบบและส่วนที่เหลือจะเกิดขึ้น

Supplement Unit - จริงๆแล้วปัญหาเกี่ยวกับกลไกการรีเซ็ตก็คือเลเยอร์ F2จะต้องถูกยับยั้งภายใต้เงื่อนไขบางประการและจะต้องพร้อมใช้งานเมื่อเกิดการเรียนรู้บางอย่าง นั่นคือเหตุผลที่หน่วยเสริมสองหน่วย ได้แก่G1 และ G2 ถูกเพิ่มพร้อมกับหน่วยรีเซ็ต R. พวกเขาเรียกว่าgain control units. หน่วยเหล่านี้รับและส่งสัญญาณไปยังหน่วยอื่น ๆ ที่มีอยู่ในเครือข่าย‘+’ บ่งบอกถึงสัญญาณกระตุ้นในขณะที่ ‘−’ บ่งบอกถึงสัญญาณยับยั้ง

พารามิเตอร์ที่ใช้

ใช้พารามิเตอร์ต่อไปนี้ -

  • n - จำนวนส่วนประกอบในเวกเตอร์อินพุต

  • m - จำนวนคลัสเตอร์สูงสุดที่สามารถสร้างได้

  • bij- น้ำหนักตั้งแต่ F 1 (b) ถึง F 2ชั้นคือน้ำหนักจากล่างขึ้นบน

  • tji- น้ำหนักตั้งแต่ชั้น F 2ถึง F 1 (b) คือน้ำหนักจากบนลงล่าง

  • ρ - พารามิเตอร์การเฝ้าระวัง

  • ||x|| - บรรทัดฐานของเวกเตอร์ x

อัลกอริทึม

Step 1 - เริ่มต้นอัตราการเรียนรู้พารามิเตอร์การเฝ้าระวังและน้ำหนักดังนี้ -

$$ \ alpha \:> \: 1 \: \: และ \: \: 0 \: <\ rho \: \ leq \: 1 $$

$$ 0 \: <\: b_ {ij} (0) \: <\: \ frac {\ alpha} {\ alpha \: - \: 1 \: + \: n} \: \: และ \: \: t_ {ij} (0) \: = \: 1 $$

Step 2 - ทำต่อขั้นตอนที่ 3-9 เมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ดำเนินการต่อในขั้นตอนที่ 4-6 สำหรับทุกการฝึกอบรม

Step 4- ตั้งค่าการเปิดใช้งานของหน่วย F 1 (a) และ F 1ทั้งหมดดังนี้

F2 = 0 and F1(a) = input vectors

Step 5- ต้องส่งสัญญาณอินพุตจากเลเยอร์F 1 (a) ถึง F 1 (b) เช่น

$$ s_ {i} \: = \: x_ {i} $$

Step 6- สำหรับทุกโหนดF 2 ที่ถูกยับยั้ง

$ y_ {j} \: = \: \ sum_i b_ {ij} x_ {i} $ เงื่อนไขคือ yj ≠ -1

Step 7 - ทำตามขั้นตอนที่ 8-10 เมื่อการรีเซ็ตเป็นจริง

Step 8 - ค้นหา J สำหรับ yJ ≥ yj สำหรับโหนดทั้งหมด j

Step 9- คำนวณการเปิดใช้งานอีกครั้งใน F 1 (b) ดังนี้

$$ x_ {i} \: = \: sitJi $$

Step 10 - ตอนนี้หลังจากคำนวณบรรทัดฐานของเวกเตอร์แล้ว x และเวกเตอร์ sเราต้องตรวจสอบเงื่อนไขการรีเซ็ตดังนี้ -

ถ้า ||x||/ ||s|| <พารามิเตอร์การเฝ้าระวัง ρ, ⁡then⁡inhibit⁡node J และไปที่ขั้นตอนที่ 7

อื่น ๆ ถ้า ||x||/ ||s|| ≥พารามิเตอร์การเฝ้าระวัง ρจากนั้นดำเนินการต่อไป

Step 11 - อัปเดตน้ำหนักสำหรับโหนด J สามารถทำได้ดังนี้ -

$$ b_ {ij} (ใหม่) \: = \: \ frac {\ alpha x_ {i}} {\ alpha \: - \: 1 \: + \: || x ||} $$

$$ t_ {ij} (ใหม่) \: = \: x_ {i} $$

Step 12 - ต้องตรวจสอบเงื่อนไขการหยุดสำหรับอัลกอริทึมและอาจเป็นดังนี้ -

  • ห้ามมีการเปลี่ยนแปลงของน้ำหนัก
  • ไม่ได้ทำการรีเซ็ตสำหรับหน่วย
  • ถึงจำนวนสูงสุดของยุคแล้ว

สมมติว่าเรามีรูปแบบของมิติตามอำเภอใจอย่างไรก็ตามเราต้องการมิติเหล่านี้ในมิติเดียวหรือสองมิติ จากนั้นกระบวนการทำแผนที่คุณลักษณะจะมีประโยชน์มากในการแปลงพื้นที่รูปแบบกว้างให้เป็นพื้นที่คุณลักษณะทั่วไป ตอนนี้คำถามเกิดขึ้นว่าทำไมเราต้องมีแผนผังคุณลักษณะการจัดระเบียบตนเอง? เหตุผลก็คือพร้อมกับความสามารถในการแปลงขนาดตามอำเภอใจให้เป็น 1-D หรือ 2-D แล้วยังต้องมีความสามารถในการรักษาโทโพโลยีเพื่อนบ้าน

โครงสร้างเพื่อนบ้านใน Kohonen SOM

อาจมีโทโพโลยีหลายแบบอย่างไรก็ตามโทโพโลยีสองแบบต่อไปนี้ถูกใช้มากที่สุด -

โครงสร้างตารางสี่เหลี่ยม

โทโพโลยีนี้มี 24 โหนดในกริดระยะทาง -2, 16 โหนดในตารางระยะทาง -1 และ 8 โหนดในตารางระยะทาง -0 ซึ่งหมายความว่าความแตกต่างระหว่างกริดสี่เหลี่ยมแต่ละโหนดคือ 8 โหนด หน่วยที่ชนะแสดงด้วย #

โครงสร้างตารางหกเหลี่ยม

โทโพโลยีนี้มี 18 โหนดในตารางระยะทาง -2, 12 โหนดในตารางระยะทาง -1 และ 6 โหนดในตารางระยะทาง -0 ซึ่งหมายความว่าความแตกต่างระหว่างกริดสี่เหลี่ยมแต่ละอันคือ 6 โหนด หน่วยที่ชนะแสดงด้วย #

สถาปัตยกรรม

สถาปัตยกรรมของ KSOM นั้นคล้ายกับเครือข่ายการแข่งขัน ด้วยความช่วยเหลือของโครงร่างพื้นที่ใกล้เคียงที่กล่าวถึงก่อนหน้านี้การฝึกอบรมสามารถเกิดขึ้นในพื้นที่ขยายของเครือข่าย

อัลกอริทึมสำหรับการฝึกอบรม

Step 1 - เริ่มต้นน้ำหนักอัตราการเรียนรู้ α และโครงการทอพอโลยีของพื้นที่ใกล้เคียง

Step 2 - ทำต่อขั้นตอนที่ 3-9 เมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ดำเนินการต่อในขั้นตอนที่ 4-6 สำหรับทุกอินพุตเวกเตอร์ x.

Step 4 - คำนวณกำลังสองของระยะทางแบบยุคลิดสำหรับ j = 1 to m

$$ D (j) \: = \: \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ displaystyle \ sum \ LIMIT_ {j = 1} ^ m (x_ {i} \: - \: w_ {ij }) ^ 2 $$

Step 5 - รับหน่วยที่ชนะ J ที่ไหน D(j) เป็นขั้นต่ำ

Step 6 - คำนวณน้ำหนักใหม่ของหน่วยที่ชนะตามความสัมพันธ์ต่อไปนี้ -

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) \: + \: \ alpha [x_ {i} \: - \: w_ {ij} (เก่า)] $$

Step 7 - อัปเดตอัตราการเรียนรู้ α ตามความสัมพันธ์ต่อไปนี้ -

$$ \ alpha (t \: + \: 1) \: = \: 0.5 \ alpha t $$

Step 8 - ลดรัศมีของโครงร่างโทโพโลยี

Step 9 - ตรวจสอบเงื่อนไขการหยุดสำหรับเครือข่าย

เครือข่ายประสาทเทียมประเภทนี้ทำงานบนพื้นฐานของการเชื่อมโยงรูปแบบซึ่งหมายความว่าพวกเขาสามารถจัดเก็บรูปแบบที่แตกต่างกันและในขณะที่ให้เอาต์พุตพวกเขาสามารถสร้างรูปแบบที่จัดเก็บอย่างใดอย่างหนึ่งโดยจับคู่กับรูปแบบการป้อนข้อมูลที่กำหนด ความทรงจำประเภทนี้เรียกอีกอย่างว่าContent-Addressable Memory(ลูกเบี้ยว). Associative memory ทำการค้นหาแบบขนานด้วยรูปแบบที่จัดเก็บไว้เป็นไฟล์ข้อมูล

ต่อไปนี้เป็นความทรงจำเชื่อมโยงสองประเภทที่เราสามารถสังเกตได้ -

  • Auto Associative Memory
  • หน่วยความจำ Hetero Associative

Auto Associative Memory

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

สถาปัตยกรรม

ดังแสดงในรูปต่อไปนี้สถาปัตยกรรมของเครือข่ายหน่วยความจำ Auto Associative มี ‘n’ จำนวนเวกเตอร์การฝึกป้อนข้อมูลและสิ่งที่คล้ายกัน ‘n’ จำนวนเวกเตอร์เป้าหมายเอาต์พุต

อัลกอริทึมการฝึกอบรม

สำหรับการฝึกอบรมเครือข่ายนี้ใช้กฎการเรียนรู้ Hebb หรือ Delta

Step 1 - เริ่มต้นน้ำหนักทั้งหมดเป็นศูนย์เป็น wij = 0 (i = 1 to n, j = 1 to n)

Step 2 - ทำตามขั้นตอนที่ 3-4 สำหรับเวกเตอร์อินพุตแต่ละตัว

Step 3 - เปิดใช้งานหน่วยอินพุตแต่ละหน่วยดังนี้ -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: ถึง \: n) $$

Step 4 - เปิดใช้งานเอาต์พุตแต่ละยูนิตดังนี้ -

$$ y_ {j} \: = \: s_ {j} \ :( j \: = \: 1 \: ถึง \: n) $$

Step 5 - ปรับน้ำหนักดังนี้ -

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) \: + \: x_ {i} y_ {j} $$

อัลกอริทึมการทดสอบ

Step 1 - กำหนดน้ำหนักที่ได้รับระหว่างการฝึกตามกฎของเฮบบ์

Step 2 - ทำตามขั้นตอนที่ 3-5 สำหรับเวกเตอร์อินพุตแต่ละตัว

Step 3 - ตั้งค่าการเปิดใช้งานหน่วยอินพุตให้เท่ากับเวกเตอร์อินพุต

Step 4 - คำนวณอินพุตสุทธิของแต่ละหน่วยเอาต์พุต j = 1 to n

$$ y_ {อันตราย} \: = \: \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n x_ {i} w_ {ij} $$

Step 5 - ใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้เพื่อคำนวณผลลัพธ์

$$ y_ {j} \: = \: f (y_ {อันตราย}) \: = \: \ begin {cases} +1 & if \: y_ {อันตราย} \:> \: 0 \\ - 1 & if \: y_ {อันตราย} \: \ leqslant \: 0 \ end {cases} $$

หน่วยความจำ Hetero Associative

คล้ายกับเครือข่าย Auto Associative Memory ซึ่งเป็นเครือข่ายประสาทชั้นเดียว อย่างไรก็ตามในเครือข่ายนี้เวกเตอร์การฝึกอินพุตและเวกเตอร์เป้าหมายของเอาต์พุตจะไม่เหมือนกัน น้ำหนักจะถูกกำหนดเพื่อให้เครือข่ายเก็บชุดรูปแบบ เครือข่ายการเชื่อมโยง Hetero เป็นแบบคงที่ดังนั้นจึงไม่มีการดำเนินการที่ไม่ใช่เชิงเส้นและล่าช้า

สถาปัตยกรรม

ดังแสดงในรูปต่อไปนี้สถาปัตยกรรมของเครือข่าย Hetero Associative Memory มี ‘n’ จำนวนเวกเตอร์การฝึกป้อนข้อมูลและ ‘m’ จำนวนเวกเตอร์เป้าหมายเอาต์พุต

อัลกอริทึมการฝึกอบรม

สำหรับการฝึกอบรมเครือข่ายนี้ใช้กฎการเรียนรู้ Hebb หรือ Delta

Step 1 - เริ่มต้นน้ำหนักทั้งหมดเป็นศูนย์เป็น wij = 0 (i = 1 to n, j = 1 to m)

Step 2 - ทำตามขั้นตอนที่ 3-4 สำหรับเวกเตอร์อินพุตแต่ละตัว

Step 3 - เปิดใช้งานหน่วยอินพุตแต่ละหน่วยดังนี้ -

$$ x_ {i} \: = \: s_ {i} \ :( i \: = \: 1 \: ถึง \: n) $$

Step 4 - เปิดใช้งานเอาต์พุตแต่ละยูนิตดังนี้ -

$$ y_ {j} \: = \: s_ {j} \ :( j \: = \: 1 \: ถึง \: m) $$

Step 5 - ปรับน้ำหนักดังนี้ -

$$ w_ {ij} (ใหม่) \: = \: w_ {ij} (เก่า) \: + \: x_ {i} y_ {j} $$

อัลกอริทึมการทดสอบ

Step 1 - กำหนดน้ำหนักที่ได้รับระหว่างการฝึกตามกฎของเฮบบ์

Step 2 - ทำตามขั้นตอนที่ 3-5 สำหรับเวกเตอร์อินพุตแต่ละตัว

Step 3 - ตั้งค่าการเปิดใช้งานหน่วยอินพุตให้เท่ากับเวกเตอร์อินพุต

Step 4 - คำนวณอินพุตสุทธิของแต่ละหน่วยเอาต์พุต j = 1 to m;

$$ y_ {อันตราย} \: = \: \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n x_ {i} w_ {ij} $$

Step 5 - ใช้ฟังก์ชันการเปิดใช้งานต่อไปนี้เพื่อคำนวณผลลัพธ์

$$ y_ {j} \: = \: f (y_ {อันตราย}) \: = \: \ begin {cases} +1 & if \: y_ {อันตราย} \:> \: 0 \\ 0 & if \ : y_ {อันตราย} \: = \: 0 \\ - 1 & if \: y_ {อันตราย} \: <\: 0 \ end {cases} $$

โครงข่ายประสาทเทียม Hopfield ถูกคิดค้นโดยดร. จอห์นเจ. ฮ็อปฟิลด์ในปี พ.ศ. 2525 ประกอบด้วยชั้นเดียวซึ่งประกอบด้วยเซลล์ประสาทที่เกิดซ้ำที่เชื่อมต่อกันอย่างสมบูรณ์อย่างน้อยหนึ่งเซลล์ เครือข่าย Hopfield มักใช้สำหรับการเชื่อมโยงอัตโนมัติและงานการเพิ่มประสิทธิภาพ

เครือข่าย Hopfield แบบไม่ต่อเนื่อง

เครือข่าย Hopfield ซึ่งทำงานในรูปแบบเส้นแยกหรือกล่าวอีกนัยหนึ่งอาจกล่าวได้ว่ารูปแบบอินพุตและเอาต์พุตเป็นเวกเตอร์ที่ไม่ต่อเนื่องซึ่งอาจเป็นได้ทั้งไบนารี (0,1) หรือไบโพลาร์ (+1, -1) ในธรรมชาติ เครือข่ายมีน้ำหนักสมมาตรโดยไม่มีการเชื่อมต่อด้วยตนเองเช่นwij = wji และ wii = 0.

สถาปัตยกรรม

ต่อไปนี้เป็นประเด็นสำคัญบางประการที่ควรทราบเกี่ยวกับเครือข่าย Hopfield แบบไม่ต่อเนื่อง -

  • แบบจำลองนี้ประกอบด้วยเซลล์ประสาทที่มีการกลับด้านหนึ่งตัวและหนึ่งเอาต์พุตที่ไม่กลับด้าน

  • ผลลัพธ์ของเซลล์ประสาทแต่ละเซลล์ควรเป็นข้อมูลของเซลล์ประสาทอื่น ๆ แต่ไม่ใช่ข้อมูลของตัวเอง

  • น้ำหนัก / ความแข็งแรงของการเชื่อมต่อแสดงโดย wij.

  • การเชื่อมต่อสามารถกระตุ้นได้เช่นเดียวกับการยับยั้ง มันจะถูกกระตุ้นถ้าผลลัพธ์ของเซลล์ประสาทเหมือนกับอินพุตมิฉะนั้นจะถูกยับยั้ง

  • น้ำหนักควรสมมาตรกล่าวคือ wij = wji

ผลลัพธ์จาก Y1 กำลังจะ Y2, Yi และ Yn มีน้ำหนัก w12, w1i และ w1nตามลำดับ ในทำนองเดียวกันส่วนโค้งอื่น ๆ ก็มีน้ำหนักอยู่

อัลกอริทึมการฝึกอบรม

ในระหว่างการฝึกอบรมเครือข่าย Hopfield แบบไม่ต่อเนื่องน้ำหนักจะถูกอัปเดต ดังที่เราทราบว่าเราสามารถมีเวกเตอร์อินพุตไบนารีเช่นเดียวกับเวกเตอร์อินพุตสองขั้ว ดังนั้นในทั้งสองกรณีการอัปเดตน้ำหนักสามารถทำได้ด้วยความสัมพันธ์ต่อไปนี้

Case 1 - รูปแบบการป้อนข้อมูลไบนารี

สำหรับชุดรูปแบบไบนารี s(p), p = 1 to P

ที่นี่ s(p) = s1(p), s2(p),..., si(p),..., sn(p)

Weight Matrix กำหนดโดย

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [2s_ {i} (p) - \: 1] [2s_ {j} (p) - \: 1] \: \: \: \: \: สำหรับ \: i \: \ neq \: j $$

Case 2 - รูปแบบการป้อนข้อมูลสองขั้ว

สำหรับชุดรูปแบบไบนารี s(p), p = 1 to P

ที่นี่ s(p) = s1(p), s2(p),..., si(p),..., sn(p)

Weight Matrix กำหนดโดย

$$ w_ {ij} \: = \: \ sum_ {p = 1} ^ P [s_ {i} (p)] [s_ {j} (p)] \: \: \: \: \: สำหรับ \ : i \: \ neq \: j $$

อัลกอริทึมการทดสอบ

Step 1 - เริ่มต้นน้ำหนักซึ่งได้รับจากอัลกอริทึมการฝึกอบรมโดยใช้หลักการ Hebbian

Step 2 - ทำตามขั้นตอนที่ 3-9 หากการเปิดใช้งานเครือข่ายไม่รวมเข้าด้วยกัน

Step 3 - สำหรับเวกเตอร์อินพุตแต่ละรายการ Xทำตามขั้นตอนที่ 4-8

Step 4 - ทำการเปิดใช้งานครั้งแรกของเครือข่ายเท่ากับเวกเตอร์อินพุตภายนอก X ดังต่อไปนี้ -

$$ y_ {i} \: = \: x_ {i} \: \: \: สำหรับ \: i \: = \: 1 \: ถึง \: n $$

Step 5 - สำหรับแต่ละยูนิต Yiทำตามขั้นตอนที่ 6-9

Step 6 - คำนวณอินพุตสุทธิของเครือข่ายดังนี้ -

$$ y_ {ini} \: = \: x_ {i} \: + \: \ displaystyle \ sum \ LIMIT_ {j} y_ {j} w_ {ji} $$

Step 7 - ใช้การเปิดใช้งานดังต่อไปนี้เหนืออินพุตสุทธิเพื่อคำนวณผลลัพธ์ -

$$ y_ {i} \: = \ begin {cases} 1 & if \: y_ {ini} \:> \: \ theta_ {i} \\ y_ {i} & if \: y_ {ini} \: = \: \ theta_ {i} \\ 0 & if \: y_ {ini} \: <\: \ theta_ {i} \ end {cases} $$

นี่ $ \ theta_ {i} $ คือเกณฑ์

Step 8 - ออกอากาศเอาต์พุตนี้ yi ไปยังหน่วยอื่น ๆ ทั้งหมด

Step 9 - ทดสอบเครือข่ายสำหรับการเชื่อมต่อ

การประเมินฟังก์ชันพลังงาน

ฟังก์ชันพลังงานถูกกำหนดให้เป็นฟังก์ชันที่ถูกผูกมัดและไม่เพิ่มฟังก์ชันของสถานะของระบบ

ฟังก์ชันพลังงาน Ef⁡, ⁡เรียกอีกอย่างว่า Lyapunov function กำหนดความเสถียรของเครือข่าย Hopfield แบบไม่ต่อเนื่องและมีลักษณะดังนี้ -

$$ E_ {f} \: = \: - \ frac {1} {2} \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ displaystyle \ sum \ LIMIT_ {j = 1} ^ n y_ {i} y_ {j} w_ {ij} \: - \: \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n x_ {i} y_ {i} \: + \: \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ theta_ {i} y_ {i} $$

Condition - ในเครือข่ายที่เสถียรเมื่อใดก็ตามที่สถานะของโหนดเปลี่ยนไปฟังก์ชันพลังงานข้างต้นจะลดลง

สมมติว่าเมื่อโหนด i ได้เปลี่ยนสถานะจาก $ y_i ^ {(k)} $ เป็น $ y_i ^ {(k \: + \: 1)} $ ⁡จากนั้นการเปลี่ยนแปลงพลังงาน $ \ Delta E_ {f} $ จะได้รับจากความสัมพันธ์ต่อไปนี้

$$ \ Delta E_ {f} \: = \: E_ {f} (y_i ^ {(k + 1)}) \: - \: E_ {f} (y_i ^ {(k)}) $$

$$ = \: - \ left (\ start {array} {c} \ displaystyle \ sum \ LIMIT_ {j = 1} ^ n w_ {ij} y_i ^ {(k)} \: + \: x_ {i} \: - \: \ theta_ {i} \ end {array} \ right) (y_i ^ {(k + 1)} \: - \: y_i ^ {(k)}) $$

$$ = \: - \ :( net_ {i}) \ Delta y_ {i} $$

ที่นี่ $ \ Delta y_ {i} \: = \: y_i ^ {(k \: + \: 1)} \: - \: y_i ^ {(k)} $

การเปลี่ยนแปลงของพลังงานขึ้นอยู่กับข้อเท็จจริงที่ว่ามีเพียงหน่วยเดียวเท่านั้นที่สามารถอัปเดตการเปิดใช้งานได้ในแต่ละครั้ง

เครือข่าย Hopfield อย่างต่อเนื่อง

เมื่อเปรียบเทียบกับเครือข่าย Discrete Hopfield เครือข่ายแบบต่อเนื่องมีเวลาเป็นตัวแปรต่อเนื่อง นอกจากนี้ยังใช้ในการเชื่อมโยงอัตโนมัติและปัญหาการเพิ่มประสิทธิภาพเช่นปัญหาพนักงานขายในการเดินทาง

Model - โมเดลหรือสถาปัตยกรรมสามารถสร้างขึ้นได้โดยการเพิ่มส่วนประกอบไฟฟ้าเช่นแอมพลิฟายเออร์ซึ่งสามารถแมปแรงดันไฟฟ้าขาเข้ากับแรงดันไฟฟ้าขาออกผ่านฟังก์ชันการกระตุ้นซิกมอยด์

การประเมินฟังก์ชันพลังงาน

$$ E_f = \ frac {1} {2} \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ sum _ {\ substack {j = 1 \\ j \ ne i}} ^ n y_i y_j w_ {ij} - \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n x_i y_i + \ frac {1} {\ lambda} \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ sum _ {\ substack {j = 1 \\ j \ ne i}} ^ n w_ {ij} g_ {ri} \ int_ {0} ^ {y_i} a ^ {- 1} (y) dy $$

ที่นี่ λ คือพารามิเตอร์กำไรและ gri การนำไฟฟ้าเข้า

สิ่งเหล่านี้เป็นกระบวนการเรียนรู้แบบสุ่มที่มีโครงสร้างเกิดขึ้นซ้ำและเป็นพื้นฐานของเทคนิคการเพิ่มประสิทธิภาพขั้นต้นที่ใช้ใน ANN Boltzmann Machine ถูกคิดค้นโดย Geoffrey Hinton และ Terry Sejnowski ในปี 1985 ความชัดเจนมากขึ้นสามารถสังเกตได้จากคำพูดของ Hinton เกี่ยวกับ Boltzmann Machine

“ คุณสมบัติที่น่าแปลกใจของเครือข่ายนี้คือใช้เฉพาะข้อมูลที่มีอยู่ในท้องถิ่นเท่านั้น การเปลี่ยนแปลงของน้ำหนักขึ้นอยู่กับพฤติกรรมของทั้งสองหน่วยที่เชื่อมต่อกันแม้ว่าการเปลี่ยนแปลงจะเพิ่มประสิทธิภาพการวัดระดับโลกก็ตาม” - Ackley, Hinton 1985

ประเด็นสำคัญบางประการเกี่ยวกับเครื่อง Boltzmann -

  • พวกเขาใช้โครงสร้างที่เกิดซ้ำ

  • ประกอบด้วยเซลล์ประสาทสุ่มซึ่งมีหนึ่งในสองสถานะที่เป็นไปได้คือ 1 หรือ 0

  • เซลล์ประสาทบางส่วนในนี้ปรับตัวได้ (สถานะอิสระ) และบางส่วนถูกยึด (สถานะแช่แข็ง)

  • หากเราใช้การอบแบบจำลองบนเครือข่าย Hopfield แบบแยกส่วนมันก็จะกลายเป็น Boltzmann Machine

วัตถุประสงค์ของเครื่อง Boltzmann

วัตถุประสงค์หลักของ Boltzmann Machine คือการเพิ่มประสิทธิภาพการแก้ปัญหา เป็นผลงานของ Boltzmann Machine ในการปรับน้ำหนักและปริมาณที่เกี่ยวข้องกับปัญหานั้นให้เหมาะสม

สถาปัตยกรรม

แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของเครื่อง Boltzmann เห็นได้ชัดจากแผนภาพว่าเป็นอาร์เรย์สองมิติของหน่วย ที่นี่น้ำหนักเกี่ยวกับการเชื่อมต่อระหว่างหน่วยคือ–p ที่ไหน p > 0. น้ำหนักของการเชื่อมต่อด้วยตนเองได้รับจากb ที่ไหน b > 0.

อัลกอริทึมการฝึกอบรม

อย่างที่เราทราบกันดีว่าเครื่อง Boltzmann มีน้ำหนักคงที่ดังนั้นจึงไม่มีอัลกอริทึมการฝึกอบรมเนื่องจากเราไม่จำเป็นต้องอัปเดตน้ำหนักในเครือข่าย อย่างไรก็ตามในการทดสอบเครือข่ายเราต้องตั้งค่าน้ำหนักและค้นหาฟังก์ชันฉันทามติ (CF)

เครื่อง Boltzmann มีชุดหน่วย Ui และ Uj และมีการเชื่อมต่อแบบสองทิศทาง

  • เรากำลังพิจารณาน้ำหนักคงที่พูด wij.

  • wij ≠ 0 ถ้า Ui และ Uj มีการเชื่อมต่อ

  • นอกจากนี้ยังมีความสมมาตรในการเชื่อมต่อโครงข่ายแบบถ่วงน้ำหนักเช่น wij = wji.

  • wii นอกจากนี้ยังมีอยู่เช่นจะมีการเชื่อมต่อระหว่างหน่วย

  • สำหรับยูนิตใด ๆ Uiสถานะของมัน ui จะเป็น 1 หรือ 0

วัตถุประสงค์หลักของ Boltzmann Machine คือการเพิ่ม Consensus Function (CF) ให้มากที่สุดซึ่งสามารถกำหนดได้จากความสัมพันธ์ต่อไปนี้

$$ CF \: = \: \ displaystyle \ sum \ LIMIT_ {i} \ displaystyle \ sum \ LIMIT_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$

ตอนนี้เมื่อสถานะเปลี่ยนจาก 1 เป็น 0 หรือจาก 0 เป็น 1 การเปลี่ยนแปลงฉันทามติสามารถกำหนดได้โดยความสัมพันธ์ต่อไปนี้ -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ LIMIT_ {j \ neq i} u_ {i} w_ { ij}) $$

ที่นี่ ui คือสถานะปัจจุบันของ Ui.

ความแปรผันของค่าสัมประสิทธิ์ (1 - 2ui) กำหนดโดยความสัมพันธ์ต่อไปนี้ -

$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: is \: current \: off \\ - 1, & U_ {i } \: is \: ปัจจุบัน \: เมื่อ \ end {cases} $$

โดยทั่วไปหน่วย Uiไม่เปลี่ยนสถานะ แต่ถ้าเป็นเช่นนั้นข้อมูลจะอยู่ในพื้นที่ของหน่วย ด้วยการเปลี่ยนแปลงดังกล่าวก็จะมีฉันทามติของเครือข่ายเพิ่มขึ้นด้วย

ความน่าจะเป็นของเครือข่ายที่จะยอมรับการเปลี่ยนแปลงในสถานะของหน่วยจะได้รับจากความสัมพันธ์ต่อไปนี้ -

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

ที่นี่ Tเป็นพารามิเตอร์ควบคุม มันจะลดลงเมื่อ CF ถึงค่าสูงสุด

อัลกอริทึมการทดสอบ

Step 1 - เริ่มต้นสิ่งต่อไปนี้เพื่อเริ่มการฝึกอบรม -

  • น้ำหนักที่แสดงถึงข้อ จำกัด ของปัญหา
  • พารามิเตอร์ควบคุม T

Step 2 - ทำตามขั้นตอนที่ 3-8 ต่อเมื่อเงื่อนไขการหยุดไม่เป็นจริง

Step 3 - ทำตามขั้นตอนที่ 4-7

Step 4 - สมมติว่าสถานะใดสถานะหนึ่งได้เปลี่ยนน้ำหนักและเลือกจำนวนเต็ม I, J เป็นค่าสุ่มระหว่าง 1 และ n.

Step 5 - คำนวณการเปลี่ยนแปลงของฉันทามติดังนี้ -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ LIMIT_ {j \ neq i} u_ {i} w_ { ij}) $$

Step 6 - คำนวณความน่าจะเป็นที่เครือข่ายนี้จะยอมรับการเปลี่ยนแปลงสถานะ

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Step 7 - ยอมรับหรือปฏิเสธการเปลี่ยนแปลงนี้ดังนี้ -

Case I - ถ้า R < AFยอมรับการเปลี่ยนแปลง

Case II - ถ้า R ≥ AFปฏิเสธการเปลี่ยนแปลง

ที่นี่ R คือตัวเลขสุ่มระหว่าง 0 ถึง 1

Step 8 - ลดพารามิเตอร์ควบคุม (อุณหภูมิ) ดังนี้ -

T(new) = ⁡0.95T(old)

Step 9 - ทดสอบเงื่อนไขการหยุดซึ่งอาจเป็นดังนี้ -

  • อุณหภูมิถึงค่าที่กำหนด
  • ไม่มีการเปลี่ยนแปลงสถานะสำหรับการทำซ้ำตามจำนวนที่ระบุ

Brain-State-in-a-Box (BSB) neural network เป็นเครือข่ายประสาทเทียมแบบ nonlinear auto-Associative และสามารถขยายไปสู่การเชื่อมโยงแบบ hetero ที่มีสองเลเยอร์ขึ้นไป นอกจากนี้ยังคล้ายกับเครือข่าย Hopfield เสนอโดย JA Anderson, JW Silverstein, SA Ritz และ RS Jones ในปีพ. ศ. 2520

ประเด็นสำคัญที่ต้องจำเกี่ยวกับ BSB Network -

  • เป็นเครือข่ายที่เชื่อมต่อเต็มรูปแบบโดยมีจำนวนโหนดสูงสุดขึ้นอยู่กับขนาด n ของพื้นที่ป้อนข้อมูล

  • เซลล์ประสาททั้งหมดได้รับการอัปเดตพร้อมกัน

  • เซลล์ประสาทรับค่าระหว่าง -1 ถึง +1

สูตรทางคณิตศาสตร์

ฟังก์ชันโหนดที่ใช้ในเครือข่าย BSB เป็นฟังก์ชันทางลาดซึ่งสามารถกำหนดได้ดังนี้ -

$$ f (net) \: = \: min (1, \: max (-1, \: net)) $$

ฟังก์ชันทางลาดนี้มีขอบเขตและต่อเนื่อง

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

$$ x_ {t} (t \: + \: 1) \: = \: f \ left (\ begin {array} {c} \ displaystyle \ sum \ LIMIT_ {j = 1} ^ n w_ {i, j } x_ {j} (t) \ end {array} \ right) $$

ที่นี่ xi(t) คือสถานะของไฟล์ ith โหนดในเวลา t.

น้ำหนักจาก ith โหนดถึง jth โหนดสามารถวัดได้ด้วยความสัมพันธ์ต่อไปนี้ -

$$ w_ {ij} \: = \: \ frac {1} {P} \ displaystyle \ sum \ LIMIT_ {p = 1} ^ P (v_ {p, i} \: v_ {p, j}) $$

ที่นี่ P คือจำนวนรูปแบบการฝึกอบรมซึ่งเป็นสองขั้ว

การเพิ่มประสิทธิภาพเป็นการดำเนินการเพื่อให้บางสิ่งบางอย่างเช่นการออกแบบสถานการณ์ทรัพยากรและระบบมีประสิทธิภาพมากที่สุด การใช้ความคล้ายคลึงกันระหว่างฟังก์ชันต้นทุนและฟังก์ชันพลังงานเราสามารถใช้เซลล์ประสาทที่เชื่อมต่อกันอย่างมากเพื่อแก้ปัญหาการเพิ่มประสิทธิภาพ เครือข่ายประสาทชนิดดังกล่าวคือเครือข่าย Hopfield ซึ่งประกอบด้วยชั้นเดียวที่มีเซลล์ประสาทที่เกิดซ้ำที่เชื่อมต่อกันอย่างสมบูรณ์อย่างน้อยหนึ่งเซลล์ สามารถใช้เพื่อเพิ่มประสิทธิภาพ

สิ่งที่ต้องจำขณะใช้เครือข่าย Hopfield เพื่อการเพิ่มประสิทธิภาพ -

  • ฟังก์ชันพลังงานต้องต่ำสุดของเครือข่าย

  • จะพบวิธีแก้ปัญหาที่น่าพอใจแทนที่จะเลือกรูปแบบที่จัดเก็บไว้

  • คุณภาพของโซลูชันที่พบโดยเครือข่าย Hopfield นั้นขึ้นอยู่กับสถานะเริ่มต้นของเครือข่ายอย่างมีนัยสำคัญ

ปัญหาพนักงานขายในการเดินทาง

การค้นหาเส้นทางที่สั้นที่สุดที่พนักงานขายเดินทางเป็นหนึ่งในปัญหาด้านการคำนวณซึ่งสามารถปรับให้เหมาะสมได้โดยใช้เครือข่ายประสาทเทียม Hopfield

แนวคิดพื้นฐานของ TSP

Travelling Salesman Problem (TSP) เป็นปัญหาการเพิ่มประสิทธิภาพแบบคลาสสิกที่พนักงานขายต้องเดินทาง nเมืองที่เชื่อมต่อกันโดยรักษาค่าใช้จ่ายตลอดจนระยะทางที่เดินทางต่ำสุด ตัวอย่างเช่นพนักงานขายต้องเดินทาง 4 เมือง A, B, C, D และเป้าหมายคือค้นหาทัวร์วงกลมที่สั้นที่สุด ABC – D เพื่อลดค่าใช้จ่ายให้น้อยที่สุดซึ่งรวมถึงค่าใช้จ่ายในการเดินทางจาก เมืองสุดท้าย D ไปยังเมืองแรก A

การเป็นตัวแทนเมทริกซ์

จริงๆแล้ว TSP แต่ละครั้งของ n-city สามารถแสดงเป็นไฟล์ n × n เมทริกซ์ที่มี ith แถวอธิบายไฟล์ ithที่ตั้งของเมือง. เมทริกซ์นี้Mสำหรับ 4 เมือง A, B, C, D สามารถแสดงได้ดังนี้ -

$$ M = \ begin {bmatrix} A: & 1 & 0 & 0 & 0 \\ B: & 0 & 1 & 0 & 0 \\ C: & 0 & 0 & 1 & 0 \\ D: & 0 & 0 & 0 & 1 \ end {bmatrix} $$

โซลูชันโดย Hopfield Network

ในขณะที่พิจารณาโซลูชันของ TSP โดยเครือข่าย Hopfield นี้ทุกโหนดในเครือข่ายจะสอดคล้องกับองค์ประกอบหนึ่งในเมทริกซ์

การคำนวณฟังก์ชันพลังงาน

เพื่อให้เป็นโซลูชันที่เหมาะสมที่สุดฟังก์ชันพลังงานจะต้องมีค่าต่ำสุด บนพื้นฐานของข้อ จำกัด ต่อไปนี้เราสามารถคำนวณฟังก์ชันพลังงานได้ดังนี้ -

ข้อ จำกัด - I

ข้อ จำกัด ประการแรกบนพื้นฐานที่เราจะคำนวณฟังก์ชันพลังงานคือองค์ประกอบหนึ่งจะต้องเท่ากับ 1 ในแต่ละแถวของเมทริกซ์ M และองค์ประกอบอื่น ๆ ในแต่ละแถวต้องเท่ากับ 0เนื่องจากแต่ละเมืองสามารถเกิดขึ้นได้เพียงตำแหน่งเดียวใน TSP tour ข้อ จำกัด นี้สามารถเขียนทางคณิตศาสตร์ได้ดังนี้ -

$$ \ displaystyle \ sum \ LIMIT_ {j = 1} ^ n M_ {x, j} \: = \: 1 \: สำหรับ \: x \: \ in \: \ lbrace1, ... , n \ rbrace $ $

ตอนนี้ฟังก์ชันพลังงานที่จะย่อเล็กสุดตามข้อ จำกัด ข้างต้นจะมีคำที่เป็นสัดส่วนกับ -

$$ \ displaystyle \ sum \ LIMIT_ {x = 1} ^ n \ left (\ begin {array} {c} 1 \: - \: \ displaystyle \ sum \ LIMIT_ {j = 1} ^ n M_ {x, j } \ end {array} \ right) ^ 2 $$

ข้อ จำกัด -II

ดังที่เราทราบใน TSP หนึ่งเมืองสามารถเกิดขึ้นได้ในตำแหน่งใดก็ได้ในทัวร์ด้วยเหตุนี้ในแต่ละคอลัมน์ของเมทริกซ์ Mองค์ประกอบหนึ่งต้องเท่ากับ 1 และองค์ประกอบอื่น ๆ ต้องเท่ากับ 0 ข้อ จำกัด นี้สามารถเขียนทางคณิตศาสตร์ได้ดังนี้ -

$$ \ displaystyle \ sum \ LIMIT_ {x = 1} ^ n M_ {x, j} \: = \: 1 \: สำหรับ \: j \: \ in \: \ lbrace1, ... , n \ rbrace $ $

ตอนนี้ฟังก์ชันพลังงานที่จะย่อเล็กสุดตามข้อ จำกัด ข้างต้นจะมีคำที่เป็นสัดส่วนกับ -

$$ \ displaystyle \ sum \ LIMIT_ {j = 1} ^ n \ left (\ begin {array} {c} 1 \: - \: \ displaystyle \ sum \ LIMIT_ {x = 1} ^ n M_ {x, j } \ end {array} \ right) ^ 2 $$

การคำนวณฟังก์ชันต้นทุน

สมมติว่าเมทริกซ์กำลังสองของ (n × n) แสดงโดย C หมายถึงเมทริกซ์ต้นทุนของ TSP สำหรับ n เมืองที่ n > 0. ต่อไปนี้เป็นพารามิเตอร์บางส่วนในขณะคำนวณฟังก์ชันต้นทุน -

  • Cx, y - องค์ประกอบของเมทริกซ์ต้นทุนแสดงถึงต้นทุนการเดินทางจากเมือง x ถึง y.

  • ความคลาดเคลื่อนขององค์ประกอบของ A และ B สามารถแสดงได้ด้วยความสัมพันธ์ต่อไปนี้ -

$$ M_ {x, i} \: = \: 1 \: \: and \: \: M_ {y, i \ pm 1} \: = \: 1 $$

ดังที่เราทราบใน Matrix ค่าเอาต์พุตของแต่ละโหนดอาจเป็น 0 หรือ 1 ดังนั้นสำหรับทุกคู่ของเมือง A, B เราสามารถเพิ่มเงื่อนไขต่อไปนี้ในฟังก์ชันพลังงาน -

$$ \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n C_ {x, y} M_ {x, i} (M_ {y, i + 1} \: + \: M_ {y, i-1}) $$

บนพื้นฐานของฟังก์ชันต้นทุนและค่าข้อ จำกัด ข้างต้นฟังก์ชันพลังงานขั้นสุดท้าย E ได้ดังนี้ -

$$ E \: = \: \ frac {1} {2} \ displaystyle \ sum \ LIMIT_ {i = 1} ^ n \ displaystyle \ sum \ LIMIT_ {x} \ displaystyle \ sum \ LIMIT_ {y \ neq x} C_ {x, y} M_ {x, i} (M_ {y, i + 1} \: + \: M_ {y, i-1}) \: + $$

$$ \: \ begin {bmatrix} \ gamma_ {1} \ displaystyle \ sum \ LIMIT_ {x} \ left (\ begin {array} {c} 1 \: - \: \ displaystyle \ sum \ LIMIT_ {i} M_ {x, i} \ end {array} \ right) ^ 2 \: + \: \ gamma_ {2} \ displaystyle \ sum \ LIMIT_ {i} \ left (\ begin {array} {c} 1 \: - \ : \ displaystyle \ sum \ LIMIT_ {x} M_ {x, i} \ end {array} \ right) ^ 2 \ end {bmatrix} $$

ที่นี่ γ1 และ γ2 คือค่าคงที่ในการชั่งน้ำหนักสองค่า

เทคนิคการไล่ระดับสีแบบวนซ้ำ

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

แนวคิดการทำงานหลัก

เราสามารถเข้าใจแนวคิดการทำงานหลักของการไล่ระดับสีด้วยความช่วยเหลือของขั้นตอนต่อไปนี้ -

  • ขั้นแรกเริ่มต้นด้วยการเดาทางแก้ปัญหาเบื้องต้น

  • จากนั้นใช้การไล่ระดับสีของฟังก์ชันที่จุดนั้น

  • จากนั้นให้ทำซ้ำขั้นตอนโดยก้าวโซลูชันไปในทิศทางลบของการไล่ระดับสี

โดยทำตามขั้นตอนข้างต้นในที่สุดอัลกอริทึมจะมาบรรจบกันโดยที่การไล่ระดับสีเป็นศูนย์

แนวคิดทางคณิตศาสตร์

สมมติว่าเรามีฟังก์ชัน f(x)และเรากำลังพยายามหาค่าต่ำสุดของฟังก์ชันนี้ ต่อไปนี้เป็นขั้นตอนในการค้นหาขั้นต่ำของf(x).

  • ขั้นแรกให้ค่าเริ่มต้น $ x_ {0} \: สำหรับ \: x $

  • ตอนนี้ใช้การไล่ระดับสี $ \ nabla f $ ⁡ของฟังก์ชันโดยสัญชาตญาณว่าการไล่ระดับสีจะให้ความชันของเส้นโค้งที่ x และทิศทางจะชี้ไปที่การเพิ่มขึ้นของฟังก์ชันเพื่อหาทิศทางที่ดีที่สุดในการย่อขนาด

  • ตอนนี้เปลี่ยน x ดังนี้ -

    $$ x_ {n \: + \: 1} \: = \: x_ {n} \: - \: \ theta \ nabla f (x_ {n}) $$

ที่นี่ θ > 0 คืออัตราการฝึก (ขนาดขั้นตอน) ที่บังคับให้อัลกอริทึมต้องกระโดดเล็กน้อย

การประมาณขนาดขั้นตอน

ขนาดขั้นตอนที่ไม่ถูกต้องจริงๆ θอาจไปไม่ถึงการบรรจบกันดังนั้นการเลือกอย่างรอบคอบจึงมีความสำคัญมาก ต้องจำประเด็นต่อไปนี้ในขณะที่เลือกขนาดขั้นตอน

  • อย่าเลือกขนาดของขั้นตอนที่ใหญ่เกินไปมิฉะนั้นจะมีผลกระทบในทางลบกล่าวคือมันจะแตกต่างกันมากกว่าที่จะมาบรรจบกัน

  • อย่าเลือกขนาดขั้นตอนที่เล็กเกินไปมิฉะนั้นจะใช้เวลามากในการบรรจบกัน

ตัวเลือกบางอย่างเกี่ยวกับการเลือกขนาดขั้นตอน -

  • ทางเลือกหนึ่งคือเลือกขนาดขั้นตอนคงที่

  • อีกทางเลือกหนึ่งคือการเลือกขนาดขั้นตอนอื่นสำหรับการทำซ้ำทุกครั้ง

การหลอมจำลอง

แนวคิดพื้นฐานของ Simulated Annealing (SA) ได้รับแรงบันดาลใจจากการหลอมในของแข็ง ในกระบวนการหลอมโลหะหากเราให้ความร้อนโลหะเหนือจุดหลอมเหลวและทำให้โลหะเย็นลงคุณสมบัติของโครงสร้างจะขึ้นอยู่กับอัตราการหล่อเย็น เรายังสามารถพูดได้ว่า SA จำลองกระบวนการหลอมโลหะ

ใช้ใน ANN

SA เป็นวิธีการคำนวณแบบสุ่มซึ่งได้รับแรงบันดาลใจจากการเปรียบเทียบการหลอมเพื่อประมาณการเพิ่มประสิทธิภาพทั่วโลกของฟังก์ชันที่กำหนด เราสามารถใช้ SA เพื่อฝึกเครือข่ายประสาทฟีดไปข้างหน้า

อัลกอริทึม

Step 1 - สร้างโซลูชันแบบสุ่ม

Step 2 - คำนวณต้นทุนโดยใช้ฟังก์ชันต้นทุน

Step 3 - สร้างโซลูชันใกล้เคียงแบบสุ่ม

Step 4 - คำนวณต้นทุนโซลูชันใหม่โดยใช้ฟังก์ชันต้นทุนเดียวกัน

Step 5 - เปรียบเทียบต้นทุนของโซลูชันใหม่กับโซลูชันเก่าดังนี้ -

ถ้า CostNew Solution < CostOld Solution จากนั้นย้ายไปที่โซลูชันใหม่

Step 6 - ทดสอบเงื่อนไขการหยุดซึ่งอาจเป็นจำนวนครั้งสูงสุดของการทำซ้ำที่ถึงหรือได้รับโซลูชันที่ยอมรับได้

ธรรมชาติเป็นแหล่งที่มาของแรงบันดาลใจที่ดีสำหรับมวลมนุษยชาติ Genetic Algorithms (GAs) เป็นอัลกอริธึมที่ใช้การค้นหาตามแนวคิดของการคัดเลือกโดยธรรมชาติและพันธุศาสตร์ GAs เป็นชุดย่อยของสาขาการคำนวณที่ใหญ่กว่าที่เรียกว่าEvolutionary Computation.

GAs ได้รับการพัฒนาโดย John Holland และนักศึกษาและเพื่อนร่วมงานของเขาที่ University of Michigan โดยเฉพาะอย่างยิ่ง David E.Goldberg และได้รับการทดลองในปัญหาการเพิ่มประสิทธิภาพต่างๆพร้อมกับความสำเร็จในระดับสูง

ใน GAs เรามีกลุ่มหรือกลุ่มของวิธีแก้ปัญหาที่เป็นไปได้สำหรับปัญหาที่กำหนด จากนั้นวิธีการแก้ปัญหาเหล่านี้จะผ่านการรวมตัวกันใหม่และการกลายพันธุ์ (เช่นเดียวกับในพันธุศาสตร์ตามธรรมชาติ) ผลิตลูกใหม่และกระบวนการนี้ซ้ำแล้วซ้ำอีกในชั่วอายุต่างๆ แต่ละคน (หรือวิธีการแก้ปัญหาของผู้สมัคร) จะได้รับการกำหนดค่าสมรรถภาพ (ตามค่าฟังก์ชันวัตถุประสงค์) และบุคคลที่มีความเหมาะสมจะได้รับโอกาสที่สูงกว่าในการผสมพันธุ์และให้ผลตอบแทนแก่บุคคลที่ "ช่างฟิต" มากขึ้น ซึ่งสอดคล้องกับทฤษฎีดาร์วินเรื่อง“ Survival of the Fittest”

ด้วยวิธีนี้เราจะ“ พัฒนา” บุคคลหรือแนวทางแก้ไขที่ดีขึ้นเรื่อย ๆ มาหลายชั่วอายุคนจนกว่าจะถึงเกณฑ์ที่หยุดชะงัก

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

ข้อดีของ GAs

GAs มีข้อดีหลายประการซึ่งทำให้พวกเขาได้รับความนิยมอย่างกว้างขวาง ซึ่ง ได้แก่ -

  • ไม่ต้องการข้อมูลอนุพันธ์ใด ๆ (ซึ่งอาจไม่มีให้สำหรับปัญหาในโลกแห่งความเป็นจริง)

  • เร็วขึ้นและมีประสิทธิภาพมากขึ้นเมื่อเทียบกับวิธีการแบบเดิม

  • มีความสามารถแบบขนานที่ดีมาก

  • ปรับฟังก์ชั่นทั้งแบบต่อเนื่องและไม่ต่อเนื่องตลอดจนปัญหาหลายวัตถุประสงค์

  • แสดงรายการโซลูชันที่ "ดี" ไม่ใช่แค่โซลูชันเดียว

  • มักจะได้รับคำตอบสำหรับปัญหาซึ่งจะดีขึ้นเมื่อเวลาผ่านไป

  • มีประโยชน์เมื่อพื้นที่ค้นหามีขนาดใหญ่มากและมีพารามิเตอร์จำนวนมากที่เกี่ยวข้อง

ข้อ จำกัด ของ GAs

เช่นเดียวกับเทคนิคอื่น ๆ GAs ก็มีข้อ จำกัด บางประการเช่นกัน ซึ่ง ได้แก่ -

  • GAs ไม่เหมาะกับทุกปัญหาโดยเฉพาะปัญหาที่เรียบง่ายและมีข้อมูลอนุพันธ์

  • ค่าฟิตเนสจะคำนวณซ้ำ ๆ ซึ่งอาจมีราคาแพงในการคำนวณสำหรับปัญหาบางอย่าง

  • การสุ่มตัวอย่างจะไม่มีการรับประกันเกี่ยวกับความเหมาะสมหรือคุณภาพของโซลูชัน

  • หากไม่ได้ติดตั้งอย่างถูกต้อง GA อาจไม่รวมเข้ากับโซลูชันที่เหมาะสมที่สุด

GA - แรงจูงใจ

อัลกอริทึมทางพันธุกรรมมีความสามารถในการนำเสนอโซลูชันที่ "ดีเพียงพอ" "เร็วพอ" สิ่งนี้ทำให้ Gas น่าสนใจสำหรับใช้ในการแก้ปัญหาการเพิ่มประสิทธิภาพ เหตุผลที่ GAs จำเป็นมีดังต่อไปนี้ -

การแก้ปัญหาที่ยาก

ในวิทยาการคอมพิวเตอร์มีปัญหาชุดใหญ่ซึ่ง ได้แก่ NP-Hard. สิ่งนี้หมายความว่าโดยพื้นฐานแล้วแม้แต่ระบบคอมพิวเตอร์ที่ทรงพลังที่สุดก็ใช้เวลานานมาก (เป็นปี!) ในการแก้ปัญหานั้น ในสถานการณ์เช่นนี้ GAs พิสูจน์แล้วว่าเป็นเครื่องมือที่มีประสิทธิภาพในการจัดหาusable near-optimal solutions ในช่วงเวลาสั้น ๆ

ความล้มเหลวของวิธีการไล่ระดับสี

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

รับทางออกที่ดีอย่างรวดเร็ว

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

วิธีใช้ GA สำหรับปัญหาการเพิ่มประสิทธิภาพ

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

ขั้นตอนของกลไก GA สำหรับกระบวนการเพิ่มประสิทธิภาพ

ต่อไปนี้เป็นขั้นตอนของกลไก GA เมื่อใช้เพื่อเพิ่มประสิทธิภาพของปัญหา

  • สร้างประชากรเริ่มต้นแบบสุ่ม

  • เลือกโซลูชันเริ่มต้นที่มีค่าสมรรถภาพที่ดีที่สุด

  • รวมโซลูชันที่เลือกใหม่โดยใช้ตัวดำเนินการการกลายพันธุ์และครอสโอเวอร์

  • แทรกลูกหลานเข้าไปในประชากร

  • ตอนนี้หากตรงตามเงื่อนไขการหยุดแล้วให้ส่งคืนโซลูชันที่มีค่าสมรรถภาพที่ดีที่สุด จากนั้นไปที่ขั้นตอนที่ 2

ก่อนที่จะศึกษาสาขาที่ ANN ถูกนำไปใช้อย่างกว้างขวางเราจำเป็นต้องเข้าใจว่าเหตุใด ANN จึงเป็นตัวเลือกที่ต้องการของแอปพลิเคชัน

ทำไมต้องใช้โครงข่ายประสาทเทียม

เราจำเป็นต้องเข้าใจคำตอบของคำถามข้างต้นด้วยตัวอย่างของมนุษย์ ตอนเป็นเด็กเราเคยเรียนรู้สิ่งต่างๆโดยได้รับความช่วยเหลือจากผู้ปกครองซึ่งรวมถึงพ่อแม่หรือครูของเราด้วย หลังจากนั้นด้วยการเรียนรู้ด้วยตนเองหรือฝึกฝนทำให้เราเรียนรู้ไปตลอดชีวิต นักวิทยาศาสตร์และนักวิจัยยังทำให้เครื่องจักรมีความชาญฉลาดเช่นเดียวกับมนุษย์และ ANN ก็มีบทบาทสำคัญเช่นเดียวกันเนื่องจากเหตุผลดังต่อไปนี้ -

  • ด้วยความช่วยเหลือของโครงข่ายประสาทเทียมเราสามารถค้นหาวิธีแก้ปัญหาดังกล่าวซึ่งวิธีการอัลกอริทึมมีราคาแพงหรือไม่มีอยู่จริง

  • โครงข่ายประสาทเทียมสามารถเรียนรู้ได้ด้วยเหตุนี้เราจึงไม่จำเป็นต้องตั้งโปรแกรมในขอบเขตมากนัก

  • โครงข่ายประสาทมีความแม่นยำและความเร็วที่รวดเร็วกว่าความเร็วทั่วไปอย่างมาก

พื้นที่การใช้งาน

ต่อไปนี้เป็นพื้นที่บางส่วนที่มีการใช้ ANN แสดงให้เห็นว่า ANN มีแนวทางสหวิทยาการในการพัฒนาและการประยุกต์ใช้

การรู้จำเสียง

คำพูดมีบทบาทสำคัญในปฏิสัมพันธ์ระหว่างมนุษย์กับมนุษย์ ดังนั้นจึงเป็นเรื่องธรรมดาที่ผู้คนจะคาดหวังการเชื่อมต่อด้วยเสียงกับคอมพิวเตอร์ ในยุคปัจจุบันสำหรับการสื่อสารกับเครื่องจักรมนุษย์ยังคงต้องการภาษาที่ซับซ้อนซึ่งยากต่อการเรียนรู้และใช้งาน เพื่อลดอุปสรรคในการสื่อสารนี้วิธีแก้ปัญหาง่ายๆคือการสื่อสารด้วยภาษาพูดที่เป็นไปได้เพื่อให้เครื่องเข้าใจ

มีความก้าวหน้าอย่างมากในสาขานี้อย่างไรก็ตามระบบประเภทนี้ยังคงประสบปัญหาเกี่ยวกับคำศัพท์หรือไวยากรณ์ที่ จำกัด พร้อมกับปัญหาในการฝึกอบรมระบบใหม่สำหรับผู้พูดที่แตกต่างกันในเงื่อนไขที่แตกต่างกัน ANN มีบทบาทสำคัญในด้านนี้ ANN ต่อไปนี้ถูกใช้เพื่อการรู้จำเสียง -

  • เครือข่ายหลายชั้น

  • เครือข่ายหลายชั้นที่มีการเชื่อมต่อซ้ำ

  • แผนผังคุณลักษณะการจัดระเบียบตัวเองของ Kohonen

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

การจดจำตัวละคร

เป็นปัญหาที่น่าสนใจซึ่งอยู่ภายใต้พื้นที่ทั่วไปของการจดจำรูปแบบ โครงข่ายประสาทเทียมจำนวนมากได้รับการพัฒนาเพื่อการจดจำอักขระที่เขียนด้วยลายมือโดยอัตโนมัติไม่ว่าจะเป็นตัวอักษรหรือตัวเลข ต่อไปนี้เป็น ANN บางส่วนที่ใช้ในการจดจำอักขระ -

  • โครงข่ายประสาทเทียมหลายชั้นเช่นโครงข่ายประสาทแบบ Backpropagation
  • Neocognitron

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

ใบสมัครยืนยันลายเซ็น

ลายเซ็นเป็นวิธีที่มีประโยชน์ที่สุดวิธีหนึ่งในการอนุญาตและรับรองความถูกต้องของบุคคลในธุรกรรมทางกฎหมาย เทคนิคการตรวจสอบลายเซ็นเป็นเทคนิคที่ไม่ใช้การมองเห็น

สำหรับแอปพลิเคชันนี้แนวทางแรกคือการแยกคุณลักษณะหรือชุดคุณลักษณะทางเรขาคณิตที่เป็นตัวแทนของลายเซ็น ด้วยชุดคุณลักษณะเหล่านี้เราต้องฝึกเครือข่ายประสาทโดยใช้อัลกอริทึมเครือข่ายประสาทเทียมที่มีประสิทธิภาพ โครงข่ายประสาทเทียมที่ผ่านการฝึกอบรมนี้จะจำแนกลายเซ็นว่าเป็นของแท้หรือปลอมแปลงภายใต้ขั้นตอนการตรวจสอบ

การจดจำใบหน้ามนุษย์

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

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

  • โครงข่ายประสาทเทียมหลายชั้นที่เชื่อมต่ออย่างเต็มที่ได้รับการฝึกฝนด้วยความช่วยเหลือของอัลกอริธึมการแพร่กระจายกลับ

  • สำหรับการลดขนาดจะใช้การวิเคราะห์องค์ประกอบหลัก (PCA)