딥 미로 솔버

발행: (2025년 12월 31일 오후 04:56 GMT+9)
6 min read
원문: Dev.to

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 미로와 그 해결 방법의 예시:

Sample maze and solution

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 미로

출력 15x15

57 × 57 미로

출력 57x57

127 × 127 미로

출력 127x127

모델은 작은 및 중간 규모의 미로에서는 잘 작동하지만, 가장 큰 미로에서는 정확도가 떨어집니다. 더 깊은 네트워크, 어텐션 메커니즘, 혹은 확산 기반 접근법과 같은 추가 개선이 이 한계를 극복할 수 있습니다.

현재 기업들이 주로 사용하는 기술

(Big model, Big data, Big‑time training, Big hardware, Big money)

결론

이 프로젝트를 진행하면서 매우 흥미로웠습니다. 신경망은 훨씬 더 복잡한 문제들을 해결하는 데 사용되고 있지만, 이런 알고리즘적 도전에 적용되는 모습을 보는 것은 매력적입니다.

  • 뒤에서 무슨 일이 일어나는지 궁금하다면 GitHub 저장소 링크를 확인하세요.
  • 또한, 이 훌륭한 저장소가 제공한 U‑Net 코드에 감사의 인사를 전합니다.
Back to Blog

관련 글

더 보기 »