Majid Al-RaimiReference sheetالورقة المرجعية

COE 592Lecture 02المحاضرة 02Referenceالمرجع

Reference sheetالورقة المرجعية

Neural network fundamentals compressed onto one page: the definitions, formulas and numbers to have in your head before a quiz or exam.محاضرة «أساسيات الشبكات العصبية» مضغوطة في صفحة واحدة: التعريفات والمعادلات والأرقام التي يجب أن تكون حاضرة في ذهنك قبل الاختبار القصير أو الامتحان.

Vocabulary and the two countsالمفردات والعددان

Parameters are stored (flash), activations are computed per input (SRAM). A network fits a microcontroller only when both fit: the STM32F746 has 320 kB SRAM and 1 MB flash, and ResNet-50's 25.6 M parameters are about 100 MB in fp32. Part 01: Neurons and linear layers

المعاملات تُخزَّن (flash)، والتفعيلات تُحسب لكل مدخل (SRAM). لا تناسب الشبكة متحكمًا دقيقًا إلا إذا ناسبه الاثنان معًا: المتحكم STM32F746 فيه 320 kB من SRAM و1 MB من flash، بينما معاملات ResNet-50 البالغة 25.6 M تشغل نحو 100 MB بصيغة fp32. الجزء 01: الخلايا العصبية والطبقات الخطية

yj=f(∑iwixi+b)y_j = f\left(\sum_i w_i x_i + b\right)
One neuron: c_i weights, one bias, one activation functionعصبون واحد: c_i من الأوزان، وانحياز واحد، ودالة تنشيط واحدة
Diagram elementعنصر الرسمNamesالأسماءBehaviourالسلوكMemoryالذاكرة
EdgeالحافةSynapse, weight, parameterمشبك عصبي، وزن، معاملStored after training, one per connectionتُخزَّن بعد التدريب، واحدة لكل اتصالFlash
NodeالعقدةNeuron, feature, activationخلية عصبية، سمة، تفعيلRecomputed for every input, one per computed unitيُعاد حسابها لكل مدخل، واحدة لكل وحدة محسوبةSRAM
BiasالانحيازOne per neuron, never per edgeواحد لكل خلية عصبية، وليس لكل حافة أبدًاStored, counted with the weightsيُخزَّن، ويُعدّ مع الأوزانFlash
WidthالعرضSize of a hidden layerحجم الطبقة المخفيةGoodfellow, Bengio and Courville
DepthالعمقNumber of layers in the chain, input row not countedعدد الطبقات في السلسلة، دون عدّ صف المدخل5-4-3-2 is a 3-layer network, 2 hiddenالشبكة 5-4-3-2 شبكة من 3 طبقات، منها 2 مخفيتان
Synonym families and where each count livesعائلات المترادفات وأين يقع كل عدد

Fully connected layer and MLPالطبقة كاملة الاتصال وشبكة MLP

Y=X WT+b,yi=∑jwij xj+bi\mathbf{Y} = \mathbf{X}\,\mathbf{W}^{T} + \mathbf{b}, \qquad y_i = \sum_j w_{ij}\, x_j + b_i
W is (c_o, c_i), indexed (output, input), matching PyTorch nn.LinearW بأبعاد (c_o, c_i) ومفهرسة (المخرج، المدخل)، تطابقًا مع nn.Linear في PyTorch

Shapes and countsالأشكال والأعداد

X
(n, c_i)
W
(c_o, c_i)
b
(c_o,)
Y
(n, c_o)
Parametersالمعاملات
c_o × c_i + c_o
Activations per sampleالتفعيلات لكل عيّنة
Sum of layer widths, plus the input if budgeting memoryمجموع عروض الطبقات، ويُضاف المدخل عند حساب ميزانية الذاكرة
NetworkالشبكةWeightsالأوزانBiasesالانحيازاتParametersالمعاملاتActivations per sampleالتفعيلات لكل عيّنة
Slide 4, 5-4-3-2الشريحة 4، 5-4-3-220 + 12 + 6 = 384 + 3 + 2 = 9479
Slide 5, 5 to 3الشريحة 5، من 5 إلى 3153183
Slide 7, 5 to 3 to 2الشريحة 7، من 5 إلى 3 إلى 215 + 6 = 213 + 2 = 5265 (10 with inputs)5 (10 مع المدخلات)
CS231n, 3-4-4-1CS231n، 3-4-4-112 + 16 + 4 = 324 + 4 + 1 = 9419
MNIST 784 to 128MNIST من 784 إلى 128100,352128100,480 (392 KiB fp32)100,480 (392 KiB بصيغة fp32)912 (7,296 at n = 8)912 (7,296 عند n = 8)
Worked parameter and activation countsأعداد المعاملات والتفعيلات محسوبة

Convolution shapes and output sizeأشكال الالتفاف وحجم المخرج

Each output sees only the k inputs in its receptive field (sparse) and the same filter is reused at every position (weight sharing), so the parameter count never depends on h_i or w_i. Part 02: Convolution layers

كل مخرج لا يرى إلا المدخلات الـ k الواقعة في حقله الاستقبالي (اتصال متناثر sparse)، والمرشّح نفسه يُعاد استخدامه في كل موضع (مشاركة الأوزان weight sharing)، لذلك لا يعتمد عدد المعاملات أبدًا على h_i أو w_i. الجزء 02: طبقات الالتفاف

