Home

[백준] 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: ...

Read more

[백준] 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))

Read more

[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 층의 출력을 사용한다. 이 ...

Read more

[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가 고정된 크기이기에 긴 입력 문장에 대해서 모든 정...

Read more

[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가 ...

Read more