본문 바로가기
머신러닝/딥러닝

딥러닝 이미지 전처리, 표준화, 백색화, 정규화, VGG16

by ADELA_J 2023. 8. 1.

<이미지 전처리>

https://keras.io/api/data_loading/image/

 

 

<표준화>

위처럼 해주면 요렇게 나옴.

<백색화, whitening>

- 데이터 성분 사이에 상관관계를 없애는 방법, RGB 3채널에 백색화를 실시한것.

 

<배치 정규화, batch normalization>

- 미니배치 학습을 통해 배치마다 표준화를 수행하는 것

- model의 add() 메서드로 모델에 배치 정규화를 통합할 수 있음.

 

<전이학습 transfer learning  및  VGG16>

- 학습된 모델을 이용하여 새로운 모델을 학습시키는 것, 전이학습

- VGG 모델 : 오ㅗㄱ스퍼드 대학의 Visual Geometry Group 팀이 만든 네트워크 모델.

- 가중치를 가진 층(합성곱층과 전결합층)을 16층 거듭한 것과 19층 거듭한 것이 있으며 각각 VGG16, VGG19라고 부름.

- VGG16 : 합성곱 13층 + 전결합층 3층 = 16층의 신경망으로 되어 있음.

-> 합성곱층 커널의 크기가 3*3으로 작고, padding='sam'으로 되어 있음. 

>> 전이학습을 수행하면 일반적으로 학습에 소요되는 시간을 단축할 수 있음.

 

▼이제까지는 모델을 Sequential을 사용했지만 VGG16 모델을 조합해서 만들어보자

 

▶433 행, input_tensor로 입력 형태를 부여함. include_top은 원래 모델의 최후 전결합층을 사용할지 여부

  > False로 하면 합성곱층의 특징 추출 부분만 사용하여 이후층에는 스스로 작성한 모델을 추가할 수 있음.

  > weights에 imagenet를 지정하면 ImageNet에서 학습한 가중치 사용. None은 임의의 가중치 사용

▶443행 : 특징 추출 부분 이후 새로운 다른 층을 추가하기 위해서 모델을 436~440처럼 모델을 정의하고 결합함.

▶446행 : 특징 추출 부분의 가중치는 갱신되면 흐트러져버리니까 고정

▶ 451행 : 컴파일/학습은 동일하게 진행. 전이학습은 SGD를 선택하는게 좋지만 ㅠㅠ 안됨 ㅠㅠ 

 >> 그래서 Adam 함.  지난 포스팅 참고

 

▶ 정확도가 그지같은데ㅣ...ㅎㅎㅎㅎㅎㅎ 하이퍼파라미터를 진행하고 훈련 데이터 양을 늘려서 여러번 학습하면

계산 자원과 시간이 많이 필요함.