ฟังก์ชั่นการเปิดใช้งานของโครงข่ายประสาทเทียมในค. ขั้นตอนต่าง ๆ ของการฝึกหนึ่งโมเดล โครงสร้างโครงข่ายประสาทเทียมแบบ Convolutional

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

เลขที่ ชื่อ สูตร ขอบเขตการใช้งาน
เชิงเส้น (-∞; +∞)
กึ่งเชิงเส้น (0; +∞)
โลจิสติก (ซิกมอยด์) (0; 1)
แทนเจนต์ไฮเปอร์โบลิก (-1; 1)
เอ็กซ์โปเนนเชียล (0; +∞)
เกณฑ์ (-1; 1)
เป็นเส้นตรงด้วยความอิ่มตัว (-1; 1)

การจำแนกประเภทของโครงข่ายประสาทเทียม

การจำแนกประเภทของโครงข่ายประสาทเทียมตามประเภทของโทโพโลยี (ตามประเภทของการแพร่กระจายสัญญาณระหว่างการทำงานของโครงข่ายประสาทเทียม):

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

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

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

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

การจำแนกประเภทของโครงข่ายประสาทเทียมตามประเภทของการเชื่อมต่อ:

1. โครงข่ายประสาทเทียมที่เชื่อมต่ออย่างสมบูรณ์:

2. โครงข่ายประสาทเทียมที่มีการเชื่อมต่อแบบอนุกรม:

3. โครงสร้างคู่ที่หลวม:

a) สี่เหลี่ยม b) หกเหลี่ยม???



การจำแนกประเภทของโครงข่ายประสาทเทียมตามวิธีการแก้ไขปัญหา:

1. เครือข่ายที่สร้างขึ้น: ออกแบบมาสำหรับปัญหาที่เป็นทางการซึ่งมีอัลกอริธึมสำหรับการแก้ปัญหาเฉพาะที่กำหนดไว้อย่างชัดเจนบนพื้นฐานโครงข่ายประสาทเทียม

2. เครือข่ายที่มีเมทริกซ์การเชื่อมต่อที่สร้างขึ้น: ใช้สำหรับงานที่ยากต่อการจัดระบบ ตามกฎแล้วจะมีโครงสร้างเหมือนกันและแตกต่างกันเฉพาะในเมทริกซ์การเชื่อมต่อ (เครือข่าย Hopfield) ข้อดี: มีทัศนวิสัยในการทำงาน

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

4. เครือข่ายแบบรวม (แบบผสม): รวมคุณสมบัติของสองหรือสามประเภทเข้าด้วยกัน ตามกฎแล้ว เครือข่ายเป็นแบบหลายชั้น ซึ่งแต่ละชั้นจะแสดงด้วยโทโพโลยีที่แตกต่างกัน และได้รับการฝึกโดยใช้อัลกอริธึมเฉพาะ แพร่หลายมากที่สุดเนื่องจากให้โอกาสมากมายแก่นักพัฒนา

) เป็นส่วนหนึ่งของงานวิทยาศาสตร์ของฉันที่มหาวิทยาลัย ซึ่งฟังดูเหมือน: “ซอฟต์แวร์ที่ซับซ้อนสำหรับการตรวจจับใบหน้าในสตรีมวิดีโอโดยใช้โครงข่ายประสาทเทียมแบบม้วน” เป้าหมายของงานคือการปรับปรุงลักษณะความเร็วในกระบวนการตรวจจับใบหน้าในสตรีมวิดีโอ กล้องสมาร์ทโฟนถูกใช้เป็นสตรีมวิดีโอ PS เดสก์ท็อป (ภาษา Kotlin) ถูกเขียนขึ้นเพื่อสร้างและฝึกอบรมโครงข่ายประสาทเทียมแบบ convolutional รวมถึงแอปพลิเคชันมือถือสำหรับ Android (ภาษา Kotlin) ซึ่งใช้เครือข่ายที่ได้รับการฝึกอบรมและ "ลอง" เพื่อจดจำใบหน้าจากสตรีมวิดีโอของกล้อง ผลลัพธ์ที่ได้ออกมาค่อนข้างดี ใช้สำเนาโทโพโลยีที่ถูกต้องที่ฉันเสนอด้วยความเสี่ยงและอันตรายของคุณเอง (ฉันไม่แนะนำ)

ปัญหาทางทฤษฎี

  • กำหนดปัญหาที่จะแก้ไขโดยโครงข่ายประสาทเทียม (การจำแนก การทำนาย การดัดแปลง)
  • กำหนดอินพุต (ประเภท: รูปภาพ, เสียง, ขนาด: 100x100, 30x30, รูปแบบ: RGB, ระดับสีเทา) และข้อมูลเอาต์พุต (จำนวนคลาส)
  • กำหนดโทโพโลยีของเครือข่าย Convolutional (จำนวน Convolutional, Subsampled, เลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์, จำนวนแผนที่คุณลักษณะ, ขนาดเคอร์เนล, ฟังก์ชันการเปิดใช้งาน)

