전체 글 96

git diff algorithm (myers algorithm) - 2

공간 복잡도를 linear로 개선하는 방법입니다 paper를 기준으로 글을 작성했습니다 Lemma 3paper는 어렵게 되어있지만,D-path는 (0,0)에서 (x,y)인 D/2-path, (x,y)에서 (N,M)인 D-path 두개로 쪼개질 수 있다는 설명입니다 알고리즘Divide and Conquer를 활용하여 iteration한번 당 edit graph의 중간 지점을 찾는 것입니다 중간 지점을 찾는 방법은,시작지점에서 1칸 움직이고 끝지점에서 1칸 움직이고를 overlap할 때까지 반복하는 것입니다(개인적으로는, d를  미리 구한 다음에 시작지점에서 d/2 만큼 반복하고 끝지점에서 d/2만큼 돌린다음에 겹치는 지점을 찾으면  메모리를 더 효율적으로 사용할 수 있을것 같습니다) 그림으로 표현하겠습니다..

알고리즘 2024.10.06

git diff algorithm (myers algorithm)

깃에서 변경 내용을 어떻게 추적할까 궁금해져 찾아봤습니다 String A,B가 다음과 같이 주어져있다고 합시다 A = abcabba and B = cbabac A에서 문자를 삭제하거나 추가해서 B가 되었다고 했을 때,[삭제+추가]가 최소가 되는 방법을 찾는 알고리즘 입니다이를 shortest edit script(SES)이라고합니다위 문제를 다르게 생각할 수 있습니다x축은 A, y축은 B입니다오른쪽으로 이동하면 문자를 삭제한다는 뜻이고,왼쪽으로 이동하면 문자를 추가한다는 뜻입니다대각선 방향은 문자가 서로 같아 삭제 또는 추가를 하지 않아도 된다는 것을 의미합니다 Greedy AlgorithmSES를 찾는 방법을 생각해봅시다.그 전에 두가지 lemma가 필요합니다 paper에서 diagonal k는 x-y..

알고리즘 2024.10.04

Improving Knowledge Distillation via Regularizing Feature Norm and Direction

Overviewpenultimate layer (logit 직전의 layer)에 Lnd를 추가하여 성능을 높이는 방법입니다 Motivationpenultimate layer에 L2-loss를 적용하는 것이 모델 성능 향상에 직접적인 영향을 주지 않습니다model pruning and domain adaptation를 통해 large-norm features(norm=size)의 중요성을 알 수 있습니다예를들어, model pruning의 경우 특정 threshold이하의 값을 0으로 만들어도 성능이 크게 줄어들지 않는 것을 보여줬습니다.따라서, feature의 값을 작게 하는 것보다 크게 하는 것이 모델에 더 긍정적인 영향을 끼칠 것으로 예상할 수 있습니다 Regularization어떤 방향으로 값을 커..

Logit Standardization in Knowledge Distillation

개요Knowledge distillation에서 logit을 Standardization하는 것이 더 효과가 좋다는 것을 보여준다위 그림을 보았을 때, 실제로는 오른쪽 student가 더 예측을 잘했음에도 불구하고 오른쪽 student의 KL-divergence가 더 높습니다. standardization을 시키면 그 문제가 해결됩니다 저자는 probability function로 Softmax를 써야한다고 말한 후 수식을 통해 기존의 문제점을 지적하고 standardization을 쓰면 개선된다고 얘기합니다 Derivation of softmax in Classificationsoftmax는 엔트로피를 높이는 probability function 중 최적의 해이다probability function을 ..

라그랑주 승수법 (Lagrange multipliers)

이 글을 보는 모든 분들은 라그랑주 승수법 개념은 알고 계실것 같습니다 고등학교 다닐 때 이런 문제를 많이 보셨을 것 같습니다(모의고사나 수능문제 있는지 찾아봤는데 못찾겠네요) $y = −x+1$ 위에 있는 점들 중 $f(x,y)=x^2+y$의 최소값을 찾아라 풀이$x^2+y=k$로 두고 그래프를 그립니다이차함수 그래프는 (0,k)를 지납니다k가 최소가 되려면 두 그래프가 접해야 합니다 라그랑주 승수법제약식 g(x,y)=k 이 주어졌을 때 (k는 임의의 상수) f(x,y)의 최대 또는 최소를 만족하는 점은 f와 g가 접하는 점에 있다이를 식으로 나타내면, 서로 gradient vector가 같아야 한다는 의미이다$\nabla f = \lambda \nabla g$ 제약식이 여러개 일때 라그랑주 승수법함수..

