일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c++
- 가끔은 말로
- 이분 탐색
- 세그먼트 트리
- 문자열
- pytorch
- tensorflow
- 플로이드 와샬
- 가끔은_말로
- 분할 정복
- 자바스크립트
- 알고리즘
- lazy propagation
- back propagation
- 2023
- 미래는_현재와_과거로
- BFS
- 너비 우선 탐색
- DP
- 백트래킹
- dfs
- dropout
- Overfitting
- 조합론
- 다익스트라
- 크루스칼
- object detection
- NEXT
- 우선 순위 큐
- 회고록
- Today
- Total
목록분류 전체보기 (562)
Doby's Lab
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qnjq8/btrU15ZIt9o/ZngJUvuKKgvoI5FLkt0kok/img.png)
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(..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/kP5sG/btrURUEYDlO/w0kVrsJ9fC0Sj6qP5yd9nk/img.png)
Image Augmentation Image Augmentation(이미지 증강)이란 Overfitting을 막는 방법 중 하나입니다. 더 디테일하게 말하자면 데이터셋의 크기가 작으면 train_set에 대해 모델이 학습할 수 있는 게 적습니다. 그렇기에 모델이 작은 train_set에 대해 최적화되게 학습을 하면서 Overfitting이 나는 현상에 대한 해결책입니다. 즉, Overfitting이 나는 이유가 '데이터셋의 크기가 작아서 그렇구나'라는 의심을 가지고서 Image Augmentation을 사용해야겠다는 판단을 할 수 있는 게 중요하다고 시작하기 전에 앞서 말하고 싶습니다. Overfitting이 일어나는 이유와 이를 대처하는 방법은 항상 여러 가지가 있으니까요. (Regularization..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/p5BTW/btrUNqYvwOc/nLHEdkvlQkp20yDjqCfxX0/img.png)
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이 다르기 때문에 이를 같게 하기 위해 쓰이는 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bRqYu6/btrUL8wacbh/Y5idPaZb9QgKzYswVtz1bK/img.png)
Center Cropping을 하고 나서 궁금했던 점은 width와 height는 같아졌는데 input_shape와 맞지 않아서 어떻게 처리해야 할지가 의문이었습니다. 예를 들어 아래의 경우처럼 input_shape보다 작게 나와서 이미지를 확대해야 하는 경우가 있습니다. 그리고, 다른 경우는 input_shape보다 크게 나오는 바람에 이미지를 축소해야 하는 경우도 생깁니다. 확대와 축소 둘 다 방법이 떠오르지 않았었습니다. 그래서 확대를 해야 하는 경우는 Zero Padding을 하고, 축소는 input_shape에 맞게 Cropping을 해줘야겠다 싶었습니다. Interpolation OpenCV 라이브러리에서 제공하는 cv2.resize()로 이 문제를 해결할 수 있었습니다. 이때, Interpo..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zRzB9/btrUMQILB1H/xncTdJgwWlBiaBl8upnkSk/img.png)
데이터셋의 이미지를 전처리하는 과정에서 모델에 학습시키기 위해 input_shape를 모델과 같게 맞춰주어야 합니다. 즉, 사이즈를 바꿔주어야 하는데 이 과정에서 어떤 과정을 거칠지는 엔지니어의 몫입니다. 사이즈를 바꿔주는 과정에는 크게 3가지가 있습니다. Warping Center Cropping Padding 3가지 과정을 설명하기 위해 아래의 고양이 사진으로 진행해 보겠습니다. Warping Warping은 이미지를 왜곡시켜서 사이즈를 맞추는 기법입니다. 이미지를 왜곡시키다 보니 이미지의 정보에 대한 손실이 있기 때문에 저는 잘 사용하지 않습니다. Padding (= Zero Padding) Padding은 특정한 사이즈에 빈칸이 남는다면 pixel 값을 0(=검은색)으로 채워 이미지 사이즈를 맞추..
🤔 Problem 모델을 학습시키는 과정에서 이상한 현상이 나타나 문제점으로 삼았습니다. 문제는 train_set의 Accuracy는 100%로 유지되며 Loss는 변동이 거의 없다가 갑자기 한 두 번 엄청 상승하는 현상이었습니다. validation_set에서도 이러한 문제점을 찾을 수 있었습니다. Accuracy가 100%로 유지되고, Loss는 0으로 유지되었습니다. 이런 완벽한 모델이 현실에서 존재할 수 없을뿐더러 완벽했다면 test_set에서도 좋은 결과가 있었어야 하지만, Accuracy는 약 50%, Loss는 약 84.4가 나왔습니다. 😀 Solution 문제점은 데이터셋이 아예 섞여있지 않았기에 발생했던 문제입니다. 문제에 대한 이유 추측 모델이 개에 대해서만 학습했다가 고양이가 들어오니..
🤔 Problem 이미지 데이터셋을 전처리하는 과정에서 Min Max Scaling 방법을 통해 Normalization을 해주려 했습니다. 이미지 Dataset이기 때문에 min값과 max값이 각각 0, 255이기 때문에 데이터셋에 255.0을 나누어주면 되죠. (+255.0으로 나누는 이유는 255.0으로 나눔으로써 int type에서 float type으로 type casting이 되기 때문입니다.) 즉, 코드로 나타내면 이런 식으로 해주면 되겠죠. def minmax_scaler(dataset) dataset = dataset / 255.0 return dataset 여기서 문제가 발생합니다. 시스템 RAM을 모니터링해보면 RAM이 초과되는 것을 알 수 있습니다. RAM이 초과됨에 따라서 런타임도..
https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net Level: Silver III Solved By: Geometry 삼각형이 되는 조건을 이용합니다. 세 변이 주어졌을 때, a, b, c가 오름차순으로 커진다고 합시다. 그럼 a + b > c가 되어야 하는 조건을 이용하여 문제를 풀 수 있습니다. 변이 주어지면 내림차순으로 정렬하여 순서대로 3개의 원소를 골라서 삼각형의 조건을 만족하면 break를 걸어 세 변의 합을 출..