이런 분들이 찾고 있어요
이 레슨과 관련된 학습 키워드
코드를 읽고 설명하면, 합격합니다
이 레슨과 관련된 학습 키워드
합성곱 신경망(CNN) — 이미지를 이해하는 네트워크 → CNN 기초
합성곱, 풀링, 그리고 완전연결층(fully connected layer)을 포함한 완전한 CNN 분류기를 구축합니다.
CNN 전체 파이프라인: 입력 이미지 → 특징 추출 → 분류
특징 추출부 (Feature Extractor)
분류부 (Classifier)
각 레이어의 역할
왜 이 구조를 이해해야 하는가?
PyTorch 구현 골격
CNN 구현의 표준 프레임워크인 PyTorch는 Paszke 등이 개발한 자동 미분 기반 딥러닝 라이브러리이다 (Paszke et al., 2019).
이번 레슨에서는 씨엔엔을 처음부터 끝까지 직접 구현해볼 거예요.
먼저 전체 그림을 파악하는 게 중요해요.
그림 왼쪽을 보세요. 입력 이미지가 서른둘 곱하기 서른둘 곱하기 삼 크기로 들어옵니다.
씨파텐 이미지는 알지비 세 채널 컬러 이미지예요.
이 이미지가 첫 번째 블록을 통과하면 어떻게 될까요?
그림 가운데를 보시면, 블록 원에서 컨브투디가 세 채널을 열여섯 채널로 바꿔요.
그 다음 배치놈으로 정규화하고, 렐루로 비선형성을 추가해요.
마지막으로 맥스풀링이 해상도를 절반으로 줄여줍니다.
서른둘이 열여섯으로 줄었죠? 이게 핵심이에요.
블록 투를 보세요. 같은 패턴인데 채널이 열여섯에서 서른둘로 늘어나요.
해상도는 또 절반, 팔 곱하기 팔이 됩니다.
블록 쓰리도 마찬가지예요. 채널 육십사, 해상도 사 곱하기 사.
그림 오른쪽 분류부를 보세요.
플래튼이 사 곱하기 사 곱하기 육십사를 천이십사차원 벡터로 펴줍니다.
이 벡터가 두 개의 리니어 레이어를 거쳐 열 개 클래스 확률로 변환돼요.
그림 아래쪽 파라미터 수를 보세요.
컨브원은 겨우 사백사십팔개인데, 에프씨 레이어는 십삼만 개가 넘어요.
파라미터의 대부분이 에프씨에 몰려 있는 거예요.
맨 아래 텐서 차원 변화를 따라가 보세요.
비, 삼, 서른둘, 서른둘에서 시작해서 비, 열까지 줄어드는 흐름이 보이죠?
이 전체 흐름을 이해하면 씨엔엔 코드 구현이 훨씬 쉬워집니다.