본문 바로가기
딥러닝

밑바닥부터 시작하는 딥러닝 Chapter8 - 딥러닝

by 오렌지마끼야또 2022. 6. 29.
728x90
반응형

 

 

 

 

 

VGG 신경망

 - 3*3의 작은 필터를 사용한 합성곱 계층(Conv)
 - 활성화 함수는 ReLU
 - 풀링 계층 추가해 중간 데이터의 공간 크기를 줄여나감
 - 완전연결 계층 뒤에 드롭 아웃 계층 사용
   완전 연결 신경망이란, 인접하는 계층의 모든 뉴런과 결합되어 있는 신경망을 말한다. 입력 데이터와 가중치가 1대 1로 대응하는 것을 완전 연결(Fully-Connected)이라고 하며, 행렬의 내적(Affine)으로 표현된다.
 - 드롭 아웃은 오버피팅(over-fit)을 막기 위한 방법으로 뉴럴 네트워크가 학습중일때, 랜덤하게 뉴런을 꺼서 학습을 방해함으로써, 학습이 학습용 데이타에 치우치는 현상을 막아준다. 일반적으로 CNN에서는 이 드롭아웃 레이어를 Fully connected network 뒤에 놓지만, 상황에 따라서는 max pooling 계층 뒤에 놓기도 한다.
 - 가중치 매개변수 갱신(Adam을 사용해 최적화)
 - 가중치 초기값: 'He' 초기값
   ReLU계의 활성화 함수 사용 시 He 초기화 방법이 효율적이다.

 

 

 

현재 CNN을 기초로 한 기법들 중에서 MNIST 데이터셋에 대한 정확도 1위는 99.79% 이다. 오차율이 0.21%밖에 안된다. 2013년에 나온 기법이 그 후에 나온 기법들보다 성능이 우수하다. 1위를 한 기법도 합성곱 계층 2개에 완전연결 계층 2개인 신경망인데 무작정 깊다고 해서 정확도가 높아지는 건 아닌 것 같다.  

아마도 단순하게 숫자를 인식하는 데에 그렇게까지 깊은 신경망을 사용하는 건 오히려 과한 것 같다고 볼 수 있다. 그래서 더 깊게 신경망을 구현해도 정확도가 더 높아지진 않았던 것 같다.

 

 

정확도를 높이기 위해 사용한 기법 Method들은 다양하게 있는데 그 중에서 데이터 확장 Data Augmentation은 정확도 개선에 아주 효과적이라는 게 입증된 방법이다.

데이터 확장 방법은 입력 이미지를 알고리즘을 이용해서 인위적으로 확장한다. 

데이터가 몇 개 없는 상태에서 학습할 때 비슷비슷한 데이터를 임의로 만들어서 데이터 수를 늘릴 수 있으니 학습에 좋을 것이다. 손글씨 데이터의 경우에는 원본을 회전하거나 이동시키거나 약간 잘라내기도 하고 좌우 반전을 하기도 하는 등의 변화를 줘서 데이터 수를 늘릴 수 있다.

 

 

 

층을 깊게 하는 것의 이점

 

1. 신경망의 매개변수 수가 줄어든다.

 

 5 X 5의 합성곱 연산 1회는 3 X 3의 합성곱 연산을 2회 수행하여 대체할 수 있다.
게다가 전자의 매개변수 수가 25개(5 X 5)인 반면, 후자는 총 18개(3 X 3 X 2)이며, 매개변수 수는 층을 반복할수록 적어진다. 그리고 그 개수의 차이는 층이 깊어질수록 커진다.

예를 들어 3 X 3의 합성곱 연산을 3회 반복하면 매개변수는 모두 27개가 되지만, 같은 크기의 영역을 1회의 합성곱 연산을 하기 위해서는 7 X 7 크기의 필터, 즉 매개변수 49개가 필요하다.

또한 activation 함수로 ReLU 라는 비선형 함수를 사용하는데 이 비선형 함수가 여러개 중첩될수록 더 복잡한 함수를 쉽게 구현할 수 있다.

 

 

2. 학습의 효율성

만약 강아지를 인식하는 모델이라고 했을 때 앞단의 합성곱 계층에서는 에지 등의 단순한 패턴에 뉴런이 반응하고 층이 깊어지면서 텍스처와 사물의 일부와 같이 점차 더 복잡한 것에 반응한다는 것을 배웠다.

이것을 레이어가 1, 2개와 같은 얕은 신경망으로 해결하려면 convolution 계층은 강아지의 특징을 한번에 이해해야 한다. 때문에 많은 학습 데이터가 필요하고, 학습시간도 더 오래걸린다.

 

 

3. 정보를 계층적으로 전달할 수 있다.

에지를 추출한 층의 다음 층은 에지 정보를 쓸 수 있고, 더 고도의 패턴을 효과적으로 학습하리라 기대할 수 있다.
즉, 층을 깊이 함으로써 각 층이 학습해야 할 문제를 '풀기 쉬운 단순한 문제'로 분해할 수 있어 효율적으로 학습하리라 기대할 수 있다.

 

 

 

 

유명한 신경망 - VGG, GoogleLeNet, Resnet

https://deep-learning-study.tistory.com/215?category=942011 

 

[딥러닝] 세 가지 유명 신경망 - VGG, GoogLeNet, ResNet

사이토고키의 <밑바닥부터 시작하는 딥러닝>을 공부하고 정리해보았습니다. 1. VGG  VGG는 합성곱 계층과 풀링 계층으로 구성되는 기본적인 CNN입니다.  다만, 아래 그림과 같이 비중 있는 층(합성

deep-learning-study.tistory.com

 

 

 

 

 

 

 

 

 

사진 및 참고

 

https://velog.io/@dscwinterstudy/2020-01-28-1401-%EC%9E%91%EC%84%B1%EB%90%A8-tfk5xgv65x

 

https://deep-learning-study.tistory.com/209?category=942011 

 

 

 

 

 

 

 

728x90
반응형

댓글