[백준] 2021은 무엇이 특별할까?
문제
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
def next_prime(n):
while True:
n += 1
if is_prime(n):
return n
n = int(input())
p1 = next_prime(1)
p2 = next_prime(p1)
while p1 * p2 <= n:
...
[백준] f(A+B)
문제
n = list(input().split())
a, b = input().split()
dic = dict()
reverse_dic = dict()
for i in range(10):
dic[n[i]] = i
reverse_dic[i] = n[i]
reverse_a = ''.join(str(dic[i]) for i in a)
reverse_b = ''.join(str(dic[i]) for i in b)
c = str(int(reverse_a) + int(reverse_b))
print(''.join(reverse_dic[int(i)] for i in c))
[NLP] Transformer
Self-Attention
self-attention은 Transformer에서 사용되는 모듈로 Query(q), Key(k), Value(v) 벡터를 사용한다. 입력을 Embedding하고 각 단어에서의 Embedding을 q, k, v로 변환하여 자기 자신에 대하여 Attention연산을 진행하는 것이다.
현재 단어의 Embedding에 대해서 $W_Q$를 통해 q를 구하고, 현재 단어를 포함한 모든 Embedding에 대하여 $W_K$와 $W_V$를 통해 k와 v를 구한다. 이 Embedding은 첫 Encoder 층에만 필요하고 이후에는 이전 Encoder 층의 출력을 사용한다.
이 ...
[NLP] Seq2Seq with Attention
Seq2Seq Model의 문제점
Seq2Seq 모델은 many-to-many를 다룰 수 있는 기본 구조의 모델로서, 일련의 단어를 Encoder가 입력으로 받아 고정된 크기의 Latent Vector(=마지막 time step의 $h_t$)로 변환하고 이를 Decoder의 $h_0$로 할당하고 SOS토큰을 입력으로 주어 단어를 순차적으로 예측한다.
이런 모델은 가변적인 길이를 가진 input과 output을 다룰 수 있게 된다.
하지만 Latent Vector가 입력으로 들어온 문장의 모든 정보를 잘 담고 있어야 하지만 Latent Vector가 고정된 크기이기에 긴 입력 문장에 대해서 모든 정...
[NLP] LSTM과 GRU
LSTM(Long Short-Term Memory)
RNN과 동일하게 Sequence 데이터를 처리하는 모델이며, 매 time step마다 동일한 모듈을 반복적으로 적용한다. 이 때, 4개의 Vector(gate)를 계산하는 신경망이 존재한다.
또한 hidden state를 기억 소자로 볼 수 있다는 점에서 hidden state를 더 복잡하게 구성하여 RNN보다 더 오래 기억할 수 있게 하여 장기 기억 문제를 해결하였다..
LSTM에서는 cell state를 추가하여 hidden state를 더 복잡하게 만들었고, hidden state의 모체가 되는 cell state가 ...
99 post articles, 20 pages.