- 1D vector의 의미 : [1, 2, 3, 4, 5] > 이것은 1D vector, Dimension
- [[1,2,3], [4,5,6]] 2D vector > 행렬
- loss의 의미 : MSE에서는, loss = (예측값 - 실제값)^2 # Mean Squared Error
- Validation test : Traning Data의 일부를 데이터 검증하는데 활용하겠다는 의미
- 하이퍼파라미터 : 머신러닝 모델이 학습되기전 사용자가 직접 설정해줘야 하는 값, 모델이 아닌 사람이 정해주는 값
- batch : 데이터셋에서 한 번 훈련할 때 몇개를 모델에 넣어학습시킬거냐? Ex. Batch 64 > 64개 가져오겠다
- Activation Function에서 Relu 가장 많이 사용
- 비선형성 부여가 핵심
-
Relu. Rectified Linear Unit
- Bias 가 있어야 기울기, 절편 값을 바꿀 수 있음
- Upstream Gradient는 Backpropagation 과정에서, "이전 레이어로부터 전달받은 Gradient"를 의미한다.
- Sparse 하다 : 듬성듬성하다.
▨ CNN의 주요 특징 3가지
1. ✅ Sparse Interactions (희소 연결, 희소 연산)
CNN에서는 전체 입력에 대해 모든 연결을 계산하지 않고, 일부 영역(커널 크기만큼)만 보고 연산하는 것
이걸 local receptive field (지역 수용 영역)라고도 한다.
Q. 저렇게 Sparse 하게 커넥션 되면, 한 가지 유닛은 특정 부위밖에 못보는데, 그러면 이미지 전체를 커버 하지 못하는 것이 아닌가??
A. > 맞다. CNN은 특정 국소 부위 밖에 못본다. > 한 개의 레이어만 보면 그렇지만, Depth 깊이 늘리면 해결된다.
2. ✅ Parameter Sharing (파라미터 공유)
같은 가중치(파라미터)를 여러 위치에서 "공유해서 쓰는 것"
- 동일한 필터(커널)를 입력의 여러 위치에 동일하게 적용하는 것
- 즉, 같은 가중치를 반복 사용하는 구조
3. ✅ Equivariant Representation (등변 표현)
- 입력이 변하면(예: 이동), 출력도 그에 따라 변하되 일관된 방식으로 변합니다.
- 특히 CNN은 translation equivariant (이동에 대해 등변)입니다.
📍예시:
- 이미지에서 고양이가 오른쪽으로 이동하면,
CNN의 feature map에서도 고양이 특징 위치가 같이 이동합니다.
--
- pooling : size 줄이는거, 대표값 뽑는거
- 언더피팅, 오버피팅에 대해서
🎨 그림 그리는 예로 설명해볼게!
🧩 상황:
너는 친구 얼굴을 보고 그림을 그리는 AI야.
그림 연습을 하면서 점점 잘 그려야 해.
1. ✅ 언더피팅 (underfitting)
너무 못 그림. 아무 얼굴도 제대로 못 닮음.
- 연습을 너무 조금 했거나,
- 너무 간단하게 배워서
- 아무 얼굴도 제대로 못 그려
🧒: “이게 누구야...? 그냥 동그라미에 점 찍었네…”
2. ✅ 오버피팅 (overfitting)
한 친구 얼굴만 너무 열심히 외워서, 다른 친구 얼굴도 똑같이 그림
- 한 사람 얼굴만 보고 진짜 똑같이 그림
- 근데 다른 사람 얼굴도 그 친구처럼 그려버림!
🧒: “왜 다 이준우처럼 생겼어? 이거 철수인데...”
3. ✅ 정답은? 적당히 잘 배운 경우!
여러 사람 얼굴 특징을 잘 배워서,
새로운 친구 얼굴도 비슷하게 잘 그림!
🧒: “오~ 이건 진짜 철수 닮았다!”
- Convolution Operation 하는 모습 Stride 1과 2의 차이
- Convolutional Layer는 입력과 sparse하게(희소하게) 연결되어 있다. fully connected가 아님!
--
Batch Nomalization
- ML이나 DL에서 중요한 것은, 데이터로부터 유용한 feature 뽑는 것이 핵심이다
- Batch Nomalization이란, 한 번 학습할 때 쓰는 batch 안의 데이터 값들(출력값, 즉 activation)을
평균 0, 분산 1처럼 비슷한 범위로 정규화(normalization) 해주는 게 Batch Normalization이다.- 하나의 Batch안에 들어있는 데이터 값들에 대해 관심, 그것들을 일정한 값(Ex. 평균 = 0)으로 해주는 것을 의미
배치 노말라이제이션을 왜하냐?
> 입력 데이터의 정규화를 통해 각 층에서 더 안정적으로 학습되기 때문이다.
--
- Fully-Connected Layer: 각 레이어의 모든 뉴런이 서로서로 커넥션 되어있는 것을 의미
--
VGG, Visual Geometry Group ( 3x3 필터 반복 사용이 핵심 )
- 간단한 구조의 CNN을 깊게 쌓은 모델로, 3×3 작은 필터를 반복 사용해 특징을 추출
- 무조건 3x3 은 아니고 대부분 3x3 사용함
ResNet( Skip Connection 이용이 핵심 )
- Residual Connection 을 도입해, 아주 깊은 네트워크도 학습 가능하게 만든 모델
- Residual Connection은 Skip Connection과 같음
- Skip Connection은 hidden layer, 중간 레이어 건너뛰고 뒤쪽에 있는 레이어에다가 값을 바로 다이렉트로 전달하는 것
- Residual Connection은 Skip Connection과 같음
--
전통적인 Object Detection, 사진안에 이건 고양이고 이건 자동차고 분류하고 그 위치가 어디에 있는지를 찾는 문제
는 이미지에서 이미지가 있을 법한 곳을 box proposals 하여 sliding box 방식으로 이미지 전체를 훑는 방식으로 object detection을 진행하였었다. > 이것은 비효율적임
따라서 등장함 > 최초의 딥러닝 기반의 R-CNN 이때 R은 Region
YOLO
- 이미지를 먼저 격자 형식으로 나눔
- 1Stage 방식으로 한 번에 진행되므로, 실행속도 빠르다는 장점
*1stage : 객체 탐지 + Classification 한 번에 진행. 속도 빠름 Ex. YOLO
*2stage : 객체탐지 후 Calssification. Sequential 하게 진행. 정확도 높음 Ex. R-CNN
객체 탐지에서 Precision 과 Recall
Precision이 TP / (TP + FP) Recall이 TP / ( TP + FN )
> 재현율이 실제 토탈 갯수에만 관심, 정밀도가 내가 찾은 갯수에 관심
> TP 가 내가 찾은 실제 값 갯수 FP가 실제 토탈 값에서 내가 찾은거 뺀거 FN이 내가 뽑은 거중에서 아닌 값
객체 탐지 성능 평가할 때 precsion과 Recall은 가로 세로 축을 담당하여 성능 평가에 중요한 파라미터임
--
- Fully Connected Layer:
한 레이어의 모든 뉴런이 그 다음 레이어의 모든 뉴런과 연결되어 있는 구조를 의미 - Object Detection에서 중복된 경계 상자를 제거하여 하나의 객체에 대해 하나의 경계 상자만 남기기 위해 사용하는 기법은 무엇인가요? > NMS
- Object Detection에서 여러 개의 경계 상자(bounding boxes)가 하나의 객체를 가리키는 경우, 이 중에서 가장 신뢰도(confidence score)가 높은 상자만 남기고 나머지를 제거하는 기법
- Confidence Score
NMS( Non-Maximum Suppression )
- Non maximum suppression NMS, 수행하는 이유는 동일한 물체를 가리키는 여러 박스의 중복을 제거하기 위함
- 각 물체별 가장 좋은 Box 한 개만 남기고 나머지는 다 지우는 역할
- NMS 방법?
- Confidence score이랑 IoU 사용하는 데,
- 1. 특정 Confidence Score 이하의 Bounding Box는 제거함 ( Confidence Score Threshold는 HyperParameter )
- 2. 남은 Bounding Box 들을 Confidence Score 기준으로 내림차순 정렬
- 3. 맨 앞 박스부터 기준으로, 이 박스와 IoU가 특정 Threshold 이상인 박스들은 모두 제거한다. (IoU Threshold 역시 HyperParameter)
- *IoU는 "박스 위치가 얼마나 정확한가"에 관심 있고, Ground truth 얼마나 겹치는가?
*Confidence Score는 "그 박스 안에 있는 물체가 진짜 그 클래스인가"에 관심 - Ground Truth는 정답(label)입니다.
즉, 사람이 직접 보고 정해준 실제 정답을 의미, ML, CS분야에서 많이 사용됨
- *IoU는 "박스 위치가 얼마나 정확한가"에 관심 있고, Ground truth 얼마나 겹치는가?
--
Anchor Box
그러나, NMS 사용시 object들이 서로 겹쳐있을 때 object에 대한 bounding box까지 날라갈 수 있다
이를 해결하기위해 등장한 것이 > Anchor Box
Anchor box는 탐지하려는 객체의 모양을 정해놓고, 객체가 탐지되었을 때 어떤 Anchor Box와 유사한지 판단해서 벡터값을 할당하는 방법이다.
Anchor Box는 다양한 물체 크기·비율을 커버하기 위해 미리 정해 놓은 기준 박스이며,
객체는 IoU가 가장 높은 anchor box에 할당되어 탐지/학습된다.
--
위 모든 내용 정리
Fully Connected Layer
- 한 레이어의 모든 뉴런이 다음 레이어의 모든 뉴런과 연결된 구조
1D, 2D Vector
- [1, 2, 3] → 1D Vector
- [[1,2,3], [4,5,6]] → 2D Vector (행렬)
Loss Function
- 모델의 예측값과 실제값의 차이
- 예: MSE = (예측값 - 실제값)²
Validation
- Training Data의 일부를 검증용으로 사용
하이퍼파라미터
- 모델이 학습되기 전 사람이 정하는 값 (예: learning rate, batch size 등)
Batch
- 한 번 학습에 사용하는 데이터 묶음
- 예: batch size 64 → 한 번에 64개 샘플 사용
ReLU (Rectified Linear Unit)
- 음수면 0, 양수면 그대로 출력
- 딥러닝에서 가장 널리 사용됨
Bias
- 절편 역할, 기울기만으로 표현 못하는 경우 조정 가능
Backpropagation & Gradient
Upstream Gradient
- 역전파 과정에서 이전 레이어로부터 전달받은 기울기
CNN 핵심 개념
Sparse Interaction
- 입력 전체가 아닌 일부(Local)만 보고 연산
- 연산 효율성, 파라미터 감소
Parameter Sharing
- 동일한 필터(가중치)를 입력 전체에 반복 적용
- 파라미터 수 감소
Equivariant Representation
- 입력이 이동하면 출력도 동일하게 이동
- CNN은 translation equivariant
Pooling
- 대표값을 뽑아 특성 맵 크기를 줄이는 작업 (예: max pooling)
학습 이슈
Underfitting
- 너무 단순해 아무것도 못 맞추는 상태
Overfitting
- 학습 데이터에 과도하게 맞춰서 새로운 데이터에 약한 상태
Convolution Operation
Stride
- 필터가 이동하는 간격
- 큰 stride → 출력 크기 작아짐
Zero Padding
- 출력 크기를 맞추기 위해 주변에 0을 추가하는 기법
Batch Normalization
- 배치 안의 값들을 평균 0, 분산 1로 정규화
- 학습 안정화, 속도 향상
모델 구조
VGG
- 대부분 3×3 필터 반복 사용
- 단순한 구조로 깊은 네트워크 설계 가능
ResNet
- Skip Connection(Residual)을 통해 깊은 네트워크도 학습 가능
- 입력을 중간 레이어를 건너뛰어 다음 레이어로 더함
Object Detection 핵심 개념
Precision & Recall
- Precision: 내가 찾은 것 중 맞은 비율
- Recall: 실제 중에서 내가 맞춘 비율
- 평가 지표: Precision-Recall Curve의 넓이(AP)
Confidence Score
- 해당 박스 안에 특정 클래스가 있을 확률 (0~1)
IoU (Intersection over Union)
- 예측 박스와 실제 박스가 얼마나 겹치는지 나타내는 값 (0~1)
NMS (Non-Maximum Suppression)
- 겹치는 박스 중 Confidence가 가장 높은 것만 남기고 나머지를 제거
- IoU가 특정 임계값 이상이면 같은 객체로 판단하고 중복 제거
- 같은 물체에 대해 여러 박스가 예측되었을 때 중복 제거 목적
- 모든 박스 중 하나만 남기는 것이 아니라, 중복되는 것만 제거
Anchor Box
- 다양한 크기와 비율의 객체를 탐지하기 위해 미리 정해놓은 기준 박스
- 예측 박스와 anchor box의 IoU를 비교해 가장 유사한 anchor에 할당
- 모델은 각 anchor box마다 벡터(클래스, 위치, confidence 등)를 예측함
'공학 > 인공지능' 카테고리의 다른 글
RNN, LSTM, Gradient Explosion, Gradient Clipping, Norm, Scaling, Standardization, Pruning, Quantization, Pooling, Knowledge Distillation (1) | 2025.05.06 |
---|---|
BGD, SGD (0) | 2025.05.01 |
Computation of Multi-Layer Perceptron, MLP with updating weights 02 (0) | 2024.12.18 |
Review of Artificial Intelligence 01 (0) | 2024.12.17 |
Computation of Multi-Layer Perceptron, MLP with updating weights 01 (0) | 2024.12.17 |