-
패스트캠퍼스 환급챌린지 19일차 미션 (2월 19일) : 딥러닝·인공지능 Signature 초격차 패키지 Online. 강의 후기패스트캠퍼스 챌린지 2024. 2. 19. 18:51
자, 오늘은
Part3. 인공지능의 이해 Lv.2: 숲을 보는 인공지능
CH05-05. VGGNet
&
CH05-06. Inception(1)
CH05-05. VGGNet
VGG넷을 알아보기전에 이 ILSVRC라는 사물인식대회에 대해 먼저 알아보자(천하제일 이미지분류대회라고 알고있다.)
2012년에 굉장히 좋은 성능 AlexNet 이 나온다.(이 전까지는 콘불루션 연산을 하지 않았대요)
에러율이 26%에서 16% 굉장한 성능 발전을 이뤘고, 이후에 나온 웃으 알고리즘은 모두 다 CNN 알고리즘을 구현하였다.

그래서 우리는 이번에 14년 2등을 한 VGGNet을 알아볼꺼고, 그 이후에 구글넷, ResNet에 대해 알아보자.
ResNet은 사람이 인식하지 못했던 오브젝트에 대해서도 좋은 성능을 가져온다(사람의 능력을 뛰어넘기 시작)
VGGNet에 대해 알아보자
VGG넷은 13개의 콘볼루젼 레이어와 3개의 풀리커넥티드 레이어로 구성되어 있다.
앞부분은 컨볼류션과 풀링으로 되어있고, 뒷부분의 Dense 가 풀리 커넥티드다.
앞부분에서는 피쳐를 추출하고, 뒷부분에서는 클래시파이어를 학습할 수 있는 레이어를 구축한다!
VGGNet 이전에 나왔던 Alex Layer(최초의 콘불류션 사용) 은 11바이 11 필터를 사용하였다.
이후 맥스풀링을 진행하고 또 5바이 5 커널을 사용하였다.
왜 알렉스넷은 커널사이즈를 11, 5, 3 이렇게 줄여갔을까?
이때까지만 해도 컨볼류션 연산에서 특징을 뽑을 때 커널 사이즈를 크게 설정해서 좀 넓은 영역에 피쳐를 추출하고,
그 이후에 커널 사이즈를 줄여서 자세히 본다는 의미로 설계를 했다.
VGGNet은 이렇게 큰 커널 필요없다. 3바이 3으로도 충분히 다앙햔 특징을 뽑아낼 수 있다 라는 것을 보여줌.
여기서 Receptive Field(RF)에 대한 개념을 알 필요가 있는데, 이는 수용할수 있는 영역 즉, 커널이 컨볼류션 연산을
수행할 때 이미지의 얼마나 많은 영역을 수용할 수 있는가를 묻는 지표이다.

위의 이미지를 한번 봐보자. 패딩을 1로 적용하고 3바이 3 커널로 이미지를 쏵 훑고 지나간다고 해보자.
그 결과, 3바이 3 피쳐를 얻게 되었다.
첫번째 블록이 담고 있는 원본 이미지의 영역은 왼쪽의 좌측 상단 3바이 3이 되게 된다.
자 이번에 오른쪽을 보자면 왼쪽 상단의 첫번째 블록은 동일하게 좌측 상단의 3바이 3 의 정보를 담고있다.
그러면 원본 이미지 관점에서 이 필터 한칸이 가지는 이미지의 량은 얼마나 될까?
투바이 투 피쳐에서의 첫번째 값이 담고 있는 영역은 엄청 넓다.(7바이 7)
그래서 좌측 하단의 공식을그대로 사용했을 때 커널 사이즈가 7바이 7 커널을 하나만 사용하는 경우, 3바이 3 커널을 3번 사용하는 경우 뭐가 더 이득일까?
웨이트(메모리 사용량)도 줄어들게 되고, 엑티베이션 함수 통과도 더 많이하고(모델이 비선형성이 늘어나기 때문에 더 복잡한 선을 만들 수 있다.)
즉, 큰 커널 사이즈 한번보다 여러번 쪼개서 들어가는게 더 이득이라는 결론!
CH05-06. Inception(GoogleNet)
2등이 저렇게 궁금한데 1등은 더 궁금하지 않은가, 이번 시간에는 구글넷에 대해 알아보고자 한다.
복잡해보인다.
22층짜리 신경망, 인셉션 모듈이라고도 한다.
정확히는 9개의 인셉션 모듈이 들어있다.
저 빨간 박스 안의 반복이 되는 구조를 인셉션이라고 부르는데 이 모듈이 뭘까?
인셉션 모듈엔 2가지 특징이 있다.
1. split transform merge stategy: 다양한 크기의 필터를 사용하여 다양한 특징을 추출한다.
(커널 사이즈가 1*1, 3*3, 5*5 등...)
리셉티브 필드에 대해 가까이서도 보고 멀찍이서도 보는 효과를 줄수가 있었는데, 구글넷을 설계한 엔지니어는
하나의 커널을 통해 보는 것보다 관점을 달리해서 보는 게 좋지않을까? 라는 의문에서 시작되었다고 한다.
2. Bottleneck Structure(1X1 Conv)
원바이원 커널은 어떤 효과가 있나? 디멘져널리티 리덕션 효과가 있다고 한다.
→ 채널수를 줄임으로써...풀링이 아니라 채널수를 줄이는데, 콘불류션 언산을 더 사용하는데 그때 원바이원을 사용
→ 비선형성이 증가하고, 연산량을 줄이고 신경망ㄹ으 더욱 깊게 쌓을 수 있다.(채널수가 줄어든다면...)
따라서 요약하자면 아래 2가지와 같다.
1. 동일한 입력에 대해서 다양한 관점으로 확인할 수 있도록 여러개의 커널을 사용했다.
2. 1*1 커널을 사용함으로써 차원 축소할 수 있는 효과를 줌으로써 연산량을 줄이고 비선형성을 늘렸다.
자료구조는 다수의 자료(data)를 담기 위한 구조임.
우리는 데이터가 차고 넘치는 세상에서 상황에 맞게 적절한 자료구조를 선택해서 데이터를 아주 자알~
사용하는 방법을 알고 있어야 한다.
19일차 끝.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글