Show HN: DOOM을 트랜스포머로 바꿨습니다

1 day ago 6

doomformer는 신경망을 DOOM 맵으로 컴파일해, 맵 안의 부두 인형이 합산, 활성화, 어텐션을 계산하도록 하는 프로젝트임 값은 인형의 수, 가중치는 바닥의 선, 합은 조명 밝기나 바닥 높이로 구현하며, 계산 결과를 NumPy 정수 참조 모델과 허용 오차 0으로 대조함 MNIST 테스트 숫자 10,000개 모두 정수 모델과 계산 결과가 일치했으며, 실제 숫자 분류 정확도는 97.16%임 숫자 인식뿐 아니라 트랜스포머의 이름 생성, 게임 캐릭터 제어, 맵 내부 학습을 실험할 수 있으며, museum에서는 실행 중 연결 하나를 바꿔 인식 결과가 달라지는 과정을 볼 수 있음 작은 MLP도 NumPy보다 약 23,000배 느리며, 검증 범위는 실제 실행한 입력에 한정됨. 모든 모델은 정수 기반이고 LayerNorm을 사용하지 않음 신경망을 DOOM 맵으로 컴파일하기 doomformer는 신경망의 각 구성 요소를 맵의 물리적 요소로 변환함 값 5는 부두 인형 5개로 나타냄 가중치는 바닥의 선이며, 인형이 선을 지날 때마다 해당 가중치를 더함 합은 구역의 조명 밝기나 바닥 높이로 저장함 ReLU 활성화는 인형이 올라가야 하는 계단형 게이트로 구현함 어텐션은 다른 값에 의해 낮아진 천장 아래로 인형이 통과하는 방식으로 계산함 신경망 손상 실험은 문을 닫는 방식으로 구현함 한 층의 계산은 입력 인형 무리 → 가중치 선 → 합 → 활성화 계단 → 다음 층의 인형 순서로 진행됨 행렬 곱에서는 인형 하나가 값의 한 단위이며, 지나가는 선마다 가중치를 더함 어텐션에서는 천장 게이트를 통과한 인형 수를 세는 과정이 곱셈이 됨 DOOM 맵 안의 계산 장치 자체는 새롭지 않음 counter.wad는 부두 인형으로 수를 셈 conway.wad는 Game of Life를 실행함 Danny Spencer의 계산기는 덧셈을 수행함 이 프로젝트의 차별점은 신경망 컴파일러와 값별 정확 일치 검증임. 관련 작업에서 비교할 수 있음 바닥에 숫자를 그리면 맵이 읽음 DrawPad에서는 해병이 FIRE를 누른 채 이동해 28×28 바닥에 숫자를 그리고, READ를 눌러 인식시킴 같은 맵 안의 부두 인형 1,355개가 MNIST 신경망을 실행함 승리한 숫자의 인형이 선을 지나면 7세그먼트 디스플레이에 해당 숫자가 켜짐 Python은 계산값 248개를 읽어 하나씩 검증함 --digit을 지정하면 Python이 키 입력을 대신하며, 지정하지 않으면 직접...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