Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3주차 과제 제출] 논문스터디 이지명 #12

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions week2/2주차_이지명.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
22이지명 HAI 과제

-----

<br>

# 2주차 논문


Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. Advances in neural information processing systems, 30.

<br>

---

<br>

# 논문 요약

<br>

기존의 sequence 처리 모델들은 Recurrent 모델이나 Convolution 모델, 그리고 이를 활용한 Encoder-Decoder 구조가 지배적이었다. 이때 RNN 기반 모델은 이전 단계의 출력이 이후 단계의 입력으로 사용되기 때문에 연산을 병렬화하기 힘들다.

attention mechanism은 RNN 기반 Encoder-Decoder 모델에서 문장 거리에 따라 발생하는 망각 문제를 효과적으로 해결한다.

이 논문에서는 기존의 Encoder-Decoder 구조에서 Recurrent 구조를 완전히 제거하고 Attention mechanism만을 사용한 transformer architecture를 제안한다. transformer의 구조는 연산의 병렬화를 가능하게 하였을 뿐더러, 입력 문장의 의미가 한정된 hidden state만으로 표현되어 발생하던 bottleneck 문제를 해결한다.

<br>

### Architecture

General
- $Q, K, V$ 모두 동일한 sequence를 사용하는 self attention을 사용한다.
- scaled dot prod attention을 사용한다.
- 단일 attention이 아닌 multi-head attention을 사용한다.
- attention - feed forward 블럭을 여러 층 쌓아 구성한다.
- residual connection과 layer normalization을 사용한다.
- 위치 정보를 반영하기 위해 positional encoding을 사용한다.

Encoder
- encoder output을 decoder의 각 층에서 attention의 $K, V$로 사용한다(normal attention).

Decoder
- self attention 이후 encoder attention을 사용한다.
- self attention의 경우 이후 토큰 정보를 미리 사용하지 못하도록 masking한다.

<br>

transformer는 machine translate 분야의 benchmark에서 sota 성능을 보여주었다.

------


49 changes: 49 additions & 0 deletions week3/3주차_이지명.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
22이지명 HAI 과제

-----

<br>

# 2주차 논문


Silver, D., Huang, A., Maddison, C. J., Guez, A., Sifre, L., Van Den Driessche, G., ... & Hassabis, D. (2016). Mastering the game of Go with deep neural networks and tree search. nature, 529(7587), 484-489.

<br>

---

<br>

# 논문 요약

<br>

### Abstract
이 연구에서는 tree search 없이 neural network의 supervision/reinforecement learning을 통해 board state를 평가하는 방법론을 제안하여 기존 sota 바둑 인공지능의 수준을 달성하였다.

추가로, 학습된 네트워크를 tree search에 적용하는 방법론을 제안하였고, 이를 통해 인간 프로기사의 실력을 뛰어넘는 수준의 인공지능을 구현하였다.

### Pollicy Network

- SL policy $p_\sigma$는 인간 기보 데이터를 사용하여 다음 수를 예측하도록 학습시킨다.
- $a \sim p_\sigma$ 인 selfplay 데이터로 RL policy $p_\rho$를 학습시킨다.

### Value Network
- optimal value function $v^{\star}(s)$를 target으로,
$v^{\star}(s) \approx v^{p_\rho}(s) \approx v_\theta (s)$의 근사를 통해 $v_\theta$를 학습시킨다.

### Tree Search
- Monte Carlo Tree Search를 기반으로, MCTS의 selection, expansion, rollout 단계에 network를 적용한다.
- selection : 선택에 사용되는 $UCT \equiv Q(s,a) + U(s,a)$에서 예측된 선택 확률을 반영한 $PUCT \equiv Q(s,a) + p(a \vert s)U(s,a)$를 사용한다.
- expansion : 노드를 확장할때 tree policy network를 통해 $p(a \vert s)$을 계산하여 저장한다(PUCT 계산에 활용).
- rollout : random rollout 대신 rollout policy $p_\pi$를 사용하여 $a \sim p_\pi$로 simulation하고, $v_\theta (s)$의 예측값과 섞어 $Q(s, a)$를 평가한다.

### Evaulation

- lookahead search 없이 policy network만을 사용하여 sota 바둑 인공지능의 수준을 달성
- 인간 프로기사를 상대로 Elo rating 200 이상의 우위(승률 79%이상)를 달성

------