실습 · 연습문제 2개
두 아핀 층을 하나로 접기 fold-affine-layers
활성화 함수 없이 쌓은 두 층
는 하나의 아핀 사상 와 같다. 함수 fold(W1, b1, W2, b2)를 완성해 (W, b)를 반환한다.
| 인자 | shape |
|---|---|
W1 |
(h, d) |
b1 |
(h,) |
W2 |
(m, h) |
b2 |
(m,) |
반환하는 W의 shape은 (m, d), b의 shape은 (m,)이다. 테스트는 무작위 입력에서 g(x)와 W @ x + b가 같은지 확인한다.
힌트: 먼저 를 전개해 가 곱해진 항과 나머지 항을 모은다.
ReLU 합의 꺾이는 점 찾기 relu-breakpoints
1차원 함수
는 조각별 아핀 함수다. 함수 breakpoints(c, w, b)를 완성해 기울기가 실제로 바뀌는 점들을 오름차순 NumPy 배열로 반환한다.
- 뉴런 는 인 점, 즉 에서 꺾일 수 있다.
- 그 점에서 기울기는 만큼 바뀐다. 이면 왼쪽 기울기 0이 오른쪽에서 가 되고, 이면 왼쪽 기울기 가 오른쪽에서 0이 된다.
- 여러 뉴런이 같은 점에서 꺾이면 기울기 변화가 더해진다. 합이 0이면 그 점은 꺾이는 점이 아니다.
- 이거나 인 뉴런은 꺾이는 점을 만들지 않는다.
같은 점인지 판정할 때와 기울기 변화가 0인지 판정할 때는 허용 오차 tol을 쓴다. 아핀 조각의 수는 len(breakpoints(...)) + 1이다.