---
# System prepended metadata

title: '2021-02-16'
tags: [RNN, CNN, LSTM]

---

2021-02-16
===

###### tags: `RNN` `LSTM` `CNN`

https://mingrammer.com/understanding-the-asterisk-of-python/

LSTM의 output은 hidden state과 같은거?
RNN의 output은 hidden state과 다른거?
### RNN

![](https://i.imgur.com/go68Xut.png)
**노드 =  메모리 셀 = RNN 셀** :  은닉층에서 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드
 바로 이전 시점에서의 은닉층의 메모리 셀에서 나온 값을 자신의 입력으로 사용
**은닉 상태(hidden state)** : 메모리 셀이 출력층 방향으로 또는 다음 시점 t+1의 자신에게 보내는 값

![](https://i.imgur.com/Gn6inQ6.png =200x)

**Wx** : 입력층에서 입력값을 위한 가중치
**Wh**  : 이전 시점 t-1의 은닉 상태값인 ht−1을 위한 가중치 
은닉층 : ht=tanh(Wxxt+Whht−1+b)
출력층 : yt=f(Wyht+b)

![](https://i.imgur.com/FTwMYxE.png)

**각각의 가중치 Wx, Wh, Wy의 값은 모든 시점에서 값을 동일하게 공유**

출처 : https://wikidocs.net/22886


### LSTM vs RNN
RNN은 초기에 들어온 information이 문장이 길어질수록 vanish되는 현상이 있다.
LSTM은 Cell state 사용하여 위 현상을 막아준다.

hidden state값을 그대로 output으로 사용할 수도 있지만 hidden에 별도 공식을 추가하여 output으로 사용을 할 수도 있다.

### CNN
Yoon Kim(2014) http://emnlp2014.org/papers/pdf/EMNLP2014181.pdf
- CNN 레이어 1개만 사용해도 괜찮은 성능을 보여줌
- 모델 모형 참조

Padding option
- valid : 패딩을 사용하지 않음(사이즈가 맞지 않을 경우 가장 우측의 열 혹은 가장 아래의 행을 드랍한다)
- same : 필터의 사이즈가 k이면 사방으로 k/2 만큼의 패딩을 준다.
- 