Loading...
2023. 4. 24. 03:23

pytorch를 이용한 training process 기본기 완벽하게 이해하기

1. training을 위해 필요한 것? training을 위해 dataset, dataloader를 준비해서 data를 효율적으로 뽑아낼 준비를 했고 설계한 model과 loss, optimizer, learning rate, scheduler, metric 등을 준비했다면 학습 준비 완료! 2. model.train() train하기 전에 model을 trainable하게 변경시키는 함수? 그런데 분명 model 설계할 때 나는 각종 parameter의 requires_grad=True로 한것같은데 굳이 해야하나??? batchnorm이나 dropout같은 것이 training 과정이랑 evaluation 과정에서 다르게 작동해야한다고 알려져있어서 train mode와 eval mode를 구분하기 위..

2023. 1. 6. 01:45

tensorflow.js 기본개념 익히기 -연산그래프-

1. 연산 그래프 텐서플로우와 같은 최신 프레임워크를 사용하여 머신러닝 모델을 구축할 때 일반적으로 사용하는 구성 요소 보통 최신 프레임워크에서는 데이터를 tensor로 표현 tensor는 임의 차원의 배열을 나타내는 데이터 구조 파이썬의 numpy에서 사용하는, 이미지나 오디오 등 다양한 데이터를 나타낼때 데이터가 구조화 되었는지 여부와 상관없이 ndarray를 주로 사용하는데 이와 비슷하다 tensorflow를 포함한 최신 머신러닝 프레임워크는 머신러닝 모델이라는 것이 곧 tensor의 연산 그래프라는 사실을 보여준다. 연산그래프는 tensor의 조작이나 변환에 사용되는 체인으로 정의 2. 시각화 연산 그래프는 tensorflow를 포함한 최신 머신러닝 프레임워크의 핵심이고, 모든 종류의 수학적 구조..

2023. 1. 2. 01:45

convolution의 backpropagation 대충

1. convolution은 미분해도 여전히 convolution convolution을 미분하면 도함수와 convolution이 된다. 앞에 있는 f가 커널이라는 거 알지? 2. convolution의 직관적인 계산 그림 처음에는 w1,w2,w3가 x1,x2,x3에 만나서 o1 다음으로 한칸 옆으로 가서 x2,x3,x4를 만나서 o2 다음으로 한칸 옆으로 가서 x3,x4,x5를 만나서 o3 backpropagation을 위해 미분을 해보면 여전히 kernel과의 convolution이 된다는 것을 위에서 보였으므로 왜 x로 전달되느냐 oi의 미분이 xi이기 때문임 $\delta$는 loss를 o로 편미분한 값이다. loss를 w로 미분한것이 $\delta$와 x의 곱으로 나타남 convolution을 ..

2022. 5. 16. 21:04

불균형 데이터에 효과적인 Focal loss

1. motivation single stage detector들은 ROI pooling이 없어서 모든 영역을 고려하여 gradient를 계산(모든 영역에서 loss가 발생) 이미지 내 물체라는 것은 사실 몇개 없다 그래서 물체를 포함하는 positive sample bounding box보다 물체를 포함하지 않은 negative sample bounding box가 압도적으로 많은 경우가 빈번하다 왜 문제냐면 negative sample bounding box는 실제 물체에 대한 유용한 정보가 없는데 이게 너무 많다는 것이 비효율적 대부분의 single stage detector들이 이런 문제가 있다고 보면 됨 2. focal loss cross entropy인 $-log(p_{t})$의 확장형으로 $..

2022. 5. 16. 01:52

transformer에 사용된 warm up learning rate scheduler

1. warm up learning rate scheduler 최적화 알고리즘인 optimizer의 learning rate는 중요한 hyperparameter인데 보통 하나의 값을 선택하고 전 과정동안 그 값으로 학습을 진행함. 그러나 조금 더 빠르게하면서 모델 성능은 높이고 싶다면 학습 중 변경하는 방법도 생각해볼 수 있음 이런 기법을 learning rate scheduling라고 부른다. 학습 중 적절한 방식으로 learning rate를 변경하면서 학습한다. 모델의 성능을 높이고 학습도 빠르게 할 수 있는 여러 기법들이 있다. warm up learning rate scheduler은 transformer에서 사용한다면 학습이 경험적으로 잘 된다고 많은 경우 알려져있다. 2. 직관적으로 warm..

2022. 2. 16. 19:10

RNN의 기울기 소실(gradient vanishing) 문제

1. RNN의 역전파(Backpropagation through time) 빨간색은 그래디언트가 흘러들어가는 방향이다. Hidden layer에 대한 그래디언트 하나를 직접 계산해보면 빨간색 부분에 주목해보자. f의 미분값이 1보다 크면 곱해지면서 점점 커질 것이고 gradient exploding 현상이 일어난다. 즉 그래디언트가 매우 커져서 학습이 전혀 안된다는 것. 반대로 f의 미분값이 1보다 작으면 곱하면서 점점 작아질 것이고 gradient vanishing 현상이 일어난다. gradient가 0이 되어버리니 학습이 안된다는 소리임. 수식으로 더 써보면 그림과 같다. 잠재변수가 가중치행렬과 활성화함수의 반복적인 곱으로 이루어진다. 직관적으로 활성화함수가 시그모이드라면 정보를 압축하는 역할을 하는..