การแนะนำ

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

โครงข่ายประสาทเทียมแบบขดให้ความต้านทานบางส่วนต่อการเปลี่ยนแปลงขนาด การกระจัด การหมุน การเปลี่ยนแปลงมุม และการบิดเบือนอื่นๆ โครงข่ายประสาทเทียมแบบ Convolutional ผสมผสานแนวคิดทางสถาปัตยกรรมสามประการเข้าด้วยกันเพื่อให้เกิดความแปรปรวนต่อขนาด การหมุน การแปล และการบิดเบือนเชิงพื้นที่:

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

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

โครงสร้างโครงข่ายประสาทเทียมแบบ Convolutional

CNN ประกอบด้วยเลเยอร์ประเภทต่างๆ: เลเยอร์แบบ convolutional เลเยอร์การสุ่มตัวอย่าง และเลเยอร์ของโครงข่ายประสาทเทียม "ปกติ" - เพอร์เซปตรอน ตามรูปที่ 1


รูปที่ 1 - โทโพโลยีโครงข่ายประสาทเทียมแบบหมุนวน

เลเยอร์สองประเภทแรก (convolutional, subsampling) สลับกัน สร้างเวกเตอร์คุณลักษณะอินพุตสำหรับเพอร์เซปตรอนหลายชั้น

เครือข่าย Convolutional ได้ชื่อมาจากชื่อของการดำเนินการ - Convolution ซึ่งสาระสำคัญจะอธิบายเพิ่มเติม

เครือข่ายแบบหมุนวนเป็นจุดกึ่งกลางที่มีความสุขระหว่างเครือข่ายที่เป็นไปได้ทางชีวภาพและเพอร์เซปตรอนแบบหลายชั้นทั่วไป ทุกวันนี้ ผลลัพธ์ที่ดีที่สุดในการจดจำภาพนั้นมาจากความช่วยเหลือของพวกเขา โดยเฉลี่ยแล้ว ความแม่นยำในการจดจำของเครือข่ายดังกล่าวมีมากกว่า ANN ทั่วไปถึง 10-15% CNN เป็นเทคโนโลยีสำคัญของ Deep Learning

เหตุผลหลักที่ทำให้ SNA ประสบความสำเร็จคือแนวคิดเรื่องตุ้มน้ำหนักทั่วไป แม้จะมีขนาดใหญ่ แต่เครือข่ายเหล่านี้ก็มีพารามิเตอร์ที่กำหนดค่าได้จำนวนน้อยเมื่อเทียบกับนีโอโคกไนตรอนซึ่งเป็นบรรพบุรุษ CNN (Tiled Convolutional Neural Network) มีหลากหลายรูปแบบ ซึ่งคล้ายกับ neocognitron ในเครือข่ายดังกล่าว มีการปฏิเสธน้ำหนักที่เกี่ยวข้องบางส่วน แต่อัลกอริทึมการเรียนรู้ยังคงเหมือนเดิมและขึ้นอยู่กับการแพร่กระจายกลับของข้อผิดพลาด CNN สามารถทำงานได้อย่างรวดเร็วบนเครื่องซีเรียลและเรียนรู้ได้อย่างรวดเร็วโดยการทำกระบวนการ Convolution แบบขนานในแต่ละแผนที่เพียงอย่างเดียว รวมถึงการแยกส่วนเมื่อข้อผิดพลาดแพร่กระจายผ่านเครือข่าย

รูปด้านล่างแสดงภาพของการบิดและการสุ่มตัวอย่าง:

แบบจำลองเซลล์ประสาท


โทโพโลยีโครงข่ายประสาทเทียมแบบ Convolutional

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

ขั้นตอนต่อไปนี้สามารถแยกแยะได้ซึ่งมีอิทธิพลต่อการเลือกโทโพโลยี:

  • กำหนดปัญหาที่จะแก้ไขโดยโครงข่ายประสาทเทียม (การจำแนก การทำนาย การดัดแปลง)
  • กำหนดข้อจำกัดของปัญหาที่กำลังแก้ไข (ความเร็ว ความแม่นยำของคำตอบ)
  • กำหนดอินพุต (ประเภท: รูปภาพ, เสียง, ขนาด: 100x100, 30x30, รูปแบบ: RGB, ระดับสีเทา) และข้อมูลเอาต์พุต (จำนวนคลาส)
งานที่โครงข่ายประสาทเทียมของฉันแก้ไขได้คือการจำแนกรูปภาพ โดยเฉพาะใบหน้า ข้อจำกัดที่กำหนดบนเครือข่ายคือความเร็วในการตอบสนอง - ไม่เกิน 1 วินาทีและความแม่นยำในการจดจำอย่างน้อย 70% โทโพโลยีเครือข่ายทั่วไปตามรูปที่ 2


