| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- c++
- 이분 탐색
- 문자열
- 백트래킹
- 가끔은 말로
- 우선 순위 큐
- DP
- 다익스트라
- dfs
- 2023
- 자바스크립트
- NEXT
- Overfitting
- 너비 우선 탐색
- 플로이드 와샬
- 알고리즘
- BFS
- object detection
- 분할 정복
- 크루스칼
- dropout
- lazy propagation
- 미래는_현재와_과거로
- pytorch
- tensorflow
- 조합론
- 세그먼트 트리
- 회고록
- back propagation
- 가끔은_말로
- Today
- Total
목록전체 글 (566)
Doby's Lab
✔️ Contents Intro Purpose Tool Project Structure Data Preprocessing Modeling (Overfitting) Outro Postings related Project Reference ✔️ Intro 기존의 프로젝트를 끝내고 나서 Version 1은 55.51%라는 성능이 '반은 맞추고, 반은 틀리는 인공지능'이라는 생각이 들었습니다. 이러한 성능에 대해서 훨씬 더 디벨롭시켜야 된다 생각했고, 기존의 Version 1에서 이미지를 Warping 시켜서 resize처리했는데 Center Cropping을 적용해서 이미지를 resize 하면 성능이 올라갈 것을 기대하며 프로젝트를 시작했습니다. 진행하는 과정에서 resize를 발판으로 더 다양한 목적을 위해..
Callback keras는 Callback이라는 개념이 있습니다. 에포크를 진행하면서 특정한 값을 모니터링하면서 학습에 변동사항을 주는 기능입니다. Callback에는 여러 가지 종류가 많지만 자주 쓰이는 2가지만 알아봅시다. EarlyStopping EarlyStopping이란 조기 종료라는 뜻으로 에포크를 진행하면서 Overfitting으로 간주된다면 학습을 멈추는 Callback입니다. 조금 더 디테일하게 접근하기 위해 함수부터 알아봅시다. early_stopping_cb = keras.callbacks.EarlyStopping(monitor='val_loss', mode='min', min_delta=0, patience=10, verbose=1, restore_best_weights=True)..
Batch Normalization Batch Normalization는 모델이 복잡할 때, 정확히는 Layer가 깊어지면서 가지는 복잡도가 높을 때 일어나는 Overfitting을 해결하기 위한 기법입니다. Batch Normalization이 어떻게 작동되는지 알기보다 왜 Batch Normalization이 나왔는지 먼저 알아야 합니다. Internal Covariate Shift 아래 그림과 같이 Input Data의 분포가 Layer를 거치면서 분포가 달라지는 현상을 Covariate Shift라고 합니다. Covariate란 공변량으로 연속성을 가지는 독립변수라는 의미이기 때문에 이러한 의미를 알면 이해하기 쉬울 것입니다. Shift는 말 그대로 옮겨갔다는 뜻으로 '데이터의 분포가 달라졌다'라..
Dropout Dropout이란 학습을 하면서 일부 뉴런을 일부러 끄면서 Overfitting을 방지하는 기법입니다. 뉴런들이 꺼지는 기준은 Hyperparameter인 Dropout-rate를 통해 꺼질지 말지 결정합니다. 또한, Dropout은 batch마다 켜지고 꺼지는 뉴런이 달라집니다. Overfitting 이러한 Dropout이 Overfitting 방지가 어떻게 되는지 알아봅시다. Sample마다 영향력이 강한 feature가 존재합니다. 만약 이러한 feature가 없다면 다른 feature들이 더 영향을 주게 됩니다. 결론적으로 correlation이 강한 feature에 과하게 학습되는 걸 방지하며 최대한 균등하게 영향력을 가져가려 합니다. Ensemble 또한, 학습마다 Dropout..
Regularization Overfitting 문제를 해결하는 데에 있어서 여러 기법들이 있습니다. 오늘은 L1, L2 Regularization에 대해 알아봅시다. 이 두 기법은 모델이 복잡할 때 일어나는 Overfitting을 해결하기 위한 기법입니다. 이 기법을 통해 가중치들이 작아지면서 모델이 아래 그림과 같이 일반성을 가질 수 있도록 합니다. MSE (Mean Squared Error) 들어가기 전에 일반적으로 Cost Function을 많이 쓰이는 MSE에 대해 알아봅시다. MSE란 평균 제곱 오차라는 뜻으로 예측 값과 실제 값의 차이를 제곱하여 이를 모두 평균화한 것을 의미합니다. $$ MSE = \frac{1}{N}\sum_{i=1}^{N}(\hat{y_i}-y_i)^{2} $$ MSE(..
Image Augmentation Image Augmentation(이미지 증강)이란 Overfitting을 막는 방법 중 하나입니다. 더 디테일하게 말하자면 데이터셋의 크기가 작으면 train_set에 대해 모델이 학습할 수 있는 게 적습니다. 그렇기에 모델이 작은 train_set에 대해 최적화되게 학습을 하면서 Overfitting이 나는 현상에 대한 해결책입니다. 즉, Overfitting이 나는 이유가 '데이터셋의 크기가 작아서 그렇구나'라는 의심을 가지고서 Image Augmentation을 사용해야겠다는 판단을 할 수 있는 게 중요하다고 시작하기 전에 앞서 말하고 싶습니다. Overfitting이 일어나는 이유와 이를 대처하는 방법은 항상 여러 가지가 있으니까요. (Regularization..
Normalization Normalization이란 정규화로 특정 feature의 scale을 0에서 1로 새롭게 scaling 하는 기법을 의미합니다. (개념에 대해 정리한 글) https://draw-code-boy.tistory.com/438 Standardization(표준화)와 Normalization(정규화)의 차이 공부를 하다 보면 Data Preprocessing을 할 일이 많은데 책에서는 정규화를 한다 하지만 StandardScaler를 통해 Data Scaling을 하는 경우가 종종 있습니다. 언어가 혼용되는 것인지 잘못 알고 있는 건지 정리 draw-code-boy.tistory.com 이 작업이 데이터셋에서 feature 간 scale이 다르기 때문에 이를 같게 하기 위해 쓰이는 ..
Center Cropping을 하고 나서 궁금했던 점은 width와 height는 같아졌는데 input_shape와 맞지 않아서 어떻게 처리해야 할지가 의문이었습니다. 예를 들어 아래의 경우처럼 input_shape보다 작게 나와서 이미지를 확대해야 하는 경우가 있습니다. 그리고, 다른 경우는 input_shape보다 크게 나오는 바람에 이미지를 축소해야 하는 경우도 생깁니다. 확대와 축소 둘 다 방법이 떠오르지 않았었습니다. 그래서 확대를 해야 하는 경우는 Zero Padding을 하고, 축소는 input_shape에 맞게 Cropping을 해줘야겠다 싶었습니다. Interpolation OpenCV 라이브러리에서 제공하는 cv2.resize()로 이 문제를 해결할 수 있었습니다. 이때, Interpo..