ნეირონული ქსელები 3 წთ კითხვა

შესავალი ნერვულ ქსელებში. მრავალშრიანი პერცეტრონი

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

ამ განყოფილებაში ჩვენ გავაფართოვებთ ამ მოდელს უფრო მოქნილ ჩარჩოში, რაც საშუალებას მოგვცემს:

  • შეასრულეთ მრავალკლასიანი კლასიფიკაცია ორკლასიანი გარდა
  • კლასიფიკაციის გარდა რეგრესიული პრობლემების გადაჭრა
  • ცალკე კლასები, რომლებიც არ არის წრფივად განცალკევებული

ჩვენ ასევე განვავითარებთ ჩვენს მოდულურ ჩარჩოს Python-ში, რომელიც მოგვცემს საშუალებას ავაშენოთ სხვადასხვა ნერვული ქსელის არქიტექტურა.

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

მანქანათმცოდნეობის ფორმალიზაცია

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

  • რეგრესიის პრობლემისთვის, როდესაც ჩვენ გვჭირდება რიცხვის პროგნოზირება, შეგვიძლია გამოვიყენოთ აბსოლუტური შეცდომა &ჯუმ;i|f(x(i))-y(i)____HTML_5_s &ჯამ;i(f(x(i))-y(i))2
  • კლასიფიკაციისთვის ვიყენებთ 0-1 დაკარგვა (რაც არსებითად იგივეა, რაც მოდელის სიზუსტე), ან ლოგისტიკური დანაკარგი.

ერთი დონის პერცეპტრონისთვის ფუნქცია f განისაზღვრა, როგორც წრფივი ფუნქცია f(x)=wx+b (აქ w არის წონის მატრიცა, x არის შეყვანის მახასიათებლების ვექტორი და b არის მიკერძოების ვექტორი). სხვადასხვა ნერვული ქსელის არქიტექტურისთვის, ამ ფუნქციას შეუძლია უფრო რთული ფორმა მიიღოს.

კლასიფიკაციის შემთხვევაში ხშირად სასურველია ქსელის გამოსავალად შესაბამისი კლასების ალბათობების მიღება. თვითნებური რიცხვების ალბათობად გადაქცევისთვის (მაგ. გამომავალი ნორმალიზებისთვის), ჩვენ ხშირად ვიყენებთ softmax ფუნქციას σ და ფუნქცია f ხდება f(x)=σ(wx+b)

ზემოთ f-ის განმარტებაში w და b ეწოდება პარამეტრები θ=⟨w,b⟩. მონაცემთა ნაკრების ⟨X,Y⟩-ის გათვალისწინებით, ჩვენ შეგვიძლია გამოვთვალოთ საერთო შეცდომა მთელ მონაცემთა ბაზაზე, როგორც პარამეტრების ფუნქცია θ.

ნერვული ქსელის ტრენინგის მიზანია შეცდომის მინიმუმამდე შემცირება პარამეტრების ცვალებადობით θ

გრადიენტური წარმოშობის ოპტიმიზაცია

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

  • პარამეტრების ინიცირება რამდენიმე შემთხვევითი მნიშვნელობებით w(0), b(0)
  • რამდენჯერმე გაიმეორეთ შემდეგი ნაბიჯი:
    • w(i+1) = w(i)-η&ნაწილ;ℒ/∂w
    • b(i+1) = b(i)-η&ნაწილ;ℒ/∂b

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

მრავალშრიანი პერცეპტრონები და ზურგის გავრცელება

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

  • z1=w1x+b1
  • z2=w2&ალფა;(z1)+b2
  • f = σ(z2)

აი, &ალფა; არის არაწრფივი აქტივაციის ფუნქცია, σ არის softmax ფუნქცია და პარამეტრები θ=<*w1,b1,w2,b2____HTML_7.

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

  • &ნაწილი;&ლაგრანი;/&ნაწილი;w2 = (&ნაწილი;ℒ/&ნაწილ;σ)(&ნაწილ;σ/∂z2)(&ნაწილ;z2/&ნაწილი;w2____HTML_7
  • &ნაწილი;ℒ/&ნაწილი;w1 = (&ნაწილი;ℒ/&ნაწილი;σ)(&ნაწილ;σ/&ნაწილი;z2)(&ნაწილ;z2/&ნაწილ;&al ფა;)(&ნაწილი;&ალფა;/&ნაწილი;z1)(&ნაწილი;z1/&ნაწილი;w1)

ჯაჭვის დიფერენციაციის წესი გამოიყენება ზარალის ფუნქციის წარმოებულების გამოსათვლელად პარამეტრებთან მიმართებაში.

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

compute graph

TODO: სურათის ციტირება

ჩვენ უფრო დეტალურად განვიხილავთ საზურგეს ჩვენს ნოუთბუქის მაგალითში.

დასკვნა

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

გამოწვევა

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

გადადით საკუთარი ჩარჩო ნოუთბუქზე და დაამუშავეთ იგი.

ლექციის შემდგომი ვიქტორინა

მიმოხილვა და თვითშესწავლა

უკან გავრცელება არის ჩვეულებრივი ალგორითმი, რომელიც გამოიყენება AI-სა და ML-ში, შესასწავლად ღირს უფრო დეტალურად

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