본문 바로가기
C.W.K.
Stream
Lesson 01 of 07 · published

핵심 레이어

~9 min · layers

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

레이어는 모델을 이루는 원자야. Dense, Conv2D, MultiHeadAttention, LayerNormalization, Dropout뿐 아니라 정규화와 토큰화를 모델 안에 포함하는 전처리 레이어도 있어. 이 트랙에서는 Keras가 제공하는 기본 레이어를 훑어봐.

레이어가 상태와 계산을 함께 가진다

Keras 레이어는 학습되는 가중치라는 상태와 입력을 출력으로 바꾸는 변환을 가진 호출 가능한 객체야. 한 레이어의 출력 텐서를 다음 레이어의 입력에 연결하면 가중치, 텐서 모양, 기울기 경로는 Keras가 추적해. 핵심 레이어 몇 가지만 익혀도 논문에 나온 모델 구조를 상당 부분 읽을 수 있어.

가장 자주 쓰는 다섯 종류

Dense는 output = activation(W·input + b)를 계산하는 완전 연결 레이어야. Embedding은 정수 토큰을 벡터로 바꾸며 자연어 모델의 입구에서 자주 사용해. Activation은 비선형 함수를 적용하고, Dropout은 학습할 때만 일부 값을 꺼 과적합을 줄여. Reshape는 데이터를 바꾸지 않고 텐서를 바라보는 모양만 바꿔. 많은 모델이 이 다섯 종류를 바탕으로 만들어져.

Embedding은 학습되는 찾아보기 표야

Embedding에 정수 토큰 ID를 넣으면 실수 벡터가 나와. 이 표의 값도 다른 가중치와 함께 경사 하강법으로 학습돼. input_dim은 어휘의 크기, output_dim은 각 벡터의 폭을 뜻해. mask_zero=True로 설정하면 토큰 0을 패딩으로 취급해 뒤따르는 순환·Attention 레이어가 무시할 수 있어.

Code

Embedding — 정수 토큰을 밀집 벡터로 변환·python
# Embedding layer: integer tokens → dense vectors
embedding = layers.Embedding(
    input_dim=10000,   # Vocabulary size
    output_dim=128,     # Embedding dimension
    mask_zero=True,     # Treat 0 as padding
)
# Input shape: (batch, seq_len) of integers
# Output shape: (batch, seq_len, 128) of floats

External links

Exercise

Input → Embedding → Flatten → Dense 순서의 작은 Functional 모델을 만들어. vocab_size=100, embed_dim=8, 마지막은 Dense(10)으로 두고 model.summary() 전에 각 출력 모양을 손으로 계산해.
Hint
Embedding은 (batch, seq_len)을 (batch, seq_len, 8)로 바꾸고, seq_len=20일 때 Flatten 출력은 (batch, 160)이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.