รูปที่ 2 - โทโพโลยีโครงข่ายประสาทเทียมแบบ Convolutional

เลเยอร์อินพุต

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

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

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

ชั้น Convolutional

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

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


รูปที่ 3 - การจัดระเบียบการเชื่อมต่อระหว่างแผนที่ของเลเยอร์ convolutional และเลเยอร์ก่อนหน้า

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

เคอร์เนลเป็นตัวกรองหรือหน้าต่างที่เลื่อนไปทั่วทั้งพื้นที่ของแผนที่ก่อนหน้าและค้นหาคุณสมบัติบางอย่างของวัตถุ ตัวอย่างเช่น หากเครือข่ายได้รับการฝึกฝนบนหลายใบหน้า หนึ่งในแกนกลางสามารถสร้างสัญญาณได้มากที่สุดในบริเวณตา ปาก คิ้ว หรือจมูกในระหว่างกระบวนการฝึก ในขณะที่อีกแกนหนึ่งสามารถตรวจจับคุณสมบัติอื่นๆ ได้ ขนาดแกนมักจะอยู่ในช่วงตั้งแต่ 3x3 ถึง 7x7 ถ้าขนาดของนิวเคลียสมีขนาดเล็ก ก็จะไม่สามารถเน้นคุณลักษณะใดๆ ได้ หากมีขนาดใหญ่เกินไป จำนวนการเชื่อมต่อระหว่างเซลล์ประสาทก็จะเพิ่มขึ้น นอกจากนี้ ขนาดเคอร์เนลยังถูกเลือกเพื่อให้ขนาดของแผนที่ของเลเยอร์ Convolutional เท่ากัน ซึ่งช่วยให้เราไม่สูญเสียข้อมูลเมื่อลดขนาดในเลเยอร์การสุ่มตัวอย่างย่อยที่อธิบายไว้ด้านล่าง

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

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

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


รูปที่ 4 - การดำเนินการ Convolution และการรับค่าของแผนที่ Convolution (ถูกต้อง)


การดำเนินการ Convolution และการรับค่าแผนที่ Convolution แกนกลางถูกเลื่อน แผนที่ใหม่มีขนาดเท่าเดิม (เหมือนเดิม)

นอกจากนี้ ขึ้นอยู่กับวิธีการประมวลผลขอบของเมทริกซ์ต้นฉบับ ผลลัพธ์อาจเล็กกว่ารูปภาพต้นฉบับ (ถูกต้อง) ขนาดเดียวกัน (เท่ากัน) หรือขนาดใหญ่กว่า (เต็ม) ตามรูปที่ 5


รูปที่ 5 - การบิดของเมทริกซ์ดั้งเดิมสามประเภท

ในรูปแบบที่เรียบง่าย สูตรสามารถอธิบายเลเยอร์นี้ได้:

ในกรณีนี้ เนื่องจากผลกระทบของขอบ ขนาดของเมทริกซ์ดั้งเดิมจึงลดลง สูตร:

ชั้นการสุ่มตัวอย่าง

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

โดยทั่วไปแล้ว ฟังก์ชันการเปิดใช้งาน RelU จะถูกนำไปใช้ในเลเยอร์การสุ่มตัวอย่าง การดำเนินการสุ่มตัวอย่าง (หรือ MaxPooling - การเลือกสูงสุด) ตามรูปที่ 6


รูปที่ 6 - การก่อตัวของแผนที่ใหม่ของเลเยอร์ตัวอย่างย่อยโดยอิงจากแผนที่ก่อนหน้าของเลเยอร์ convolutional การดำเนินการสุ่มตัวอย่าง (Max Pooling)

อย่างเป็นทางการ ชั้นสามารถอธิบายได้ด้วยสูตร:

เลเยอร์ที่เชื่อมต่อกันอย่างสมบูรณ์

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

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

เลเยอร์เอาท์พุต

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

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

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

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

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

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

กราฟของฟังก์ชันซิกมอยด์ดังแสดงด้านล่าง:

คุณสมบัติที่ไม่พึงประสงค์อย่างยิ่งของซิกมอยด์คือเมื่อฟังก์ชันอิ่มตัวในด้านใดด้านหนึ่ง (0 หรือ 1) การไล่ระดับสีในพื้นที่เหล่านี้จะใกล้เคียงกับศูนย์

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

ฟังก์ชันซิกมอยด์คือ:

  • ต่อเนื่อง;
  • เพิ่มขึ้นอย่างน่าเบื่อ;
  • หาความแตกต่างได้

ฟังก์ชันการเปิดใช้งาน ไฮเปอร์โบลิกแทนเจนต์

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

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

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

กราฟของฟังก์ชัน ReLU ดังแสดงด้านล่าง:

ประโยชน์ของการใช้ ReLU:

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

