분류 전체보기 38

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 9 (10/14~10/18)

MMDetectionMMdetection 3.3.0 DocumentMMDetection ConfigMMDetection은 Config 파일을 수정 또는 작성해 모델을 설계하고 훈련, 테스트할 수 있습니다.MMDetection에서 사용하는 Config의 Format은 어느정도 지정되어 있고 설계할 모델에 따라 Customize하면 됩니다.처음부터 모델, DataLoader 등을 작성해도 되지만 보통 Fine-Tuning을 위해 학습된 모델을 가져와 사용할 때는 학습된 모델이 사용한 Config 파일을 상속받아 사용하는 게 일반적입니다.# Custom.py_base_ = ['path/parent_config.py]와 같은 형식으로 Config 파일을 Inherit(상속)받아 사용할 수 있습니다.이후 상속받은..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 8 (9/30~10/11)

Object Detection (객체 검출)- 이미지 내에서 Localization과 Classification을 동시에 수행하는 Task- 이미지에서 객체가 어디있는지 찾고 찾은 객체가 무엇인지 식별하는 Task- 객체가 있을 법한 Bounding Box 예측- 객체가 무엇인기 분류Object Detection Domain 특성통합된 Library의 부재엔지니어링적인 측면이 강함어떤 모델이 풀고자 하는 문제에 적합한지 실험적인 증명이 필요Custom, tuning하는 과정에서 개발 수준의 활용 필요복잡한 파이프라인높은 성능을 내기 위해서 무거운 모델을 활용Resolution이 성능에 영향을 많이 끼쳐 사진의 크기가 큼Object Detection ProcessEvaluaation - Object Det..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 7 (9/23~9/27)

