<이미지 전처리>
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 함. 지난 포스팅 참고
▶ 정확도가 그지같은데ㅣ...ㅎㅎㅎㅎㅎㅎ 하이퍼파라미터를 진행하고 훈련 데이터 양을 늘려서 여러번 학습하면
계산 자원과 시간이 많이 필요함.
'머신러닝 > 딥러닝' 카테고리의 다른 글
NLP 관련 용어 몇 가지 간략 정리 (0) | 2023.11.08 |
---|---|
YOLO (0) | 2023.08.30 |
딥러닝 하이퍼파라미터 2 - 풀링층, Pooling (0) | 2023.08.01 |
딥러닝 CNN 구현 + 하이퍼파라미터 1 (0) | 2023.07.31 |
딥러닝 CNN + 개념정리 (0) | 2023.07.31 |