ตัวอย่างการฝึกอบรมที่ใช้ในการทดลอง

ตัวอย่างการฝึกอบรมประกอบด้วยตัวอย่างเชิงบวกและเชิงลบ ในกรณีนี้จากบุคคลและ "ไม่ใช่บุคคล" อัตราส่วนของตัวอย่างเชิงบวกต่อเชิงลบคือ 4 ต่อ 1, บวก 8000 และลบ 2000

ฐานข้อมูล LFW3D ถูกใช้เป็นชุดการฝึกอบรมเชิงบวก ประกอบด้วยภาพสี JPEG ของใบหน้าด้านหน้า 13,000 ภาพ ขนาด 90x90 พิกเซล ฐานข้อมูลมีให้ผ่านทาง FTP เข้าถึงได้โดยใช้รหัสผ่าน หากต้องการรับรหัสผ่าน คุณต้องกรอกแบบฟอร์มง่ายๆ ในหน้าหลักของเว็บไซต์ โดยระบุชื่อและอีเมลของคุณ ตัวอย่างบุคคลจากฐานข้อมูลดังแสดงในรูปด้านล่าง:

ฐานข้อมูล SUN397 ถูกใช้เป็นตัวอย่างการฝึกอบรมเชิงลบ ซึ่งมีฉากทุกประเภทจำนวนมาก ซึ่งแบ่งออกเป็นหมวดหมู่ รวม 130,000 ภาพ 908 ฉาก 313,000 ฉากวัตถุ น้ำหนักรวมของฐานข้อมูลนี้คือ 37 GB หมวดหมู่ของรูปภาพจะแตกต่างกันมาก และช่วยให้คุณเลือกสภาพแวดล้อมที่เฉพาะเจาะจงมากขึ้นที่จะใช้ PS สุดท้ายได้ ตัวอย่างเช่น หากทราบเบื้องต้นแล้วว่าเครื่องตรวจจับใบหน้ามีจุดประสงค์เพื่อการจดจำในอาคารเท่านั้น ก็ไม่มีประโยชน์ที่จะใช้ตัวอย่างการฝึกอบรมเกี่ยวกับธรรมชาติ ท้องฟ้า ภูเขา ฯลฯ ด้วยเหตุนี้ผู้เขียนผลงานจึงเลือกหมวดหมู่รูปภาพดังต่อไปนี้: ห้องนั่งเล่น สำนักงาน ห้องเรียน ห้องคอมพิวเตอร์ ภาพตัวอย่างจากชุดการฝึก SUN397 มีดังต่อไปนี้:

ผลลัพธ์

การแพร่กระจายสัญญาณโดยตรงจากภาพอินพุตขนาด 90x90 พิกเซลใช้เวลา 20 มิลลิวินาที (บนพีซี) และ 3000 มิลลิวินาทีในแอปพลิเคชันมือถือ เมื่อตรวจจับใบหน้าในสตรีมวิดีโอที่ความละเอียด 640x480 พิกเซล จะสามารถตรวจจับพื้นที่ที่ไม่ทับซ้อนกันได้ 50 พื้นที่ ขนาด 90x90 พิกเซล ผลลัพธ์ที่ได้รับจากโทโพโลยีเครือข่ายที่เลือกนั้นแย่กว่าเมื่อเปรียบเทียบกับอัลกอริธึม Viola-Jones

ข้อสรุป

โครงข่ายประสาทเทียมแบบขดให้ความต้านทานบางส่วนต่อการเปลี่ยนแปลงขนาด การกระจัด การหมุน การเปลี่ยนแปลงมุม และการบิดเบือนอื่นๆ

แกนกลาง- เป็นฟิลเตอร์ที่เลื่อนไปทั่วทั้งภาพและค้นหาลักษณะใบหน้าที่ใดก็ได้ในภาพ (ค่าคงที่การกระจัด)

ชั้นการสุ่มตัวอย่างให้:

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

การปรับปรุงที่เป็นไปได้

  • พิจารณาโครงข่ายประสาทเทียม Fast-RCNN, YOLO;
  • การทำกระบวนการเรียนรู้แบบขนานบน GPU
  • ใช้ Android NDK (C++) เพื่อปรับปรุงประสิทธิภาพ

การฝึกอบรมโครงข่ายประสาทเทียมแบบหมุนวนมีอธิบายไว้ใน

ออก = เค(สุทธิ),

ที่ไหน ถึง -ค่าคงที่ของฟังก์ชันขีดจำกัด

OUT = 1 ถ้า NET > T, OUT = 0 มิฉะนั้น

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

ข้าว. 3.

