Fastai | Necə başlamaq lazımdır

Niyə bu sual?

"Fastai ilə necə başlayım?" Sualı uyğunsuz görünə bilər.

Yalnız ilk videoya baxın, elədir? Yox.

Fastai ilə ikili təcrübəm var. 2017-ci ilin oktyabr ayından tələbə kimi Beynəlxalq Təqaüd Proqramının üzvü (hissə 1 və 2) oldum. Digər həmkarlarımla birlikdə 2018-ci ildə Fastai kursunun köməyi ilə Brasiliyada dərin öyrənmə üçün ilk təhsil qrupuna başladım (hissə 1). sonra bu gün hissə 2 və ML haqqında da). Beləliklə mən də Fastai məzmunundan istifadə edərək müəllim oldum.

Fastai ilə bu ikili təcrübə üzündən bu gün bu təlimatı həm Brasiliyadakı kursumuzun yeni iştirakçıları, həm də Fastai Kitabxanası ilə Süni Zəkaya (AI) səyahətə başlamaq istəyənlər üçün yayımlayıram.

Bir neçə sözlə maşın öyrənmə

Süni zəkaya sahib ilk körpənin dünyaya gələcəyi gün sabah üçün deyil. Bu anda hər bir AI insan tərəfindən yaradılmalıdır ... və bunun üçün kod lazımdır!

Robot və genetik manipulyasiya xaricində AI öyrənmək üçün öyrədilməsi lazım olan bir alqoritm şəklində olur (çox vaxt süni sinir şəbəkələrinin bir modeli).

Praktikada alqoritm parametrləri (çəkilər də deyilir) əvvəlcə təsadüfi dəyərlərə malikdir ki, bunlar alqoritmə təqdim edilmiş müşahidələr (nümunələr də deyilir) istifadə edərək yenilənir. Bu metod “məlumat dəstindən öyrənmə” və ya maşın öyrənmə (bu gün çox yayılmış və geniş istifadə olunan dərin öyrənmə metodları, böyük bir hesablama dərinliyi ilə maşın öyrənmə) adlanır.

Əslində, alqoritmə verilən hər bir müşahidə, bu müşahidənin təbiətinin parametrləri üzərində yerinə yetirilən riyazi əməliyyatlarla hesablanmasının (çox vaxt ehtimalın) nəticəsini verir (məsələn, müşahidə pişik şəklidirsə, proqnoz nəticəsi olmalıdır) Bir pişiyə uyğun olan sinfi göstərin). Müşahidənin həqiqi dəyəri ilə əlaqəli səhv bundan sonra parametrlərin dəyərlərinin yenilənməsinə imkan verir (tez-tez səhv qradiyentinin əks əlaqə metodundan istifadə olunur).

Təlim daha sonra yeni bir müşahidə ilə davam edir və s.

Maşın Öyrənmə Tətbiq Kitabxanaları

Bu səbəbdən də maşın öyrənmə (ML) məlumat, hesablama gücü ... və alqoritmlərə malik olmalıdır. Bu səbəbdən bu alqoritmləri istehsalda tətbiq etmək, öyrətmək, sınaqdan keçirmək və sonra istifadə etmək üçün bir kodlaşdırma dilindən istifadə etməliyik.

AI-nin geniş miqyaslı qəbuluna başladığı 2010-cu illərin əvvəllərindən etibarən Python dili Jupyter dəftərlərində ML və dərin öyrənmə (DL) alqoritmlərini inkişaf etdirmək üçün dildir.

Bu alqoritmlərin arxitekturaları standartlaşdırılmaq üzrə olduğundan, Keras ilə TensorFlow (Google) və Fastai ilə PyTorch (Facebook) kimi istifadələrini sadələşdirmək üçün kitabxanalar hazırlanmışdır.

Fastai, kitabxanadan çox

Fastai həm ML və DL alqoritmləri üçün bir tətbiq kitabxanasıdır, həm də San Francisco Universitetinin Məlumat İnstitutunda başlayan və indi onlayn olaraq mövcud olan bir kursun adıdır (ML üzrə 1 kurs və DL üzrə 2 kurs).

