은닉층과 파라미터

PyTorch로 배우는 딥러닝 입문

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

nn.Sequential()로 레이어 쌓기

# Create network with three linear layers
model = nn.Sequential(

nn.Linear(n_features, 8),
nn.Linear(8, 4), nn.Linear(4, n_classes)
)
  • 입력은 선형 레이어를 순차 통과합니다
  • nn.Sequential() 안의 레이어는 은닉층입니다
PyTorch로 배우는 딥러닝 입문

nn.Sequential()로 레이어 쌓기

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(n_features, 8), # n_features represents number of input features
    nn.Linear(8, 4),
    nn.Linear(4, n_classes) # n_classes represents the number of output classes  
)
  • 입력은 선형 레이어를 순차 통과
  • nn.Sequential() 안의 레이어는 은닉층
  • n_featuresn_classes는 데이터셋이 결정
PyTorch로 배우는 딥러닝 입문

레이어 추가하기

은닉층 2개가 있는 신경망 일러스트

PyTorch로 배우는 딥러닝 입문

레이어 추가하기

은닉층 4개가 있는 신경망 일러스트

PyTorch로 배우는 딥러닝 입문

레이어 추가하기

은닉층 4개가 있는 신경망 일러스트

PyTorch로 배우는 딥러닝 입문

레이어 추가하기

은닉층 4개가 있는 신경망 일러스트

PyTorch로 배우는 딥러닝 입문

레이어 추가하기

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
PyTorch로 배우는 딥러닝 입문

레이어 추가하기

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18), # Takes 10 features and outputs 18
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
  • 입력 10 ➡ 출력 18 ➡ 출력 20 ➡ 출력 5
PyTorch로 배우는 딥러닝 입문

레이어 추가하기

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20), # Takes 18 and outputs 20
    nn.Linear(20, 5)
)
  • 입력 10 ➡ 출력 18 ➡ 출력 20 ➡ 출력 5
PyTorch로 배우는 딥러닝 입문

레이어 추가하기

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5) # Takes 20 and outputs 5
)
  • 입력 10 ➡ 출력 18 ➡ 출력 20 ➡ 출력 5
PyTorch로 배우는 딥러닝 입문

레이어는 뉴런으로 구성됩니다

$$

  • 이전 층의 모든 뉴런과 연결되면 완전연결(fully connected)

입력층과 출력층을 연결하는 화살표가 있는 일러스트

PyTorch로 배우는 딥러닝 입문

레이어는 뉴런으로 구성됩니다

$$

  • 이전 층의 모든 뉴런과 연결되면 완전연결(fully connected)

$$

  • 선형 레이어의 뉴런:

입력층과 출력층을 연결하는 화살표, 한 출력 뉴런에 원 표시

PyTorch로 배우는 딥러닝 입문

레이어는 뉴런으로 구성됩니다

$$

  • 이전 층의 모든 뉴런과 연결되면 완전연결(fully connected)

$$

  • 선형 레이어의 뉴런:
    • 이전 층의 모든 뉴런을 사용해 선형 연산 수행

입력층과 출력층을 연결하는 화살표, 한 출력 뉴런과 강조된 화살표

PyTorch로 배우는 딥러닝 입문

레이어는 뉴런으로 구성됩니다

$$

  • 이전 층의 모든 뉴런과 연결되면 완전연결(fully connected)

$$

  • 선형 레이어의 뉴런:
    • 이전 층의 모든 뉴런을 사용해 선형 연산 수행
    • 파라미터는 N+1개: 입력 N개 + 바이어스 1개

N+1

PyTorch로 배우는 딥러닝 입문

파라미터와 모델 용량

  • 은닉층이 많을수록 = 파라미터 증가 = 모델 용량 증가

$$

2-레이어 네트워크 코드 블록

PyTorch로 배우는 딥러닝 입문

파라미터와 모델 용량

  • 은닉층이 많을수록 = 파라미터 증가 = 모델 용량 증가

$$

2-레이어 네트워크 코드 블록

$$

수동 파라미터 계산:

  • 1층에 뉴런 4개, 각 뉴런 파라미터 8+1개. 9 × 4 = 36개
PyTorch로 배우는 딥러닝 입문

파라미터와 모델 용량

  • 은닉층이 많을수록 = 파라미터 증가 = 모델 용량 증가

$$

2-레이어 네트워크 코드 블록

$$

수동 파라미터 계산:

  • 1층에 뉴런 4개, 각 뉴런 파라미터 8+1개. 9 × 4 = 36개
PyTorch로 배우는 딥러닝 입문

파라미터와 모델 용량

  • 은닉층이 많을수록 = 파라미터 증가 = 모델 용량 증가

$$

2-레이어 네트워크 코드 블록

$$

수동 파라미터 계산:

  • 1층에 뉴런 4개, 각 뉴런 파라미터 8+1개. 9 × 4 = 36개
  • 2층에 뉴런 2개, 각 뉴런 파라미터 4+1개. 5 × 2 = 10개
PyTorch로 배우는 딥러닝 입문

파라미터와 모델 용량

  • 은닉층이 많을수록 = 파라미터 증가 = 모델 용량 증가

$$

2-레이어 네트워크 코드 블록

$$

수동 파라미터 계산:

  • 1층에 뉴런 4개, 각 뉴런 파라미터 8+1개. 9 × 4 = 36개
  • 2층에 뉴런 2개, 각 뉴런 파라미터 4+1개. 5 × 2 = 10개
  • 36 + 10 = 학습 가능한 파라미터 46개
PyTorch로 배우는 딥러닝 입문

파라미터와 모델 용량

  • 은닉층이 많을수록 = 파라미터 증가 = 모델 용량 증가

$$

2-레이어 네트워크 코드 블록

$$

PyTorch로 계산:

  • .numel(): 텐서의 원소 수를 반환
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
PyTorch로 배우는 딥러닝 입문

복잡도와 효율성의 균형

복잡도와 효율성의 균형

PyTorch로 배우는 딥러닝 입문

Ayo berlatih!

PyTorch로 배우는 딥러닝 입문

Preparing Video For Download...