250x250
두번째하늘
두하
두번째하늘
전체 방문자
오늘
어제
  • 분류 전체보기
    • 한달 기록
    • 매일 기록
    • 정보, 공유
    • 맛집
    • 후기
      • 대회
      • 기타
    • Flutter
    • Visual Studio Code
    • 프로그래밍 언어
    • 인공지능
    • PS
      • BOJ
      • CP

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • onPressed
  • debug console창 열기
  • Webex 화면 공유 안됨
  • debug console open
  • Mac Webex 화면 공유
  • box decoration
  • leading
  • onDetailPressed
  • EdgeInsets
  • Visual code debug console
  • Visual code debug console open
  • Webex 화면 공유
  • Webex 화면 공유 mac
  • actions
  • Flutter
  • UserAccountsDrawerHeader
  • 무야홍
  • AppBar
  • Drawer
  • Webex 화면 공유 오류
  • 첫 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
두번째하늘

두하

ResNet
인공지능

ResNet

2022. 2. 3. 11:59
728x90

ResNet은 마이크로소프트에서 개발한 알고리즘이다.
2014년의 GoogLeNet은 22개의 층으로 구성되었는데 ResNet은 무려 152개의 층을 갖는다. 7배나 깊어진 것이다.
네트워크가 깊어지면서 발생하는 error가 낮아졌다. 즉, 성능이 좋아졌다.
그렇지만 망을 깊게 한다고 무조건 성능이 좋아지는 것은 아니다.
Convolution layer 20층과 fully - connected layer 56층의 네트워크를 비교해 보았을때 20층의 layer가 더 좋은 성능을 나타내었다.

즉, 기존의 방식이 아닌 새로운 방법이 있어야 망을 깊게 만드는 효과를 볼 수 있다는 것이 결론이다.

Residual Block

Residual Block이 바로 ResNet의 핵심이다.
기존의 방식과 달리 입력값을 출력값에 더해줄 수 있도록 Shortcut(지름길)을 하나 만들어주었다.

기존의 신경망은 입력값 x를 타겟값 y로 매핑하는 함수 H(x)를 얻는 것이 목적이었다.
그러나 ResNet은 F(x) + x를 최소화하는 것을 목적으로 한다. x는 현시점에서 변할 수 없는 값이므로 F(x)를 0에 가깝게 만드는 것이 목적이 된다. F(x)가 0이 되면 출력과 입력 모두 x로 같아진다.
F(x) = H(x) - x 이므로 F(x)를 최소로 해준다는 것은 H(x) - x를 최소로 해주는 것과 같은 말이다.
여기서 H(x) - x를 residual(잔차)라고 한다.
즉, 잔차를 최소로 해주는 것이므로 ResNet이란 이름이 붙게 된다.

ResNet의 구조

ResNet은 기본적으로 VGG-19의 구조를 뼈대로 한다.
이 구조에 Convolution layer들을 추가해서 깊게 만든후 Shortcut을 추가하는 것이 전부이다.
34층의 ResNet과 거기에서 shortcut들을 제외한 버전인 plain 네트워크 구조는 다음과 같다.

ResNet Architecture

34층의 ResNet은 처음을 제외하고는 균일하게 3X3 사이즈의 Convolution 필터를 사용했다.
그리고 특정맵의 사이즈가 반으로 줄어들때 깊이를 2배로 높였다.

shortcut이 즉, Residual Block이 효과가 있는지 알기 위해 이미지넷에서 18층 및 34층의 plain 네트워크와 ResNet의 성능을 비교했다.

Plain Nerwork VS ResNet

왼쪽 그래프에서는 plain 네트워크는 망이 깊어지면서(34layer) 에러가 오히려 커졌다. 즉, 성능이 나빠졌다.
하지만 오른쪽 그래프에서는 망이 깊어지면서 에러가 작아졌다.
다시말해, shortcut을 연결하면서 residual를 최소가 되게 학습한 효과가 있다는 것이다.

출처:https://bskyvision.com/644
참고:https://medium.com/@Lidinwise/the-revolution-of-depth-facf174924f5
https://cv-tricks.com/keras/understand-implement-resnets/
https://datascienceschool.net/view-notebook/958022040c544257aa7ba88643d6c032/
https://laonple.blog.me/220761052425

728x90

'인공지능' 카테고리의 다른 글

[밑바닥부터 시작하는 딥러닝] Ch2. 퍼셉트론  (0) 2022.03.01
To do list  (0) 2022.02.16
Image Augmentation 기법  (0) 2022.02.03
Colab 단축키 정리  (0) 2022.02.02
CNN 알고리즘  (0) 2022.02.02
    '인공지능' 카테고리의 다른 글
    • [밑바닥부터 시작하는 딥러닝] Ch2. 퍼셉트론
    • To do list
    • Image Augmentation 기법
    • Colab 단축키 정리
    두번째하늘
    두번째하늘
    metaverse. 일상이야기 쓰고 공부 좀 하려고 만든 두번째 하늘.

    티스토리툴바