나의 작은 valley

[Computer Vision] Ch 5 ~ Ch 8 본문

Computer Science/[인공지능]

[Computer Vision] Ch 5 ~ Ch 8

붕옥 아이젠 2024. 4. 12. 12:16
728x90

고전 컴퓨터 비전

: Fillter 값을 사람이 정했다.

 

현대 컴퓨터 비전

: 정답(Grand Truth 이하 GT)과의 Loss를 통해 오차를 줄이는 방향으로 Fillter 값을 업데이트하는 방식으로 바뀌었다. -> 좀 더 정교해졌다.

 

학습 가능한 파라미터

1) Conv : Num of Parms = (Nin x Nin x Cin + 1(bias) x Cout 개

2) Batch Norm : Num of Parms = 2 x Cin ( alpha, beta 이렇게 2개여서 2를 곱함.) 개

3) FCLayer : Num of Parms = (Nin x Nin x Cin + 1) x M(출력 뉴런의 개수) 개

 

학습 불가능한 파라미터

1) Activation Layer

: 활성화 함수에는 업데이트의 요소가 '당연히' 없다.

2) Pooling Layer

: Max Pooling or Avg Pooling 중 선택의 요소만 있다.

 

CNN 모델의 구성

: Conv Block (Conv Layer  + Batch Norm Layer + Activation Layer) + Pooling Layer

Conv Layer 

: 뒤로 갈수록 Receptive Field가 커져서 의미하는 이미지의 크기가 커진다. -> 뒤로 갈수록 High_Level_Feature를 학습하게 된다.

Activation Layer

: non_linearity를 살릴 수 있다. 

 

자주 사용하는 Function

1) ReLU

 - 매우 빠르게 수렴한다.

 - 음수의 경우 update가 되지 않는다.

 - 양수의 경우 Gredient_vanishing_problem이 발생하지 않는다.

 

2) Leaky ReLU

- 음수의 경우 0.1배로 업데이트 된다.

 

Pooling

: parms 개수가 줄어든다. + Reveptive Field가 증가한다.

- Max Pooling

  : 극단적인 값만 가져오기에 정보손실 가능성이 존재한다.

- Avg Pooling 

  : 구조 특징이 유지된다. 단 중요정보가 희석될 가능성이 존재한다.

 

 

인공지능은 이미지에 어디를 보고 있는 것일까? (CAM, Class Activation Mapping)

- motive) FCLayer를 사용하면 이미지를 Flatten 해주어야 하는데 문제는 그러면 이미지 구조에 대한 정보가 사라진다. 구조에 대한 정보를 살리기 위해 Pooling을 사용하자 !

 

- CAM의 정의

 : 채널 별로 평균을 구하면(GAP(Global Average Pooling)) 채널 수 만큼의 벡터가 만들어진다. 거기에 가중치를 곱해서 더하면 그게 CAM의 수학적 정의이다.

- 의미

 : GAP를 수행하면 각 클래스로 분류할 확률에 영향을 미친 객체의 x,y 좌표를 추출할 수 있다. + 각 채널들 마다 결과에 영향을 준 정도를 가중치(w)로 판단할 수 있다. 

cf) GAP

Grad-Cam

motive) GAP를 안쓰는 경우에 대해서는 컴퓨터가 어디를 보는지 시각화하기 힘들다. 

 

structure) 

 CAM의 경우에는 가중치와 함수를 곱했다면 alpha와 함수를 곱하는 식으로 작동한다. 이떄 alpha라는 변수의 식을 보면 partial y^c / partial A_{ij}^c이다.

 

y^c는 예측값이고 A_{ij}^c는 faature map에 하나의 픽셀값인데 둘이 편미분이 된다는 것이 직관적으로 이해가 가지 않을 수 있으나 특정 레이어의 특징 맵으로부터 나머지 레이어 (gradcam에서는 가중치가 아닌 기울기를 곱하여)를 통과하여 나온 class logit에 대해 계산하는 것이므로 편미분이 가능하다. 의미는 클래스 정보가 변할 때의 특징 벡터의 변화 정도라고 생각하면 된다. 

728x90

'Computer Science > [인공지능]' 카테고리의 다른 글

[Generation] 생성 모델의 변천  (0) 2024.05.05
[Generation] 생성 모델 역사/평가지표  (0) 2024.05.03
[ComputerVision] ch 1 ~ ch 4  (0) 2024.04.05
[딥러닝] DNN 구현  (0) 2024.03.15
[딥러닝] Tensor Manipulation  (2) 2024.03.15
Comments