TensorالموترFully connectedكاملة الاتصال1D convالتفاف أحادي البعد2D convالتفاف ثنائي البعد
X(n, c_i)(n, c_i, w_i)(n, c_i, h_i, w_i)
Y(n, c_o)(n, c_o, w_o)(n, c_o, h_o, w_o)
W(c_o, c_i)(c_o, c_i, k_w)(c_o, c_i, k_h, k_w)
b(c_o,)(c_o,)(c_o,)
Tensor shapes, PyTorch order, output channels first in Wأشكال الموترات بترتيب PyTorch، وقنوات المخرج أولًا في W
ho=⌊hi+2p−khs⌋+1,p=k−12 keeps the size at s=1h_o = \left\lfloor \frac{h_i + 2p - k_h}{s} \right\rfloor + 1, \qquad p = \frac{k - 1}{2} \text{ keeps the size at } s = 1
General output size; p = 0 and s = 1 give h_i - k_h + 1حجم المخرج العام؛ p = 0 وs = 1 تعطيان h_i - k_h + 1
h_ih_ikkssppArithmeticالحسابh_oh_o
4310(4 - 3)/1 + 12
4220(4 - 2)/2 + 12
5311(5 + 2 - 3)/1 + 15
32510(32 - 5)/1 + 128
32512(32 + 4 - 5)/1 + 132
32522floor(31/2) + 116
8320floor(5/2) + 13, not 3.53 وليس 3.5
224723floor(223/2) + 1112
Output height for the configurations in the lectureارتفاع المخرج للإعدادات الواردة في المحاضرة
Y[o,i,j]=b[o]+∑c=0ci−1∑u=0kh−1∑v=0kw−1W[o,c,u,v] X[c,  si+u,  sj+v]Y[o, i, j] = b[o] + \sum_{c=0}^{c_i - 1} \sum_{u=0}^{k_h - 1} \sum_{v=0}^{k_w - 1} W[o, c, u, v]\, X[c,\; s i + u,\; s j + v]
One output value sums every input channel into one number, then adds the biasالقيمة المخرجة الواحدة تجمع كل قنوات الإدخال في رقم واحد ثم تضيف الانحياز

Slide 15 worked numbersأرقام الشريحة 15 محسوبة

Setupالإعداد
X (1, 2, 4, 4), W (1, 2, 2, 2), stride 2, no padding, no biasX (1, 2, 4, 4)، W (1, 2, 2, 2)، خطوة 2، بلا حشو، بلا انحياز
Output sizeحجم المخرج
(4 - 2)/2 + 1 = 2, so 2 × 2(4 - 2)/2 + 1 = 2، إذن 2 × 2
Top leftأعلى اليسار
channel 1 2·1 + 1·2 + 1·1 + 2·2 = 9, channel 2 1·5 + 2·6 + 2·5 + 1·6 = 33, sum 42القناة 1: 2·1 + 1·2 + 1·1 + 2·2 = 9، القناة 2: 1·5 + 2·6 + 2·5 + 1·6 = 33، المجموع 42
Top rightأعلى اليمين
channel 1 21, channel 2 45, sum 66القناة 1: 21، القناة 2: 45، المجموع 66
Resultالنتيجة
[[42, 66], [42, 66]]
Stride 1 insteadبخطوة 1 بدلًا من ذلك
3 × 3 output, middle column 15 + 39 = 54, one row 42, 54, 66مخرج 3 × 3، العمود الأوسط 15 + 39 = 54، وصف واحد 42, 54, 66

Parameter counts, conv versus FCعدد المعاملات: الالتفاف مقابل الطبقة كاملة الاتصال

#paramsconv=co⋅ci⋅kh⋅kw+co,#paramsFC=co⋅ci+co\#\text{params}_{\text{conv}} = c_o \cdot c_i \cdot k_h \cdot k_w + c_o, \qquad \#\text{params}_{\text{FC}} = c_o \cdot c_i + c_o
Multiply the four numbers in the shape of W, then add c_o biasesاضرب الأرقام الأربعة في أبعاد W، ثم أضف c_o من الانحيازات
LayerالطبقةArithmeticالحسابParametersالمعاملاتDepends on image size?هل يعتمد على حجم الصورة؟
Conv2D 16 filters 5 × 5, 3 to 16Conv2D بـ 16 مرشحًا 5 × 5، من 3 إلى 1616 × 3 × 5 × 5 + 161216Noلا
Same layer, 3 × 3 kernelsالطبقة نفسها بنوى 3 × 316 × 3 × 9 + 16448Noلا
Same layer, 32 filtersالطبقة نفسها بـ 32 مرشحًا32 × 75 + 322432Noلا
Conv2D 128 filters 3 × 3, 64 to 128Conv2D بـ 128 مرشحًا 3 × 3، من 64 إلى 128128 × 64 × 9 + 12873,856Noلا
AlexNet conv1, 96 filters 11 × 11, 3 to 96الطبقة conv1 في AlexNet، 96 مرشحًا 11 × 11، من 3 إلى 9696 × 3 × 121 + 9634,944 (105.7 M unshared)34,944 (105.7 M دون مشاركة الأوزان)Noلا
FC 32 × 32 × 3 = 3072 to 16كاملة الاتصال 32 × 32 × 3 = 3072 إلى 163072 × 16 + 1649,168Yesنعم
FC 64 × 64 × 3 = 12,288 to 16كاملة الاتصال 64 × 64 × 3 = 12,288 إلى 1612,288 × 16 + 16196,624Yesنعم
Worked counts, all on a 32 × 32 × 3 input unless statedأعداد محسوبة، كلها على مدخل 32 × 32 × 3 ما لم يُذكر غير ذلك

Padding, stride and receptive fieldالحشو والخطوة والحقل الاستقبالي

Padding and stride change h_o × w_o, hence activations and MACs, and never the parameter count. Part 03: Padding, stride and grouped convolution

