Düsturlar və asan yollar
Python · 97
Bu kursdakı bütün düsturlar və yadda saxlamağın asan yolları bir səhifədə.
1Funksiyalar və modullarOrta
Funksiyalar
Dərsə keç- FFarenheyt dərəcəsi ilə temperatur
- CSelsi dərəcəsi ilə temperatur
Bu düsturu funksiyaya çevirək
2Python dərindənİrəli
İteratorlar və generatorlar
Dərsə keçDekoratorlar və qapanmalar
Dərsə keçKontekst menecerləri və with operatoru
Dərsə keçTip annotasiyaları və dataclass-lar
Dərsə keçQabaqcıl OYP: xüsusi metodlar, xassələr və MRO
Dərsə keçRequlyar ifadələr: re modulu
Dərsə keçAsinxron Python: async və await
Dərsə keçPaketlər, modullar və virtual mühitlər
Dərsə keçPerformans, Big-O və collections modulu
Dərsə keç3Veb və avtomatlaşdırmaİrəli
JSON və CSV ilə işləmək
Dərsə keçVeb API-lər və requests kitabxanası
Dərsə keçFastAPI ilə veb servis
Dərsə keçAvtomatlaşdırma skriptləri
Dərsə keç4Verilənlər elmi: NumPy, pandas, matplotlibUniversitet
NumPy-ın əsasları: massivlər
Dərsə keç- noxların sayı (
ndim) - dₖk-cı ox üzrə uzunluq (
shape-in elementi) - itemsizebir elementin bayt ilə ölçüsü:
float64vəint64üçün 8,float32vəint32üçün 4,boolvəint8üçün 1
Forması (2, 3) olan m üçün size = 2 · 3 = 6. temps üçün nbytes = 4 · 8 = 32 bayt.
- h
linspacenöqtələri arasındakı addım - n
arangemassivindəki elementlərin sayı - ⌈ ⌉yuxarı yuvarlaqlaşdırma
np.linspace(0, 1, 5): h = 1 / 4 = 0,25. np.arange(0, 10, 2): n = ⌈10 / 2⌉ = 5 element.
- x̄ədədi orta (
mean) - nqiymətlərin sayı
- σstandart meyl (
std), qiymətlərin ortadan orta hesabla nə qədər uzaqlaşdığı - ddof0 — baş məcmu üçün (NumPy-da susmaya görə), 1 — seçmə üçün (sürüşməsiz dispersiya)
np.std susmaya görə n-ə bölür, statistika dərslikləri və pandas-dakı Series.std isə n − 1-ə. Eyni nəticə üçün ddof=1 ötür.
NumPy: vektorlaşdırma və xətti cəbr
Dərsə keç- xᵢⱼi-ci nümunənin j-ci əlaməti
- μⱼ, σⱼj-ci sütunun ortası və standart meyli
- zᵢⱼstandartlaşdırılmış qiymət (z-bal): ortası 0, standart meyli 1
- aᵢₖA matrisinin i-ci sətir, k-cı sütundakı elementi
- bₖⱼB matrisinin k-cı sətir, j-ci sütundakı elementi
- nA-nın sütunlarının və B-nin sətirlərinin ortaq sayı
- det Adeterminant; 0-dırsa, matris cırlaşmışdır və tərsi yoxdur
- A⁻¹tərs matris: A · A⁻¹ = I (vahid matris)
- vməxsusi vektor (v ≠ 0)
- λməxsusi qiymət
- Ivahid matris
İkinci bərabərlik xarakteristik tənlikdir: (A − λI)v = 0 sisteminin sıfırdan fərqli həlli yalnız determinant 0 olanda var.
- Xn × d əlamətlər matrisi (birinci sütun birlərdir)
- yhədəf qiymətlər vektoru
- wkvadratik xətaların cəmini minimuma endirən əmsallar
pandas-ın əsasları: Series və DataFrame
Dərsə keç- qsəviyyə: 0,25 (birinci kvartil), 0,5 (median), 0,75 (üçüncü kvartil)
- x₍ₖ₎artan sıra ilə düzülmüş qiymətlərdən k-cısı (0-dan saymaqla)
- hsıralanmış verilənlərdə «kəsr mövqe»
pandas və NumPy susmaya görə kvantilləri iki qonşu qiymət arasında xətti interpolyasiya ilə hesablayır.
pandas ilə verilənlərin analizi
Dərsə keç- xᵢi-ci qrupun ortası (məsələn, orta çek)
- wᵢqrupun çəkisi — adətən müşahidələrin sayı
Çəkili orta. pandas-da: np.average(x, weights=w) və ya sadəcə ümumi cəmi ümumi saya bölmək.
- xₜcari dövrün göstəricisi
- xₜ₋₁əvvəlki dövrün göstəricisi
Artım tempi; pandas-da pct_change() bunu hesablayır (100-ə vurmadan). Birinci dövr üçün əvvəlki qiymət yoxdur, ona görə NaN alınır.
matplotlib ilə vizuallaşdırma
Dərsə keç- kintervalların sayı (Sturges qaydası)
- hintervalın eni (Freedman–Diaconis qaydası), verilənlərin vahidi ilə
- nmüşahidələrin sayı
- IQRkvartillərarası məsafə Q3 − Q1
Sturges normal paylanmaya yaxın və çox böyük olmayan verilənlər üçün yaxşıdır; Freedman–Diaconis kənar qiymətlərə davamlıdır. ax.hist(x, bins='fd') ikincisini avtomatik tətbiq edir.
- nᵢi-ci intervala düşən müşahidələr
- fᵢsütunun hündürlüyü
density=Truerejimində (sıxlıq) - hintervalın eni
ax.hist(x, density=True) sütunların sahələrinin cəmini 1 edir — belə histoqramı ehtimal sıxlığının əyrisi ilə müqayisə etmək olar.
Python ilə statistika
Dərsə keç- nseçmənin həcmi
- s²seçmə dispersiyası (vahidi — verilənlərin vahidinin kvadratı)
- sseçmə standart meyli (verilənlərlə eyni vahiddə); NumPy-da
std(ddof=1)
- Q1, Q3birinci və üçüncü kvartil (25% və 75%)
- IQRQ3 − Q1, verilənlərin ortadakı yarısının eni
Tükinin qaydası: bu intervaldan kənardakı qiymətlər kənar qiymət (outlier) sayılır. Burada: 14,75 + 1,5 · 1,75 = 17,375, deməli, 45 kənar qiymətdir.
- μpaylanmanın ortası
- σstandart meyl (σ > 0)
- f(x)ehtimal sıxlığı; P(a < X < b) — əyri altında a ilə b arasındakı sahədir
- zz-bal: standart normal paylanmada (μ = 0, σ = 1) mövqe
- SEortanın standart xətası
- σ, sbaş məcmunun və seçmənin standart meyli
- t*t-paylanmasının kritik qiyməti; 95% üçün α = 0,05
- n − 1sərbəstlik dərəcələrinin sayı
Orta üçün 95% etibarlılıq intervalı. stats.t.ppf(0.975, df=n - 1) t*-ı, stats.t.interval isə bütün intervalı qaytarır.
- x̄₁, x̄₂qrupların ortaları
- s₁², s₂²qrupların seçmə dispersiyaları
- n₁, n₂qrupların həcmi
Uelç t-statistikası: ortaların fərqi, onun standart xətasına bölünür. |t| nə qədər böyükdürsə, p o qədər kiçikdir.
- r−1 ≤ r ≤ 1; işarə istiqaməti, |r| gücü göstərir
- x̄, ȳhər dəyişənin ortası
scikit-learn ilə maşın öyrənməsi
Dərsə keç- yᵢ, ŷᵢhəqiqi qiymət və proqnoz
- RMSEhədəflə eyni vahiddə orta xəta (burada min manat)
- R²izah olunan variasiyanın payı: 1 — ideal, 0 — həmişə ortanı proqnozlaşdıran model səviyyəsi
Model əmsalları 1,48 və 11,06 tapıb — həqiqi 1,5 və 12-yə yaxındır. RMSE ≈ 9,8 verilənlərə qatdığımız küyün (σ = 10) səviyyəsidir: model siqnalı tam tutub, küyü isə proqnozlaşdırmaq mümkün deyil.
- σ(z)sigmoid: istənilən ədədi (0; 1) aralığına salır, σ(0) = 0,5
- pnümunənin müsbət sinfə aid olma ehtimalı; p ≥ 0,5 olanda «1» proqnozlaşdırılır
- pₖdüyündə k sinfinin payı
- G0 — düyün təmizdir (bir sinif), iki sinif üçün maksimum 0,5
- nL, nRsol və sağ övlad düyünlərdəki nümunələrin sayı
- Precision«spam» dediklərimizin neçə faizi həqiqətən spamdır
- Recallbütün spamın neçə faizini tuta bildik
- F1precision və recall-un harmonik ortası
- Nbütün nümunələrin sayı
- kqatların sayı, adətən 5 və ya 10
- scoreᵢi-ci qat test olanda alınan nəticə
5Süni intellekt və PyTorchUniversitet
Maşın öyrənməsinin əsas anlayışları
Dərsə keç- nnümunələrin sayı
- yᵢi-ci nümunənin həqiqi qiyməti (etiket)
- ŷᵢmodelin proqnozu
Orta kvadratik xəta (mean squared error). Kvadrata yüksəltmə böyük səhvləri daha ağır cəzalandırır; vahidi etiketin vahidinin kvadratıdır.
- Ksiniflərin sayı
- yₖk sinfi düzgündürsə 1, əks halda 0 (one-hot)
- pₖmodelin k sinfinə verdiyi ehtimal
- pₜdüzgün sinfin ehtimalı
Çarpaz entropiya (cross-entropy). İki sinif üçün: BCE = −[y · ln p + (1 − y) · ln(1 − p)]. Düzgün sinfin ehtimalı 1-ə yaxınlaşdıqca itki 0-a yaxınlaşır.
- θmodelin bütün parametrləri (çəkilər və sürüşmələr)
- ηöyrənmə sürəti, adətən 0,0001–0,1
- ∇L(θ)itkinin hər parametrə görə xüsusi törəmələrindən ibarət qradiyent vektoru
Qradiyent enişinin yeniləmə qaydası. Hər təkrar bir addımdır; bütün öyrədici dəstdən bir dəfə keçməyə epoxa deyilir.
- w, bxəttin bucaq əmsalı (çəki) və sərbəst həddi (sürüşmə)
- ŷᵢ − yᵢi-ci nümunədə səhv
- f̂(x)təsadüfi öyrədici dəstdən öyrədilmiş modelin proqnozu
- Biassistematik xəta: modelin çox sadə fərziyyələrindən yaranan orta səhv
- Vardispersiya: proqnozun konkret öyrədici dəstdən nə qədər asılı olduğu
- σ²verilənlərdəki aradan qaldırılmayan küy
MSE üçün sistematik xəta–dispersiya ayrılışı. Model mürəkkəbləşdikcə sistematik xəta azalır, dispersiya artır; ən yaxşı model cəmi minimuma endirir.
- λrequlyarlaşdırma gücü (hiperparametr, validasiya ilə seçilir)
- ∑ⱼ θⱼ²çəkilərin kvadratları cəmi — böyük çəkiləri cəzalandırır
L2 requlyarlaşdırma (weight decay): model daha «hamar» funksiyalar seçir və küyü əzbərləməyə daha az meyl edir.
PyTorch: tenzorlar
Dərsə keç- d₁ … dₖshape-in ölçüləri
- numelelementlərin sayı (
x.numel()) - sbir elementin ölçüsü, bayt (
x.element_size())
- A, Bölçüləri m × n və n × p olan matrislər
- ndaxili ölçü — hər iki matrisdə eyni olmalıdır
- CᵢⱼA-nın i-ci sətri ilə B-nin j-ci sütununun skalyar hasili
Matris hasili neyron şəbəkələrin əsas əməliyyatıdır: (N, D) ölçülü girişləri (D, K) çəkilər matrisinə vurmaqla bütün paketi bir anda emal edirik. Daha çox ölçülü tenzorlarda @ son iki oxa tətbiq olunur, qalan oxlar isə paket oxları sayılır.
PyTorch: autograd və avtomatik törəmə
Dərsə keç- Litki (qrafın kökü)
- y, ŷaralıq qiymətlər (qrafın daxili düyünləri)
- x, wyarpaqlar: girişlər və parametrlər
Mürəkkəb funksiyanın törəməsi lokal törəmələrin hasilinə bərabərdir. Bir dəyişən bir neçə yolla itkiyə təsir edirsə, bütün yollar üzrə hasillər toplanır: ∂L/∂x = ∑ₖ ∂L/∂yₖ · ∂yₖ/∂x.
- σ(z)siqmoid funksiyası, qiymətləri (0; 1) aralığında
- σ′(z)onun törəməsi; ən böyük qiyməti z = 0-da 0,25-dir
İsbat: σ′(z) = e⁻ᶻ / (1 + e⁻ᶻ)² = σ(z) · e⁻ᶻ / (1 + e⁻ᶻ), sonuncu kəsr isə 1 − σ(z)-dir.
PyTorch: neyron şəbəkələrin qurulması
Dərsə keç- xgiriş vektoru (n əlamət)
- wçəkilər — hər girişin əhəmiyyəti
- bsürüşmə (bias) — aktivləşmə həddini sürüşdürür
- φaktivasiya funksiyası (ReLU, siqmoid…)
- aneyronun çıxışı (aktivasiya)
- ReLUmənfi qiymətləri sıfırlayır; törəməsi z > 0 üçün 1, z < 0 üçün 0
- σsiqmoid: qiymətlər (0; 1) aralığında, ehtimal kimi şərh olunur
- tanhhiperbolik tangens: qiymətlər (−1; 1) aralığında, sıfıra görə simmetrik
- zK sinif üçün xam ballar (logitlər)
- softmax(z)ᵢi sinfinin ehtimalı; hamısı müsbətdir və cəmi 1-dir
Softmax çoxsinifli təsnifatda son qatın logitlərini ehtimallar paylanmasına çevirir.
- Xgirişlər paketi, forma (N, nin)
- Wçəkilər, forma (nout, nin) —
layer.weight - bsürüşmələr, forma (nout,) —
layer.bias - Yçıxışlar, forma (N, nout)
Hər çıxış neyronunun nin çəkisi və bir sürüşməsi var, buna görə tam əlaqəli qatda (nin + 1) · nout parametr olur.
PyTorch: modelin öyrədilməsi dövrü
Dərsə keç- Nöyrədici dəstdəki nümunələrin sayı
- Bpaketin ölçüsü (batch size)
- ⌈ ⌉yuxarı yuvarlaqlaşdırma: son natamam paket də bir addımdır
- zmodelin xam logitləri
- tdüzgün sinfin nömrəsi
nn.CrossEntropyLoss log-softmax ilə çarpaz entropiyanı birləşdirir: −ln softmax(z)ₜ = −zₜ + ln ∑ eᶻʲ. Paket üçün itkilərin orta qiyməti götürülür.
- gₜt addımındakı qradiyent
- mₜ, vₜqradiyentin və onun kvadratının sürüşən orta qiymətləri (impuls və miqyas)
- m̂ₜ, v̂ₜbaşlanğıc sürüşməsi düzəldilmiş qiymətlər: mₜ/(1 − β₁ᵗ), vₜ/(1 − β₂ᵗ)
- β₁, β₂, ε, ηPyTorch-da susmaya görə 0,9; 0,999; 10⁻⁸; 0,001
Adam optimallaşdırıcısı. Hər parametr öz addım ölçüsünü alır: qradiyenti daim böyük olan parametr ehtiyatla, kiçik olan isə daha cəsarətlə yenilənir. SGD-nin impulslu (momentum) variantı isə v ← μ·v + g, θ ← θ − η·v düsturu ilə işləyir.
- argmax(zᵢ)i-ci nümunə üçün ən böyük logitin sinfi — proqnoz
- [ … ]şərt doğrudursa 1, əks halda 0
Konvolyusiya neyron şəbəkələri (CNN)
Dərsə keç- x[0; 1] aralığındakı piksel qiyməti
- μ, σkanalın öyrədici dəst üzrə orta qiyməti və standart meyli (MNIST üçün 0,1307 və 0,3081)
Normallaşdırmadan sonra girişlər təxminən sıfır ətrafında və vahid miqyasdadır — bu, qradiyent enişini sürətləndirir.
- Xgiriş şəkli (və ya əvvəlki qatın xəritəsi)
- KK × K ölçülü filtr — öyrədilən çəkilər
- bfiltrin sürüşməsi
- Y[i, j]əlamətlər xəritəsinin (i, j) elementi
Bir kanal üçün 2D konvolyusiya. Bir neçə giriş kanalı olanda cəm kanallar üzrə də aparılır.
- Wgirişin eni (və ya hündürlüyü), piksel
- Kfiltrin ölçüsü
- Pdoldurma (padding): kənarlara əlavə olunan sıfır piksellər
- Saddım (stride): filtr neçə piksel sürüşür
- Oçıxışın eni; ⌊ ⌋ aşağı yuvarlaqlaşdırmadır
Çıxış ölçüsü düsturu. Hündürlük üçün də eynidir. Pooling üçün adətən P = 0 və S = K götürülür.
- Cin, Coutgiriş və çıxış kanallarının sayı
Konvolyusiya qatının parametrləri şəklin ölçüsündən asılı deyil — çəkilər bütün mövqelərdə paylaşılır.
Transformerlər və böyük dil modelləri
Dərsə keç- X(T, d) ölçülü tokenlərin vektorları
- WQ, WK, WVöyrədilən (d, dₖ) matrislər
- Q · Kᵀ(T, T) ballar matrisi: hər sorğunun hər açarla oxşarlığı
- √dₖmiqyas əmsalı, dₖ — açar vektorunun ölçüsü
- softmaxhər sətirdə tətbiq olunur: diqqət çəkiləri müsbətdir və cəmi 1-dir
- Vqiymətlər; nəticə onların çəkili ortasıdır
Miqyaslı skalyar hasil diqqəti (scaled dot-product attention).
- hbaşların sayı; hər başın ölçüsü d / h-dir
- WObaşların birləşmiş çıxışını qarışdıran (d, d) matris
Hər baş fərqli münasibətə «diqqət yetirməyi» öyrənə bilər: biri qrammatik əlaqələrə, digəri əvəzliyin kimə aid olduğuna. Parametrlər: WQ, WK, WV, WO üçün 4 · d² çəki və 4 · d sürüşmə.
- postokenin mövqeyi: 0, 1, 2, …
- ivektor komponentləri cütünün nömrəsi; kiçik i — sürətli, böyük i — yavaş rəqs
- dembeddinqin ölçüsü
- xₜmətndəki t-ci token
- p(xₜ₊₁ | x₁, …, xₜ)əvvəlki tokenlərə görə modelin düzgün növbəti tokenə verdiyi ehtimal
- PPLperpleksiya; nə qədər kiçikdirsə, model bir o qədər yaxşıdır
- τtemperatur: τ < 1 — daha əmin və təkrarlanan, τ > 1 — daha müxtəlif və riskli mətn
Temperaturlu softmax ilə növbəti tokenin seçilməsi.