|
|
1. 퍼셉트론, MLP, DNN의 차이점
퍼셉트론은 입력층과 출력층만 있는 단층 신경망으로, 선형 분리 가능한 문제만 해결할 수 있다. MLP(다층 퍼셉트론)는 은닉층 1~2개를 추가하여 비선형 문제를 해결할 수 있으며, 활성화 함수를 통해 복잡한 패턴을 학습한다. DNN(심층신경망)은 은닉층이 수십~수백 개로 매우 깊어진 신경망으로, 층이 깊을수록 계층적으로 더 복잡한 특징을 추출할 수 있다(낮은 층은 단순한 엣지, 높은 층은 복잡한 객체 패턴).
2. 역전파 알고리즘의 문제점과 심층학습의 해결 방법
그래디언트 소실(Vanishing Gradient) 문제는 역전파 시 그래디언트가 층을 거칠 때마다 곱셈으로 전달되면서 0에 가까워져 초기 층들이 학습되지 않는 현상이다. 특히 Sigmoid 같은 활성화 함수는 미분값이 0~1 사이라서 층이 깊어질수록 0.9^56처럼 지수적으로 감소한다. 심층학습은 이를 ReLU 활성화 함수(미분값이 0 또는 1로 그래디언트 유지), Skip Connection(입력을 출력에 직접 더해 그래디언트 지름길 제공, 미분 시 항상 +1 보장), Batch Normalization(층 출력을 정규화하여 학습 안정화), Dropout(과적합 방지)으로 해결했다.
3. 영상분류, 객체검출, 영상분할 기술의 차이
영상분류는 이미지 전체를 보고 하나의 클래스를 판단하는 작업으로 "이 사진은 고양이다/강아지다" 같은 단일 답을 출력한다. 객체검출은 이미지 내 여러 객체의 위치(바운딩 박스)와 클래스를 동시에 찾는 작업으로, "여기에 고양이(x, y, w, h), 저기에 의자(x, y, w, h)" 같은 박스 리스트를 출력한다. 영상분할은 픽셀마다 클래스를 판단하여 정확한 윤곽을 그리는 작업으로, 360×480 이미지라면 172,800개 픽셀 각각에 대해 "도로/하늘/차/사람" 중 하나를 할당한다.
4. 영상분류 모델의 입출력
입력은 RGB 이미지로 일반적으로 224×224×3(높이×너비×채널) 형태의 3차원 텐서다. 출력은 클래스별 확률 벡터로, 예를 들어 1000개 클래스 분류라면 길이 1000인 벡터에 각 클래스 확률이 담겨 [고양이: 0.9, 강아지: 0.08, 자동차: 0.02, ...] 형태로 나온다.
5. 객체검출 모델의 입출력
입력은 영상분류와 동일하게 RGB 이미지다. 출력은 검출된 객체들의 리스트로, 각 객체는 (x, y, w, h, 클래스, 확신도) 형태를 가지며 여러 개가 나올 수 있다. 예를 들어 [(100, 200, 50, 80, '사람', 0.95), (300, 100, 150, 200, '자동차', 0.88), ...]처럼 바운딩 박스 좌표, 객체 종류, 신뢰도를 포함한다.
6. 영상분할 모델의 입출력
입력은 RGB 이미지로 예를 들어 360×480×3 형태다. 출력은 입력과 같은 공간 해상도의 세그멘테이션 맵(360×480)으로, 각 픽셀 위치에 클래스 ID가 할당된다. 예를 들어 픽셀(0,0)=1(도로), 픽셀(0,1)=1(도로), 픽셀(100,200)=3(차), 픽셀(200,300)=2(하늘) 같은 형태로 172,800개 픽셀 모두에 대해 클래스가 지정된다.
7. ResNet의 기본구조, 종류, 기능 기본구조
ResNet의 핵심은 Residual Block으로, Skip Connection(입력을 층 계산을 건너뛰어 출력에 직접 더하는 지름길)을 포함하여 출력이 H(x) = x + F(x) 형태가 되도록 설계되었다. 여기서 x는 입력(원본), F(x)는 층들이 학습한 변화량(차이)으로, 층은 전체 출력이 아닌 차이만 학습하면 되므로 학습이 단순해진다.
Basic Block은 3×3 합성곱 2개로 구성되며 채널 수를 유지한고(64→64→64), Bottleneck Block은 1×1 합성곱(채널 축소 256→64), 3×3 합성곱(특징 추출 64 유지), 1×1 합성곱(채널 복원 64→256) 순서로 구성되어 병목 모양을 만들며, 파라미터를 Basic의 약 1/17로 줄여 같은 메모리로 더 깊은 네트워크를 쌓을 수 있다.
각 Block은 독립적인 Skip Connection을 가지며, Block N의 원본은 Block N-1의 출력으로, Block마다 새로운 원본이 설정되고 변화가 누적된다(120→121→123...).
종류
ResNet-18, 34: Basic Block 사용, 얕은 구조(18/34층), 파라미터 적음(11M/21M), 가벼운 작업에 적합
ResNet-50, 101, 152: Bottleneck Block 사용, 깊은 구조(50/101/152층), ResNet-50이 가장 널리 사용됨(25M 파라미터, 성능과 효율 균형)
ResNet-50 구조 예시는 7×7 초기 합성곱 → Bottleneck Block×3 → Bottleneck Block×4 → Bottleneck Block×6 → Bottleneck Block×3 → 분류층 순서로 총 50개 층을 쌓는다.
기능
그래디언트 소실 해결이 핵심 기능으로, Skip Connection의 덧셈(x + F(x))은 미분 시 ∂(x + F(x))/∂x = 1 + F'(x)처럼 항상 1이 보장되어 그래디언트가 최소 1은 유지되며 직통 경로로 깊은 층까지 전달된다. 이를 통해 152층까지 쌓아도 안정적으로 학습할 수 있다.
Transfer Learning에 최적화되어 ImageNet으로 사전 학습된 Backbone(합성곱층들, 7×7×2048 특징까지)을 재사용하면 엣지/질감/패턴 같은 범용 특징 추출 능력을 그대로 가져와 의료 영상, 객체 검출, 영상 분할 등 다양한 작업에 적용할 수 있다. 이때 최종 FC층(Head)만 제거하고 작업에 맞는 새 Head를 붙여 적은 데이터로도 높은 성능을 낸다.
효율적인 설계로 Bottleneck Block은 1×1 Conv로 채널을 줄여(256→64) 3×3 Conv를 작은 채널에서 수행하므로 파라미터가 Basic 대비 17배 적으면서도 성능을 유지하거나 향상시킨다(차원 축소로 핵심 특징만 학습하여 과적합 방지).
계층적 특징 학습에서 낮은 층은 엣지/색 변화 같은 단순 특징(64채널 정도), 중간 층은 모서리/질감 같은 중간 패턴(128~256채널), 높은 층은 귀/눈/얼굴 같은 복잡한 패턴(512~2048채널)을 학습하며, 층이 깊어질수록 공간 해상도는 줄고(224→7) 채널 수는 늘어나(64→2048) 추상적 표현력이 증가한다.
8. Faster R-CNN의 기본구조와 기능
기본구조
Faster R-CNN은 Two-stage detector로, 객체 검출을 두 단계로 나눠 수행한다. Stage 1(RPN)에서 "어디에 물체가 있을까"를 찾고, Stage 2(Detector)에서 "그게 정확히 뭐고 정확한 위치는"을 판단한다.
전체 구조는 Backbone → RPN → ROI Pooling → Detector 순서로 진행된다. Backbone(ResNet 등)은 입력 이미지에서 특징맵을 추출하며, 이 특징맵을 RPN과 Detector가 공유하여 한 번의 CNN 실행으로 전체 작업을 처리한다.
RPN은 Faster R-CNN의 핵심 혁신으로, 기존의 Selective Search 같은 알고리즘 대신 신경망으로 영역을 제안한다. 특징맵의 각 위치마다 9개 Anchor Box(3가지 크기×3가지 비율 = 128×128 정사각형, 128×256 세로, 256×128 가로, 256×256, 512×512 등)를 미리 배치하고, 각 Anchor마다 (1) 물체가 있을 확률과 (2) 박스 조정값(△x, △y, △w, △h)을 예측한다. Anchor는 중심점과 크기로 표현되며, 조정값은 정답 박스까지의 거리를 나타낸다(예: Anchor 중심 160,240에서 정답 중심 162,237까지는 +2,-3). 학습 시 정답 박스와 IoU가 높은 Anchor를 선택하여 물체 점수는 1.0, 조정값은 (정답 - Anchor) 차이를 정답으로 손실을 계산한다. RPN은 특징맵 패턴을 보고 "엣지가 강하면 물체 확률 높음" 같은 규칙을 데이터에서 학습하여, 약 16,650개(특징맵 50×37×9) Anchor 중 점수 높은 ~2000개를 후보로 선택한다.
ROI Pooling은 RPN이 제안한 각 후보 박스 영역에서 특징을 추출하는데, 박스마다 크기가 다르므로 고정 크기(7×7×512)로 리샘플링하여 통일시킨다. 이렇게 추출된 고정 크기 특징을 FC층(Detector)에 입력할 수 있게 된다.
Detector는 전형적인 CNN 분류 구조로, ROI Pooling에서 나온 7×7×512 특징을 Flatten하여 25,088차원 벡터로 만든 뒤 FC층 2개(각 4096차원)를 거쳐 (1) 클래스 분류(사람/자동차/배경 등 확률)와 (2) 박스 미세조정(△x, △y, △w, △h)을 동시에 수행한다.
NMS는 중복 박스를 제거하는 후처리로, 같은 물체에 여러 박스가 겹칠 때 가장 확신도 높은 박스만 남기고 나머지를 제거한다.
기능
영역 제안의 신경망화가 핵심 기능으로, 기존 R-CNN이 Selective Search 알고리즘으로 2초 걸리던 영역 제안을 RPN이 신경망으로 0.01초에 처리하여 약 200배 속도 향상을 달성했다. RPN은 학습으로 "어떤 패턴이 물체인가"를 자동으로 발견하며, 사람이 설계한 규칙보다 복잡한 패턴을 잘 찾는다.
특징맵 재사용으로 효율성을 극대화하는데, R-CNN이 2000개 후보 영역마다 CNN을 돌려 2000번 실행하던 것을 Faster R-CNN은 이미지 전체에 CNN을 1번만 실행하고 특징맵을 RPN과 Detector가 공유하여 계산량을 대폭 줄였다.
Anchor 기반 학습으로 학습을 단순화하는데, 박스를 처음부터 예측하는 대신 미리 정해둔 9가지 템플릿(Anchor) 중 하나를 선택하여 조정값만 학습하면 되므로 ResNet의 Skip Connection처럼 "전체가 아닌 차이만 학습"하는 원리로 수렴이 빠르다.
Two-stage 구조로 정확도와 속도를 균형있게 달성하는데, Stage 1(RPN)은 빠르게 대략적인 후보를 찾고, Stage 2(Detector)는 정밀하게 분류 및 위치를 정교화하여 one-stage detector보다 정확하면서도 실용적인 속도(0.2초/이미지)를 유지한다.
Transfer Learning 용이성으로 Backbone에 ImageNet 사전학습된 ResNet을 사용하면 객체 검출 데이터가 적어도 높은 성능을 내며, RPN과 Detector만 새로 학습하면 되므로 다양한 도메인(자율주행, 의료영상 등)에 적용 가능하다.
9. DeepLab v3+의 기본구조와 기능
기본구조
Encoder-Decoder 구조 + Atrous Convolution + ASPP
Atrous Convolution(팽창 합성곱): 필터 사이를 띄워서 넓은 영역을 보되 파라미터는 그대로 유지한다. rate=4면 9×9 영역을 3×3 파라미터(9개)로 처리하여 효율적이며, Pooling 없이도 넓게 볼 수 있어 해상도를 유지한다.
용어설명
ASPP: 여러 rate(1, 6, 12, 18)와 Global Pooling을 병렬로 실행하여 작은 객체부터 큰 객체까지 동시에 처리한 뒤 결과를 합친다. rate별로 전문 분야가 생겨 rate=1은 작은 것, rate=6은 중간, rate=12는 큰 것을 잘 찾는다.
Encoder: ResNet을 Backbone으로 쓰되 Pooling 일부를 Atrous로 대체하여 해상도 손실을 줄이고(입력의 1/16만 축소), 중간 층의 세밀한 특징을 Skip Connection으로 Decoder에 전달한다.
Decoder: ASPP 출력을 업샘플링하여 Encoder의 세밀한 특징과 합치고 원본 크기로 복원하여 각 픽셀을 분류한다.
기능
해상도 유지: Atrous로 Pooling을 대체하여 픽셀 정보 손실이 적고 경계선이 선명하다.
멀티스케일 처리: ASPP로 모든 크기의 객체를 동시에 잘 처리한다.
효율성: 넓은 영역을 보면서도 파라미터 증가 없이 메모리 효율적이다.
정밀한 경계: Skip Connection과 고해상도 유지로 물체 윤곽이 깔끔하다.
자율주행, 의료영상 등 정밀 분할이 중요한 분야에서 최고 수준 성능을 낸다.
|
|

첫댓글 빨리 진행하고 분류,검출,분할할때 다시 정리할것
넵 알겠습니다!