الحشو والخطوة يغيّران h_o × w_o، وبالتالي عدد التفعيلات وعمليات MAC، ولا يغيّران عدد المعاملات أبدًا. الجزء 03: الحشو والخطوة والالتفاف المجمّع

ModeالنمطRuleالقاعدةRow 0الصف 0
Zero (default)الصفري (الافتراضي)Fill the border with 0املأ الإطار بالقيمة 00 0 0 0 0 0 0
ReflectionالانعكاسMirror across the edge, edge value not repeated, needs p < input sizeمرآة حول الحافة دون تكرار قيمة الحافة، ويتطلب p أصغر من حجم المدخل9 8 7 8 9 8 7
ReplicationالتكرارRepeat the nearest edge value outwardكرّر أقرب قيمة على الحافة نحو الخارج1 1 1 2 3 3 3
ConstantالثابتFill the border with a chosen value vاملأ الإطار بقيمة مختارة vv v v v v v v
Padding modes on the slide 16 grid (3 × 3 image holding 1 to 9, p = 2, row 0 of the 7 × 7 result)أنماط الحشو على شبكة الشريحة 16 (صورة 3 × 3 تحوي القيم من 1 إلى 9، p = 2، الصف 0 من النتيجة 7 × 7)
RFL=1+∑l=1L(kl−1)∏i=1l−1si,RFL=L (k−1)+1 when every stride is 1RF_L = 1 + \sum_{l=1}^{L} (k_l - 1) \prod_{i=1}^{l-1} s_i, \qquad RF_L = L\,(k - 1) + 1 \text{ when every stride is } 1
Each layer adds (k - 1) times the product of the strides before it (the jump)كل طبقة تضيف (k - 1) مضروبًا في حاصل ضرب الخطوات التي قبلها (القفزة jump)
LLAll stride 1كل الخطوات 1First layer stride 2خطوة 2 في الطبقة الأولىEvery layer stride 2خطوة 2 في كل طبقة
1333
2577
371115
491531
Receptive field after L layers of 3 × 3الحقل الاستقبالي بعد L طبقة 3 × 3

Grouped and depthwise convolutionالالتفاف المجمّع والالتفاف العمقي

W:(co,  cig,  kh,  kw),#weights=co⋅cig⋅khkw,MACs=#weights⋅howo\mathbf{W}: \left(c_o,\; \tfrac{c_i}{g},\; k_h,\; k_w\right), \qquad \#\text{weights} = c_o \cdot \tfrac{c_i}{g} \cdot k_h k_w, \qquad \text{MACs} = \#\text{weights} \cdot h_o w_o
g must divide both c_i and c_o. Depthwise is g = c_i = c_o, one k × k filter per channelيجب أن يقسم g كلًا من c_i وc_o. والعمقي هو g = c_i = c_o، أي مرشح k × k واحد لكل قناة
LayerالطبقةW shapeشكل WWeightsالأوزانWeights + biasesالأوزان مع الانحيازاتFewer than standardأقل من القياسي بـ
Standard, g = 1قياسي، g = 1(64, 64, 3, 3)36,86436,9281×
Grouped, g = 2مجمّع، g = 2(64, 32, 3, 3)18,43218,4962×
Grouped, g = 4مجمّع، g = 4(64, 16, 3, 3)9,2169,2804×
Grouped, g = 8مجمّع، g = 8(64, 8, 3, 3)4,6084,6728×
Depthwise, g = 64عمقي، g = 64(64, 1, 3, 3)57664064×
Depthwise + 1 × 1 pointwiseعمقي مع نقطي 1 × 1(64, 1, 3, 3) + (64, 64, 1, 1)576 + 4,096 = 4,6724,8007.9×
c_i = c_o = 64, k = 3, biases included in the fourth columnc_i = c_o = 64، k = 3، والانحيازات محسوبة في العمود الرابع

Depthwise separable cost ratio (Howard et al.): 1/N + 1/D_K², so 1/64 + 1/9 ≈ 0.127, about 7.9× cheaper. On a 56 × 56 map: 115.6 M MACs standard against 14.7 M separable. A depthwise layer never mixes channels; the 1 × 1 pointwise layer (c_o · c_i weights) restores mixing. Grouped convolution does not change h_o, w_o or c_o.

نسبة تكلفة الالتفاف العمقي القابل للفصل (depthwise separable) بحسب Howard et al.: 1/N + 1/D_K²، أي 1/64 + 1/9 ≈ 0.127، فهو أرخص بنحو 7.9×. على خريطة 56 × 56: 115.6 M عملية MAC للالتفاف القياسي مقابل 14.7 M للقابل للفصل. الطبقة العمقية لا تمزج القنوات أبدًا، وطبقة 1 × 1 النقطية (pointwise) (بعدد أوزان c_o · c_i) تعيد المزج. الالتفاف المجمّع لا يغيّر h_o ولا w_o ولا c_o.

Poolingالتجميع (Pooling)

A fixed summary of a window inside each channel independently: spatial size drops, channel count unchanged, zero parameters. Part 04: Pooling and CNN features

ملخص ثابت لنافذة داخل كل قناة على حدة: الحجم المكاني يقل، وعدد القنوات لا يتغير، وعدد المعاملات صفر. الجزء 04: التجميع وسمات شبكات CNN

