본문 바로가기

경제학코딩 202311

[Scaled dot product] Transformer란? Transformer는 2017년 논문, [Attention is all you need]( Ashish Vaswani 외)를 기반으로 만들어졌다. 위 이미지는 해당 논문 3페이지에서 발췌한 것이다. 위 이미지를 간략히 정리해 보면 아래와 같다. - softmax(output을 확률 형태로 바꿔주는 역할) - Feed Forward Network(f(wx+b) 연산 수행: linear 연산한 것에 activation function을 더한 것) - Add: 자기 output을 다음 layer로 넘기고, 다음 layer의 output에 다시 한 번 더해 주는 것. - Norm: Batch Normalization Layer - Multi-Head Attention: Transfor.. 2023. 12. 17.
[Encoder Only Model with imdb] 이전 포스팅까지 keras layer를 통해 encoder를 만드는 것을 배웠으나 실제로 의미있는 데이터를 다루지는 않았다. 이번 포스팅에서는 실제 의미있는 데이터를 다루는 것을 실습한다. 기존과 같이 세팅을 하고, load_dataset을 이요해 imdb를 불러온다. dataset = load_dataset("imdb") 미리 training 된 Tokenizer를 가져오고, 1024를 기준으로 padding을 맞춰 준 뒤, encoding해 준다. tokenizer = Tokenizer.from_pretrained("bert-base-uncased") tokenizer.enable_padding() tokenizer.enable_truncation(1024) temp = tokenizer.encode.. 2023. 12. 17.
[Encoder Only Model with Random Data] Transformer Model을 완전히 구현하기 위해서는 Encoder, Decoder를 모두 구현해야 한다. 이 포스팅에서는 그 중 Encoder만 우선적으로 구현한다. 이전 포스팅에서 Config class를 만들었는데, 이번 포스팅에서 Config class를 다음과 같이 업그레이드한다. @dataclass class Config: vocab_size : int = 1000 d_model : int = 512 block_size : int = None num_heads : int = None key_dim : int = None dff : int = None dropout_rate : float = None num_layers : int = None 마찬가지로 이전 포스팅을 참고하여 TokenEm.. 2023. 12. 17.
[Keras Layer - (2)] LayerNormalization Keras.layers.LayerNormalization을 이용해서 layer normalization을 수행한다. 이 과정은 dense layer를 통과한 각 data(sample)을 평균 0, 표준편차 1이 되도록 가공한다. 이 과정이 반드시 필요하다고 할 수는 없으나, data의 값들이 너무 커지거나 작아지면 gradient 연산에 방해되므로, 최적화를 위해 필요한 과정이라고 할 수 있다. layer normalization을 위해, 먼저 keras.layers.LayerNormalization 객체를 만든다. layernorm = keras.layers.LayerNormalization() 앞선 포스팅에서 언급한 embedding layer, dense layer.. 2023. 12. 16.