250x250
Notice
Recent Posts
Recent Comments
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

SYDev

[KHUDA 4th] CV 4주차 세션 (10.04) 본문

KHUDA 4th/Computer Vision

[KHUDA 4th] CV 4주차 세션 (10.04)

시데브 2023. 10. 5. 19:53
728x90
3주만에 대면 세션! 세션 도중 이해가 되지 않았거나,
더 알아보고 싶었던 내용 위주로 작성 예정

 

 

ResNet에서 gradient vanishing을 해결하는 원리

  • resnet 이전의 모델에서 layer가 너무 깊어질수록 gradient vanishing/exploding 문제로 성능이 저하되는 문제가 발생함.
  • gradient vanishing: layer가 깊을수록, back propagation의 미분 과정에서 기울기가 소실되는 문제가 발생
  • ResNet에서는 skip connection을 이용한 residual learning을 통해 gradient vanishing 문제를 해결

 

ResNet

  • 기존의 CNN은 입력값 x를 y로 매핑하는 함수 H(x)를 얻는 것이 목적
  • ResNet은 F(x)+x를 최소화시키는 것을 목적으로 함
  • F(x) = H(x) - x (= residual)
  • H(x) = F(x) + x에서 F(x)가 0이 되도록 학습시킬 때, 미분 값이 F'(x) + 1으로 최소 1이 확보되어 gradient가 소실되지 않음

He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep Residual Learning for Image Recognition.

 

Bounding Box Regression

  • selective search에서 제안된 영역을 실제 객체의 위치에 맞게 조정하는 과정

>> 이 수식에 대해서 다음에 더 자세히 알아보자.

 

 

4주차 실습: Selective Search와 Binary Classification을 통한 간단한 R-CNN 구현(MRI 사진을 활용하여 종양의 위치와 양성/음성 여부를 판단) 

 

전체 코드 중 실습을 진행한 부분만 !

 

def get_iou(bb1, bb2):

    # input: x1, y1, x2, y2 를 가진 두 개의 dict  (x1, y1) : bbox 왼쪽 하단, (x2, y2) : bbox 우측 상단
    # return: float IoU value

    x_left = max(bb1['x1'], bb2['x1'])
    y_bottom = max(bb1['y1'], bb2['y1'])
    x_right = min(bb1['x2'], bb2['x2'])
    y_top = min(bb1['y2'], bb2['y2'])

    if x_right < x_left or y_bottom > y_top:
      return 0.0

    intersection_area =  (x_right - x_left) * (y_top - y_bottom)
    bb1_area =  (bb1['x2']-bb1['x1']) * (bb1['y2']-bb1['y1'])
    bb2_area =  (bb2['x2']-bb2['x1']) * (bb2['y2']-bb2['y1'])
    iou = (intersection_area) / (bb1_area + bb2_area - intersection_area)

    assert iou >= 0.0
    assert iou <= 1.0
    return iou

 

 

... 중간 과정 생략

 

>> 모델 학습 결과!

 

 


참고자료

 

(논문리뷰) ResNet 설명 및 정리

이전의 연구들로 모델의 layer가 너무 깊어질수록 오히려 성능이 떨어지는 현상이 생김을 밝혀냈다. 이는 gradient vanishing/exploding 문제 때문에 학습이 잘 이루어지지 않기 때문이다. gradient vanishing

ganghee-lee.tistory.com

 

728x90