კომპიუტერული ხედვა 3 წთ კითხვა

კონვოლუციური ნერვული ქსელები

ჩვენ ადრე ვნახეთ, რომ ნერვული ქსელები საკმაოდ კარგად ასრულებენ სურათებს და ერთ ფენიანი პერცეპტრონიც კი შეუძლია გონივრული სიზუსტით ამოიცნოს ხელნაწერი ციფრები MNIST მონაცემთა ნაკრებიდან. თუმცა, MNIST მონაცემთა ნაკრები ძალიან განსაკუთრებულია და ყველა ციფრი ცენტრშია გამოსახულების შიგნით, რაც ამოცანას ამარტივებს.

სალექციო ვიქტორინა

რეალურ ცხოვრებაში, ჩვენ გვინდა შევძლოთ ამოვიცნოთ ობიექტები სურათზე, მიუხედავად მათი ზუსტი მდებარეობისა სურათზე. კომპიუტერული ხედვა განსხვავდება ზოგადი კლასიფიკაციისგან, რადგან როდესაც ჩვენ ვცდილობთ ვიპოვოთ გარკვეული ობიექტი სურათზე, ჩვენ სკანირებთ სურათს, ვეძებთ კონკრეტულ შაბლონებს და მათ კომბინაციებს. მაგალითად, როდესაც ვეძებთ კატას, ჯერ შეიძლება მოვძებნოთ ჰორიზონტალური ხაზები, რომლებსაც შეუძლიათ შექმნან ულვაში, შემდეგ კი ულვაშების გარკვეულმა კომბინაციამ შეიძლება გვითხრას, რომ ეს სინამდვილეში კატის სურათია. მნიშვნელოვანია გარკვეული შაბლონების შედარებითი პოზიცია და არსებობა და არა მათი ზუსტი პოზიცია სურათზე.

შაბლონების ამოსაღებად, ჩვენ გამოვიყენებთ კონვოლუციური ფილტრების ცნებას. მოგეხსენებათ, გამოსახულება წარმოდგენილია 2D-მატრიცით, ან 3D-ტენზორით ფერის სიღრმით. ფილტრის გამოყენება ნიშნავს, რომ ვიღებთ შედარებით მცირე ფილტრის ბირთვს მატრიცას და თავდაპირველ სურათზე თითოეული პიქსელისთვის ვიანგარიშებთ შეწონილ საშუალოს მეზობელ წერტილებთან. ჩვენ შეგვიძლია ვუყუროთ ამას, როგორც პატარა ფანჯარას, რომელიც სრიალებს მთელ სურათზე და ყველა პიქსელის საშუალოდ გამოანგარიშებას ფილტრის ბირთვის მატრიცის წონების მიხედვით.

Vertical Edge FilterHorizontal Edge Filter

დიმიტრი სოშნიკოვის სურათი

მაგალითად, თუ გამოვიყენებთ 3x3 ვერტიკალური კიდეების და ჰორიზონტალური კიდეების ფილტრებს MNIST ციფრებზე, შეგვიძლია მივიღოთ ხაზგასმა (მაგ. მაღალი მნიშვნელობები), სადაც არის ვერტიკალური და ჰორიზონტალური კიდეები ჩვენს თავდაპირველ სურათზე. ამრიგად, ეს ორი ფილტრი შეიძლება გამოყენებულ იქნას კიდეების "საძიებლად". ანალოგიურად, ჩვენ შეგვიძლია დავაპროექტოთ სხვადასხვა ფილტრები სხვა დაბალი დონის შაბლონების მოსაძებნად:

Leung-Malik ფილტრის ბანკი-ის სურათი

თუმცა, მიუხედავად იმისა, რომ ჩვენ შეგვიძლია დავაპროექტოთ ფილტრები ზოგიერთი შაბლონის ხელით ამოსაღებად, ჩვენ ასევე შეგვიძლია შევქმნათ ქსელი ისე, რომ მან ავტომატურად ისწავლოს შაბლონები. ეს არის CNN-ის ერთ-ერთი მთავარი იდეა.

მთავარი იდეები CNN-ის უკან

CNN-ის მუშაობის პრინციპი ეფუძნება შემდეგ მნიშვნელოვან იდეებს:

  • კონვოლუციურ ფილტრებს შეუძლია შაბლონების ამოღება
  • ჩვენ შეგვიძლია შევქმნათ ქსელი ისე, რომ ფილტრები ავტომატურად გაიწვრთნას
  • ჩვენ შეგვიძლია გამოვიყენოთ იგივე მიდგომა მაღალი დონის ფუნქციებში შაბლონების მოსაძებნად და არა მხოლოდ ორიგინალურ სურათში. ამრიგად, CNN-ის ფუნქციების მოპოვება მუშაობს ფუნქციების იერარქიაზე, დაწყებული დაბალი დონის პიქსელების კომბინაციიდან, სურათის ნაწილების უფრო მაღალი დონის კომბინაციამდე.

Hierarchical Feature Extraction

სურათი ჰისლოპ-ლინჩის ნაშრომი-დან, their research-ზე დაყრდნობით

სავარჯიშოები: კონვოლუციური ნერვული ქსელები

მოდით გავაგრძელოთ შესწავლა, თუ როგორ მუშაობს კონვოლუციური ნერვული ქსელები და როგორ შეგვიძლია მივაღწიოთ ტრენინგ ფილტრებს, შესაბამისი ნოუთბუქების მეშვეობით:

  • კონვოლუციური ნერვული ქსელები - PyTorch
  • კონვოლუციური ნერვული ქსელები - TensorFlow

პირამიდის არქიტექტურა

გამოსახულების დამუშავებისთვის გამოყენებული CNN-ების უმეტესობა ე.წ. პირამიდის არქიტექტურას მიჰყვება. პირველ კონვოლუციურ ფენას, რომელიც გამოიყენება ორიგინალ სურათებზე, ჩვეულებრივ აქვს ფილტრების შედარებით დაბალი რაოდენობა (8-16), რომლებიც შეესაბამება სხვადასხვა პიქსელების კომბინაციას, როგორიცაა შტრიხების ჰორიზონტალური/ვერტიკალური ხაზები. შემდეგ დონეზე, ჩვენ ვამცირებთ ქსელის სივრცულ განზომილებას და ვზრდით ფილტრების რაოდენობას, რაც შეესაბამება მარტივი ფუნქციების უფრო შესაძლო კომბინაციებს. ყოველი ფენით, როგორც საბოლოო კლასიფიკატორისკენ მივდივართ, გამოსახულების სივრცითი ზომები მცირდება და იზრდება ფილტრების რაოდენობა.

მაგალითად, მოდით შევხედოთ VGG-16-ის არქიტექტურას, ქსელს, რომელმაც მიაღწია 92,7% სიზუსტეს ImageNet-ის ტოპ-5 კლასიფიკაციაში 2014 წელს:

ImageNet Layers

ImageNet Pyramid

სურათი Researchgate-დან

ყველაზე ცნობილი CNN არქიტექტურა

განაგრძეთ თქვენი შესწავლა CNN-ის ყველაზე ცნობილი არქიტექტურების შესახებ

ეს გაკვეთილი არის Microsoft “AI for Beginners” კურსის ქართული თარგმანი, გავრცელებული MIT ლიცენზიით.