Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Въведение в (Machine|Deep) Learning

Въведение в (Machine|Deep) Learning

Stefan Kanev

May 19, 2023
Tweet

More Decks by Stefan Kanev

Other Decks in Programming

Transcript

  1. интуиция за какво е невронна мрежа 1 2 3 да

    се зарибите да пробвате ясни следващи стъпки Цели за днес
  2. малко hand-waving ще “поопростя” някои неща ще говоря само за

    supervised learning ще пропусна ред интересни моменти все пак, ще съм фактологически коректен
  3. уви, има доста математика 
 линейна алгебра 
 “calculus” 


    статистика 
 изненадващо, не ви трябва да започнете, но помага
  4. някои автори сравняват невронните мрежи с човешкия мозък, но аз

    не харесвам това 
 безполезна аналогия 
 никой не знае още как работи човешкия мозък 
 по-скоро е вдъхновено от това, но се разбира по-добре през математическия модел
  5. f x y най-голямо число / max a, b a

    > b ? a : b сортиране на масив списък от неща подредени неща Д[еиа]йкстра граф най-кратък път Алгоритми
  6. m² етаж квартал цена 70 5 Люлин 80,000 90 1

    Лозенец 112,000 60 10 Център 140,000 120 10 Център 200,000 x y пример features labels
  7. m² етаж квартал цена 70 5 Люлин 80,000 90 1

    Лозенец 112,000 60 10 Център 140,000 120 10 Център 200,000 X y⃗
  8. правим “предположение” за формата на f 
 дефинираме “грешка” 


    търсим параметри за които грешката е минимална 
 (на практика ползваме готова библиотека, не го правим ръчно)
  9. правим “предположение” за формата на f 
 дефинираме “грешка” 


    търсим параметри за които грешката е минимална 
 (на практика ползваме готова библиотека, не го правим ръчно)
  10. f = a0 + a1x1 + a2x2 + a3x3 +

    … + anxn = y features label parameters / weights квадратура етаж квартал цена
  11. правим “предположение” за формата на f 
 дефинираме “грешка” 


    търсим параметри за които грешката е минимална 
 (на практика ползваме готова библиотека, не го правим ръчно)
  12. правим “предположение” за формата на f 
 дефинираме “грешка” 


    търсим параметри за които грешката е минимална 
 (на практика ползваме готова библиотека, не го правим ръчно)
  13. x₁ x₂ x₃ x₄ x₅ + y f = a0

    + a1x1 + a2x2 + a3x3 + … + anxn = y
  14. етаж 2 1 10 5 първи нисък висок 0 1

    0 1 0 0 0 0 1 0 0 0 one-hot-encoding + binning (of sorts)
  15. y = база + €кв×кв + €първи×първи + €нисък×нисък +

    €висок×висок y = 10,000 + 1,000×кв + -5,000×първи + -2,000×нисък + 10,000×висок
  16. y = база + €кв×кв + €лоз×лоз + €люл×люл +

    €цен×цен y = 10,000 + 1,000×кв + 10,000×лоз + -5,000×люл + 30,000×цен
  17. квартал кв² Лозенец 70 Люлин 120 Център 60 Лозенец 85

    лозенец × кв² център × кв² люлин × кв² 70 0 0 0 0 120 0 60 0 85 0 0 one-hot-encoding (ама наистина)
  18. y = база + €кв×кв + €лоз×кв×лоз×кв + €люл×кв×люл×кв +

    €цен×кв×цен×кв y = 10,000 + 1,000×кв + 200×лоз×кв + -100×люл×кв + 500×цен×кв
  19. всичко това се нарича feature engineering и е голяма част

    от процеса на (класически) machine learning също така е част от data science заяната (образно казано)
  20. f = 𝜎 (a0 + a1x1 + a2x2 + a3x3

    + … + anxn) = y f = a0 + a1x1 + a2x2 + a3x3 + … + anxn = y
  21. x₁ x₂ x₃ x₄ x₅ σ y f = 𝜎

    (a0 + a1x1 + a2x2 + a3x3 + … + anxn) = y
  22. какво значи “справя добре”? 
 прави хубави предвиждания за непознати

    данни 
 ако го натренираме на всички данни, има шанс да научи само тях добре, но да генерализира зле
  23. train test интерпретация 60% 60% under fi t 99% 65%

    over fi t 95% 94% супер* validation
  24. x₁ x₂ x₃ x₄ x₅ σ σ σ σ σ

    σ σ σ σ σ σ σ σ y
  25. x₁ x₂ x₃ x₄ x₅ σ σ σ σ σ

    σ σ σ σ σ σ σ σ y layers neuron
  26. ползваме много слоеве всеки слой може да има различен размер

    от съседите си обикновено вместо сигмоид ползваме набор от други “активационни функции” gradient descent си работи, но обновяваме теглата на всички слоеве на всяка стъпка (backpropagation) има вариации на типовете слоеве
  27. дълбоки мрежи могат да сложни функции започва да трябва много

    желязо започваме да ставаме жертви на fl oating point започва много да over fi t-ва започва да е гладно за много данни, понеже това помага с over fi t-а
  28. можем да вземем мрежа натренирана за друг (подобен) проблем на

    много данни 
 и да я fi ne-tune-нем за нашия проблем с много по-малко данни
  29. x₁ x₂ x₃ x₄ x₅ σ σ σ σ σ

    σ σ σ σ σ σ σ σ y
  30. ?