KSW's BLOG
← Portfolio
Completed

미니 자동미분 엔진 구현

스칼라용/텐서용 두 가지 자동미분(autograd) 엔진을 직접 만들어 MNIST를 분류한 프로젝트.

PythonNumPy

Problem

인공지능이 돌아가는 수학적 원리(미분과 연쇄법칙)를 프로그래밍과 직접 연결해 이해하고 싶었다. PyTorch의 autograd 같은 자동미분이 내부적으로 계산 그래프를 만들고 미분을 전파하는 방식을 직접 구현해보기로 했다.

Approach

스칼라 단위로 동작하는 Value 엔진과 NumPy 배열 기반의 Tensor 엔진, 두 가지를 각각 구현했다.

Result

27개 테스트 전부 통과. moons 데이터셋 99%, MNIST 95.75% (numpy-backprop과 동일 수치로 검증).

View on GitHub →