Lakin onun yaradıcıları Jeremy HOWARD və Rachel THOMAS daha irəli getdilər. Həm də bunu etməklə öyrənməyə imkan verən yeni bir yuxarıdan aşağıya doğru öyrənmə metodudur və 10.000-dən çox insanın topluluğudur (bax: Jeremy Howard, "Oktyabr 2016, sürətli başlatma").

Hər kursda Fastai kitabxanasına daxil olan pulsuz bir yüklənə bilən video, forum mövzusu və Jupyter dəftərləri var.

Fastai ilə necə başlayacağam? Təlimatlar 4 addımda

Brasilia kursumuzda dörd əsas səbəbdən kursu bitirmək və ya həqiqətən istifadə edə bilməmək üçün çox sayda şagird gördüm: Python, Jupyter dəftərləri, GPU və ev tapşırığı.

1) Python

Python, Fastai kursunda və dəftərlərində istifadə olunan proqramlaşdırma dilidir. Fastai kursunu bitirmək üçün piton mütəxəssisi olmaq qəti tələb olunmadığı təqdirdə minimum təcrübə tələb olunur.

Onlayn kurslar:

  • İlk Python dəftəri
  • Python məlumat elmi dərsləri
  • Coursera-da Python kursları
  • Kitab: Python ilə Dərin Öyrənmə (François Chollet)

Aşağıdakı 2 Python kitabxanası Fastai dəftərlərində geniş istifadə olunur, ancaq kurs zamanı öyrənə bilərsiniz (bu bir şərt deyil).

NumPy

NumPy, Python ilə elmi hesablama üçün əsas paketdir. Dizilər, matrislər, vektorlar və yüksək ölçülü tensorlar üzərində sanki Python dəyişənləri kimi riyazi əməliyyatları təmin edir.

Onlayn kurslar: Numpy Tutorial və Python Numpy Tutorial.

Pandalar

Pandas, BSD lisenziyasına sahib olan açıq mənbəli kitabxanadır və Python proqramlaşdırma dili üçün güclü, istifadəçi dostu məlumat strukturları (məsələn, CSV sənədləri) və məlumat analiz vasitələri təklif edir. Pandas NumPy ilə çox yaxşı işləyir.

  • Curso de Introdução a Análise de Dados (portuqal dilində)
  • Onlayn kurslar: Pandalardakı təlimatların siyahısı.

2) Jupyter dəftəri

Jupyter layihəsi, Python başda olmaqla onlarla proqramlaşdırma dilində açıq mənbə proqramı, açıq standartlar və interaktiv hesablama xidmətləri hazırlamaq üçün qurulmuşdur. Hər hansı bir ML və ya DL alqoritminizi tətbiq etmək üçün Jupyter dəftərindən istifadə edəcəksiniz.

Onlayn kurslar:

  • 1: 30: 521: Jupyter Notebooklarına giriş
  • Jupyter Notebook əmrləri və qısa yolları - Jupyter dəftəri əmrləri və qısa yolları1 - 28 Jupyter dəftəri məsləhətləri, fəndləri və qısa yolları
  • Jupyter dəftərləri yaratmaq üçün Qatlanan / Genişlənən Jupyter Cells istifadə edin
  • Maraqlı Jupyter dəftərləri qalereyası: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Ən azı Python bilirsinizsə və Jupyter dəftərini necə istifadə edəcəyinizi bilirsinizsə, Fastai kitabxanasını və dəftərlərini bir GPU olan bir serverə quraşdırmalısınız.

Qeyd: Yerli bir NVIDIA GPU'nuz yoxdursa və onlayn olaraq istifadə etmək istəmirsinizsə, kompüterinizə Fastai yükləyə və yalnız CPU-nu istifadə edə bilərsiniz. Sonra ML / DL modelinizin təlim nəticəsini almaq biraz vaxt ala bilər ...

