2024/12 17

컴퓨터 비전 모델 구조

BackboneVisual Feature - 컴퓨터 비전의 태스크(classification, detection, segmentation, …)를 해결할 때 필요한 이미지의 특성을 담고 있는 정보들을 지칭 - 이미지에서 중요한 Feature를 추출(extract)할 수 있도록 훈련 - 주어진 비전 태스크를 잘 수행할 수 있는 압축된 Visual Feature를 산출- 여러 개의 Layer로 이루어져 있고, 이를 통해 다양한 Level의 Feature를 추출      - Layer: Input 이미지에서 Feature(points, edges, shapes, …)를 추출하기 위한 연산을 하는 층모델의 구성 Backbone + (Optional) Encoder + DecoderDecoder - 모델의 쓰임새..

Computer Vision-고전 컴퓨터 비전

고전 컴퓨터 비전- 고전 컴퓨터 비전: 규칙 기반의 이미지 처리 알고리즘 (e.g. OpenCV) - 딥러닝: 데이터 학습 기반의 이미지 처리 활용- 딥러닝으로 해결하기 어려운 문제에 활용 (e.g. 로보틱스, 가상현실) - 딥러닝 모델의 결과의 후처리 - 딥러닝 모델 없이 데이터를 가공 할 때 활용 ( Morphological Transform , Edge & Contour Detection )Morphological Transform- 이미지에 기반한 연산이며, 흑백 이미지에서 일반적으로 수행- 입력: 원본 이미지, 커널(연산자)- Erosion, Dilation, Opening, Closing, Morphological gradient, Top hat 중요성- Morphological transfo..

Computer Vision_Classification

Classification- 기계 학습과 통계학에서 시스템이 일련의 특성을 기반으로 미리 정의된 여러 범주 또는 클래스 중 하나에 주어진 입력을 할당 하도록 훈련되는 과정- 입력 기능과 클래스 레이블 사이의 학습된 관계를 기반으로 보이지 않는 샘플의 클래스 레이블을 예측 Binary classification: 이진 분류의 목표는 데이터 요소를 두 클래스 중 하나로 분류 - 스팸 vs. 스팸이 아닌 이메일- 사기 vs. 비사기 거래 감지 - 질병 vs. 질병 진단 없음 Multiclass Classification- 필기 숫자 인식(10개 클래스: 0-9) - 이미지에서의 객체 인식(예: 개, 고양이, 자동차 등과 같은 클래스) - 뉴스 기사 분류(예: 정치, 스포츠, 기술 등) Multilabel Cl..

Computer Vision

Computer VisionVision의 정의 - Vision: 시각적인 정보들의 집합 - 시각으로 보이는 것을 숫자로 데이터화 하여 저장한 모든 것들을 포함하는 개념Computer Vision- Artificial Intelligence (AI)의 한 종류 - vision 데이터들에서 의미 있는 정보를 추출하고 이를 이해한 것을 바탕으로 여러가지 작업을 수행- level- Low-level : Resize , Color Jitter , Edge detection, Segmentation by Color (e.g. watershed)- Mid :  Panorama Stitching , Multi-view Stereo, Depth Estimation, LIDAR - High : Image Classific..

DL 프로젝트 이론 탐구: 중반 학습 기록

딥러닝 학습을 시작했습니다.AI 부트캠프에서 가장 중요한 주제 중 하나는 딥러닝이라고 생각합니다. 지금까지 배워왔던 파이썬, 통계, 머신러닝 기술을 결합해 딥러닝을 공부하고 이를 활용하는 것이 앞으로의 과제입니다. 아직 딥러닝에 대해 배울 것이 많지만, 이제 막 시작한 만큼 중간 학습 기록을 남기려고 합니다.딥러닝 학습은 개념과 발전 과정을 이해하는 것부터 시작했습니다.  이번이 딥러닝을 본격적으로 공부하는 첫 경험이기에 부족한 점이 있을 수 있지만, 꾸준히 성장해 나가고 싶습니다. 딥러닝의 기본 개념부터 실습까지 딥러닝의 역사부터 배우는 개념 이전까지는 머신러닝만 공부했기에 어느 정도 알고 있었지만, 머신러닝의 한 부분이라고 할 수 있는 딥러닝은 아직 깊게 접해보지 못했습니다. 정확한 개념도 몰랐고, ..

PyTorch Hydra