W2=⌊W1−FS⌋+1,H2=⌊H1−FS⌋+1,C2=C1,parameters=0W_2 = \left\lfloor \frac{W_1 - F}{S} \right\rfloor + 1, \qquad H_2 = \left\lfloor \frac{H_1 - F}{S} \right\rfloor + 1, \qquad C_2 = C_1, \qquad \text{parameters} = 0
The convolution formula with p = 0 and the kernel renamed F; PyTorch floors unless ceil_modeصيغة الالتفاف مع p = 0 وتسمية النواة F؛ وPyTorch تقرّب للأسفل ما لم يُفعَّل ceil_mode
Max poolingالتجميع الأقصىAverage poolingالتجميع المتوسط
What it returnsما يُرجعهLargest value in the windowأكبر قيمة في النافذةMean of the windowمتوسط النافذة
Shift by one cellالإزاحة بخلية واحدةUsually unchanged (approximate translation invariance)لا يتغير في الغالب (ثبات تقريبي أمام الإزاحة)Changes slightlyيتغير قليلًا
GradientالتدرجRouted to the argmax cell onlyيُوجَّه إلى خلية argmax فقط1/F² to every cell1/F² لكل خلية
Typical placeالموضع المعتادInside the trunk after a conv blockداخل الجذع بعد كتلة التفافGlobal average pool as the headتجميع متوسط شامل في رأس الشبكة
Slide 22 slice, F = 2, S = 2مقطع الشريحة 22، F = 2، S = 2[[6, 8], [3, 4]][[3.25, 5.25], [2, 2]]
Max against averageالأقصى مقابل المتوسط
Input, F, Sالمدخل، F، SArithmeticالحسابOutputالمخرج
224, F = 2, S = 2(224 - 2)/2 + 1112, activations 3,211,264 to 802,816112، والتفعيلات من 3,211,264 إلى 802,816
224, F = 3, S = 2(224 - 3)/2 + 1 = 111.5111 floored, 112 with ceil_mode111 بالتقريب للأسفل، و112 مع ceil_mode
55, F = 3, S = 2 (AlexNet)(55 - 3)/2 + 127
56 × 56 × 128, F = 3, S = 2(56 - 3)/2 + 1 = 27.527 × 27 × 128
4, F = 3, S = 2(4 - 3)/2 + 1 = 1.51 × 1, value [[7]]1 × 1، والقيمة [[7]]
Pooling configurations workedإعدادات تجميع محسوبة

Feature hierarchy and full network countsهرمية السمات وعدّ الشبكة كاملة

TierالمستوىLayersالطبقاتResponds toتستجيب لـReceptive fieldالحقل الاستقبالي
LowمنخفضFirst conv layersطبقات الالتفاف الأولىOriented edges, bars, blobsحواف موجّهة، وأشرطة، وبقع3 × 3 to 11 × 11 px3 × 3 إلى 11 × 11 بكسل
MidمتوسطMiddle layersالطبقات الوسطىEyes, wheels, tusks, chair legsعيون، وعجلات، وأنياب، وأرجل كراسٍtens of pixelsعشرات البكسلات
HighمرتفعDeepest layersأعمق الطبقاتWhole faces, cars, elephants, chairsوجوه كاملة، وسيارات، وأفيال، وكراسٍmost of the imageمعظم الصورة
Edges, parts, objects (Lee et al. 2009; Zeiler and Fergus 2013)حواف، ثم أجزاء، ثم أجسام (Lee et al. 2009؛ Zeiler and Fergus 2013)
LayerالطبقةOutputالمخرجParametersالمعاملات
inputالمدخل32 × 32 × 30
conv 16 × 5 × 5 × 3, pad 2التفاف 16 × 5 × 5 × 3، حشو 232 × 32 × 161216
max pool 2, stride 2تجميع أقصى 2، خطوة 216 × 16 × 160
conv 20 × 5 × 5 × 16, pad 2التفاف 20 × 5 × 5 × 16، حشو 216 × 16 × 208020
max pool 2, stride 2تجميع أقصى 2، خطوة 28 × 8 × 200
conv 20 × 5 × 5 × 20, pad 2التفاف 20 × 5 × 5 × 20، حشو 28 × 8 × 2010,020
max pool 2, stride 2تجميع أقصى 2، خطوة 24 × 4 × 200
softmax 320 to 10softmax من 320 إلى 10103210
Totalالمجموع22,466
ConvNetJS CIFAR-10 demo (slide 25)عرض ConvNetJS على CIFAR-10 (الشريحة 25)
LayerالطبقةOutputالمخرجParametersالمعاملات
inputالمدخل64 × 64 × 30
conv_1_1, 10 × 3 × 3, validconv_1_1، 10 × 3 × 3، بلا حشو (valid)62 × 62 × 10280
conv_1_2, 10 × 3 × 3, validconv_1_2، 10 × 3 × 3، بلا حشو (valid)60 × 60 × 10910
max_pool_1, 2, stride 2max_pool_1، 2، خطوة 230 × 30 × 100
conv_2_128 × 28 × 10910
conv_2_226 × 26 × 10910
max_pool_213 × 13 × 100
flatten 1690, dense 10تسطيح (flatten) 1690، طبقة كثيفة 101016,910
Totalالمجموع19,920
CNN Explainer Tiny VGG (slide 26)شبكة Tiny VGG في CNN Explainer (الشريحة 26)

Only the first fully connected layer's count depends on image size (320 inputs in ConvNetJS, 1690 in Tiny VGG). The SRAM high-water mark is the largest activation tensor, in Tiny VGG the 62 × 62 × 10 = 38,440 output of the first conv.

عدد معاملات أول طبقة كاملة الاتصال فقط هو الذي يعتمد على حجم الصورة (320 مدخلًا في ConvNetJS، و1690 في Tiny VGG). أعلى استهلاك لـ SRAM هو أكبر موتر تفعيلات، وفي Tiny VGG هو مخرج أول طبقة التفاف 62 × 62 × 10 = 38,440.

