กลับไปหน้าบทความ

อ่าน 4 นาที

เลเยอร์คอนโวลูชัน

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

เลเยอร์คอนโวลูชัน

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

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

แนวคิด

เคอร์เนล

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

การคอนโวลูชัน

สำหรับอินพุต 2 มิติและเคอร์เนล 2 มิติการดำเนินการคอนโวลูชัน 2 มิติสามารถแสดงได้ดังนี้: โดยที่และคือความสูงและความกว้างของเคอร์เนลตามลำดับ

หลักการนี้สามารถนำไปใช้กับคอนโวลูชัน n มิติได้ทันที คอนโวลูชันที่ใช้กันทั่วไป ได้แก่ 1 มิติ (สำหรับเสียงและข้อความ) 2 มิติ (สำหรับรูปภาพ) และ 3 มิติ (สำหรับวัตถุในอวกาศและวิดีโอ)

ก้าวเดิน

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

แผ่นรอง

การเติมขอบ (Padding) คือการเพิ่มพิกเซลพิเศษรอบขอบของข้อมูลที่ป้อนเข้ามา โดยมีจุดประสงค์หลักสองประการ:

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

กลยุทธ์การเว้นช่องว่างที่ใช้กันทั่วไป ได้แก่:

  • ไม่มีการเว้นระยะขอบ/มีการเว้นระยะขอบที่ถูกต้อง กลยุทธ์นี้มักทำให้ผลลัพธ์มีขนาดเล็ลง
  • การเว้นระยะขอบเท่ากัน: วิธีใดก็ตามที่ทำให้ขนาดของผลลัพธ์เท่ากับขนาดของอินพุต ถือเป็นกลยุทธ์การเว้นระยะขอบเท่ากัน
  • การเติมแบบเต็ม (Full padding): วิธีใดก็ตามที่รับประกันว่าแต่ละรายการอินพุตจะถูกประมวลผลด้วยจำนวนครั้งเท่ากัน ถือเป็นกลยุทธ์การเติมแบบเต็ม

อัลกอริทึมการเติมช่องว่างที่ใช้กันทั่วไป ได้แก่:

  • การเติมเลขศูนย์: เพิ่มเลขศูนย์ที่ขอบของช่องป้อนข้อมูล
  • การสะท้อน/การกลับด้าน/การเว้นระยะแบบสมมาตร: สะท้อนอาร์เรย์อินพุตที่ขอบ
  • การเว้นระยะแบบวงกลม: วนอาร์เรย์อินพุตกลับไปที่ขอบด้านตรงข้าม เหมือนกับทรงโดนัท

ตัวเลขที่แน่นอนที่ใช้ในการคอนโวลูชันนั้นซับซ้อน ซึ่งเราขออ้างอิงถึง (Dumoulin และ Visin, 2018) [ 3 ]สำหรับรายละเอียด

ตัวแปร

มาตรฐาน

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

แยกตามความลึกได้

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

ได้รับการพัฒนาครั้งแรกโดย Laurent Sifre ระหว่างการฝึกงานที่Google Brainในปี 2013 โดยเป็นรูปแบบสถาปัตยกรรมของAlexNetเพื่อปรับปรุงความเร็วในการบรรจบกันและขนาดของโมเดล[ 4 ]

ขยาย

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

สลับตำแหน่ง

การคอนโวลูชันแบบสลับแถวและคอลัมน์ (Transposed convolution)หรือที่รู้จักกันในชื่อดีคอน โวลูชัน (Deconvolution) , คอนโวลูชัน แบบก้าวสั้น (Fractionally strided convolution ) และ คอนโวลูชันแบบอัปแซมปลิง (Upsampling convolution ) คือการคอนโวลูชันที่เทนเซอร์เอาต์พุตมีขนาดใหญ่กว่าเทนเซอร์อินพุต มักใช้ในสถาปัตยกรรมตัวเข้ารหัส-ตัวถอดรหัส (encoder-decoder) สำหรับการอัปแซมปลิง ใช้ในการสร้างภาพ การแบ่งส่วนเชิงความหมายและงาน เพิ่มความละเอียดสูงพิเศษ (Super-resolution )

ประวัติศาสตร์

แนวคิดของการคอนโวลูชันในเครือข่ายประสาทได้รับแรงบันดาลใจจากคอร์เทกซ์การมองเห็นในสมองทางชีววิทยา งานในช่วงแรกของ Hubel และ Wiesel ในช่วงทศวรรษ 1960 เกี่ยวกับระบบการมองเห็นของแมวได้วางรากฐานสำหรับเครือข่ายคอนโวลูชันเทียม[ 7 ]

