1.RNN
RNN(Recurrent Neural Network)은 입력과 출력을 시퀀스 단위로 처리하는 가장 기본적인 시퀀스(Sequence) 모델이다. RNN의 특징은 은닉층의 노드에서 활성화함수를 통해 나온 결과값을 출력층 방향으로 보내고, 다시 은닉층의 노드의 다음 계산의 입력으로 보낸다는 것이다. 이 특징은 결과값이 오직 출력층 방향으로 향하는 피드 포워드 신경망(FFNN)의 특징과 가장 다른 점이라고 할 수 있겠다. 이 특징의 차이는 FFNN에 ‘시점’이라는 개념을 도입한 것과 같다. RNN의 입출력 층은 벡터 단위를 가정한다.
LSTM
LSTM은 RNN의 고질적인 문제점인 장기의존성 문제를 해결하기 위해 나온 모델이다. 이는 RNN의 구조에 'cell state'라는 값이 추가된 구조이다. 이 특징이 RNN과의 큰 차이점이라고 볼 수 있다.
2.Seq2Seq
Seq2Seq는 인코더와 디코더로 나누어진 모델이다. 입력문장의 정보를 'Context vector'라는 고정된 하나의 벡터에 압축에 디코더에 전달하는 구조이다. Seq2Seq모델의 각 RNN 셀은 t-1시점에서의 hidden state와 t시점에서의 입력 벡터를 입력으로 받는다.
3.attention
기존의 seq2seq 모델은 입력문장의 정보를 ‘Context Vector’라는 하나의 벡터로 압축하여 디코더에 전달하는 구조를 가지고 있다. 여기서의 context vector는 인코더의 마지막 시점의 hidden state이므로 고정된 크기를 가지고 있다. 이로 인해 입력문장의 길이와 상관없이 고정된 크기의 벡터에 정보를 모두 압축해야해서 입력되는 정보의 양이 많아질수록 정보 손실이 발생하게 된다. 디코더가 컨텍스트 벡터에만 의존하기 때문에 이 모델을 사용한 번역기는 입력되는 문장이 길어질수록 번역 성능의 질이 확연히 떨어지게 된다.
이와 같은 점을 보완하기 위해 나온 모델이 attention이다. Attention의 사전적 의미는 ‘주의, 집중, 관심’이다. 이 모델은 기억력(context vector)에 의존하는 Seq2Seq모델과는 다르게 매 시점마다 전체 입력 문장을 다시 한 번 참고하며 다음 단어를 예측하는 구조를 가지고 있다. 전체 입력 문장을 전부 동일한 비율로 보는 것이 아닌, 해당 시점에서 예측해야 할 단어와 연관이 있는 부분을 좀 더 집중해서 보는 메커니즘이라고 할 수 있다.
4.transformer
트랜스포머 인코더는 RNN을 사용하지 않기 때문에 각 단어의 임베딩 벡터에 위치 정보를 더해주는 포지셔널 인코딩을 사용한다. 하이퍼파라미터인 num layers 개수만큼의 인코더 층을 쌓아준다. 이 인코더의 층은 크게 2개의 서브층으로 나뉘는데 셀프어텐션과 피드 포워드 신경망이다.
-디코더도 인코더와 동일하게 임베딩 층과 포지셔널 인코딩을 거친 후 문장이 입력된다. Teacher forcing을 사용해 훈련되므로 번역할 문장행렬을 한 번에 입력받는다. 이 또한 크게 3가지의 서브층으로 나눌 수 있는데 첫 번째는 셀프 어텐션과 룩-어헤드 마스크이다. 트랜스포머의 디코더에서는 현재 시점의 예측에서 현재 시점보다 미래에 있는 단어들을 참고하지 못하도록 룩-어헤드 마스크를 도입했다. 이는 어텐션 스코어 행렬에서 마스킹을 적용한다.
-두번째는 인코더-디코더 어텐션이다. 여기서 사용된 어텐션은 Query가 디코더의 행렬이지만, Key와 Value가 인코더의 마지막 층에서 온 행렬이다.
세번째로는 피드포워드 신경망을 통해 학습된다.Self attention
셀프 어텐션은 Query, Key, Value가 ‘입력 문장의 모든 단어 벡터들’로 동일한 경우를 뜻한다. 이는 벡터의 값이 같은 것이 아니라 출처가 같다는 의미이다. 이의 효과는 입력 문장 내의 단어들끼리의 유사도를 구함으로써 각 단어의 연관되는 확률을 구해줄 수 있다.
1.DQN에서 Replay Buffer에 저장되는 인수
SARSA(State, Action, Reward, 다음 state의 action)
2.Markov State(마르코프 상태) 가정
‘모든 상태는 오직 그 직전의 상태와 그 때의 행동에서만 의존한다(영향을 받는다).’
3.벨만방정식
Q(s,a)=r+γQ(s^',a^')
Q(s,a)는 모든 state의 action에 대한 보상값들의 합의 기댓값이다.
벨만방정식의 의의는 어떤 상태든 가장 높은 누적보상값을 얻을 수 있는 행동을 취하도록 하는 것이다.4.Reinforce 알고리즘과 Actor-critic
1) 두 알고리즘의 목적함수
두 알고리즘은 정책 기반의 강화학습이다. 정책함수의 답을 알 수 없기 때문에 이 함수를 평가하는 기준을 세워 그 값을 최대화시켜 학습하자는 것이 목적함수이다. 여기서의 평가기준은 보상의 합이 된다. 즉, 보상의 합을 최대화시키는 것이다.
2) 두 알고리즘의 차이점
Reinforce 알고리즘은 reward를 몬테카를로 샘플링으로 계산한 것이고 Actor-Critic은 하나의 네트워크를 더 만들어 적용해 샘플링으로 인한 변동성을 감소시켰다.
3) Actor-critic과 A2C(Advantage Actor-Critic)의 차이점
A2C는 Baseline함수를 도입시킨 것이 가장 큰 차이점이다. 이는 목적함수의 q값을 q-v인 어드밴티지 값을 도입하여 action의 가치를 평가할 때 state의 정보를 빼내어 학습을 효율적으로 시키는 것이다.
기존의 A2C는 3개의 network를 학습해야하므로 복잡도가 커진다. 이를 보완하기 위해 Td A2C는 학습이 필요한 Critic Network 대신 계산이 가능한 value...
깔끔하게 정리가 잘된것같아요! ^__^ 설명감사합니다ㅎㅎ