CNN - Fine Tuning
2022. 4. 5. 11:31
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 Pretrained 모델의 Fine Tuning(미세 조정) Fine Tuning 특성 Fine Tuning 실습 (with cat-and-dog) Pretrained 모델의 Fine Tuning(미세 조정) Fine Tuning은 Pretrained 모델을 커스텀 모델을 활용할 시 ImageNet으로 학습된 Feature Extractor의 가중치 값의 급격한 변화를 제어하기 위해 적용하는 방법 1단계 train을 할 수 있느냐? = weight를 업데이트 할 수 있느냐? Layer를 freeze 한다 = weight를 업데이트 할 수 없게 한다. Feature Extractor는 Freeze 시켜버리고 Classi..
CNN - EfficientNet
2022. 4. 4. 19:52
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 EfficientNet EfficientNetB0 구조 Keras의 EfficientNet Pretrained 모델 EfficientNet 네트워크의 깊이(Depth), 필터 수(Width), 이미지 Resolution 크기를 최적으로 조합하여 모델의 성능을 극대화했다. 필터 수(Width) : 너비라고 표현하기도 한다. Conv2D()의 맨 처음 파라미터로 적는다. 기본 필터는 보통 3by3 크기의 커널에 256개 이다. 필터 수가 많으면 너비가 넓어질 수 밖에 없다. 깊이(Depth) : weight 층이 있는 레이어가 몇개인가? 깊이는 곧 레이어의 개수이다. 이미지 Resolution : 말그대로 이미지의 해상도..
CNN - ResNet
2022. 4. 2. 09:56
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 ResNet : 깊은 네트워크를 Identity layer로 구성한 모델 ResNet의 주요 특징 : Short Cut & Identity Block 깊은 네트워크를 Identity layer로 구성한다면? ResNet - Residual Learning & Identity Mapping ResNet 구조 ResNet 구조 비교 identity block 생성 위에서 생성한 identity_block()을 호출하여 어떻게 identity block이 구성되어 있는지 확인 identity block을 연속으로 이어서 하나의 Stage 구성. 각 stage내의 첫번째 identity block에서 입력 feature ma..
CNN - GoogLeNet
2022. 4. 1. 17:02
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 GoogLeNet Architecture GoogLeNet의 특징 Inception Module의 구조 1×1 Convolution 연산을 통한 Feature Map 채널(깊이) 압축 1×1 Convolution 연산을 이용한 Inception module 구성 Inception Network의 구조 GoogLeNet Architecture GoogLeNet은 Inception module이 연결되어 있는 구조이다. 1x1 convolution이 굉장히 많이 사용된다. 영화 인셉션을 따와서 이름을 지었다고 한다. 그럼 왜 구글넷은 이런 구조로 만들었을까? GoogLeNet 특징 큰 사이즈의 Receptive Field..
CNN - VGGNet
2022. 4. 1. 15:46
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 VGG 개요 VGGNet의 장점 VGGNet 구조 VGGNet 구현 코드 VGG 개요 네트워크의 깊이와 모델 성능 영향에 집중했다. Convolution 커널 사이즈를 3 x 3으로 고정시켰다. 커널 사이즈가 크면 이미지 사이즈 축소가 급격하게 이뤄져서 더 깊은 층을 만들기 어렵고, 파라미터 개수와 연산량도 더 많이 필요하기 때문이다. VGGNet의 장점 단일화된 Kernel 크기, Padding, Strides 값으로 단순한 네트워크를 구성하지만 AlexNet 보다 더 나은 성능 AlexNet의 11x11, 5x5와 같은 큰 Receptive Field를 가진 Kernel 크기를 적용하지 않고도, 3X3 Kernel..
CNN - AlexNet
2022. 3. 31. 11:49
🖼 Computer Vision/CNN
📌 이 글은 권철민 님의 딥러닝 CNN 완벽가이드를 바탕으로 작성한 포스팅입니다. 목차 AlexNet 개요 AlexNet 구성 AlexNet 구현 CIFAR10 데이터셋을 이용한 AlexNet 학습 성능 및 테스트 AlexNet 개요 Convolution layer 5개 + Fully Connected Layer 3개로 구성 Activation 함수로 ReLU 함수를 처음으로 사용 MaxPooling 으로 Pooling 적용 및 Overlapping Pooling 적용 Local Response Normalization(LRN) 사용 Overfitting을 개선하기 위해서 Drop out Layer와 Weight의 Decay 기법 적용 Data Augmentation 적용(좌우 반전, Crop, PCA ..
💣 배틀그라운드 리뷰 자연어처리
2022. 3. 29. 17:36
💡 AI/토이 프로젝트
목차 Sentence Transformer 설치 및 실행 Clustering 예제 배틀그라운드 리뷰 크롤링 전처리 배틀그라운드 리뷰 임베딩 Clustering 워드클라우드 만들기 BERT : 문장의 문맥을 양방향으로 이해해서 숫자의 형태로 바꿔주는 딥러닝 모델 Bidirectional : 양방향 Encoder : 입력값을 숫자 형태로 바꾸는 Representations from Transformers : 인코더 디코더 모델을 지닌 딥러닝 모델 SBERT : BERT의 문장 임베딩의 성능을 개선시킨 모델, BERT의 문장 임베딩을 응용하여 BERT를 fine tuning 한다. Sentence Transformer 설치 및 실행 !pip install -q -U sentence-transformers Pr..
CNN - Image data scaling preprocessing
2022. 3. 27. 18:12
🖼 Computer Vision/CNN
이미지 데이터 스케일링은 어떻게 진행되고 각 모델에 맞게 스케일링을 어떻게 해야할까? 목차 Cat&Dog Data Load image data의 scaling preprocessing 유형 tf 또는 torch 유형으로 변경하는 함수 생성 scale 된 이미지 pixel값의 histogram 시각화 그러나 논문에 나와있는 pretrained 모델들은 고유한 scaling 방법이 있다 : preprocess_input() ImageDataGenerator에 preprocess_input()을 적용시 preprocessing_function 파라미터를 사용 1. Data Load import numpy as np # linear algebra import pandas as pd # data processin..
kaggle notebook의 첫 코드는 뭘까?
2022. 3. 27. 11:01
💡 AI/Dacon | Kaggle
new kaggle notebook을 누르면 가장 먼저 나오는 코드이다. 무엇을 하는 코드일까? 먼저 + Add data를 통해서 데이터를 불러와보자. 그러면 Input에 데이터가 생성된다. 불러오긴 했는데 이 데이터를 불러오고 싶고 이 데이터가 어디에 저장되어 있는지 알고 싶다. 그걸 알려주는 코드가 바로 아래의 코드이다. import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv) import os for dirname, _, filenames in os.walk('/kaggle/input'): for filename in filenames: print(os.path.jo..
OpenCV 이미지 로딩시 BGR을 RGB로 변환해야 하는 이유
2022. 3. 27. 10:39
🖼 Computer Vision/CNN
OpenCV 이미지 로딩시 BGR을 RGB로 변환해야 한다. 왜? OpenCV에서 이미지 로딩은 imread(‘파일명’)을 이용하고, imread(‘파일명’)은 파일을 읽어 넘파이 array로 변환한다. imread()를 이용하여 이미지를 로딩할 때, 가장 주의해야 할 점은 OpenCV가 이미지를 RGB 형태가 아닌 BGR 형태로 로딩하기 때문에 색감이 원본 이미지와 다르게 나타난다는 것이다. OpenCV에서 imread(‘파일명’)을 이용하여 로딩된 이미지 배열은 BGR 형태의 배열이므로 이를 RGB 형태의 배열로 변환하려면 cvtColor(이미지 배열, cv2.COLOR_BGR2RGB)를 이용해야 한다. import cv2 import matplotlib.pyplot as plt bgr_img_arr..
Statistics/Math - interview
2022. 3. 23. 10:46
✏️ Mathemathics/Statistics and Probability
목차 고유값(eigen value)와 고유벡터(eigen vector)에 대해 설명해주세요. 그리고 왜 중요할까요? 샘플링(Sampling)과 리샘플링(Resampling)에 대해 설명해주세요. 리샘플링은 무슨 장점이 있을까요? 1. 고유값(eigen value)와 고유벡터(eigen vector)에 대해 설명해주세요. 그리고 왜 중요할까요? 정방행렬 A (n x n) 는 임의의 벡터 x (n x 1) 의 방향과 크기를 변화시킬 수 있다. 수많은 벡터 x 중 어떤 벡터들은 A 행렬에 의해 선형 변환되었을 때에도 원래 벡터와 평행한 경우가 있다. 이렇듯 Ax 가 원래 x 에 상수(람다)를 곱한 것과 같을 때의 x 를 고유 벡터, 람다를 고유값이라 한다. 아래처럼 x1 은 A에 의해 변환되었음에도 x1 과 ..
Kubernetes Architecture
2022. 3. 10. 18:17
🚦 Server/Kubernetes
목차 Desired State Kubernetes Architecture Master Node API server etcd Master 구성 Node 구성 Pod이 생성되기 위해 거치는 순서 1. Desired State Desire(요청)이 들어오면, 어떤 상태인지 체크를 하고, 그 요청과 현재 상태의 차이점을 발견하고, 그리고 요청을 해결한다. 이 프로세스가 루프를 돌면서 이루어진다. 이런 Desired state가 굉장히 많아질 수도 있다. 복제가 잘 됐는지, 로드밸런싱이 잘 되었는지 등의 Controller를 만들 수 있다. 2. Kubernetes Architecture Master : 중간에서 체크하고 실행되는 부분 Node : 실제로 컨테이너가 실행되는 부분 API server : 중간에서 ..
Kubernetes 란
2022. 3. 10. 11:29
🚦 Server/Kubernetes
목차 Container의 특징 Container Orchestration Container를 관리하는 방법에는 뭐가 있을까? 도커는 정말 편하다. 그럼 그 중에서도 도커를 관리하는 도구는 뭐가 있을까? 필자는 리눅스 명령어로 도커 컨테이너를 관리 한 경험이 있다. 1. Container의 특징 가상머신과 비교하여 컨테이너 생성이 쉽고 효율적이다. 컨테이너 이미지를 이용한 배포와 롤백이 간단하다. 언어나 프레임워크에 상관없이 애플리케이션을 동일한 방식으로 관리한다. 개발, 테스팅, 운영 환경은 물론 로컬 피시와 클라우드까지 동일한 환경을 구축 특정 클라우드 벤더에 종속적이지 않다. 수많은 컨테이너를 어떻게 관리하는게 좋을까? 서비스 검색, 서비스 노출, 서비스 이상, 부하 모니터링을 어떻게 해야 좋을까? ..
CNN - Data Augmentation
2022. 3. 4. 20:24
🖼 Computer Vision/CNN
목차 Data Augmentation 개요 Augmentation 유형 공간 레벨 픽셀 레벨 TF.Keras 지원 Augmentation ImageDataGenerator 특징 Keras의 Preprocessing과 Data Loading 메커니즘 ImageDataGenerator를 이용한 Augmentation ImagDataGenerator를 이용하여 Augmentation 적용하기 좌우, 상하 반전(Horizontal Flip, Vertical Flip) 여러 이미지의 ImageDataGenerator 변환을 수행하는 함수 생성 Affine Transformation 이미지 Rotation 이미지 좌우, 상하 이동(Shift) Zoom(Scale) Shear Bright Channel Shift N..
CNN - Global Average Pooling
2022. 3. 4. 17:51
🖼 Computer Vision/CNN
목차 Global Average Pooling Global Average Pooling를 이용한 Fully Connected Layer 연결 Global Average Pooling Global Average Pooling은 피처맵의 가로×세로의 특정 영역을 Sub sampling 하지 않고, 채널 단위로 평균 값을 추출하는 방법이다. 3차원 Feature map을 1차원 Dense Classification layer에 연결 시, 많은 연결 노드와 파라미터가 필요하나, GAP를 이용하면 효과적으로 노드와 파라미터를 줄일 수 있다. 충분히 Feature map의 채널 수가 많을 경우 이를 적용하고, 채널 수가 적다면 Flatten이 유리하다. Global Average Pooling를 이용한 Fully ..