일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- dropout
- 조합론
- dfs
- 크루스칼
- NEXT
- 다익스트라
- 미래는_현재와_과거로
- 분할 정복
- back propagation
- Overfitting
- 문자열
- 너비 우선 탐색
- 가끔은_말로
- 백트래킹
- lazy propagation
- 회고록
- 우선 순위 큐
- object detection
- BFS
- DP
- 자바스크립트
- 이분 탐색
- 가끔은 말로
- c++
- tensorflow
- pytorch
- 플로이드 와샬
- 2023
- 세그먼트 트리
- Today
- Total
목록분류 전체보기 (562)
Doby's Lab
파이썬의 Iterator라는 개념이 존재합니다. 이를 알기 위해서는 Iterable Object에 대해 먼저 알아야 합니다. Iterable Object 파이썬의 모든 것은 객체로 이루어져 있습니다. 때문에 Iterable Object라는 것은 '반복가능한 데이터'로 해석할 수 있습니다. Iterable Object 중 가장 익숙한 것이 list, string 등 여러 가지가 있습니다. li = [1, 2, 3, 4, 5] list를 보면 for loop를 통해 element에 접근할 수 있습니다. for element in li: print(element) 즉, for loop로 element를 하나하나 리턴할 수 있는 객체를 Iterable Object라고 합니다. Iterator Iterator란 ..
https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net Level: Silver III Solved By: CCW, Geometry 문제에서 말했다시피 육각형은 어떻게 그려도 ㄱ-자 육각형입니다. 그래서 문제를 아래 그림과 같이 재정의 해볼 수 있었습니다. 전체적인 면적에서 부분 면적을 빼주는 방식입니다. 그럼 알아낼 것은 Sub Area를 구분 짓는 꺾인 점이 어딘지 알면 됩니다. 꺾인 점을 기준으로 앞 뒤 점을 가져오면 Sub Area의 넓이를 ..
https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net Level: Silver III Solved By: Geometry $$ (x-a)^2 + (y-b)^2 = r^2 \; (a, b = Center\;points)$$ 원의 방정식을 이용해 풀었습니다. x와 y에 값을 대입했을 때 r^2보다 작으면 내부, 크면 외부인 점을 활용합니다. (겹치는 점은 안 주어진다 함) 시작점과 도착점 둘 다 내부에 있는 경우와 외부에 있는 경우는 안 ..
https://www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net Level: Silver V Solved By: String 자릿수가 엄청 크기 때문에 문자열로 변수를 받아서 각 자리를 더할 때, 정수형으로 변환시켜서 계산해주면 됩니다. cal 함수에서 sum 변수에 대해 overflow가 나지 않는 이유는 최대 자릿수가 1,000,000이고, 자릿수마다 최대로 가질 수 있는 수는 9인데 이를 다 더하면 9,000,000이기에 overflow는 나지 않습니다. #i..
✔️ 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..