เครือข่ายประสาทแบบคอนโวลูชันรุ่นแรกได้รับการพัฒนาโดยKunihiko Fukushimaในปี 1969 โดยส่วนใหญ่มีเคอร์เนลที่ออกแบบด้วยมือซึ่งได้รับแรงบันดาลใจจากคอนโวลูชันในระบบการมองเห็นของสัตว์เลี้ยงลูกด้วยนม[ 8 ]ในปี 1979 เขาได้ปรับปรุงให้เป็นNeocognitronซึ่งเรียนรู้เคอร์เนลคอนโวลูชันทั้งหมดโดยการเรียนรู้แบบไม่กำกับดูแล (ในศัพท์ของเขาคือ " จัดระเบียบตนเองโดย 'การเรียนรู้โดยไม่มีครู'") [ 9 ] [ 10 ]

ในช่วงปี พ.ศ. 2531 ถึง พ.ศ. 2541 Yann LeCunและคณะได้นำเสนอ CNN หลายรุ่น โดยรุ่นสุดท้ายคือLeNet-5ในปี พ.ศ. 2541 ซึ่งเป็นสถาปัตยกรรม CNN รุ่นแรกๆ ที่มีอิทธิพลต่อการจดจำตัวเลขที่เขียนด้วยลายมือ โดยได้รับการฝึกฝนบนชุดข้อมูล MNISTและถูกนำไปใช้ในATM [ 11 ]

( Olshausen & Field, 1996) [ 12 ]ค้นพบว่าเซลล์แบบง่ายในคอร์เทกซ์การมองเห็นหลัก ของสัตว์เลี้ยงลูกด้วยนม ใช้ฟิลด์รับสัญญาณแบบแบนด์พาสที่มีทิศทางและเฉพาะที่ ซึ่งสามารถสร้างใหม่ได้โดยการปรับรหัสเชิงเส้นแบบเบาบางสำหรับฉากธรรมชาติ ต่อมาพบว่าสิ่งนี้เกิดขึ้นในเคอร์เนลระดับต่ำสุดของ CNN ที่ได้รับการฝึกฝนด้วย[ 13 ] : รูปที่ 3

สาขานี้กลับมาเฟื่องฟูอีกครั้งในช่วงทศวรรษ 2010 ด้วยการพัฒนาสถาปัตยกรรมที่ลึกขึ้นและความพร้อมใช้งานของชุดข้อมูลขนาดใหญ่และ GPU ที่ทรงพลังAlexNetซึ่งพัฒนาโดยAlex Krizhevskyและคณะในปี 2012 เป็นเหตุการณ์สำคัญในการเรียนรู้เชิงลึกสมัยใหม่[ 13 ] [ 14 ]ในการแข่งขัน ImageNetในปีนั้นโมเดล AlexNet บรรลุอัตราข้อผิดพลาดห้าอันดับแรกที่ 16% ซึ่งเหนือกว่าผลงานที่ดีที่สุดอันดับถัดไปอย่างมาก ซึ่งมีอัตราข้อผิดพลาด 26% เครือข่ายใช้เลเยอร์ที่ฝึกฝนได้แปดชั้น นิวรอนประมาณ 650,000 ตัว และพารามิเตอร์ประมาณ 60 ล้านตัว ซึ่งเน้นให้เห็นถึงผลกระทบของสถาปัตยกรรมที่ลึกขึ้นและ การเร่งความเร็ว GPUต่อประสิทธิภาพการจดจำภาพ[ 14 ]

จากการแข่งขัน ImageNet ปี 2013 ผลงานส่วนใหญ่ใช้โครงข่ายประสาทเทียมแบบ convolutional เชิงลึก โดยต่อยอดจากความสำเร็จของ AlexNet ในช่วงหลายปีต่อมา ประสิทธิภาพดีขึ้นอย่างต่อเนื่อง โดยอัตราข้อผิดพลาดห้าอันดับแรก ลดลงจาก 16% ในปี 2012 และ 12% ในปี 2013 เหลือต่ำกว่า 3% ในปี 2017 เนื่องจากโครงข่ายมีความลึกมากขึ้นเรื่อยๆ[ 14 ]

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Convolutional_layer&oldid=1307747678 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ เลเยอร์คอนโวลูชัน

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

เคอร์เนล

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

การคอนโวลูชัน

สำหรับอินพุต 2 มิติและเคอร์เนล 2 มิติการดำเนินการคอนโวลูชัน 2 มิติสามารถแสดงได้ดังนี้: โดยที่และคือความสูงและความกว้างของเคอร์เนลตามลำดับ x {\displaystyle x} ว {\displaystyle w} y [ ฉัน , เจ ] = ∑ ม = 0 เค ชม.

ก้าวเดิน

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