ในรูป 3 บล็อก กำหนดไว้ รับสัญญาณ NET และส่งสัญญาณ OUT ถ้าเป็นบล็อก เอฟทำให้ช่วงการเปลี่ยนแปลงของค่า NET แคบลง ดังนั้นค่า NET ใด ๆ ของ OUT จะอยู่ในช่วงเวลาจำกัด จากนั้น เอฟเรียกว่า ฟังก์ชั่น "บีบอัด"ฟังก์ชันลอจิสติกหรือ "sigmoid" (รูปตัว S) ที่แสดงในรูปที่ 4a มักใช้เป็นฟังก์ชัน "บีบ" ฟังก์ชันนี้แสดงออกมาทางคณิตศาสตร์เป็น

ฉ(x)= 1/(1 + อี -x)

ดังนั้น,

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


ข้าว.

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


ข้าว.

เช่นเดียวกับฟังก์ชันลอจิสติก ไฮเปอร์โบลิกแทนเจนต์เป็นฟังก์ชันรูปตัว S แต่จะสมมาตรเกี่ยวกับจุดกำเนิด และที่จุด NET = 0 สัญญาณเอาท์พุต OUT จะเป็นศูนย์ (ดูรูปที่ 4b) ซึ่งแตกต่างจากฟังก์ชันลอจิสติกส์ แทนเจนต์ไฮเพอร์โบลิกใช้ค่าของสัญญาณที่แตกต่างกัน ซึ่งกลายเป็นประโยชน์สำหรับเครือข่ายจำนวนหนึ่ง

แบบจำลองง่ายๆ ของเซลล์ประสาทเทียมที่พิจารณาแล้วละเลยคุณสมบัติหลายประการของเซลล์ประสาทเทียม

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

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

ในส่วนที่สองของบทความ เราจะพูดคุยกันต่อเกี่ยวกับความซับซ้อนของการเรียนรู้เชิงลึก

5. การเลือกฟังก์ชั่นการเปิดใช้งาน

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

ซิกมอยด์

ซิกมอยด์แสดงโดยสูตรต่อไปนี้: σ(x) = 1 / (1 + อี -x)- ฟังก์ชันนี้รับจำนวนจริงตามอำเภอใจเป็นอินพุต และที่เอาต์พุตจะให้จำนวนจริงในช่วงตั้งแต่ 0 ถึง 1 โดยเฉพาะอย่างยิ่ง จำนวนลบขนาดใหญ่ (แบบโมดูโล) จะกลายเป็นศูนย์ และจำนวนบวกจำนวนมากให้เป็นหนึ่ง ในอดีต ซิกมอยด์มีการใช้กันอย่างแพร่หลายเนื่องจากเอาท์พุตของมันถูกตีความอย่างดีว่าเป็นระดับการกระตุ้นของเซลล์ประสาท ตั้งแต่ไม่มีการกระตุ้น (0) ไปจนถึงการกระตุ้นที่อิ่มตัวเต็มที่ (1)