Hydra - 파라미터가 복잡해지면서 코드를 구조화하거나 관리하기 어려운 문제를 해결하기 위해, 별도의 설정 파일을 작성하여 관리하는데 사용하는 오픈소스 프레임워크 - 설정 파일을 통해 비슷한 여러 태스크를 관리 및 실행할 수 있도록 도와주는 프레임워크배경- 관리의 어려움: 파라미터가 여러 파일이나 클래스, 함수에 분산돼 있으면, 각각의 위치에서 파라미터를 변경해야 하므로 파라미터 관리가 어려워- 코드 일관성의 어려움: 같은 파라미터가 여러 위치에서 사용된다면, 일관성을 유지하기 위해 모든 위치를 동시에 업데이트Yet Another Markup Language(yaml) - Hydra에서 파라미터 관리를 위해 yaml이라는 데이터 포맷을 사용 - 포맷의 특징    - key-value 구성으로 작성된 파..

Study/머신러닝 2024.12.17

PyTorch Lightning

PyTorch Lightning 배경 - 구현하는 코드의 양이 늘어나며 코드의 복잡성이 증가하고 이에 따라 다양한 요소들이 복잡하게 얽히게 됨- 이런 요소들은 서로 강하게 관계성을 가지게 되어, 한 부분을 변경하면 다른 부분에도 영향PyTorch에 대한 high-level 인터페이스를 제공하는 오픈소스 라이브러리- High-level 인터페이스 : 복잡한 시스템이나 프로그램을 사용자에게 더 단순하고 이해하기 쉽게 만들어주는 인터페이스를 의미 - 딥러닝 모델 구축의 코드 템플릿으로써 기능을 하여 코드를 작성할 때 좀 더 정돈되고 간결화된 코드를 작성- 코드 템플릿 : 특정 프로그래밍 작업을 간소화하거나 반복적인 코드 작성을 줄이기 위해 미리 정의된 코드 블록이나 구조를 의미코드의 추상화 및 하드웨어 호출 ..

Study/머신러닝 2024.12.17

PyTorch 전이학습

Pretrained Model대규모 데이터셋을 기반으로 학습된 모델로, 학습한 task에 대한 일반적인 지식을 갖고 있음GPT, PALM, Stable-Diffusion전이학습사전 학습된 모델 (pretrained model)의 지식을 다른 task에 활용하는 것모델이 이미 학습한 일반적인 지식을 기반으로 더 빠르고 효과적이게 새로운 지식을 학습 가능전이 학습 종류Fine-Tuning - 전이 학습의 한 방법- Pretrained model을 그대로 혹은 layers를 추가한 후 새로운 작업에 맞는 데이터로 모델을 추가로 더 훈련시키는 방법Domain Adaptation - 전이 학습의 한 방법 - A 라는 도메인에서 학습한 모델을 B라는 도메인으로 전이하여 도메인 간의 차이를 극복하는 것이 목적Mult..

Study/머신러닝 2024.12.17

딥러닝과 PyTorch

PyTorch 작동 구조 학습 단계Data -> Model  -> Output -> Loss -> OptimizationPyTorch 사용Data : torch.utils.data.Dataset / torch.utils.data.DataLoader Model : torch.nn.Module Loss Function : torch.nn / torch.nn.functional Optimization : torch.optim각 클래스 간 관계  DataDataset과 DataLoader를 사용하여 데이터 로드 - `Dataset`과 `DataLoader`를 사용하면, 데이터 집합에서 미니 배치(전체 데이터 집합을 더 작은 부분집합으로 분할한 일부 데이터)크기의 데이터를 반환- PyTorch에는 이미지 데이터를..

Study/머신러닝 2024.12.17

텐서 조작, Tensor Manipulation(with PyTorch)

Tensor- 데이터 배열 (array)를 의미수학적 연산- 사칙 연산 :원소단위로 연산이 가능- 내적 : 1D 텐서 단위에서만 가능- 행렬 곱 연산 : 두 행렬의 대응하는 행과 열의 원소들을 곱한 뒤 더하는 방식 = 행과 열 단위로 내적      - 계산 상 앞의 행렬의 열과 뒤의 행렬의 행의 길이가 같아야 함 Broadcasting - 차원이 다른 두 텐서 혹은 텐서와 스칼라간 연산을 가능하게 해주는 기능 (※ 단, 불가능한 경우 존재) - 2D 텐서와 1D 텐서의 연산Sparse Tensor - Dense tensor: 배열의 모든 위치에 값을 가지는 텐서    - 생략 가능한 원소까지 모두 저장하여 tensor의 크기와 비례하게 memory 사용 -> Out of memory (OOM) 문제 ..

Study/머신러닝 2024.12.16