Справочник
Формулы
~5 минут чтения
Предварительно: Формулы ML-алгоритмов
Справочник формул для всех ключевых компонентов нейросетей: от функций активации (7 видов) и loss-функций (7 видов) до оптимизаторов (SGD, Adam, AdamW), нормализации (BatchNorm, LayerNorm, RMSNorm), архитектур (CNN, RNN/LSTM/GRU, Transformer, ViT, Diffusion, MoE) и методов квантизации. На ML-интервью чаще всего просят записать формулу Attention (\(\text{softmax}(QK^T/\sqrt{d_k})V\) ), объяснить backpropagation через chain rule, и сравнить Adam vs SGD with momentum.
Основы
Нейрон
\[z = \sum_{i=1}^{n} w_i x_i + b = \mathbf{w}^T \mathbf{x} + b\]
\[a = \sigma(z)\]
Forward Pass (слой)
\[\mathbf{z}^{[l]} = \mathbf{W}^{[l]} \mathbf{a}^{[l-1]} + \mathbf{b}^{[l]}\]
\[\mathbf{a}^{[l]} = g^{[l]}(\mathbf{z}^{[l]})\]
Функции активации
Sigmoid
\[\sigma(z) = \frac{1}{1 + e^{-z}}\]
\[\sigma'(z) = \sigma(z)(1 - \sigma(z))\]
Tanh
\[\tanh(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}\]
\[\tanh'(z) = 1 - \tanh^2(z)\]
ReLU
\[\text{ReLU}(z) = \max(0, z)\]
\[\text{ReLU}'(z) = \begin{cases} 1 & z > 0 \\ 0 & z \leq 0 \end{cases}\]
Leaky ReLU
\[\text{LeakyReLU}(z) = \max(\alpha z, z)\]
\[\text{LeakyReLU}'(z) = \begin{cases} 1 & z > 0 \\ \alpha & z \leq 0 \end{cases}\]
GELU
\[\text{GELU}(z) = z \cdot \Phi(z) \approx 0.5z(1 + \tanh[\sqrt{2/\pi}(z + 0.044715z^3)])\]
Swish
\[\text{Swish}(z) = z \cdot \sigma(z)\]
Softmax
\[\text{softmax}(z_i) = \frac{e^{z_i}}{\sum_{j=1}^{K} e^{z_j}}\]
Loss Functions
Mean Squared Error
\[L = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2\]
Binary Cross-Entropy
\[L = -\frac{1}{n} \sum_{i=1}^{n} [y_i \log(\hat{y}_i) + (1-y_i) \log(1-\hat{y}_i)]\]
Categorical Cross-Entropy
\[L = -\frac{1}{n} \sum_{i=1}^{n} \sum_{k=1}^{K} y_{ik} \log(\hat{y}_{ik})\]
Focal Loss
\[L = -\alpha_t (1 - p_t)^\gamma \log(p_t)\]
Huber Loss
\[L = \begin{cases} \frac{1}{2}(y - \hat{y})^2 & |y - \hat{y}| \leq \delta \\ \delta(|y - \hat{y}| - \frac{1}{2}\delta) & |y - \hat{y}| > \delta \end{cases}\]
Triplet Loss
\[L = \max(\|f(a) - f(p)\|^2 - \|f(a) - f(n)\|^2 + \alpha, 0)\]
Contrastive Loss
\[L = (1-y)\frac{1}{2}D^2 + y\frac{1}{2}\max(0, m-D)^2\]
Backpropagation
Chain Rule
\[\frac{\partial L}{\partial w} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial w}\]
Градиенты для слоя
\[\delta^{[l]} = \frac{\partial L}{\partial \mathbf{z}^{[l]}}\]
\[\frac{\partial L}{\partial \mathbf{W}^{[l]}} = \delta^{[l]} (\mathbf{a}^{[l-1]})^T\]
\[\frac{\partial L}{\partial \mathbf{b}^{[l]}} = \delta^{[l]}\]
\[\delta^{[l-1]} = (\mathbf{W}^{[l]})^T \delta^{[l]} \odot g'^{[l-1]}(\mathbf{z}^{[l-1]})\]
Оптимизация
SGD
\[\theta_{t+1} = \theta_t - \alpha \nabla L(\theta_t)\]
SGD with Momentum
\[v_t = \beta v_{t-1} + \nabla L(\theta_t)\]
\[\theta_{t+1} = \theta_t - \alpha v_t\]
Nesterov Momentum
\[v_t = \beta v_{t-1} + \nabla L(\theta_t - \alpha \beta v_{t-1})\]
\[\theta_{t+1} = \theta_t - \alpha v_t\]
Adagrad
\[G_t = G_{t-1} + (\nabla L(\theta_t))^2\]
\[\theta_{t+1} = \theta_t - \frac{\alpha}{\sqrt{G_t + \epsilon}} \nabla L(\theta_t)\]
RMSprop
\[v_t = \beta v_{t-1} + (1-\beta)(\nabla L(\theta_t))^2\]
\[\theta_{t+1} = \theta_t - \frac{\alpha}{\sqrt{v_t + \epsilon}} \nabla L(\theta_t)\]
Adam
\[m_t = \beta_1 m_{t-1} + (1-\beta_1) \nabla L(\theta_t)\]
\[v_t = \beta_2 v_{t-1} + (1-\beta_2) (\nabla L(\theta_t))^2\]
\[\hat{m}_t = \frac{m_t}{1 - \beta_1^t}\]
\[\hat{v}_t = \frac{v_t}{1 - \beta_2^t}\]
\[\theta_{t+1} = \theta_t - \frac{\alpha \hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}\]
Типичные значения: \(\beta_1 = 0.9\) , \(\beta_2 = 0.999\) , \(\epsilon = 10^{-8}\)
AdamW
\[\theta_{t+1} = \theta_t - \alpha \left( \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} + \lambda \theta_t \right)\]
Regularization
L2 (Weight Decay)
\[L_{total} = L + \frac{\lambda}{2} \sum_{l} \|\mathbf{W}^{[l]}\|_F^2\]
L1
\[L_{total} = L + \lambda \sum_{l} \|\mathbf{W}^{[l]}\|_1\]
Dropout
\[\tilde{a}^{[l]} = a^{[l]} \odot \mathbf{m}\]
где \(\mathbf{m} \sim \text{Bernoulli}(p)\)
При inference: \(a^{[l]}_{test} = p \cdot a^{[l]}\)
Normalization
Batch Normalization
\[\hat{x} = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}}\]
\[y = \gamma \hat{x} + \beta\]
где \(\mu_B = \frac{1}{m}\sum_{i=1}^{m} x_i\) , \(\sigma_B^2 = \frac{1}{m}\sum_{i=1}^{m}(x_i - \mu_B)^2\)
Layer Normalization
\[\hat{x} = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}}\]
\[y = \gamma \hat{x} + \beta\]
где \(\mu\) , \(\sigma\) по признакам (для каждого примера отдельно)
RMSNorm
\[\hat{x} = \frac{x}{\sqrt{\frac{1}{n}\sum_{i=1}^{n} x_i^2 + \epsilon}}\]
CNN
Convolution
\[(f * g)(i, j) = \sum_{m} \sum_{n} f(m, n) \cdot g(i-m, j-n)\]
Output size
\[O = \frac{W - K + 2P}{S} + 1\]
где W = input size, K = kernel size, P = padding, S = stride
Receptive Field
\[RF_{l} = RF_{l-1} + (K_l - 1) \times \prod_{i=1}^{l-1} S_i\]
RNN
Vanilla RNN
\[h_t = \tanh(W_{hh} h_{t-1} + W_{xh} x_t + b_h)\]
\[y_t = W_{hy} h_t + b_y\]
LSTM
\[f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f)\]
(forget gate)
$\(i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i)\) $
(input gate)
$\(\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C)\) $
(candidate)
$\(C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t\) $
(cell state)
$\(o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o)\) $
(output gate)
$\(h_t = o_t \odot \tanh(C_t)\) $
(hidden state)
GRU
\[z_t = \sigma(W_z \cdot [h_{t-1}, x_t])\]
(update gate)
$\(r_t = \sigma(W_r \cdot [h_{t-1}, x_t])\) $
(reset gate)
$\(\tilde{h}_t = \tanh(W \cdot [r_t \odot h_{t-1}, x_t])\) $
(candidate)
$\(h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tilde{h}_t\) $
Scaled Dot-Product Attention
\[\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V\]
Multi-Head Attention
\[\text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, ..., \text{head}_h) W^O\]
\[\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)\]
Positional Encoding (Sinusoidal)
\[PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d_{model}}}\right)\]
\[PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d_{model}}}\right)\]
Feed-Forward Network
\[\text{FFN}(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2\]
или
$\(\text{FFN}(x) = \text{GELU}(xW_1)W_2\) $
RoPE (Rotary Position Embedding)
\[\begin{pmatrix} q_0 \\ q_1 \end{pmatrix} = \begin{pmatrix} \cos(m\theta) & -\sin(m\theta) \\ \sin(m\theta) & \cos(m\theta) \end{pmatrix} \begin{pmatrix} q_0 \\ q_1 \end{pmatrix}\]
Weight Initialization
Xavier (Glorot)
\[W \sim \mathcal{U}\left(-\sqrt{\frac{6}{n_{in} + n_{out}}}, \sqrt{\frac{6}{n_{in} + n_{out}}}\right)\]
или
$\(W \sim \mathcal{N}\left(0, \frac{2}{n_{in} + n_{out}}\right)\) $
He (Kaiming)
\[W \sim \mathcal{N}\left(0, \frac{2}{n_{in}}\right)\]
VAE
ELBO
\[\mathcal{L} = \mathbb{E}_{q(z|x)}[\log p(x|z)] - D_{KL}(q(z|x) \| p(z))\]
Reparameterization Trick
\[z = \mu + \sigma \odot \epsilon, \quad \epsilon \sim \mathcal{N}(0, I)\]
GAN
Minimax Game
\[\min_G \max_D V(D, G) = \mathbb{E}_{x \sim p_{data}}[\log D(x)] + \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))]\]
Non-saturating Generator Loss
\[L_G = -\mathbb{E}_{z \sim p_z}[\log D(G(z))]\]
Wasserstein Loss
\[L = \mathbb{E}_{x \sim p_{data}}[D(x)] - \mathbb{E}_{z \sim p_z}[D(G(z))]\]
Patch Embedding
\[\mathbf{z}_0 = [\mathbf{x}_{class}; \mathbf{x}_p^1 \mathbf{E}; \mathbf{x}_p^2 \mathbf{E}; ...; \mathbf{x}_p^N \mathbf{E}] + \mathbf{E}_{pos}\]
где \(\mathbf{E} \in \mathbb{R}^{(P^2 \cdot C) \times D}\) , \(N = HW/P^2\) patches
Classification Head
\[\hat{y} = \text{MLP}(\text{LN}(\mathbf{z}_L^0))\]
где \(\mathbf{z}_L^0\) — CLS token after L transformer layers
Diffusion Models (DDPM)
Forward Process (Add noise)
\[q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t \mathbf{I})\]
\[q(x_t | x_0) = \mathcal{N}(x_t; \sqrt{\bar{\alpha}_t} x_0, (1-\bar{\alpha}_t) \mathbf{I})\]
где \(\alpha_t = 1 - \beta_t\) , \(\bar{\alpha}_t = \prod_{s=1}^{t} \alpha_s\)
Reverse Process (Denoise)
\[p_\theta(x_{t-1}|x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \sigma_t^2 \mathbf{I})\]
Training Objective (simplified)
\[L_{simple} = \mathbb{E}_{t, x_0, \epsilon} \left[ \|\epsilon - \epsilon_\theta(x_t, t)\|^2 \right]\]
Mixture of Experts (MoE)
Gating Function
\[G(x) = \text{TopK}(\text{softmax}(W_g \cdot x))\]
MoE Layer Output
\[y = \sum_{i=1}^{N} G(x)_i \cdot E_i(x)\]
где \(E_i\) — i-й эксперт, \(G(x)_i\) — вес gating для эксперта i
Load Balancing Loss
\[L_{aux} = N \cdot \sum_{i=1}^{N} f_i \cdot P_i\]
где \(f_i\) = fraction of tokens routed to expert i, \(P_i\) = average gate probability for expert i
Quantization
Symmetric Quantization
\[x_q = \text{round}\left(\frac{x}{s}\right), \quad s = \frac{\max(|x|)}{2^{b-1} - 1}\]
Asymmetric Quantization
\[x_q = \text{round}\left(\frac{x - z}{s}\right), \quad s = \frac{x_{max} - x_{min}}{2^b - 1}, \quad z = x_{min}\]
Dequantization
\[\hat{x} = s \cdot x_q + z\]
Ranking Losses
LambdaRank (Gradient)
\[\lambda_{ij} = \frac{-\sigma}{1 + e^{\sigma(s_i - s_j)}} |\Delta \text{NDCG}_{ij}|\]
ListMLE
\[L = -\sum_{i=1}^{n} \log \frac{e^{s_{\pi(i)}}}{\sum_{j=i}^{n} e^{s_{\pi(j)}}}\]
где \(\pi\) — ground truth permutation
InfoNCE (Contrastive)
\[L = -\log \frac{e^{sim(q, k_+)/\tau}}{\sum_{i=0}^{K} e^{sim(q, k_i)/\tau}}\]
Learning Rate Scheduling
Step Decay
\[\alpha_t = \alpha_0 \cdot \gamma^{\lfloor t / s \rfloor}\]
Cosine Annealing
\[\alpha_t = \alpha_{min} + \frac{1}{2}(\alpha_{max} - \alpha_{min})\left(1 + \cos\left(\frac{t}{T}\pi\right)\right)\]
Warmup + Cosine
\[\alpha_t = \begin{cases} \alpha_{max} \cdot \frac{t}{T_{warmup}} & t < T_{warmup} \\ \alpha_{min} + \frac{1}{2}(\alpha_{max} - \alpha_{min})(1 + \cos(\frac{t - T_{warmup}}{T - T_{warmup}}\pi)) & t \geq T_{warmup} \end{cases}\]
Linear Warmup
\[\alpha_t = \alpha_{max} \cdot \min\left(1, \frac{t}{T_{warmup}}\right)\]
Calibration
Temperature Scaling
\[\hat{p}_i = \text{softmax}(z_i / T)\]
где \(T\) оптимизируется на validation set (NLL loss)
Platt Scaling
\[P(y=1|f(x)) = \frac{1}{1 + e^{-(Af(x)+B)}}\]
где \(A, B\) — параметры, обученные на validation set
Expected Calibration Error (ECE)
\[ECE = \sum_{b=1}^{B} \frac{n_b}{N} |acc(b) - conf(b)|\]
Типичные заблуждения
Заблуждение: Adam всегда лучше SGD
Adam сходится быстрее, но SGD с momentum часто даёт лучшую generalization на image classification (ResNet на ImageNet: SGD > Adam по top-1 accuracy на ~0.5-1%). AdamW (decoupled weight decay) решает часть проблем Adam. На практике: Adam для NLP/Transformers, SGD для CV -- эмпирическое правило.
Заблуждение: BatchNorm и LayerNorm взаимозаменяемы
BatchNorm нормализует по batch dimension (статистики зависят от batch size), LayerNorm -- по feature dimension (каждый пример независимо). BatchNorm не работает при batch_size=1 или в RNN/Transformer (переменная длина). Transformers используют LayerNorm (или RMSNorm в LLaMA). BatchNorm ведёт себя по-разному в train vs eval mode.
Заблуждение: Dropout отключают только при inference
Dropout отключают при eval (model.eval()), но при training он изменяет масштаб: выходы умножаются на \(1/p\) (inverted dropout) чтобы математическое ожидание сохранялось. Если забыть model.eval() перед inference, предсказания будут шумными и нестабильными -- классическая ошибка в production.
Вопросы на собеседовании
"Запишите формулу Scaled Dot-Product Attention и объясните \(\sqrt{d_k}\) "
Слабый ответ: записывает softmax(QK^T)V без scaling
Сильный ответ: "\(\text{Attention}(Q,K,V) = \text{softmax}(QK^T / \sqrt{d_k})V\) . Делим на \(\sqrt{d_k}\) потому что при большом \(d_k\) скалярные произведения растут пропорционально \(d_k\) , softmax насыщается (градиенты -> 0). Scaling стабилизирует дисперсию на уровне ~1."
"Объясните backpropagation"
Слабый ответ: "Градиенты идут назад через сеть"
Сильный ответ: "Chain rule: \(\frac{\partial L}{\partial w} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial w}\) . Для слоя \(l\) : ошибка \(\delta^{[l]}\) пропагируется назад через \((W^{[l]})^T\) , домноженная на производную активации. Проблемы: vanishing gradients (sigmoid/tanh, глубокие сети) -> решения: ReLU, skip connections (ResNet), нормализация."
"В чём разница между Focal Loss и Cross-Entropy?"
Слабый ответ: "Focal Loss для object detection"
Сильный ответ: "Focal Loss = \(-\alpha_t(1-p_t)^\gamma \log(p_t)\) . При \(\gamma=0\) это обычная CE. Множитель \((1-p_t)^\gamma\) уменьшает вклад easy examples (высокий \(p_t\) ). При \(\gamma=2\) (RetinaNet default) easy example с \(p_t=0.9\) получает в 100x меньший loss чем с \(\gamma=0\) . Решает class imbalance в dense detection без oversampling."
21 февраля 2026 г.
21 февраля 2026 г.