ปัจจุบัน sigmoid ได้สูญเสียความนิยมในอดีตและมีการใช้น้อยมาก ฟังก์ชั่นนี้มีข้อบกพร่องร้ายแรงสองประการ:

  1. ความอิ่มตัวของซิกมอยด์นำไปสู่การลดทอนของการไล่ระดับสีคุณสมบัติที่ไม่พึงประสงค์อย่างมากของซิกมอยด์คือเมื่อฟังก์ชันอิ่มตัวในด้านใดด้านหนึ่ง (0 หรือ 1) การไล่ระดับสีในพื้นที่เหล่านี้จะใกล้เคียงกับศูนย์ โปรดจำไว้ว่าในกระบวนการของการขยายพันธุ์กลับ การไล่ระดับสีที่กำหนด (เฉพาะที่) จะถูกคูณด้วยการไล่ระดับสีโดยรวม ดังนั้น หากการไล่ระดับสีเฉพาะที่มีขนาดเล็กมาก การไล่ระดับสีโดยรวมก็จะเป็นโมฆะอย่างมีประสิทธิภาพ เป็นผลให้แทบไม่มีสัญญาณใดที่จะผ่านเซลล์ประสาทไปยังน้ำหนักของมันและแบบวนซ้ำไปยังข้อมูลของมัน นอกจากนี้ เราต้องระมัดระวังอย่างมากเมื่อเริ่มต้นน้ำหนักของเซลล์ประสาทซิกมอยด์เพื่อป้องกันความอิ่มตัว ตัวอย่างเช่น หากน้ำหนักเริ่มต้นมากเกินไป เซลล์ประสาทส่วนใหญ่จะเข้าสู่สภาวะอิ่มตัว ส่งผลให้เครือข่ายเรียนรู้ได้ไม่ดี
  2. เอาต์พุต sigmoid ไม่ได้อยู่กึ่งกลางรอบศูนย์คุณสมบัตินี้ไม่พึงปรารถนาเนื่องจากเซลล์ประสาทในเลเยอร์ต่อๆ ไปจะได้รับค่าที่ไม่อยู่กึ่งกลางรอบศูนย์ ซึ่งส่งผลต่อไดนามิกของการไล่ระดับลง หากค่าที่เข้าสู่เซลล์ประสาทเป็นค่าบวกเสมอ (เช่น x > 0องค์ประกอบต่อองค์ประกอบใน ฉ = ω T x + ข) จากนั้นในกระบวนการ backpropagation การไล่ระดับสีของน้ำหนักทั้งหมด ω จะเป็นค่าบวกหรือค่าลบ (ขึ้นอยู่กับการไล่ระดับสีของนิพจน์ทั้งหมด - สิ่งนี้สามารถนำไปสู่การเปลี่ยนแปลงน้ำหนักซิกแซกที่ไม่พึงประสงค์ อย่างไรก็ตาม ควรสังเกตว่าเมื่อมีการรวมการไล่ระดับสีเหล่านี้บนบรรจุภัณฑ์ การอัปเดตน้ำหนักครั้งสุดท้ายอาจมีสัญญาณที่แตกต่างกัน ซึ่งบางส่วนสามารถบรรเทาข้อเสียเปรียบที่อธิบายไว้ได้ ดังนั้น การขาดการวางศูนย์กลางจึงไม่สะดวก แต่จะมีผลกระทบที่ร้ายแรงน้อยกว่าปัญหาความอิ่มตัว

แทนเจนต์ไฮเปอร์โบลิก

ไฮเปอร์โบลิกแทนเจนต์ (tanh) รับจำนวนจริงตามต้องการเป็นอินพุต และสร้างจำนวนจริงในช่วงตั้งแต่ –1 ถึง 1 เป็นเอาต์พุต อย่างไรก็ตาม ไม่เหมือนกับซิกมอยด์ตรงที่เอาต์พุตของฟังก์ชันนี้มีศูนย์กลางอยู่ที่ศูนย์ ดังนั้น ในทางปฏิบัติ จึงนิยมใช้ไฮเปอร์โบลิกแทนเจนต์มากกว่าซิกมอยด์เสมอ

รีลู

ในช่วงไม่กี่ปีที่ผ่านมา ฟังก์ชันการเปิดใช้งานที่เรียกว่าวงจรเรียงกระแส ซึ่งคล้ายกับวงจรเรียงกระแสแบบครึ่งคลื่นในวิศวกรรมไฟฟ้า ได้รับความนิยมอย่างมาก เซลล์ประสาทที่มีฟังก์ชันกระตุ้นการทำงานนี้เรียกว่า ReLU (หน่วยเชิงเส้นที่แก้ไข) ReLU มีสูตรดังนี้ ฉ(x) = สูงสุด(0, x)และใช้การเปลี่ยนแปลงเกณฑ์อย่างง่ายที่ศูนย์

เรามาดูด้านบวกและด้านลบของ ReLU กัน

ด้านบวก:

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

เชิงลบ:

  1. น่าเสียดายที่ ReLU ไม่น่าเชื่อถือเพียงพอเสมอไปและอาจล้มเหลว (“ตาย”) ในระหว่างกระบวนการฝึกอบรม ตัวอย่างเช่น การไล่ระดับสีขนาดใหญ่ที่ผ่าน ReLU อาจทำให้น้ำหนักได้รับการอัปเดตจนไม่มีการยิงเซลล์ประสาทอีกเลย หากสิ่งนี้เกิดขึ้น จากนี้ไป เกรเดียนต์ที่ผ่านเซลล์ประสาทนี้จะเป็นศูนย์เสมอ ดังนั้นเซลล์ประสาทนี้จะถูกปิดการใช้งานอย่างถาวร ตัวอย่างเช่น หากอัตราการเรียนรู้สูงเกินไป อาจกลายเป็นว่า ReLU มากถึง 40% “ตาย” (นั่นคือ ไม่เคยเปิดใช้งาน) ปัญหานี้แก้ไขได้โดยการเลือกอัตราการเรียนรู้ที่เหมาะสม

ปัจจุบันมีการปรับเปลี่ยน ReLU ที่แตกต่างกันทั้งหมด ต่อไปเราจะดูคุณสมบัติของพวกเขา

สำหรับ LReLU αi มีค่าคงที่ สำหรับ PReLU αi จะถูกกำหนดตามข้อมูล สำหรับ RReLU αji จะถูกสร้างขึ้นแบบสุ่มจากช่วงเวลาที่กำหนดระหว่างการฝึกและคงที่ในระหว่างการทดสอบ

ReLU รั่ว

Leaky ReLU (LReLU) คือความพยายามครั้งหนึ่งในการแก้ปัญหาความล้มเหลวของ ReLU แบบเดิมที่อธิบายไว้ข้างต้น ReLU ปกติตามช่วงเวลา x< 0 ให้เอาต์พุตเป็นศูนย์ ในขณะที่ LReLU มีค่าลบเล็กน้อยในช่วงเวลานี้ (ความชันประมาณ 0.01) นั่นคือฟังก์ชันสำหรับ LReLU มีรูปแบบ ฉ(x) = αxที่ x< 0 และ ฉ(x) = xที่ x ≥ 0โดยที่ α เป็นค่าคงที่เล็กน้อย นักวิจัยบางคนรายงานความสำเร็จในการใช้ฟังก์ชันการเปิดใช้งานนี้ แต่ผลลัพธ์ที่ได้อาจไม่สอดคล้องกันเสมอไป

พาราเมตริก ReLU

สำหรับ Parametric ReLU (parametric ReLU, PRELU) ความชันของช่วงค่าลบไม่ได้ถูกกำหนดไว้ล่วงหน้า แต่จะถูกกำหนดตามข้อมูล ผู้เขียนสิ่งพิมพ์อ้างว่าการใช้ฟังก์ชันการเปิดใช้งานนี้เป็นปัจจัยสำคัญในการก้าวข้ามระดับมนุษย์ในงานจดจำรูปภาพ ImageNet กระบวนการ backpropagation และอัพเดตสำหรับ PRELU (หน้า 43 สไลด์) ค่อนข้างง่ายและคล้ายกับกระบวนการที่เกี่ยวข้องสำหรับ ReLU แบบดั้งเดิม

ReLU แบบสุ่ม

สำหรับ ReLU แบบสุ่ม (ReLU แบบสุ่ม, RReLU) ความชันของช่วงลบจะถูกสร้างขึ้นแบบสุ่มจากช่วงเวลาที่กำหนดระหว่างการฝึก และคงที่ในระหว่างการทดสอบ ในฐานะส่วนหนึ่งของการแข่งขัน Kaggle ของ National Data Science Bowl (NDSB) RReLU สามารถลดการติดตั้งมากเกินไปได้เนื่องจากองค์ประกอบโดยธรรมชาติของการสุ่ม ตามที่ผู้ชนะการแข่งขันครั้งนี้ระหว่างการฝึกซ้อมค่า α ฉันเกิดจากการสุ่มแจกแจง 1/ยู(3, 8)และในระหว่างการทดสอบค่าจะคงที่และเท่ากับค่าคาดหวังทางคณิตศาสตร์: 2 / (ล + ยู) = 2/11.

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

ในทางปฏิบัติ หากไม่จำเป็นต้องเลือกคุณสมบัติโดยตรง การทำให้เป็นมาตรฐาน L2 จะให้ผลลัพธ์ที่ดีกว่าเมื่อเปรียบเทียบกับการทำให้เป็นมาตรฐาน L1

ข้อจำกัดของบรรทัดฐานของเวกเตอร์น้ำหนัก

วิธีการทำให้เป็นมาตรฐานอีกวิธีหนึ่งคือวิธีการจำกัดบรรทัดฐานของเวกเตอร์น้ำหนัก (ข้อจำกัดบรรทัดฐานสูงสุด) ในวิธีนี้ เราได้กำหนดขีดจำกัดบนสัมบูรณ์สำหรับบรรทัดฐานของเวกเตอร์น้ำหนักของเซลล์ประสาทแต่ละอัน ข้อจำกัดนี้บังคับใช้โดยใช้การไล่ระดับสีแบบไล่ระดับที่คาดการณ์ไว้ ในทางปฏิบัติ มีการดำเนินการดังนี้: ตุ้มน้ำหนักจะได้รับการอัปเดตตามปกติ จากนั้นจึงอัปเดตเวกเตอร์ของตุ้มน้ำหนัก ω เซลล์ประสาทแต่ละอันถูกจำกัดเพื่อให้เป็นไปตามเงื่อนไข ||ω|| 2< c - โดยปกติแล้วจะมีค่า อยู่ในลำดับที่ 3 หรือ 4 นักวิจัยบางคนรายงานผลเชิงบวกเมื่อใช้วิธีการทำให้เป็นมาตรฐานนี้ คุณสมบัติที่มีประโยชน์ประการหนึ่งของวิธีนี้คือป้องกันไม่ให้ตุ้มน้ำหนักระเบิดแม้ว่าอัตราการเรียนรู้จะสูงเกินไป เนื่องจากการอัปเดตน้ำหนักจะถูกจำกัดอยู่เสมอ

การออกกลางคัน

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

การออกกลางคันเป็นหนึ่งในวิธีการทำให้เป็นมาตรฐานที่ได้รับความนิยมมากที่สุด Google ได้ยื่นคำขอรับสิทธิบัตรสำหรับวิธีนี้ในปี 2014

7. การแสดงภาพ

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

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

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

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

8. การรวมตัวของเครือข่ายลึก

ขั้นตอนต่าง ๆ ของการฝึกหนึ่งโมเดล

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

ตัวอย่างการปฏิบัติ:

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

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

แปลโดย Stanislav Petrenko

งานห้องปฏิบัติการหมายเลข 1

แบบจำลองเซลล์ประสาทเทียม

วัตถุประสงค์ของงาน:ได้รับทักษะในการศึกษาฟังก์ชั่นการเปิดใช้งานและแบบจำลองเซลล์ประสาทโดยใช้แพ็คเกจการจำลอง Simulink ของระบบ MATLAB

คำหลัก


■ค่าสัมประสิทธิ์การถ่วงน้ำหนักของเซลล์ประสาท;

■อินพุตของเซลล์ประสาทถ่วงน้ำหนัก;

■สัญญาณอินพุต (อินพุต) ของเซลล์ประสาท;

■ สัญญาณเอาท์พุต (เอาท์พุต) ของเซลล์ประสาท;

■ เซลล์ประสาท;

■ชั้นโครงข่ายประสาทเทียม;

■ การกระจัดของเซลล์ประสาท;


■ ฟังก์ชั่นการเปิดใช้งาน (ฟังก์ชั่นการถ่ายโอน):

■ โสดด้วยข้อจำกัดที่เข้มงวด;

■ เชิงเส้น;

■ โลจิสติก;


เซลล์ประสาทที่เรียบง่าย

เซลล์ปฐมภูมิของโครงข่ายประสาทเทียมคือ เซลล์ประสาท - โครงสร้างของเซลล์ประสาทที่มีอินพุตสเกลาร์เดียวแสดงไว้ในรูปที่ 1 1.1, .




ข้าว. 1.1.บล็อกไดอะแกรมของเซลล์ประสาทที่มีอินพุตสเกลาร์เดียว
) โดยไม่มีการเคลื่อนที่ ) พร้อมออฟเซ็ต

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

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

