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

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

09.09.2023

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


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


สำหรับเด็กเล็ก ภาพคลาสสิกของโซเวียตซึ่งขึ้นชื่อในเรื่องความเรียบง่าย ความมีน้ำใจ และรูปภาพที่น่ารื่นรมย์นั้นสมบูรณ์แบบ ตัวอย่างเช่น "Crocodile Gena", "Prostokvashino", "เดี๋ยวก่อน!", "นักดนตรีแห่งเบรเมิน", "เรือเหาะ", "วินนี่เดอะพูห์", "เบบี้และคาร์ลสัน" และอื่น ๆ อีกมากมาย คุณยังสามารถนั่งลงกับลูกของคุณและระลึกถึงวัยเด็กได้อีกด้วย นอกจากนี้สำหรับเด็กเล็กยังมีการ์ตูนการศึกษาสมัยใหม่มากมายซึ่งไม่เพียงแตกต่างกันในภาพที่สว่างกว่าเท่านั้น แต่ยังรวมถึงเนื้อหาด้วย


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


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


วัยรุ่นแม้จะคิดว่าตัวเองเป็นผู้ใหญ่แล้ว แต่ก็ยังชอบดูการ์ตูน สำหรับวัยรุ่น พวกเขามีความกล้าหาญมากกว่าและไม่เป็นอันตรายเหมือนเด็ก พวกเขาถูกครอบงำด้วยความบันเทิง เรื่องตลกสำหรับผู้ใหญ่ และปัญหาของวัยรุ่น ส่วนใหญ่เป็นการ์ตูนต่างประเทศหลายตอน เช่น "The Simpsons", "Family Guy", "Futurama" เป็นต้น


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


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

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

Dmitry Soshnikov ผู้เผยแพร่ด้านเทคนิคของ Microsoft ซึ่งเป็นสมาชิกของ Russian Association of Artificial Intelligence ครูสอนการเขียนโปรแกรม AI แบบเชิงฟังก์ชันและเชิงตรรกะที่ Moscow Aviation Institute, Moscow Institute of Physics and Technology และ Higher School of Economics รวมถึงหลักสูตรของเราจะ ช่วยเราในเรื่อง

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

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

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

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

กรองธนาคารและวิสัยทัศน์ทางชีวภาพ

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

ในด้านคอมพิวเตอร์วิทัศน์นั้น ได้มีการพัฒนาธนาคารตัวกรอง - ชุดตัวกรองสำหรับเน้นคุณสมบัติหลักของวัตถุ

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

การแบ่งปันน้ำหนัก

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

สิ่งนี้ต้องการสถาปัตยกรรมเครือข่ายพิเศษ:

  • เครือข่ายแบบหมุนวนสำหรับการทำงานกับรูปภาพ
  • เครือข่ายที่เกิดซ้ำสำหรับการทำงานกับข้อความ/ลำดับ
โครงข่ายประสาทเทียมที่ใช้อย่างมีประสิทธิภาพในการจดจำภาพ ซึ่งใช้ชั้น Convolution Layers พิเศษ (Convolution Layers)

แนวคิดหลักคือ:

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


Convolution ใช้สำหรับการประมวลผลภาพ เช่นเดียวกับในการประมวลผลสัญญาณ

ให้เราอธิบายฟังก์ชันการบิดด้วยพารามิเตอร์ต่อไปนี้:

  • เคอร์เนล - เคอร์เนลการบิด, เมทริกซ์น้ำหนัก
  • แผ่น - ควรเพิ่มจำนวนพิกเซลให้กับรูปภาพบริเวณขอบ
  • stride - กรองความถี่ของแอปพลิเคชัน ตัวอย่างเช่น สำหรับ stride=2 เราจะเก็บทุกวินาทีของภาพในแนวตั้งและแนวนอน โดยลดความละเอียดลงครึ่งหนึ่ง
