Loading...
2023. 6. 7. 17:42

neural network를 training 하기 전에 input을 normalization해야하는 이유

1. normalization 신경망의 훈련을 빠르게 하기 위해 필요한 input normalization 다음과 같이 2차원의 입력데이터가 존재할때 주어진 데이터의 평균을 빼고, 표준편차를 나누는 방법으로 normalization할 수 있다. 데이터에 평균을 빼서 얻은 새로운 값의 평균은 0이 되고 위 그림에서 $x_{1}$이 $x_{2}$보다 분산이 더 큰 특징이 있다. 표준편차를 나눠서 얻은 새로운 값의 분산은 1로 되어 $x_{1}$과 $x_{2}$의 산포가 동일해진다. $$Z = \frac{X-\mu}{\sigma}$$ $$\mu = \frac{1}{m}\sum_{i = 1}^{m} X_{i}$$ $$X = X - \mu$$ 새로 얻은 X의 평균은 0이므로, 분산은 다음과 같이 구할 수 있다. ..

2023. 4. 26. 00:10

pytorch에서 loss 기본개념 재활

1. loss input data로부터 forward를 통해 계산한 예측된 결과 output input의 정답 label인 target과의 차이가 loss이다. loss는 error, cost로 불리기도 한다. backward 과정에 의해 loss가 update된다. output과 target의 차이를 어떻게 정의할 것인가? 문제와 task 목적에 따라 제곱오차, cross entropy 등 여러가지로 정의할 수 있다. loss에 따라 차이는 바뀔 것이고 class마다도 다를 수 있는데 loss의 선택에 따라 training중 parameter 업데이트 과정도 달라지므로 신중하게 선택해야한다. 2. nn.Module loss class도 nn.Module을 상속받는다… 따라서 __init__와 forwa..

2023. 4. 21. 01:39

개발자가 숫자를 0부터 세야하는 이유 - loss function 사용할때 class는 0부터 시작하기(cuda error)

text classification 모델을 training할려고 하는데.. 익숙한 cuda error를 만났다 경험상 정확한 원인은 알 수 없고 tensor 타입이라든지 gpu cpu 안맞다든지.. 등등 여러가지 이유로 발생하는거고 CUDA_LAUNCH_BLOCKING=1 넣어보라는건 아무 효과도 없음 이런 경우는 가장 좋은건 데이터를 하나만 빼서 model에 넣어봐서 output을 하나만 계산해봐야함 그리고 저 에러만나면 런타임 다시 시작해야함 ------------------------------------------------------------------------------ 근데 뭐 여러가지 시도해봄 device에 torch.device("cuda:0")냐 torch.device("cuda")..

2022. 6. 1. 01:51

딥러닝의 핵심요소

1. deep learning의 기본 인공지능을 단순하게 정의하면 ‘사람의 지능을 모방하는 것’ 딥러닝이 인공지능의 모든 것은 아니다. 2. 딥러닝의 핵심요소 모델이 배워야할 data, 데이터를 어떻게 변형시킬지 model, 모델의 나쁜 정도를 측정하는 loss function, loss를 최소화하는 parameter를 추정하는 알고리즘(optimizer) 4가지만 논문에서 정확히 보더라도 해당 논문의 거의 대부분을 이해할 수 있는 수준 2-1) data 데이터(data)는 풀고자하는 문제에 따라 다르다 semantic segmentation > 이미지의 픽셀이 어느 class에 속할지 pose estimation > 이미지의 스켈레톤(동작)을 추정함 visual QnA > 시각이미지를 보고 질문에 대한..

2022. 1. 26. 21:22

backpropagation의 개괄적인 설명

손실함수를 가중치나 절편에 대해 최소화시키는 방법 L이 loss이고 W는 가중치 b는 절편 손실함수를 가중치나 절편에 대해 최소화시키는 방법 그런데 미분값을 계산하는 과정에서 최상층에서 최하층으로, 역으로 미분 계산이 진행된다해서 Backpropagation이라 부른다. 합성함수 미분법에 의한 연쇄법칙이 기반 예제) 2층신경망의 역전파 알고리즘 방법은? 비슷한 방식으로 도 구할 수 있다. 확률적 경사하강법 등을 이용하여 손실함수 L을 최소화시키는 방향으로 가중치 W와 절편 b을 계속 갱신해나감

2022. 1. 2. 00:05

여러가지 optimizer의 원리

1. Optimizer 일반적으로 최적화 알고리즘으로 gradient descent method를 사용하는데 손으로 하기도 어렵고 귀찮다. 그래서 요즘 컴퓨터가 다 계산해주는데 어떻게 계산해주느냐에 따라 여러가지 종류가 나왔다. 2. Gradient Descent 일반적인 gradient descent 방법 가중치에 그래디언트와 learning rate의 곱을 빼면서 update한다. 문제는 learning rate를 어떻게 잡아야할지가 고민이다. 너무 크게 잡자니 overshooting으로 학습이 안되는 현상이 나타나고 너무 작게 잡자니 너무 학습이 느림 3. Momentum 어떻게 하면 최적치에 더 빨리 갈수 있을까라는 생각에 이전 gradient의 정보를 가진 momentum을 이용하자. 이전에 g..