Batch normalizationتطبيع الدفعة (Batch normalization)

Inputs that are off-centre force a large bias; inputs with different scales force W entries to span magnitudes. BN standardizes each feature over the batch with a differentiable map inside the network. Part 05: Normalization

المدخلات غير المتمركزة حول الصفر تفرض انحيازًا (bias) كبيرًا، والمدخلات ذات المقاييس المختلفة تجبر عناصر W على أن تمتد عبر رتب مقادير مختلفة. يقوم BN بتوحيد مقياس كل سمة عبر الدفعة بتحويل قابل للاشتقاق داخل الشبكة. الجزء 05: التطبيع

μj=1N∑ixi,j,σj2=1N∑i(xi,j−μj)2,x^i,j=xi,j−μjσj2+ε,yi,j=γj x^i,j+βj\mu_j = \frac{1}{N}\sum_{i} x_{i,j}, \quad \sigma_j^2 = \frac{1}{N}\sum_{i} (x_{i,j} - \mu_j)^2, \quad \hat{x}_{i,j} = \frac{x_{i,j} - \mu_j}{\sqrt{\sigma_j^2 + \varepsilon}}, \quad y_{i,j} = \gamma_j\,\hat{x}_{i,j} + \beta_j
Per feature, over the batch. Biased variance during trainingلكل سمة، عبر الدفعة. تباين متحيز أثناء التدريب

Shapes and defaults for a fully connected inputالأشكال والقيم الافتراضية لمدخل طبقة كاملة الاتصال

x, x_hat, y
N × D
mu, sigma squared
D, computed over the batch axis ND، تُحسب على محور الدفعة N
gamma, beta
D, the only learned parametersD، وهما المعاملان الوحيدان المتعلَّمان
eps, momentum (PyTorch)
1e-5, 0.1
Identity recoveryاستعادة الدالة المحايدة
gamma = sqrt(sigma² + eps), beta = mu
BatchNorm2d over C channelsBatchNorm2d على C قناة
2C parameters, running mean and variance are buffers2C معامل، والمتوسط والتباين المتحركان مخازن (buffers) وليسا معاملات
W′=diag⁡ ⁣(γσ2+ε)W,b′=γ⊙b−μσ2+ε+βW' = \operatorname{diag}\!\left(\frac{\gamma}{\sqrt{\sigma^2 + \varepsilon}}\right) W, \qquad b' = \gamma \odot \frac{b - \mu}{\sqrt{\sigma^2 + \varepsilon}} + \beta
BN fusion at inference: frozen running statistics make BN affine, so it folds into the previous linear or conv layer at zero costدمج BN عند الاستدلال: الإحصاءات الجارية المجمدة تجعل BN تحويلًا أفينيًا (affine)، فيُدمج في الطبقة الخطية أو الالتفافية السابقة بلا كلفة

Normalization axesمحاور التطبيع

x^i=xi−μiσi,μi=1m∑k∈Sixk\hat{x}_i = \frac{x_i - \mu_i}{\sigma_i}, \qquad \mu_i = \frac{1}{m}\sum_{k \in S_i} x_k
Wu and He: one rule, the set S_i picks BN, LN, IN or GNWu وHe: قاعدة واحدة، والمجموعة S_i تختار BN أو LN أو IN أو GN
NormalizationالتطبيعAverages overيحسب المتوسط علىmu, sigma shapeشكل mu وsigmagamma, beta shapeشكل gamma وbetaSame at train and test?هل هو نفسه في التدريب والاختبار؟
BN, fully connectedBN، طبقة كاملة الاتصالN1 × D1 × DNoلا
BN, convolutionBN، التفافN, H, W1 × C × 1 × 11 × C × 1 × 1Noلا
Layer normتطبيع الطبقةD (or C, H, W)D (أو C, H, W)N × 11 × D on slide 35, per channel in Wu and He1 × D في الشريحة 35، ولكل قناة عند Wu وHeYesنعم
Instance normتطبيع النسخةH, WN × C × 1 × 11 × C × 1 × 1Yesنعم
Group norm, G groupsتطبيع المجموعات، G مجموعةH, W and C/G channelsH وW وC/G قناةN × G × 1 × 11 × C × 1 × 1Yesنعم
The family on a conv activation of shape N × C × H × Wالعائلة على تفعيل التفاف شكله N × C × H × W
Normالتطبيعmu shapeشكل muValues per meanعدد القيم لكل متوسط
BN1 × 64 × 1 × 18 × 32 × 32 = 8192
LN8 × 1 × 1 × 164 × 32 × 32 = 65,536
IN8 × 64 × 1 × 132 × 32 = 1024
GN, G = 328 × 32 × 1 × 12 × 1024 = 2048
Worked on 8 × 64 × 32 × 32مثال محسوب على 8 × 64 × 32 × 32
RowالصفFeature 1السمة 1Feature 2السمة 2Feature 3السمة 3
After ReLUبعد ReLU3, 1, 3, 20, 2, 3, 00, 5, 2, 0
Mean (divide by N = 4)المتوسط (القسمة على N = 4)2.251.251.75
Variance (biased)التباين (المتحيز)0.68751.68754.1875
Standard deviationالانحراف المعياري0.8291.2992.046
x_hat0.905, -1.508, 0.905, -0.302-0.962, 0.577, 1.347, -0.962-0.855, 1.588, 0.122, -0.855
gamma, beta2, 03, 0-1, 1
y1.81, -3.02, 1.81, -0.60-2.89, 1.73, 4.04, -2.891.86, -0.59, 0.88, 1.86
Check: mean beta, variance gamma²تحقق: المتوسط beta، والتباين gamma²0, 40, 91, 1
Slide 38 batch norm by hand (W = [[1, 0, 1], [1, 1, 0], [0, 2, -1]], b = (0, -1, 0), then ReLU, then BN)تطبيع الدفعة يدويًا من الشريحة 38 (W = [[1, 0, 1], [1, 1, 0], [0, 2, -1]]، b = (0, -1, 0)، ثم ReLU، ثم BN)

