dev_AI_framework
실제에서 적용 방안, 계산 그래프의 단일 행렬 연산으로의 표현
명징직조지훈
2025. 5. 18. 15:21
0 과 1로 구성된 연결 행렬 E 를 기반으로
연산이 수행될 때마다 그 1이 의미하는 연결 위치를 실제 값으로 치환하면서,
입력값 -> 연산 결과 -> 다시 E 에 저장하는 방식으로
모든 forward 흐름과 중간값을 하나의 행렬 E 에 계속 누적해나가는 구조 설계
이 구조 자체로 역전파도 가능
E (초기 상태):
0 0 1 0
0 0 1 0
0 0 0 1
0 0 0 0
해석:
- (0,2), (1,2): 입력값 → 노드 2
- (2,3): 노드 2 → 노드 3
---
1단계: 입력값 치환
E[0,2] ← x₁
E[1,2] ← x₂
E 상태:
0 0 x₁ 0
0 0 x₂ 0
0 0 0 1
0 0 0 0
---
2단계: 노드 2 연산 결과 계산
- x₃ = x₁·w₀₂ + x₂·w₁₂
- E[2,3] = x₃
E 상태:
0 0 x₁ 0
0 0 x₂ 0
0 0 0 x₃
0 0 0 0
✅ 핵심 개념 정리
E[i][j] = 1 (초기) | 노드 i → j 연결 존재 (아직 계산되지 않음) |
E[i][j] = x | 실제 계산 결과 또는 입력값이 전달됨 |
E[i][j] 값이 치환됨 | 계산이 수행되어 값이 전달된 상태 |
forward는 E를 overwrite | E는 값 누적 메모리로 작동 |
🧠 역전파가 가능한 이유
연결 정보는 **위치(E[i][j])**에 그대로 있고,
해당 위치에 들어간 값은 forward 결과로 저장되어 있으므로,
이를 기반으로 역전파 시 필요한 모든 정보를 재구성 가능.