본문 바로가기

전체 글31

Tensor of PyTorch 우리가 딥러닝 모델을 훈련시키거나 테스트할 때, 데이터(이미지, 텍스트 등)를 일정한 형태의 벡터로 변환한 뒤 그것을 인공 신경망의 입력으로 넣어 결과가 나올 때 까지 진행시킨다. 벡터들은 수의 집합으로 이루어져 있고, 딥러닝 모델의 성능을 높인다는 것은 곧 원하는 답이 출력되도록 얼마나 파라미터들이 최적화되어있느냐는 질문과 동일하다. 결론적으로 잘 작동하는 딥러닝 모델을 만들기 위해 실제 세계의 데이터들을 적절히 변환하여 딥러닝 모델이 소화할 수 있는 형태로 만들어줘야 한다. 딥러닝 모델을 설계를 위해서 PyTorch는 근본적인 데이터 구조인 텐서(Tensor)를 제공한다. 파이토치의 Tensor는 하나의 데이터 형으로, 차원 수에 관계 없이 일반화된 벡터 또는 행렬이라고 볼 수 있다. 즉, 하나의 숫.. 2024. 2. 28.
Matrices and Matrix Operations(2) 임의의 행렬에 수직선 또는 수평선을 추가하여 여러 개의 블록(Block)으로 나타낼 수 있다. 아래를 보자. $A = \begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ a_{31} & a_{32} & a_{33} & a_{34} \\ \end{bmatrix}$ 위의 행렬 $A$를 아래와 같이 4개의 블록으로 나누자. $A_{11} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ \end{bmatrix}, A_{12} = \begin{bmatrix} a_{14} \\ a_{24} \\ \end{bmatrix}, A.. 2024. 2. 27.
Matrices and Matrix Operations(1) ▶ 행렬(Matrix)이란 숫자들의 직사각형 배열(rectangular array)이다. 배열 내의 숫자들은 행렬의 원소(요소, entries, elements)라고 한다. ▶ 아래와 같이 행렬이 하나의 행으로만 이루어져있을 경우, 이를 행 벡터(row vector)라고 한다. \begin{bmatrix} 1 & 3 & 2 \\ \end{bmatrix} ▶ 아래와 같이 행렬이 하나의 열로만 이루어져있을 경우, 이를 열 벡터(column vector)라고 한다. \begin{bmatrix} 1 \\ 3 \\ 2 \\ \end{bmatrix} 행렬의 크기를 $m \times n$과 같이 표현하는데, $m$은 행의 개수, $n$은 열의 개수를 의미한다. 따라서 일반적은 $m \times n$의 행렬은 아래와 .. 2024. 2. 25.
Homogeneous Linear Systems 아래와 같이 모든 상수항이 all zero인 선형 시스템을 homogeneous linear system(동차 선형 시스템)라고 한다. $a_{11}x_{1} + a_{12}x_{2} + \cdots + a_{1n}x_{n} = 0$ $a_{21}x_{1} + a_{22}x_{2} + \cdots + a_{2n}x_{n} = 0$ $\vdots$ $a_{m1}x_{1} + a_{m2}x_{2} + \cdots + a_{mn}x_{n} = 0$ 모든 동차 선형 시스템은 반드시 하나 이상의 해를 가지는데(모든 $x_i$가 0일 경우 해가 반드시 존재), 이처럼 모든 $x_i$가 0일 때의 해를 자명해(trivial solution), 그렇지 않은 해를 비자명해(nontrivial solutions)라고 한다.. 2024. 2. 22.
Gauss-Jordan Elimination 선형 시스템을 푸는 3가지 대수적 연산(algebraic operations)은 아래와 같다. 1) 0이 아닌 상수를 행(row)에 곱한다. 2) 두 개의 행의 위치를 교환한다. 3) 하나의 행에 상수배를 곱한 것을 다른 행에 더한다. 위의 3가지 연산을 elementary row operations(기본 행 연산)이라고 부른다. 아래 예시를 살펴보며 제대로 이해해보자. 우선 아래와 같은 선형 시스템이 있다. $x + y + 2z = 9$ $2x + 4y - 3z = 1$ $3x + 6y - 5z = 0$ 이를 증강행렬로 표현하면 아래와 같다. \begin{bmatrix} 1 & 1 & 2 & 9 \\ 2 & 4 & -3 & 1 \\ 3 & 6 & -5 & 0 \\ \end{bmatrix} 이제 여기에 .. 2024. 2. 22.
PyTorch로 사전학습 된 모델 사용하기 사전학습 된 모델(pretrained models)을 사용하는 것은 굉장히 유용하다. 이제 막 머신러닝(딥러닝)에 첫 발을 내딛는 나와 같은 초심자도 딥러닝 전문가들이 시간과 지식을 갈아 넣어 만들어 놓은 모델들을 통해 빠르고 쉽게, 그리고 높은 성능을 내는 모델을 사용할 수 있기 때문이다. 심지어 딥러닝에 대한 지식이 없는 사람도, 사전학습 된 모델을 통해 꽤 그럴듯한 모델을 만들 수 있다. 이처럼 사전학습 된 모델을 내가 수행하려는 작업에 맞추어 파라미터를 조정하는 것을 파인 튜닝(Fine-Tuning)이라고 한다. 이제 어떻게 파이토치로 사전학습 된 모델을 사용할 수 있는지 살펴보자. 파이토치를 사용하기 위한 가상환경이나 필요한 라이브러리는 미리 다운받아놓았다. CV(Computer Vision)과.. 2024. 2. 21.