← 문제 목록/Linear Layer Backward (VJP) [medium]
문제 해설

Linear Layer Backward (VJP) [medium]

역전파 · medium

preview

Linear Backward [medium]

v1 Linear forward 의 backward. Y=XW+bY = X W + b 에서 upstream gradient L/Y\partial L / \partial Y 가 주어졌을 때 세 가지 gradient 계산:

\frac{\partial L}{\partial X} &= \frac{\partial L}{\partial Y} \cdot W^\top \\ \frac{\partial L}{\partial W} &= X^\top \cdot \frac{\partial L}{\partial Y} \\ \frac{\partial L}{\partial b} &= \sum_n \frac{\partial L}{\partial Y_n} \end{aligned}$$ ## 유도 $Y_{n, j} = \sum_i X_{n, i} W_{i, j} + b_j$ 이므로: - $\partial Y_{n,j} / \partial X_{n, i} = W_{i, j}$ → chain rule $\Rightarrow \frac{\partial L}{\partial X_{n,i}} = \sum_j \frac{\partial L}{\partial Y_{n,j}} W_{i,j}$. 행렬: $dX = dY \cdot W^\top$. - $\partial Y_{n,j} / \partial W_{i, j} = X_{n, i}$ → 배치 합산: $dW = X^\top \cdot dY$. - $\partial Y_{n,j} / \partial b_j = 1$ → 배치 합산: $db = \sum_n dY_n$. ## Shape 요약 | | Forward | Backward | |---|---|---| | X | (N, D_in) | dX: (N, D_in) | | W | (D_in, D_out) | dW: (D_in, D_out) | | b | (D_out,) | db: (D_out,) | | Y/dY | (N, D_out) | (N, D_out) | ## 과제 함수 `linear_backward(X, W, dY)` 를 완성하세요. - 반환: `(dX, dW, db)` — 세 텐서. - 공식: 위 3 항. ## 테스트 케이스 | # | 이름 | 검증 | |---|---|---| | 1 | 반환 3-tuple | | | 2 | shape: dX (N, D_in), dW (D_in, D_out), db (D_out,) | | | 3 | `dX = dY @ W.T` 수치 | | | 4 | `dW = X.T @ dY` 수치 | | | 5 | `db = sum(dY, axis=0)` | | | 6 | 수치 미분 일치 (작은 perturbation) | | | 7 | 2-step chain rule: $f(g(X))$ 에서 전체 grad 일관 | |
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.