딥 미로 솔버
I’m ready to translate the article for you, but I need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have it, I’ll keep the source link unchanged and translate the rest into Korean while preserving all formatting, markdown, and technical terms.
소개
며칠 전, 나는 X 포스트에서 확산 모델을 사용해 미로 풀기와 같은 알고리즘 작업을 해결할 수 있다고 설명하는 글을 보았다. 흥미가 생겨 나는 이 작업을 작은 규모로 재현해 보기로 하고, 미로를 풀 수 있는 신경망을 만들기 시작했다.
Problem
목표는 지도 학습을 사용하여 미로를 풀 수 있는 합성곱 신경망(CNN)을 구축하는 것입니다.
주어진 미로 이미지에서, CNN은 왼쪽 위 모서리에서 오른쪽 아래 모서리까지의 경로를 찾아야 합니다.
이 작업에는 PyTorch를 사용할 것입니다.
Source: …
데이터셋
미로 생성과 해결이 결정적이기 때문에, 수동 라벨링 없이도 무한 데이터셋을 즉시 생성할 수 있습니다!
- 미로 생성: 재귀 분할 알고리즘
- 미로 해결: 깊이 우선 탐색(DFS)
우리는 5×5부터 127×127까지 크기의 미로를 생성합니다 (n×n은 가로와 세로 블록 수를 의미). 각 미로는 최근접 이웃 보간법을 사용해 128×128 픽셀로 크기 조정됩니다. 크기 조정 과정에서 약간의 왜곡이 발생할 수 있지만, 미로 구조는 변하지 않습니다.
예시
57×57 미로와 그 해결 방법의 예시:
Source: (위와 같이 원본 링크를 그대로 유지하십시오)
전처리
- 입력: 원시 미로 이미지.
- 라벨: 경로만 표시된 해결된 미로 (테두리와 벽은 무시됨).
해결 경로만 포함된 동일한 미로:
입력과 라벨은 모두 128×128 픽셀로 크기 조정됩니다:
모델
우리는 표준 U‑Net 아키텍처를 사용합니다—특별한 것이 없이—입력 미로를 해결 경로에 매핑하기 위해.
훈련
하이퍼파라미터
| 파라미터 | 값 |
|---|---|
| 배치 크기 | 16 |
| 옵티마이저 | Adam |
| 손실 함수 | Binary Cross‑Entropy |
| 학습률 | 1e‑4 |
| 훈련 세트 크기 | 500 000 샘플 |
| 검증 세트 크기 | 100 000 샘플 |
미로가 무작위로 생성되기 때문에 “epoch”(즉, 전체 훈련 세트를 한 번 통과하는 것)는 일반적인 의미를 갖지 않는다; 각 epoch는 단순히 새로운 미로 배치를 생성하는 것에 해당한다.
결과
훈련 / 검증 손실
아래 그래프는 매 1 000 샘플마다 계산된 훈련 손실을 보여줍니다. 검증 손실은 각 1 000‑샘플 훈련 구간 후 200 샘플에 대해 평가되었습니다.
샘플 출력
15 × 15 미로
57 × 57 미로
127 × 127 미로
모델은 작은 및 중간 규모의 미로에서는 잘 작동하지만, 가장 큰 미로에서는 정확도가 떨어집니다. 더 깊은 네트워크, 어텐션 메커니즘, 혹은 확산 기반 접근법과 같은 추가 개선이 이 한계를 극복할 수 있습니다.
현재 기업들이 주로 사용하는 기술
(Big model, Big data, Big‑time training, Big hardware, Big money)
결론
이 프로젝트를 진행하면서 매우 흥미로웠습니다. 신경망은 훨씬 더 복잡한 문제들을 해결하는 데 사용되고 있지만, 이런 알고리즘적 도전에 적용되는 모습을 보는 것은 매력적입니다.
- 뒤에서 무슨 일이 일어나는지 궁금하다면 GitHub 저장소 링크를 확인하세요.
- 또한, 이 훌륭한 저장소가 제공한 U‑Net 코드에 감사의 인사를 전합니다.