สัญญาณเอาท์พุตของเซลล์ประสาทสามารถแสดงเป็นสัญญาณอินพุทเชิงเส้นรวมกันและ 1:

.

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

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

ฟังก์ชั่นการเปิดใช้งาน (ฟังก์ชั่นการถ่ายโอน ) เซลล์ประสาทสามารถมีการแสดงออกได้หลากหลาย โดยทั่วไปแล้ว ฟังก์ชันการเปิดใช้งานจะอยู่ในคลาสของฟังก์ชัน sigmoid ที่มีอาร์กิวเมนต์และเอาต์พุต

มาดูฟังก์ชันการเปิดใช้งานที่ใช้บ่อยที่สุดสามฟังก์ชัน:

1) ฟังก์ชั่นการเปิดใช้งานครั้งเดียวพร้อมข้อจำกัดที่เข้มงวด

กราฟของฟังก์ชันการเปิดใช้งานเดียวที่มีข้อจำกัดที่เข้มงวดและสัญลักษณ์จะแสดงอยู่ในรูปที่ 1 1.2.

ฟังก์ชั่นการเปิดใช้งานแบบจำกัดฮาร์ดถูกนำมาใช้เป็นไฟล์ M-hardlim ในแพ็คเกจส่วนขยาย Neural Network Toolbox ของระบบ MATLAB

