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

სურათი კერას ბლოგი-დან
სცენარები ავტოენკოდერების გამოყენებისთვის
მიუხედავად იმისა, რომ ორიგინალური სურათების რეკონსტრუქცია თავისთავად სასარგებლო არ ჩანს, არსებობს რამდენიმე სცენარი, სადაც ავტოკოდერები განსაკუთრებით სასარგებლოა:
- გამოსახულებების განზომილების შემცირება ვიზუალიზაციისთვის ან სავარჯიშო გამოსახულების ჩაშენებისთვის. ჩვეულებრივ, ავტოენკოდერები უკეთეს შედეგს იძლევა, ვიდრე PCA, რადგან ის ითვალისწინებს სურათების სივრცულ ბუნებას და იერარქიულ მახასიათებლებს.
- დენოიზირება, ანუ გამოსახულებიდან ხმაურის ამოღება. იმის გამო, რომ ხმაური ახორციელებს უამრავ უსარგებლო ინფორმაციას, ავტოინკოდერი ვერ ათავსებს ყველაფერს შედარებით მცირე ლატენტურ სივრცეში და, შესაბამისად, ის იღებს გამოსახულების მხოლოდ მნიშვნელოვან ნაწილს. დენოიზერების სწავლებისას, ჩვენ ვიწყებთ ორიგინალური სურათებით და ვიყენებთ სურათებს ხელოვნურად დამატებული ხმაურით, როგორც ავტოენკოდერისთვის.
- სუპერ გარჩევადობა, გამოსახულების გარჩევადობის გაზრდა. ჩვენ ვიწყებთ მაღალი რეზოლუციის სურათებით და ვიყენებთ სურათს დაბალი გარჩევადობით, როგორც ავტოინკოდერის შეყვანა.
- გენერაციული მოდელები. მას შემდეგ რაც ვავარჯიშებთ ავტოინკოდერს, დეკოდერის ნაწილი შეიძლება გამოყენებულ იქნას ახალი ობიექტების შესაქმნელად, შემთხვევითი ფარული ვექტორებიდან დაწყებული.
ვარიაციური ავტოკოდერები (VAE)
ტრადიციული ავტოკოდერები გარკვეულწილად ამცირებენ შეყვანის მონაცემების განზომილებას, აცნობიერებენ შეყვანის სურათების მნიშვნელოვან მახასიათებლებს. თუმცა, ლატენტურ ვექტორებს ხშირად დიდი აზრი არ აქვს. სხვა სიტყვებით რომ ვთქვათ, MNIST მონაცემთა ნაკრების მაგალითზე აყვანა, იმის გარკვევა, თუ რომელი ციფრები შეესაბამება სხვადასხვა ლატენტურ ვექტორებს, არ არის ადვილი ამოცანა, რადგან ახლო ფარული ვექტორები აუცილებლად არ შეესაბამება იმავე ციფრებს.
მეორეს მხრივ, გენერაციული მოდელების მოსამზადებლად უმჯობესია ლატენტური სივრცის გარკვეული გაგება. ეს იდეა მიგვიყვანს ვარიაციული ავტომატური კოდირებით (VAE).
VAE არის ავტოკოდერი, რომელიც სწავლობს ფარული პარამეტრების სტატისტიკური განაწილების წინასწარმეტყველებას, ე.წ. ლატენტური განაწილების. მაგალითად, შეიძლება გვსურს, რომ ფარული ვექტორები განაწილდეს ნორმალურად რაღაც საშუალო zmean და სტანდარტული გადახრით zsigma (როგორც საშუალო, ასევე სტანდარტული გადახრა არის ვექტორები გარკვეული განზომილების d). Encoder in VAE სწავლობს ამ პარამეტრების პროგნოზირებას, შემდეგ კი დეკოდერი იღებს შემთხვევით ვექტორს ამ განაწილებიდან ობიექტის რეკონსტრუქციისთვის.
შეჯამება:
- შეყვანის ვექტორიდან ჩვენ ვიწინასწარმეტყველებთ
z_meanდაz_log_sigma-ს (თვითონ სტანდარტული გადახრის პროგნოზირების ნაცვლად, ჩვენ ვიწინასწარმეტყველებთ მის ლოგარითმს) - ჩვენ ვატარებთ ვექტორს
sampleგანაწილებიდან N(zmean,exp(zlog_sigma)) - დეკოდერი ცდილობს ორიგინალური სურათის გაშიფვრას
sampleშეყვანის ვექტორის გამოყენებით

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

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

სურათი დიმიტრი სოშნიკოვი-ის მიერ
სავარჯიშოები: ავტოინკოდერები
შეიტყვეთ მეტი ავტოკოდერების შესახებ შესაბამის ნოუთბუქებში:
- ავტოკოდერები TensorFlow-ში
- ავტოკოდერები PyTorch-ში
ავტოენკოდერების თვისებები
- სპეციფიკური მონაცემთა - ისინი კარგად მუშაობენ მხოლოდ იმ ტიპის სურათებთან, რომლებზეც ტრენინგი გაიარეს. მაგალითად, თუ სუპერ რეზოლუციის ქსელს ვავარჯიშებთ ყვავილებზე, ის კარგად ვერ იმუშავებს პორტრეტებზე. ეს იმიტომ ხდება, რომ ქსელს შეუძლია შექმნას უფრო მაღალი გარჩევადობის გამოსახულება სასწავლო მონაცემთა ნაკრებიდან მიღებული ფუნქციების დეტალების აღებით.
- Lossy - რეკონსტრუირებული სურათი არ არის იგივე რაც ორიგინალური სურათი. დაკარგვის ბუნება განისაზღვრება დაკარგვის ფუნქციით, რომელიც გამოიყენება ვარჯიშის დროს
- მუშაობს არალეიბლიან მონაცემებზე
ლექციის შემდგომი ვიქტორინა
დასკვნა
ამ გაკვეთილზე თქვენ შეიტყვეთ AI მეცნიერისთვის ხელმისაწვდომი ავტოინკოდერების სხვადასხვა ტიპების შესახებ. თქვენ ისწავლეთ როგორ შექმნათ ისინი და როგორ გამოიყენოთ ისინი სურათების აღსადგენად. თქვენ ასევე შეიტყვეთ VAE-ის შესახებ და როგორ გამოიყენოთ იგი ახალი სურათების გენერირებისთვის.
გამოწვევა
ამ გაკვეთილზე თქვენ შეიტყვეთ სურათების ავტოინკოდერების გამოყენების შესახებ. მაგრამ მათი გამოყენება მუსიკისთვისაც შეიძლება! შეამოწმეთ Magenta პროექტის MusicVAE პროექტი, რომელიც იყენებს ავტოკოდერებს მუსიკის რეკონსტრუქციის შესასწავლად. გააკეთეთ ექსპერიმენტები ამ ბიბლიოთეკით, რომ ნახოთ, რისი შექმნა შეგიძლიათ.
ლექციის შემდგომი ვიქტორინა
მიმოხილვა და თვითშესწავლა
ცნობისთვის, წაიკითხეთ მეტი ავტოენკოდერების შესახებ ამ რესურსებში:
- კერასში ავტოინკოდერების აშენება
- ბლოგის პოსტი NeuroHive-ზე
- ვარიაციური ავტოენკოდერები განმარტებულია
- პირობითი ვარიაციული ავტოენკოდერები