8.1 더 깊게

2024. 12. 8. 14:01스터디/24-2 스터디 _ 밑바닥부터 시작하는 딥러닝

 

 

 

8.1.1 더 깊은 신경망으로 

 

그림 8-1 손글씨 숫자를 인식하는 심층 CNN

 

-사용된 합성곱 계층

  • 3X3 크기의 작은 필터
  • 층이 깊어지면서 채널 수가 더 늘어남(16, 16, 32, 32, 64, 64)

 

-활성화 함수 : ReLU

 

 

-풀링 계층 추가

→ 중간 데이터의 공간 크기 줄임

 

 

-마지막 단의 완전연결 계층 뒤에 드롭아웃 계층 사용

: 인접한 계층의 모든 뉴런과 연결되어 있으므로

  뉴런을 임의로 삭제해서 오버피팅을 방지시킴.

 

 

-가중치 초깃값 : He 초깃값

  • ReLU에 특화된 초깃값임
  • 앞 계층의 노트가 n개일 때, 표준편차가 √(2/n) 인 정규 분포 사용

(ReLU는 음의 영역이 0이라서 더 넓게 분포시키기 위해 2배의 계수 필요 로 해석할 수 있음)

 

 

-가중치 매개변수 갱신 : Adam 사용 (→ 최적화)

 

 

-신경망의 정확도 : 99.38% (인식실패 확률 : 0.62%)

: 인간도 판단하기 어려운 이미지였음

 

→ 이러한 심층 CNN의 특징(잠재력 큼)

  • 정확도 높음
  • 인간과 비슷한 인식 오류 저지름

 

 

 

8.1.2 정확도를 더 높이려면

 

-정확도를 높이는 효과적인 방법 : CNN 이용

 

 

-근데, 이러한 기법들에서 사용되는 CNN은 그다지 깊지 않음

  • 구성 : 합성곱 계층 2개 + 완전연결 계층 2개 정도의 신경망
  • 이유 : 층을 깊게하지 않고도 최고 수준의 결과가 나오므로 층을 깊게 하는 것에 대한 혜택이 미미함

 

-정확도를 높이는 방법들

1. 앙상블 학습

2. 학습률 감소

3. 데이터 확장

 

 

-데이터 확장

  • 입력 이미지(훈련 이미지)를 알고리즘을 동원해서 '인위적'으로 확장
  • '인위적' 확장

        1. 이미지 회전   

        2. 이미지 이동

8-4 데이터 확장의 예

       

 

        3. Crop(이미지 일부 잘라냄)

        4. Flip(이미지 좌우 반전) : 단, 대칭성을 고려하지 않아도 될 때만 사용 가능

        5. 외형 변화(예: 밝기 변화 등)

        6. 스케일 변화(예: 확대, 축소 등)

 

  • 장점 : 훈련 이미지 개수 증가 → 딥러닝 인식 수준 개선 → 정확도 개선(향상)

       (데이터가 몇 개 없을 때 특히 효과적)

 

 

 

8.1.3 깊게 하는 이유

 

-층을 깊게 하는 이유

: 층의 깊이에 비례해 정확도가 좋아짐

(여러 대회의 결과로부터 파악)

 

 

-층을 깊게할 때의 이점

 

1. 신경망의 매개변수가 줄어듦(합성곱 계층)

신경망의 매개변수 수가 줄어듦→수용 영역 소화

→ 활성화 함수를 합성곱 계층 사이에 끼움→비선형→더 높은 수준의 표현력

 

2. 학습의 효율성(고속 학습 + 정보의 계층적 전달)

<얕은 신경망> <깊은 신경망>
특징을 '한 번'에 이해해야함 계층적 분해 → 단순한 문제만 처리하면 됨 → '전념' 가능
변화가 풍부한, 많은 양의 학습 데이터 요구 더 적은 학습 데이터 요구
학습 시간 길어짐 학습 시간 짧음(고속 학습)
  계층적 분해 →정보의 계층적 전달

 

 

-층을 깊게해서도 제대로 학습하려면 기술과 환경이 뒷받침 되어야 함