ใน : def convolve(image, kernel, pad = 0, stride = 1): rows, columns = image.shape output_rows = rows // stride output_columns = columns // stride result = np.zeros((output_rows, output_columns)) ถ้า แผ่น > 0: image = np.pad (รูปภาพ, แผ่น, "คงที่") kernel_size = kernel.size kernel_length = kernel.shape half_kernel = kernel_length // 2 kernel_flat = kernel.reshape (kernel_size, 1) offset = buildins.abs ( half_kernel-pad) สำหรับ r อยู่ในช่วง (ออฟเซ็ต, แถว - ออฟเซ็ต, ก้าวย่าง): สำหรับ c อยู่ในช่วง (ออฟเซ็ต, คอลัมน์ - ออฟเซ็ต, ก้าวย่าง): rr = r - half_kernel + pad cc = c - half_kernel + pad patch = ผลลัพธ์รูปภาพ = np.dot(patch.reshape(1, kernel_size), kernel_flat) ส่งคืนผลลัพธ์
ใน: def show_convolution(kernel, stride = 1): """แสดงผลของการโน้มน้าวด้วยเคอร์เนลที่กำหนด""" fig = pylab.figure(figsize = (9,9)) gs = gridspec.GridSpec(3, 3, height_ratios=) start=1 สำหรับ i อยู่ในช่วง (3): image = images_train conv = convolve(image, kernel, kernel.shape//2, stride) ax = fig.add_subplot(gs[i]) pylab.imshow (รูปภาพ, การประมาณค่า = "ใกล้ที่สุด") ax.set_xticks() ax.set_yticks() ax = fig.add_subplot(gs) pylab.imshow(kernel, cmap="gray", การประมาณค่า = "ใกล้ที่สุด") ax.set_xticks() ax.set_yticks() ax = fig.add_subplot(gs) pylab.imshow(conv, การประมาณค่า = "ใกล้ที่สุด") ax.set_xticks() ax.set_yticks() pylab.show()
ใน : blur_kernel = np.array([, , , , ], dtype="float32") blur_kernel /= 273

ตัวกรอง

เบลอ

ฟิลเตอร์เบลอช่วยให้คุณปรับความไม่สม่ำเสมอและเน้นรูปร่างโดยรวมของวัตถุได้


ใน: show_convolution(blur_kernel)

ขอบแนวตั้ง

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


ใน : Vertical_edge_kernel = np.array([, , , ], dtype="float32") Vertical_edge_kernel /= 166
ใน: show_convolution(vertical_edge_kernel)

ขอบแนวนอน

คุณสามารถสร้างฟิลเตอร์ที่คล้ายกันเพื่อเน้นลายเส้นแนวนอนในภาพได้


ใน :horizontal_bar_kernel = np.array([, [-2, -8, -13, -8, -2], , [-2, -8, -13, -8, -2], ], dtype=" float32")horizontal_bar_kernel /= 132
ใน: show_convolution(horizontal_bar_kernel)

ตัวกรองลูป

คุณยังสามารถสร้างฟิลเตอร์ 9x9 ที่จะเน้นส่วนโค้งของภาพได้


ใน : blob_kernel = np.array([, , , , , , , , ], dtype="float32") blob_kernel /= np.sum(np.abs(blob_kernel))
ใน: show_convolution(blob_kernel)
นี่คือตัวอย่างคลาสสิกของการรู้จำตัวเลข: แต่ละหมายเลขมีลักษณะทางเรขาคณิตของตัวเอง (วงกลมสองวง - แปดวง, เครื่องหมายทับครึ่งหนึ่งของภาพ - หนึ่งหน่วย ฯลฯ ) ซึ่งโครงข่ายประสาทเทียมสามารถกำหนดประเภทของ มันคือวัตถุ เราสร้างตัวกรองที่แสดงลักษณะเฉพาะของตัวเลขแต่ละหลัก เรียกใช้ตัวกรองแต่ละตัวบนรูปภาพ และลดข้อผิดพลาดให้เหลือน้อยที่สุด


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

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

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

การฝึกน้ำหนัก

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

im2col

เริ่มจากรูปภาพ x โดยที่แต่ละพิกเซลสอดคล้องกับตัวอักษร:

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

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

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





© 2023 skypenguin.ru - เคล็ดลับในการดูแลสัตว์เลี้ยง