위키득계정 ↗
기술

이진 신경망

이진 신경망기술
영문명
Binarized neural network
대표 값
−1과 +1
연산 예
XNOR와 비트 수 세기로 내적 계산
학습 구분
이진 순전파와 실수 누적 가중치
이진 신경망은 주요 가중치와 활성값을 두 값으로 제한해 계산하는 신경망이다. 흔히 −1과 +1을 사용하며, 비트 표현과 비트 논리 연산을 활용해 저장량과 연산 비용을 줄이는 것을 목표로 한다.

이진 분류와 다른 개념

출력 클래스가 두 개인 이진 분류와 가중치가 두 값인 이진 신경망은 다르다. 이진 신경망도 여러 클래스의 분류에 사용할 수 있다. 어떤 층까지 이진화하는지와 입력, 누산기, 정규화 연산의 정밀도는 구현마다 구별해야 한다.

부호 내적의 계산

−1과 +1 벡터를 같은 부호면 1, 다른 부호면 0이 되는 비트 비교로 표현할 수 있다. 길이 n에서 일치 개수가 m이면 내적은 2m−n이다. 예를 들어 (1,−1,1,−1)과 (1,1,1,−1)은 세 곳이 일치하므로 내적이 2×3−4=2다. 이 관계가 비트 연산으로 곱셈을 대체하는 근거다.

부호 함수의 학습 문제

부호 함수는 거의 모든 곳에서 미분값이 0이므로 그대로 역전파하면 학습 신호가 막힌다. 학습에서는 실수 가중치를 유지하면서 순전파에 이진값을 사용하고 역방향에 대리 기울기를 사용하는 방법이 있다. 예를 들어 일정 구간 안에서는 기울기를 통과시키고 바깥에서는 0으로 두는 규칙을 쓴다. 이는 부호 함수의 정확한 미분과 구별한다.

저장과 실행의 현실

이상적인 이진 가중치 하나는 한 비트로 나타낼 수 있지만 학습 상태 전체가 한 비트라는 뜻은 아니다. 실수 누적값, 통계량, 일부 비이진층과 출력 처리에는 추가 저장과 연산이 필요할 수 있다. 비트 묶음과 전용 커널이 없는 환경에서는 기대한 가속이 나타나지 않을 수 있으므로 정확도와 실제 실행 비용을 측정한다.

관련 문서

신경망 양자화 / 신경망 / 배타적 논리합 / 내적 / 역전파 / 배치 정규화