CV Project/Competition 프로세스문제 정의대회나 프로젝트를 시작하기 전에  문제/목적이 무엇인지 문제를 정의를 먼저 진행해야 합니다.문제를 해결하기 위해선 문제가 무엇인지 명확해야 합니다. 문제의 정의란 질문을 던지는 것에서부터 시작어떤 데이터인가? 특별한 목적으로 사용되는 데이터인가? 어떤 상황을 해결하고 싶은가?문제의 배경 파악 : 현재 어떤 상황인지데이터의 종류와 특수성을 보고 이로 인해 발생할 수 있는 여러 상황들을 가정입력 데이터를 원하는 형태로 추론하기 위한 적절한 방법을 찾기문제 정의가 되었다면 이제 문제를 해결하기 위한 프로세스를 진행하면 됩니다. Image Classification 문제 해결 프로세스1. 이미지 데이터 이해하기일반적인 이미지의 형태는 (width, hei..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 6 (9/9~9/13)

Linux man : window의 --help와 같은 커맨드mkdir dir_name: 폴더 생성ls : 현재 위치의 폴더 및 파일 확인 ( -al 옵션 많이 사용)pwd : 현재 경로cd dir_name : 이동cp src dest : 파일 복사mv src dest : 파일 이동 (이름 변경시 활용)find : 검색 서버에서 자주 사용하는 커맨드ps : 현재 실행중인 프로세스curl url : 웹 서버를 작성한 후 요청이 실행되는지 확인df : 현재 사용 중인 디스크 용량 확인ssh : ssh를 통한 연결scp src dest : ssh를 통해 연결된 서버와 로컬 간 파일을 주고 받는 명령어nohup python3 example.py & : 백그라운드 실행 (파일의 permission이 755여야 함..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 5 (9/2~9/6)

CV 이론Computational Imaging이미지를 복잡한 계산을 통해 여러 효과나 새로운 이미지로 만들 수 있습니다.이런 계산 대신 신경망을 사용해 이미지를 변환하거나 생성하는 방법을 최근에는 많이 사용하고 잇습니다. 일반적인 모델로는 U-Net, Skip-Connection, Multi-Scale Architecture 등이 많이 사용되고 있습니다. (더 좋은 모델도 존재) Loss Function    L2(MSE) or L1 loss function을 많이 사용하나 이런 간단한 loss function으로 결과가 잘 않나오는 경우도 있습니다.    보통 미적으로 잘 안나오는 경우인데 이런 경우 Adversarial loss 또는 Perceptual Loss 등을 사용합니다. 학습 데이터는 ta..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 4 (8/26~8/30)

CV 이론Image ClassificationCNN의 중요한 기본 layer들Convolution LayerConvolution Layer를 통해 이미지의 특징(feature, 패턴)를 추출합니다. 이 Convolution Layer를 깊게 쌓을수록 단순한 특징(Low-Level Feature)에서 복잡한 특징(High-Level Feature)을 추출할 수 있게 됩니다. (첫 Convolution Layer의 결과는 단순한 특징(Low-level feature) => 여러번 Convolution Layer를 통한 특징(mid-level feature) => 더 깊은, 최종 특징(high-level feature))즉, Convolution Layer를 통해 이미지의 공간적 특징을 추출하며 여러번 Con..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 2 (8/12~8/16)

머신러닝이란 어떤 작업 T에 대해 경험 E와 함께 성능 P를 향상시키는 알고리듬         ex) 이미지 분류                   작업(T) : 주어진 이미지를 분류하는 작업                   경험(E) : 다양한 이미지들로 이루어진 학습 데이터셋                   성능(P) : 이미지 분류 정확도머신러닝 학습의 종류지도 학습(Supervised Learning) : 데이터와 정답 레이블을 주고 학습비지도 학습(Unsupervised Learning) : 데이터만 주고 데이터에 존재하는 패턴을 학습강화 학습(Reinforcement Learning) : 일련의 행동에 따른 보상을 이용한 학습 (일종의 경험을 통한 학습이라 생각하면 된다.) - ex) 알파고 (..

[Naver Boostcamp AI Tech 7기] 학습 정리 - week 1 (8/5~8/9)

Pytorch부스트캠프의 첫주차는 Pytorch의 기본적인 사용방법과 이 Pytorch를 이용해 기본 선형 회귀 모델과 이진 분류 모델을 구현해보는 주 였습니다. TensorTensor를 Pytorch의 핵심 데이터 구조로 Numpy의 다차원 배열과 유사한 형태의 데이터를 표현하는데 보통 모든 일을 이 Tensor를 써서 해결합니다. (Tensor는 C++의 배열과 같은 방식의 배열입니다.)아무래도 Python의 기본 배열은 속도도 느리고 메모리 할당 구조도 다르기에 빠른 계산이 가능하고 AI 모델 구축에 사용하는 Pytorch와 연관이 많기에 tensor를 사용해줍니다. Tensor 생성torch.tensor(data, dtype=torch.dtype) : 기본적인 Tensor의 생성 방식으로 dtyp..

(Easy - Sorting) Leetcode - 169. Majority Element

이 문제는 배열이 주어졌을 때 배열에서 과반수를 차지하는 숫자를 찾는 것입니다.과반수를 차지하는 숫자는 배열의 절반 크기(n/2)보다 많습니다. 가장 간단하게 풀 수 있는 방법은 정렬을 한 뒤 Index = n / 2에 있는 수를 반환하는 것입니다.과반수를 차지하는 숫자를 찾는 것이므로 정렬을 하면 배열의 중간에 과반수를 차지하는 수가 오기에 간단하게 답을 찾을 수 있습니다. int majorityElement(std::vector &nums) { std::sort(nums.begin(), nums.end()); return nums[nums.size() / 2]; }이 방법은 정렬하는 시간으로 인해 평균 시간복잡도 O(N log N)의 시간을 가집니다. Hash..

(Easy - Sliding Window) Leetcode - 643. Maximum Average Subarray I

숫자 배열이 주어지면 이 배열 안에서 만들 수 있는 연속된 부분 배열들 중 가장 큰 부분 배열의 평균값을 찾는 문제입니다.만약 [1, 12, -4, -6] 배열이 있으면 부분 배열은 연속적으로 만들어져야 하므로 [1, 12]나 [12, -4, -6]과 같은 부분 배열은 가능하나 [1, -4]와 같이 떨어져 있는 원소들은 부분 배열로 만들 수 없습니다.가장 큰 평균값을 찾는 것이므로 부분 배열의 원소의 수로 나누기 전 원소들의 합이 가장 큰 부분 배열을 찾으면 됩니다.이때 문제에서 주어진 부분 배열의 길이는 k입니다.즉, 부분 배열의 길이가 k인 배열의 원소들의 합이 가장 큰 경우를 찾으면 됩니다. 생각나는 가장 간단한 방법은 모든 부분 배열을 시도해보는 것입니다.  double findMaxAver..