Niyə GPU? Təlim müddətini azaltmaq üçün bir ML və ya DL alqoritmi hazırlayarkən buna ehtiyacınız var. GPU olmadan milyonlarla məlumat üzərində bir ML və ya DL alqoritmini "asanlıqla" öyrədə bilməzsiniz.

Yerli CPU quraşdırılması xaricində iki seçiminiz var: ya kompüterinizdə NVIDIA GPU varsa yerli GPU'nuzu konfiqurasiya edə bilərsiniz və ya birini Google Cloud, Google Colab, PaperSpace, AWS və ya digərləri vasitəsilə onlayn kirayə edə bilərsiniz.

Onlayn Təlimatlar: Dərin Öyrənmə Brasília - Revisão məqaləsindəki GPU (Qrafik İşləmə Vahidləri) bölməsinə baxın və ya verilən linklərə müraciət edin.

CPU yerli

README.md sənədini oxuyun, ancaq aşağıdakıları edin:

  1. Windows üçün Anaconda quraşdırın
  2. Anaconda tərəfindən quraşdırılmış Anaconda Prompt terminalını açın və bu terminala aşağıdakı əmrləri daxil edin.
  3. mkdir fastai (fastai qovluğu yaratmaq üçün)
  4. cd fastai (fastai qovluğuna getmək üçün)
  5. git klonu https://github.com/fastai/fastai.git (Fastai virtual CPU mühitini qurmaq üçün dəftərlər və fayllar daxil olmaqla Fastai fayllarını yükləmək üçün: Pytorch, Numpy Kitabxanaları, Pandas, Bcolz və s.)
  6. conda env update -f environment-cpu.yml (Vacib: CPU-dan istifadə etmək istədiyiniz kimi Environment-cpu.yml faylını istifadə edin.)
  7. conda aktivləşdirmək fastai-cpu (virtual mühiti aktivləşdirmək üçün fastai-cpu)
  8. cd kursları \ ml1 (məs. ml1 qovluğuna daxil edin)
  9. del fastai (bash mühitində çalışmaq üçün yaradılmış symlink fastai silir)
  10. mklink / d fastai .. \ .. \ fastai (fastai kitabxanasının sənədlərini ehtiva edən fastai qovluğuna simli pəncərə fastai yaradın)
  11. cd .. \ .. (Addım 3-də yaradılan qovluq kökünə qayıtmaq üçün ml1 qovluğundan çıxın.)
  12. Jupyter Notebook (Veb brauzerində açılan Jupyter Notebook'u başladın.)

“Et voilà”: CPU ilə işləyən kompüterinizdə Fastai kitabxanasını (və dəftərlərini) quraşdırmısınız və ml1 qovluğundakı bütün dəftərləri işlədə bilərsiniz.

GPU yerli

  • Necə: Windows altında quraşdırma

GPU onlayn

  • Google Bulud Platforması (300 dollar kredit)
  • Kağız boşluğu (15 dollar kredit)
  • Clouderizer + Google Colab (PULSUZ !!!)
  • Amazon Veb Xidmətləri (AWS)
  • Crestle

Virtual maşınınızı söndürməyi unutmayın !!!

4) ev tapşırığı

Jeremy Howard, sinifindəki hər video üçün 10 saatdan çox şəxsi işi paylaşır ... və haqlıdır!

Əslində, yalnız prinsipləri başa düşməklə kifayətlənmədən ML və DL necə edəcəyinizi öyrənmək istəyirsinizsə, TƏCRÜBƏ etməlisiniz.

Yuxarıda təqdim olunan elementlər (xülasə: Python dilini bilmə və Jupyter dəftərinin istifadəsi, həmçinin GPU-da Fastai kitabxanasının quraşdırılması) zəruridir, lakin kifayət deyil.

Həqiqətən öyrənmək üçün videoları bir neçə dəfə izləməlisən, Fastai dəftərlərini işlədin, kod xətlərini araşdırasan, başa düşmədiyin halda Fastai forumunda suallar verəsən, başqalarının suallarını cavablandırasan və anlayışını yaxşılaşdırmaq üçün məqalələr dərc et. Bu həqiqi öyrənmədir!

Bir söz daha: Zövq alın! :-)