본문 바로가기
728x90
반응형
SMALL

역전파6

[Deep Learning] Attention Mechanism Attention Seq2Seq는 인코더 마지막 히든 스테이트 (hidden state)에 모든 인코더 정보를 우겨넣게 된다. 그리고 LSTM을 통해 Long-term dependency 문제를 해결했지만, 뒤 타임 스텝에서 앞쪽의 정보를 잘 저장하지 못하는 현상이 발생하기도 했다. 이 문제를 보완하기 위해 attention이 등장하게 된다. 동작 원리  어텐션이란, 디코더 (Decoder)가 각 타임 스텝 (time step)에서 결과를 생성할 때에 인코더 (Encoder)의 몇번째 타임 스텝을 더 집중 (Attention)해야하는 지를 스코어 형태로 나타내는 것이다. 각 디코더의 타임 스텝마다 인코더의 히든 스테이트 백터 (hidden state vector)와의 유사도를 계산함으로써, 인코더의 몇번.. 2023. 12. 28.
[PyTorch] gradient 시각화 gradient 시각화.import torchx = torch.FloatTensor(2, 2)y = torch.FloatTensor(2, 2)y.requires_grad_(True) # 향후 gradient를 계산하기 위해 이 tensor가 포함된 모든 연산을 추적(track)한다z = ( x + y ) + torch.Tensor(2, 2)print(z)tensor([[2.5832e+30, 2.7510e+36], [9.7644e+21, 5.9766e+31]], grad_fn=)x = torch.FloatTensor(2, 2)y = torch.FloatTensor(2, 2)y.requires_grad_(True)with torch.no_grad(): # 이 연산은 추적하지 않음 z = (.. 2023. 3. 9.
[ANN] 다층 퍼셉트론 (Multi-Layer Perceptron) (2) 역전파 (Backpropagation) 오차를 하나의 계층에서 직전 계층으로, 즉 역으로 전파하는데 가중치를 이용한다. 오차 𝑒1은 나뉘어 전달될 때, 작은 가중치를 가지는 연결 노드보다 큰 가중치를 가지는 연결 노드에 더 많이 전달한다. 다층 계층에서 오차 역전파 출력 계층의 연결된 노드들의 가중치를 업데이트한다. 𝑒𝑜𝑢𝑡𝑝𝑢𝑡 : 출력 계층의 오차 𝑊ℎ𝑜 : 은닉 계층에서 출력 계층을 연결하는 가중치 은닉 계층의 노드의 출력 값과 관련된 오차를 입력 계층과 은닉 계층을 연결하는 가중치를 업데이트한다. 𝑒ℎ𝑖𝑑𝑑𝑒𝑛 : 은닉 계층의 노드의 출력 값과 관련된 오차 𝑊𝑖ℎ : 입력 계층에서 은닉 계층을 연결하는 가중치 중간 계층 : 존재하는 노드들의 오차가 명백하지 않다. 이전 계층의 노드로부터 오는 n개.. 2022. 10. 11.
[Image Classification] ResNet (2) Skip connection ResNet에서 Skip connection은 2개의 레이어를 건너뛰는 형태로 제작되었다. 레이어에 들어오는 입력이 Skip connection을 통해서 건너뛰어 레이어를 거친 출력과 Element-wise addition을 한다. 즉, 기울기를 residual block과 함께 더 깊은 레이어로 전송한다. Plain network의 경우 18층에서 34층으로 깊이를 늘리면 학습 오류가 늘어나는 것을 볼 수 있다. ResNet의 경우 degradation 문제가 어느정도 해결됨을 알 수 있다. 모델 depth 비교 또한, Re-ResNet도 신경망의 깊이가 점점 깊어지면 parameter의 수가 많아지기 때문에 residual block을 다른 구조로 사용하는 방식이 고안되었.. 2022. 9. 13.
[Deep Learning] 역전파 (Backpropagation) / 경사하강법 (Gradient Descent) 역전파 (Backpropagation) input에서 output으로 weight를 업데이트하면서 activation fuction을 통해 결과값을 가져오는 것을 순전파 (foward)라고 하며 말 그대로 앞쪽으로 input 값을 전파, 보내는 것이다. 하지만 임의로 순전파 했다고 출력 값이 정확하지는 않을 것이다. 임의로 설정한 weight 값이 input에 의해서 한 번 업데이트 되긴 했지만 많은 문제가 있을 수 있다. 역전파는 출력값에 대한 입력값의 기울기를 출력층 layer에서부터 계산하여 거꾸로 전파시키는 것이다. 거꾸로 전파시켜 최종적으로 출력층에서 output값에 대한 입력층의 input data 기울기 값을 구할 수 있다. 이 과정에서 chain rule이 이용된다. input이 들어오는 .. 2022. 1. 3.
[ANN] 순환 신경망 (Recurrent Neural Network, RNN) (1) 순환 신경망 (Recurrent Neural Network, RNN) RNN은 hidden node가 방향을 가진 edge로 연결돼 순환구조 (directed cycle)를 이루는 인공신경망의 한 종류이다. 입력과 출력을 시퀀스 단위로 처리하는 모델이다. 순환 신경망은 시계열 데이터 처리에 알맞게 변형된 딥러닝 구조이다. Sequence Data를 학습하여 Classification 또는 Prediction을 수행한다. 은닉 계층 안에 하나 이상의 순환 계층을 갖는다. 하나의 파라미터 쌍 (가중치와 편향)을 각 시간대 데이터 처리에 반복 사용한다. 시간대와 시간대 사이에 순환 벡터를 이용해 정보를 전달한다. 일정 시간 동안 모든 값이 계산되면, 모델을 학습하기 위해 결과값과 목표값의 차이를 loss fu.. 2021. 12. 14.
728x90
반응형
LIST