분류 전체보기 70

[DL basic] Computer Vision Applications

Semantic Segmentation(의미적 분할) 객체 인식의 영역에서 이미지 내 특정 역역에 대한 분류 결과를 바운딩 박스로 보여주었다면, 의미적 분할에서는 이미지 내 모든 픽셀에 대한 분류 결과를 보여준다. 즉, 어떤 픽셀이 어떤 객체에 속한 픽셀인지를 모두 포함한다. 이런 세세한 분류가 필요한 영역으로는 특히 자율주행 분야에서 사용하고 있다. Fully Convolutional Network 여러 모델에서 마지막에 거치는 flatten model. 이 경우 parameters의 수가 급격하게 증가하며 Million 단위로 증가하게 된다. 이미지의 분류를 위해 하나의 결과값을 뽑기 위한 fully-connected를 통한 출력층이다. 하지만 Sementic Segmentation에서는 fc lay..

[DL basic] Convolutional Neural Networks

Convolution 합성곱. 두 함수 \((f, g\)가 있을 때 한 함수 \((f\)의 모양이 나머지 함수 \(g\)에 의해 모양이 수정된 제 3의 함수 \(f * g\)를 생성해주는 연산자로 Continuous convolution \(f * g)(t)=\int f(\tau) g(t-\tau) d \tau=\int f(t-\tau) g(t) d \tau\) Discrete convolution \((f * g)(t)=\sum_{i=-\infty}^{\infty} f(i) g(t-i)=\sum_{i=-\infty}^{\infty} f(t-i) g(i)\) 2D image convolution \((I * K)(i, j)=\sum_m \sum_n I(m, n) K(i-m, j-n)=\sum_m \sum..

[DL basic] Neural Networks / Optimization

Neural Networks 뉴런 신경 세포(神經細胞) 또는 신경원(神經元)은 신경아교세포와 함께 신경계와 신경조직을 이루는 기본 단위이다. 신경계의 모든 작용이 신경세포와 신경세포 간의 상호작용으로 인해 이루어진다. 예를 들어, 우리 몸의 내부와 외부에 자극을 가하게 되면 일련의 과정을 통해 뉴런은 자극을 전달하게 되며, 최종적으로 척수와 뇌 등의 중추신경계로 도달하게 되며 중추신경계에서 처리한 정보를 다시 우리 몸으로 전달해 명령을 수행한다. 인간의 뇌의 일부분으로 이를 이용한 모델을 뉴럴 네트워크라고 부른다. 하지만 인간의 사고에서 역전파와 같은 개념은 사용하지 않는다. 이미 많은 방식으로 딥러닝 모델은 발전해 왔고, 이제는 단순히 인간의 뇌를 모방한 시스템이라기에는 멀리 왔다. 인간의 뇌를 모방했..

[PyTorch] PyTorch 알쓸신잡

모델 불러오기 model.save() - 학습의 결과를 저장하기 위한 함수 - 모델 형태와 파라메터를 저장 - 모델 학습 중간 과정의 저장을 통해 최선의 결과모델 선택 - 만들어진 모델을 외부 연구자와 공유 가능 checkpoints - 학습의 중간 결과를 저장하여 최선의 결과 선택 - earlystopping 기법시 이전 학습의 결과 저장 - loss와 metric 값을 지속적으로 확인 저장 - epoch, loss, metric를 함께 저장 pretrained model Transfer learning - 다른 데이터셋으로 만든 모델을 현재 데이터에 적용 - 대용량 데이터셋으로 만들어진 모델의 성능을 높임 - 현재 가장 일반적인 기법 PyTorch 기록 monitoring Tensorboard - T..

[PyTorch] PyTorch의 데이터

파이토치는 대규모 데이터를 통해 딥러닝을 학습하는 경우 사용하는 툴인 만큼 그 대량의 데이터를 모델에 먹이는 과정이 중요하다. 이를 다루는 것이 datasets 와 dataloaders이다. PyTorch의 데이터를 위한 모듈들 - torch.utils.data : 데이터셋의 표준을 정의하고, 자르고, 섞는데 쓰는 도구들이 들어있는 모듈. 데이터셋의 표준을 torch.utils.data.Dataset에 정의 후 이를 상속하는 파생 클래스는 torch.utils.data.DataLoader 인스턴스의 입력으로 사용함 - torchvision.dataset : torch.utils.data.Dataset을 상속하는 이미지 데이터셋의 모음으로 MNIST나 CIFAR-10 등의 CV 예제에 기본이 되는 데이터셋..

[PyTorch] parameter & buffer

parameter torch.nn.parameter 클래스를 통해 자동미분이 가능한 torch.Tensor 객체들을 만들 수 있다. 이 클래스는 torch.Tensor 클래스를 상속받은 자식 클래스이며 torch.nn.Module 클래스의 attribute로 할당하는 경우 model.parameters()에 자동으로 추가된다. 예를 들어 linear transformation \(y = xw + b\)의 식에서 x는 torch.Tensor로 구현할 수 있지만 가중값 w와 편향 b는 만들 수 없다. 이 경우 nn.Module 내의 미리 만들어진 tensor를 보관할 수 있는 nn.Parameter 모듈을 사용한다. import torch from torch import nn from torch.nn.par..

[PyTorch] nn.Module

torch.nn.Module 딥러닝을 구성하는 Layer의 base class로 input, output, forward, backward를 정의하고 학습의 대상이 되는 parameter도 정의하는 모듈 ex) Linear 함수를 구현 import torch from torch import nn from torch import Tensor class MyLiner(nn.Module): def __init__(self, in_features, out_features, bias=True): super().__init__() self.in_features = in_features self.out_features = out_features self.weights = nn.Parameter( torch.randn..

[PyTorch] 파이토치의 기본

PyTorch? 텐서플로우와 함께 대표적인 딥러닝 프레임워크이며 근래 유저의 사용량이 텐서플로우를 넘어서고 있음. Define by Run 실행을 하며 그래프를 생성하는 방식으로 텐서플로우와 가장 비교되는 파이토치의 생성 방식. 이 때문에 교육용과 연구용 모두에서 파이토치를 사용하는 사람의 비중이 늘어나고 있음. numpy + AutoGrad numpy와 같은 구조를 가지는 Tensor 객체로 다차원 Array를 표현함. (numpy의 ndarray와 동일) import numpy as np n_array = np.arange(10).reshape(2,5) print(n_array) print("ndim :", n_array.ndim, "shape :", n_array.shape) # [[0 1 2 3 ..

1주차 회고

부스트캠프를 시작하고 첫 1주가 지났다. 기초적인 파이썬과 AI에 관련된 수학 강의들을 들었는데, 강의량이 너무 많아 강의에 치이기도 했고 첫 주라 적응기간에 적응할 여러 일들이 많아 후딱 지나갔다. AI math 관련 학습 회고는 더 할게 남아있지만 시간의 상황과 아직 내가 경사하강법, 확률론에 대해 이해를 못한 것 같아 추후 학습 후 따로 남기기로 했다. 같이 진행하는 팀들은 너무도 좋은 분들을 만났고, 덕분에 같이 학습하며 한 주를 보냈다. 논문리뷰등은 아직 익숙하지 않고 심화 과정도 힘들었지만, 이런 어려운 학습도 적응하도록 빨리 발전해야겠다.

[AI math] 벡터와 행렬

벡터 숫자를 원소로 가지는 리스트 또는 배열로 $$x = \begin{bmatrix}1\\7\\2 \end{bmatrix}$$ 라는 벡터가 있을 때 이를 열벡터라고 하며 파이썬에서 이를 표현할 경우 x = [1, 7, 2] x = np.array([1, 7, 2]) 로 표현한다. 보통 넘파이 라이브러리를 통해 다루는 일이 많기 때문에 후자의 방식으로 표기한다. 벡터는 공간에서의 한 점을 나타내며 원점으로부터의 상대적 위치를 표현함 벡터에 스칼라(상수)를 곱하는 경우 길이가 변하며 두 벡터의 덧셈은 다른 벡터로부터의 상대적 위치이동을 표현, 뺼셈 역시도 같음 Norm 벡터의 노름은 원점에서부터의 거리를 말함. \(L_1\) norm 과 \(L_2\) norm이 있으며 $$L_1 = ||x||_1 = \su..