Activation functionsدوال التفعيل

Without a nonlinearity stacked linear layers collapse into one. On an MCU the two questions are: does it need an exponential, and is the output bounded? Part 06: Activations and transformers

بدون دالة غير خطية تنهار الطبقات الخطية المكدّسة إلى طبقة واحدة. على المتحكم الدقيق (MCU) السؤالان هما: هل تحتاج الدالة إلى أسّ (exponential)، وهل مخرجها محدود؟ الجزء 06: دوال التفعيل والمحوّلات

h-swish(x)=x⋅ReLU6⁡(x+3)6={0x≤−3xx≥3x(x+3)/6otherwise\text{h-swish}(x) = x \cdot \frac{\operatorname{ReLU6}(x + 3)}{6} = \begin{cases} 0 & x \le -3 \\ x & x \ge 3 \\ x(x + 3)/6 & \text{otherwise} \end{cases}
Swish traced with a ruler: one clamp, one add, one multiplySwish مرسومة بالمسطرة: قصّ واحد وجمع واحد وضرب واحد
FunctionالدالةFormulaالصيغةRangeالمدىDerivativeالمشتقةNeedsتحتاج إلىNoteملاحظة
Sigmoid1 / (1 + e^-x)(0, 1)s(1 - s), at most 0.25s(1 - s)، وأقصاها 0.25expSaturates both sidesتتشبّع من الجهتين
ReLUmax(0, x)[0, inf)0 or 10 أو 1maxDefault hidden unit, range must be calibrated for int8الوحدة المخفية الافتراضية، ويجب معايرة مداها لصيغة int8
ReLU6min(max(0, x), 6)[0, 6]1 on (0, 6), else 01 على (0, 6)، و0 فيما عدا ذلكmax, minFixed int8 grid, MobileNetV2شبكة int8 ثابتة، MobileNetV2
Leaky ReLUmax(alpha x, x)(-inf, inf)alpha or 1alpha أو 1maxalpha = 0.01 defaultalpha = 0.01 افتراضيًا
Swish (SiLU)x / (1 + e^-x)[-0.278, inf)s + x s(1 - s)expBeats ReLU on deep models, costly on MCUsتتفوق على ReLU في النماذج العميقة، ومكلفة على المتحكمات الدقيقة
Hard swishx ReLU6(x + 3) / 6[-0.375, inf)0, (2x + 3)/6, or 10 أو (2x + 3)/6 أو 1clamp, multiplyتقييد (clamp) وضربWithin 0.142 of swish, MobileNetV3لا تبعد عن swish بأكثر من 0.142، MobileNetV3
tanh2 s(2x) - 1(-1, 1)1 - tanh²expZero centred, still saturatesمتمركزة حول الصفر، لكنها ما زالت تتشبّع
GELUx Phi(x)[-0.17, inf)Phi(x) + x phi(x)erf or tanherf أو tanhBERT and GPT defaultالافتراضية في BERT وGPT
Formula, range, derivative, costالصيغة والمدى والمشتقة والتكلفة
Activationدالة التفعيلRangeالمدىStep size over 255 stepsحجم الخطوة على 255 خطوة
ReLU6[0, 6], fixed at design time[0, 6]، ثابت وقت التصميم6 / 255 = 0.0235
ReLU, calibrated on dataReLU بمعايرة على البيانات[0, 60] if one channel spikes[0, 60] إذا قفزت قناة واحدة60 / 255 = 0.235, ten times coarser60 / 255 = 0.235، أخشن بعشر مرات
Why bounded is what int8 wantsلماذا تفضّل صيغة int8 الدوال المحدودة

Transformer block and attentionكتلة المحوّل والانتباه

The encoder layer (Vaswani et al. 2017)طبقة المُرمِّز (Vaswani et al. 2017)

Encoder layerطبقة المُرمِّز
Multi-head attention, Add and Norm, position-wise FFN, Add and Norm, stacked N timesانتباه متعدد الرؤوس (multi-head attention)، ثم Add and Norm، ثم FFN موضعية، ثم Add and Norm، وتُكدَّس N مرة
Add and Norm
LayerNorm(x + Sublayer(x)), LayerNorm not BatchNorm because it needs no batch statisticsLayerNorm(x + Sublayer(x))، ونستخدم LayerNorm لا BatchNorm لأنه لا يحتاج إلى إحصاءات الدفعة
Base hyperparametersالمعاملات الفائقة للنموذج الأساسي
N = 6, d_model = 512, h = 8, d_k = d_v = 64, d_ff = 2048
Positional encodingالترميز الموضعي
PE(pos, 2i) = sin(pos / 10000^(2i / d_model)), cosine for odd indices, added before layer 1PE(pos, 2i) = sin(pos / 10000^(2i / d_model))، وجيب التمام (cosine) للمؤشرات الفردية، ويُضاف قبل الطبقة 1
Decoder extrasإضافات فك الترميز
Masked self-attention, then encoder-decoder attention (queries from decoder, keys and values from encoder)انتباه ذاتي مقنَّع (masked self-attention)، ثم انتباه بين المُرمِّز وفاك الترميز (الاستعلامات من فاك الترميز، والمفاتيح والقيم من المُرمِّز)
Weights per base layerالأوزان في كل طبقة أساسية
attention 4 × 512 × 512 = 1,048,576, FFN 2 × 512 × 2048 = 2,097,152, about 67% in the FFNالانتباه 4 × 512 × 512 = 1,048,576، وFFN 2 × 512 × 2048 = 2,097,152، أي نحو 67% منها في FFN
Attention(Q,K,V)=softmax ⁣(QKTdk)V,FFN(x)=max⁡(0,  xW1+b1) W2+b2\text{Attention}(Q, K, V) = \text{softmax}\!\left(\frac{Q K^{T}}{\sqrt{d_k}}\right) V, \qquad \text{FFN}(x) = \max(0,\; x W_1 + b_1)\, W_2 + b_2
Scaled dot-product attention, and the position-wise FFN applied to every token with the same weightsانتباه الضرب النقطي المُحجَّم، وشبكة FFN الموضعية المطبقة على كل رمز بالأوزان نفسها

Shapes for N tokensالأشكال لـ N رمزًا

Q, K
N × d_k
V
N × d_v
Q Kᵀ and its softmaxQ Kᵀ ودالة softmax عليه
N × N
Outputالمخرج
N × d_v
Learnedالمتعلَّم
W_Q, W_K, W_V (and W_O); the N × N weights are recomputed per inputW_Q, W_K, W_V (وW_O)؛ أما الأوزان N × N فيُعاد حسابها لكل مدخل
d_kd_kUnscaledدون تقييسsoftmax unscaledsoftmax دون تقييسsoftmax scaledsoftmax بعد التقييس
4(2, 0, -2)(0.867, 0.117, 0.016)(0.665, 0.245, 0.090)
64(8, 0, -8)(1.000, 0.000, 0.000)(0.665, 0.245, 0.090)
512(22.6, 0, -22.6)(1.000, 0.000, 0.000)(0.665, 0.245, 0.090)
Why divide by sqrt(d_k): three scores one standard deviation apartلماذا نقسم على sqrt(d_k): ثلاث درجات بينها انحراف معياري واحد
Tokens Nعدد الرموز NEntriesالعناصرMemoryالذاكرة
644,09616 KB
25665,536256 KB
1,0241,048,5764 MB
4,09616,777,21664 MB
The N × N bill, one head, one layer, fp32فاتورة N × N لرأس واحد وطبقة واحدة بصيغة fp32

Attention and FFN by handالانتباه وFFN يدويًا

Slide 43: keys k1 = (0, 0, 1), k2 = (2, 1, 0), k3 = (1, 0, -1), k4 = (0, 0, 1); values v1 = (20, 0, 0), v2 = (0, 0, 10), v3 = (0, 10, 0), v4 = (20, 10, 0). Shortcut: halve and truncate instead of dividing by sqrt(3), use 3^x instead of e^x.

الشريحة 43: المفاتيح k1 = (0, 0, 1) وk2 = (2, 1, 0) وk3 = (1, 0, -1) وk4 = (0, 0, 1)، والقيم v1 = (20, 0, 0) وv2 = (0, 0, 10) وv3 = (0, 10, 0) وv4 = (20, 10, 0). الاختصار المستخدم: نقسم على اثنين ونقتطع بدل القسمة على sqrt(3)، ونستخدم 3^x بدل e^x.

QueryالاستعلامScoresالدرجاتSlide weightsأوزان الشريحةSlide zz في الشريحةExact zz الدقيق
q1 = (2, 0, 3)3, 4, -1, 3.2, .6, 0, .2(8, 2, 6)(10.3, 2.8, 4.6)
q2 = (1, 1, 2)2, 3, -1, 2.3, .3, .1, .3(12, 4, 3)(10.1, 3.0, 4.5)
q3 = (0, 1, 2)2, 1, -2, 2.4, .2, 0, .4(16, 4, 2)(15.0, 4.1, 2.1)
q4 = (2, 1, 1)1, 5, 1, 1.1, .7, .1, .1(4, 2, 7)(3.1, 1.5, 7.7)
All four queries, slide arithmetic and exact (q2 corrected)الاستعلامات الأربعة كلها، بحساب الشريحة وبالحساب الدقيق (مع تصحيح q2)

Slide 44: W1 rows (1, -1, 0), (1, 1, 0), (0, 1, 1), (-1, 1, 1) with b1 = (1, 0, 1, 0); W2 rows (1, 0, 0, -1), (0, 1, 1, 0), (0, 0, 1, -1) with b2 = (0, 0, 1).

الشريحة 44: صفوف W1 هي (1, -1, 0) و(1, 1, 0) و(0, 1, 1) و(-1, 1, 1) مع b1 = (1, 0, 1, 0)، وصفوف W2 هي (1, 0, 0, -1) و(0, 1, 1, 0) و(0, 0, 1, -1) مع b2 = (0, 0, 1).

zW1 z + b1ReLUW2 h + b2
z1 = (11, 2, 1)(10, 13, 4, -8)(10, 13, 4, 0)(10, 17, 5)
z2 = (6, 6, 1)(1, 12, 8, 1)(1, 12, 8, 1)(0, 20, 8)
z3 = (7, 4, 2)(4, 11, 7, -1)(4, 11, 7, 0)(4, 18, 8)
z4 = (7, 3, 1)(5, 10, 5, -3)(5, 10, 5, 0)(5, 15, 6)
z5 = (5, 3, 1)(3, 8, 5, -1)(3, 8, 5, 0)(3, 13, 6)
Five tokens through the same FFNخمسة رموز عبر FFN نفسها

Slide errataأخطاء الشرائح

Answer with the corrected fact, and name the slide if a question depends on it.

أجب بالمعلومة المصحّحة، واذكر رقم الشريحة إذا كان السؤال يعتمد عليها.

What the slides get wrongما تخطئ فيه الشرائح

Slide 4الشريحة 4
"Hidden Layer 2" labels the output row. Read it as Layer 0 hidden (4), Layer 1 hidden (3), Layer 2 output (2).عبارة "Hidden Layer 2" تسمّي صف المخرج. اقرأها هكذا: Layer 0 مخفية (4)، وLayer 1 مخفية (3)، وLayer 2 مخرج (2).
Slides 5 to 7الشرائح 5 إلى 7
The edge from x4 to y2 is labelled w42; by the slide's own formula it is w24. Index W as (output, input).الحافة من x4 إلى y2 مكتوب عليها w42، وبحسب صيغة الشريحة نفسها هي w24. رقّم W بالترتيب (المخرج، المدخل).
Slide 15الشريحة 15
"2 x2" means 2 × 2. Stride 2 is used before slide 18 defines it. The bias is silently 0."2 x2" تعني 2 × 2. الخطوة 2 مستخدمة قبل أن تعرّفها الشريحة 18. والانحياز يساوي 0 دون أن يُذكر ذلك.
Slide 16الشريحة 16
Reflection row 1 reads 6 5 4 5 6 4 5; the mirror rule gives 6 5 4 5 6 5 4.الصف 1 في حشو الانعكاس مكتوب 6 5 4 5 6 4 5، وقاعدة المرآة تعطي 6 5 4 5 6 5 4.
Slide 18الشريحة 18
Output size is written without the floor. Use floor((h_i + 2p - k)/s) + 1: 8, 3, 0, 2 gives 3, not 3.5.حجم المخرج مكتوب دون دالة الجزء الصحيح (floor). استخدم floor((h_i + 2p - k)/s) + 1: القيم 8, 3, 0, 2 تعطي 3 وليس 3.5.
Slide 20الشريحة 20
Depthwise W is written (c, k_h, k_w); frameworks store (c, 1, k_h, k_w). Keep four axes.W للالتفاف العمقي مكتوب (c, k_h, k_w)، والأطر البرمجية تخزّنه (c, 1, k_h, k_w). احتفظ بالمحاور الأربعة.
Slide 21الشريحة 21
"Max pooling performs a lot better" is an empirical heuristic (Boureau et al. 2010); modern trunks use strided convs and global average pooling. Stray capital "It".عبارة "Max pooling performs a lot better" قاعدة تجريبية (Boureau et al. 2010)، والشبكات الحديثة تستخدم الالتفاف بخطوة والتجميع المتوسط الشامل (global average pooling). وفيها حرف كبير زائد في "It".
Slide 24الشريحة 24
"fully connecter layer" should be "fully connected". The FC bars are class scores, probabilities only after a softmax."fully connecter layer" صوابها "fully connected". أعمدة الطبقة كاملة الاتصال درجات أصناف (class scores)، ولا تصبح احتمالات إلا بعد softmax.
Slide 25الشريحة 25
The ConvNetJS URL is printed with http://; the live page is https://.رابط ConvNetJS مطبوع بـ http://، والصفحة الفعلية تعمل بـ https://.
Slide 31الشريحة 31
Identity recovery needs gamma = sqrt(sigma² + eps), not gamma = sigma, unless eps = 0.استعادة الدالة المحايدة تحتاج gamma = sqrt(sigma² + eps) وليس gamma = sigma، إلا إذا كان eps = 0.
Slide 38الشريحة 38
BN is placed after the ReLU; the paper, CS231n and Goodfellow put it before the nonlinearity. Only the paper order allows fusion. Values are heavily rounded; recompute with biased variance.BN موضوع بعد ReLU، بينما الورقة الأصلية وCS231n وGoodfellow تضعه قبل الدالة غير الخطية. ترتيب الورقة وحده يسمح بالدمج. والقيم مقرّبة كثيرًا، فأعد حسابها بالتباين المتحيز.
Slide 43الشريحة 43
q2 is drawn as (1, 1, 1) but equals (1, 1, 2), so column 2 scores are 2, 3, -1, 2 and z2 = (12, 4, 3), not (8, 4, 4). The drawing uses column vectors, K^T Q and Z = V A.q2 مرسوم (1, 1, 1) لكنه يساوي (1, 1, 2)، لذلك درجات العمود 2 هي 2, 3, -1, 2 وz2 = (12, 4, 3) وليس (8, 4, 4). الرسم يستخدم متجهات أعمدة، وK^T Q وZ = V A.
Slide 44الشريحة 44
Hidden row 4 shows -9 and -4; the arithmetic gives -8 and -3. ReLU zeroes both, so the outputs stand. The attention matrix columns sum to 2, not a softmax.الصف المخفي 4 يُظهر -9 و-4، والحساب يعطي -8 و-3. ReLU تجعلهما صفرًا، فتبقى المخرجات صحيحة. وأعمدة مصفوفة الانتباه مجموعها 2، فهي ليست softmax.
  • Reference deck: MIT 6.5940 lecture 2 (Song Han), which slides 2 to 20 reproduce, including the Layer 0 and w42 labels.العرض المرجعي: محاضرة MIT 6.5940 رقم 2 (Song Han)، والشرائح من 2 إلى 20 منسوخة منها، بما في ذلك تسميتا Layer 0 وw42.
  • By-hand worksheets (slides 38, 43, 44) are Tom Yeh's and round heavily; recompute before quoting.أوراق الحساب اليدوي (الشرائح 38 و43 و44) من إعداد Tom Yeh وتقرّب كثيرًا، فأعد الحساب قبل أن تستشهد بها.