cnn9 [딥러닝] Albumentations의 데이터 증강 이해 Albumentations의 데이터 증강 albumentations는 이미지 데이터 증강 라이브러리입니다. 이미지를 좌, 우, 회전, 색변환, 노이즈 등등 넣어서 다양한 데이터를 모델이 학습시킬 수 있게 변환해주는 것입니다. 코드를 보면서 어떻게 사용하는지 확인하겠습니다. import numpy as np import pandas as pd import os import cv2 import matplotlib.pyplot as plt image = cv2.cvtColor(cv2.imread('test.jpg'), cv2.COLOR_BGR2RGB) plt.imshow(image) 여기 원본 강아지사진 한 장이 있습니다. albumentations은 함수마다 확률 값을 줘서 작동을 확률 값으로 하는 것입니다.. 2022. 3. 17. [딥러닝] 전이 학습(Transfer Learning) 전이 학습이란? 일반적으로 CNN 기반의 딥러닝 모델을 제대로 훈련시키려면 많은 수의 데이터가 필요합니다. 근데 그것은 쉽지 않은 일이지요. 방법도 어려울뿐더러 시간의 제약도 많이 있습니다. 이러한 현실적인 문제를 해결한 것이 전이학습입니다. 전이학습이란 이미 충분한 데이터와 여러 연구와 실험으로 만들어진 모델을 학습한 가중치를 가지고와 우리 모델에 맞게 재보정해서 사용하는 것입니다. 이 글에서는 Keras Applications으로 예시를 들건데 사용 가능한 Pretrained 모델은 대부분 ImageNet 데이터 셋으로 사전 훈련된 모델입니다. ImageNet은 1000개의 class들에 대한 이미지를 분류합니다. 최종 Classification layer가 1000개의 unit의 softmax형태로.. 2022. 3. 15. [딥러닝] GAP(Global Average Pooling) GAP의 필요성 CNN에는 많은 Convolution layer를 쌓기 때문에 많은 필터가 있습니다. 그만큼 차원의 수가 많습니다. 예를들어 (8, 8, 512)의 Feature map들을 Flatten으로 1차원 형태로 바꾸면 8 x 8 x 512 = 32,768 의 파라미터가 생기고 여기서 100개의 뉴런으로 구성된 Layer에 연결하면 32,768,000개의 파라미터가 생깁니다. 파라미터가 너무 많아지면서 학습 시 over fitting이 발생할 수도 있습니다. GAP의 구현 위의 그림과 같이 채널별로 평균 값을 추출합니다. 앞서 말한 Flatten처럼 GAP의 목적은 feature를 1차원 벡터로 만들기 위함입니다. Flatten과는 반대로 파라미터 수를 줄일 수 있습니다. 이는 충분히 채널수가 .. 2022. 3. 14. [딥러닝] 배치 정규화(Batch Normalization) 정규화 일반적인 2가지 정규화 표현 방법이다. 기본적으로 정규화를 하는 이유는 학습을 더 빨리하고, Local optimum 문제에 빠지는 가능성을 줄이기 위해서이다. 아래의 그림을 보면 최저점을 찾을 때 정규화를 하지 않으면 global optimum지점을 찾지 못하고, local에 머물러 있게 되는 문제가 발생한다. 이러한 문제점은 정규화로 local optimum에 빠질 수 있는 가능성을 낮춰주게 된다. Internal Convariate Shift Convariate Shift: 이전 레이어의 파라미터 변화가 현재 레이어의 입력 분포에 영향을 끼치는 현상 Internal Convariate Shift: 레이어를 통과할 때 마다 Convariate Shift 가 일어나면서 입력의 분포가 약간씩 변하.. 2022. 3. 13. 이전 1 2 3 다음