2) ฟังก์ชั่นการเปิดใช้งานเชิงเส้น - มันถูกอธิบายโดยความสัมพันธ์

และกราฟและสัญลักษณ์แสดงไว้ในรูปที่. 1.3;

ในแพ็คเกจส่วนขยาย Neural Network Toolbox ฟังก์ชันการเปิดใช้งานเชิงเส้นจะถูกนำไปใช้เป็นไฟล์ purelin M

3) ฟังก์ชั่นการเปิดใช้งานลอจิสติก - มันถูกอธิบายโดยความสัมพันธ์

และกราฟและสัญลักษณ์แสดงไว้ในรูปที่. 1.4;

ฟังก์ชันนี้เป็นของคลาสของฟังก์ชัน sigmoid อาร์กิวเมนต์สามารถรับค่าใดก็ได้จาก ถึง และเอาต์พุตจะแตกต่างกันไปในช่วงตั้งแต่ 0 ถึง 1

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

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

มีคุณสมบัติการเปิดใช้งานอื่นๆ ในชุดเสริม Neural Network Toolbox นอกจากนี้ ผู้ใช้สามารถสร้างฟังก์ชันของตนเองโดยใช้ภาษาการเขียนโปรแกรม MATLAB

นิวรอนที่มีการป้อนข้อมูลเวกเตอร์

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

เซลล์ประสาทมีอคติที่เพิ่มผลรวมถ่วงน้ำหนักของอินพุต จำนวนผลลัพธ์จะถูกกำหนดตามนิพจน์

และเป็นอาร์กิวเมนต์ของฟังก์ชันการเปิดใช้งาน ในรูปแบบภาษาโปรแกรม MATLAB นิพจน์นี้เขียนได้ดังนี้:

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

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



มีคำถามอะไรไหม?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: