2024/12 13

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

Pytorch

딥러닝 프레임 워크neural network 구현처음부터 코드로 구현 -> 프레임워크를 사용 - 모든 neural network의 layer를 직접 구현 → 모델을 구성하는데 필요한 모든 구성 요소를 제공  - loss function 구현 → 다양한 loss function 제공  - 모든 layer의 weight, bias에 대해 gradient를 계산 → 자동 미분  - 최적화 알고리즘 구현 → 다양한 optimizer 제공 - 효율적이고 간단함- > 많은 기업에서 딥러닝 프레임워크를 활용하고, 지원 자격으로 능숙한 활용 능력을 요구 프레임워크 트렌드- 이미 많은 딥러닝 프레임워크가 오픈소스로 공개   (TensorFlow(Google) 2. PyTorch(Meta), JAX(Google), MXN..

Study/머신러닝 2024.12.16

Deep Learning 기본 모델 구조

합성곱 신경망 (Convolutional Neural Networks , CNN)완전 연결 신경망의 한계점- 이미지 데이터를 학습하기 위해선 1차원으로 평탄화 -> 이미지 데이터가 가지고 있던 “형상 정보”가 사라지면서 무시         -  이미지 형상 정보는 “이미지의 가까운 픽셀은 비슷한 값을 가진다”거나 “거리가 먼 픽셀끼리는 큰 연관성이 없다”와 같은 공간적 정보를 의미 → 합성곱 신경망(Convolutional Neural Network, CNN)이 등장    - 이미지 입력 후 합성곱에 해당하는 연산으로 모델 구조를 정해 놓아, 형상 정보를 유지 합성곱 연산   - 입력 데이터에 필터(Filter) 혹은 커널(Kernel)를 적용하여 윈도우(Window)를 일정 간격으로 이동해가며 수행  ..

Study/머신러닝 2024.12.16

Deep Learning 성능 고도화 학습

* 필수 온라인 강의 Part19 Deep Learning CH04 성능 고도화 학습좋은 모델을 학습하기 위한 기초과소적합(Underfitting)이나 과적합(Overfitting)이 아닌 상태가 적합한 상태(Good fitting)- 과적합 (Overfitting) : 학습 데이터 오차가 일반화 오차에 비해서 현격하게 낮아지는 현상    1)학습 데이터는 부족한데, 2)모델의 파라미터가 많은 상황에서 과적합이 발생 - 이런 상태를 모델이 강건하다(Robust)고 표현편향(Bias)와 분산(Variance) 사이의 관계- 편향 : 평균적으로 얼마나 벗어나있냐?- 분산 : 얼마나 퍼져있냐 -> 둘다 낮은 게 좋음 : 모델의 복잡성이 증가하면 분산은 증가하고 편향은 감소하는 경향 : 모델의 복잡성이 감소하면..

Study/머신러닝 2024.12.16

[AI 부트캠프] MLOps 프로젝트 : 배움과 아쉬움을 남긴 2주간의 도전

부트캠프를 들어온지 한달만에 결성된 팀과 경진대회를 진행하였고,그 팀원들과 함께 다시 MLOps 프로젝트를 진행하였습니다. AI 부트캠프를 진행하면서 실전학습, 기업연계 프로젝트 전에총 3번의 경진대회와 2번의 프로젝트를 경험하는 일정이 있는데,그 중 한번의 경진대회와 한번의 프로젝트를 정말 좋은 팀과 함께 진행을  한다는 것은 큰 행운이었어요. 경진대회와 프로젝트를 진행하면서 처음 협업을 진행하게 되었고,그 안에서 배운 것이 많았습니다.수업을 단순히 듣는 것이 아니라, 이렇게 진행한 프로젝트 덕분에 정말 많이 배웠다고 생각이 됩니다.그래서 그에 대해서 자세히 남기고 싶은 마음에 이렇게 글을 쓰게 되었습니다 그리고 이번에 프로젝트에서는 저의 역활이 아쉬웠다고 생각이 된 점이 있고,프로젝트가 끝나고 홀로 ..