인공지능/기타 2024.08.05

Revisit the Power of Vanilla Knowledge Distillation: from Small Scale to Large Scale

요약큰 데이터셋에 한해서 vanilla KD가 다른 기법들과 차이가 거의 나지 않는다 Small-scale dataset vs Large-scale datasetPrevious recipe는 원 논문의 결과이고 stronger recipe는 다른 training 기법을 쓴 것 입니다original paper의 기법만으로는 DKD나 DIST와 vanilla-KD와 확연한 차이를 보여줍니다stronger recipe에서는 Cifar100은 2400 epoch만큼 학습했고 ImageNet-1K는 30%/60%/full은 각각 4000/2000/1200 epoch만큼 학습을 돌렸고 augmentation도 했습니다. 이러한 기법들로 학습을 더 돌렸을때, ImageNet-1k에서는 DKD나 DIST같은 방법과 비..

Transformer: Attention is All you need

미뤘던 transformer 아키텍처입니다저는 최대한 원 논문 위주로 이해하려고 노력하는데 transformer는 논문만 보고 이해하는 것은 거의 불가능합니다영상 및 다른 자료들을 여러개 보는 것을 추천합니다 Overview 1. 단어들을 한번에 전달합니다 - 단어가 한번에 1개씩 들어가는 RNN과 달리 모든 단어들을 한번에 전달받고, Positional Encoding으로 단어의 순서를 표시합니다2. Encoder : query / key / value를 이용하여 문맥 정보를 이해하는 단계입니다 - Input끼리의 단어들간의 관계를 학습합니다3. Decoder : 이전 예측을 입력으로 받아 다음 단어를 예측합니다 - 이 과정에서 Encoder의 key와 value를 전달받아 Input의 전반적인 문맥을..

인공지능/기타 2024.07.27

docker network

$ docker network lsNETWORK ID NAME DRIVER SCOPE0cc1f7646f4d bridge bridge local9b68a5cd408f host host local9c19ba299af1 none null local 도커는 기본적으로 위 3개의 네트워크가 제공된다 Bridgebridge network는 하나의 호스트에서 여러개의 네트워크 공간을 형성하도록 합니다다른 bridge에 있는 컨테이너끼리는 통신할 수 없습니다NAME이 bridge인 네트워크는 도커가 default하게 제공하는 네트워크입니다아무런 설정을 하지 않았을때 컨테이너는 default bridge안에 속하게 됩니다bridge 모드로 생..

개발업무/개발 2024.07.21

Knowledge Distillation from A Stronger Teacher

Strong teacher?- 성능이 좋은 모델 (파라미터가 큰 모델일수도 있고, data augmentation이나 epoch을 늘린 모델일수도있음)  이전에 진행되었던 연구 방향Intermediate representation으로 성능향상- OFD, CRDstudent모델과 teacher 모델의 차이가 크면 Student가 잘 학습이 이루어지 않는다- TAKD, DGKD : teaching assistant가 있다  모델의 크기가 커지면 오히려 student의 성능이 떨어지는 경우도 있다왜냐하면, teacher 모델이 복잡해질수록 student가 teacher를 재현하기 힘들다따라서, teacher의 정확한 값을 복원하기보다 예측값의 상대적인 순위를 student에 distillation 해주는 것만..

Entropy, Cross Entropy, KL divergence

Entropy엔트로피는 Random Variable의 평균 정보량을 의미합니다 $H(X) = -\sum_X p(x)I(x)$ I(x)는 information function입니다$I(x) = -log(p(x))$로 정의되는데, 어떻게 이렇게 정의될 수 있는지 살펴보겠습니다 정보량이라는 것이 무슨의미를 가지는 것인지 생각해봅시다 어떠한 사건이 발생했을 때 그 사건이 일어날 확률이 높을수록 정보량은 적다고 할 수 있습니다예를들어, 당첨되지 않는 로또번호를 아는 것은 주는 정보가 매우 적습니다.왜냐하면 대부분의 로또번호는 당첨되지 않기 때문입니다하지만 당첨되는 로또 번호를 아는 것은 적은 확률에 대한 정보를 알고있는 것이기 때문에 정보량이 많다고 할수있습니다 이러한 사실들로 다음과 같은 식을 만족하는 I를 i..

인공지능 2024.07.07