느린 일지/부스트캠프 AI Tech 4기

[학습 일지 / day 44] 병렬

neulvo 2022. 11. 23. 09:34

오늘은 주로 프로젝트 회의와 작업을 하였다.

그런데 diffusion 스터디와 선형대수 스터디도

참여하면서 조금은 빡빡한 일정을 수행하였다.

 

프로젝트에 관해서는 공용 베이스 라인 코드를 완성짓고

깃헙에 올리는 작업을 하였다.

팀원들과 같이 작업하였고 깃 도와주거나 관리하는 일을 내가 추가적으로 담당하였다.

 

그리고 모듈화 작업이랄까 기능 별로 파이썬 파일로 묶는 작업을 하였는데

그 과정에서 import한 모듈을 customize 했을 때

클래스 인자들을 상속받는 부분을 도와 해결하였다.

def __init__(self, (추가 인자), *args, **kwargs) 이후에 super().__init__(*args,**kwargs)를 써서

이전의 인자들을 상속받는 것이 중요한 포인트였다. 관련 레퍼는 바로 아래에.

상속 부분 한 줄 요약하자면, 초기화 함수에서 기존 인자를 *args, **kwargs로 받고 추가되는 인자를 앞에 써준 다음 super() 함수를 사용해 기존 인자들을 받고 이후 추가되는 인자를 self에 넣어서 사용해주면 됩니다.

 

Hugging face - Custom Loss

1. transformers - Trainer class ‘compute_loss’ 살펴보기 transformers의 Trainer class를 git에 가서 살펴보면, compute_loss 함수가 어떻게 정의되었나 알 수 있습니다! https://github.com/huggingface/transformers/blob/master/src/

kyunghyunlim.github.io

 

이후에는 잠깐 쉬고 기존의 자료들을 정리한 뒤

내 서버의 버젼과 로컬의 버젼들을 이후 작업 및 백업에 알맞게 변경해주었고

다시 쉬다가 선형 대수 스터디를 준비하고 참여하였다.

 

참고로, diffusion 스터디는 스터디원들이 프로젝트로 바쁜 듯 보여

VAE와 DDPM의 pseudo code를 찾아 간략한 설명과 함께 올리는 것으로 대체하였다.

 

선형 대수 스터디에서는 고유값 부분과 선형 변환 부분을 학습하였는데

스터디 중간에 어떤 연결 고리가 파바박 떠올라서

그것을 바로 아래에 정리해 보았다.

 

실좌표공간(real coordinate space, $\mathbb{R}^n$, 실수의 n차원 tuple set) 내의 집합이 $\mathbb{R}^n$의 부분 공간이 되기 위해서는 덧셈 연산과 스칼라 배 연산에 닫혀 있어야 한다.

그런데 또 $\mathbb{R}^n$에서 $\mathbb{R}^m$으로의 변환($T : \mathbb{R}^n \rightarrow \mathbb{R}^n$)이 선형 변환이 되기 위해서는 덧셈 연산과 스칼라 배 연산에 역시 닫혀 있어야 한다.

결국 실좌표공간이 덧셈과 스칼라 배 연산에 닫혀 있기 때문에 

그것의 부분 공간이나 그것의 부분 공간 사이의 변환 또한 덧셈과 스칼라 배에 닫혀 있어야 하는 것이다.

그리고  $\mathbb{R}^n$에서 $\mathbb{R}^m$으로의 선형 변환을

행렬 $A$와 $\mathsf{x}$ 열벡터의 곱으로 표현할 수 있는데

여기서의 행렬 $A =[a_{ij}]_{m\mathsf{x}n}$를 선형 변환 T의 표준이라 하며 [T]라고 표시한다.

또한 $\mathbb{R}^n$에서 $\mathbb{R}^n$ 자신으로의 선형 변환 $T : \mathbb{R}^n \rightarrow \mathbb{R}^n$를 $\mathbb{R}^n$ 위의 선형연산자라고 한다.

결국 실좌표공간 내의 부분 공간들은 모두 덧셈 연산과 스칼라배 연산에 닫혀 있다는 것이고

부분 공간 사이의 선형 변환은 항상 행렬로 표현할 수 있다는 것이다.

더 나아가 행렬을 찾겠다는 것은 두 개의 (벡터 스페이스) 차원 사이의 선형 변환을 찾겠다는 것으로도 해석할 수 있다.

추가적으로 인공지능 학습에서 아핀 변환(Affine transformation)이라는 비선형 변환을 취하는 것은

선형 변환을 넘어서 X라는 입력에서 Y라는 출력으로 가는 mapping의 표현력을 극대화하기 위함이다.

또 같은 캠퍼로부터 들은 얘긴데 Transformer 모델의 제목이 왜 Transformer인지 생각해보면

그것은 결국 여러 번의 Transform 과정을 거쳐 토큰의 표현력을 극대화하고

그것을 잘 이해할 수 있도록 모델을 만들었기 때문이 아닐까 한다.

 

Real coordinate space - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Space formed by the n-tuples of real numbers In mathematics, the real coordinate space of dimension n, denoted Rn ( ar-EN) or R n {\displaystyle \mathbb {R} ^{n}} , is the set of the n

en.wikipedia.org

 

선형변환과 아핀변환에 대한 고찰 (Linear & Affine Transformation) | Hooni's Playground

아핀변환을 정리하는 차원에서 글을 써본다. 선형변환 (Linear Transformation) 고등학교에서부터 배우는 내용이다. 선형변환은 스칼라 a와 벡터 u, v에 대해 두 벡터 공간(U, V) 사이에서 다음 조건을 만

hooni-playground.com

 

위의 자료는 용어적인 측면과 아이디어적인 측면에서

힌트를 얻은 레퍼런스들이고 아래의 선형변환과 아핀변환 자료는

아마 이전에도 한번 보고 일지 쓸 때 같이 올렸을 것이다. 그런 기억이 있다.

 

이것저것 신경 쓸 일이 많은 하루였는데

어떻게 다행히도 모두 아슬아슬하게 safe한 정도로 통과했던 것 같다.

몸이 하나니까 어쩔 수 없다.

정말 수고 많았다. 감사하고 이미 오늘이 된 내일도 화이팅해보자!

728x90