Các tầng ẩn và tham số

Nhập môn Deep Learning với PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Xếp tầng với 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)
)
  • Đầu vào đi qua các tầng tuyến tính
  • Các tầng trong nn.Sequential() là tầng ẩn
Nhập môn Deep Learning với PyTorch

Xếp tầng với 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  
)
  • Đầu vào đi qua các tầng tuyến tính
  • Các tầng trong nn.Sequential() là tầng ẩn
  • n_featuresn_classes do tập dữ liệu quyết định
Nhập môn Deep Learning với PyTorch

Thêm tầng

Minh họa mạng nơ-ron với hai tầng ẩn

Nhập môn Deep Learning với PyTorch

Thêm tầng

Minh họa mạng nơ-ron với bốn tầng ẩn

Nhập môn Deep Learning với PyTorch

Thêm tầng

Minh họa mạng nơ-ron với bốn tầng ẩn

Nhập môn Deep Learning với PyTorch

Thêm tầng

Minh họa mạng nơ-ron với bốn tầng ẩn

Nhập môn Deep Learning với PyTorch

Thêm tầng

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Nhập môn Deep Learning với PyTorch

Thêm tầng

# 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)
)
  • Đầu vào 10 ➡ ra 18 ➡ ra 20 ➡ Đầu ra 5
Nhập môn Deep Learning với PyTorch

Thêm tầng

# 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)
)
  • Đầu vào 10 ➡ ra 18 ➡ ra 20 ➡ Đầu ra 5
Nhập môn Deep Learning với PyTorch

Thêm tầng

# 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
)
  • Đầu vào 10 ➡ ra 18 ➡ ra 20 ➡ Đầu ra 5
Nhập môn Deep Learning với PyTorch

Tầng được tạo từ nơ-ron

$$

  • Kết nối đầy đủ khi mỗi nơ-ron nối với tất cả nơ-ron ở tầng trước

Minh họa tầng đầu vào và đầu ra với các mũi tên nối giữa các tầng

Nhập môn Deep Learning với PyTorch

Tầng được tạo từ nơ-ron

$$

  • Kết nối đầy đủ khi mỗi nơ-ron nối với tất cả nơ-ron ở tầng trước

$$

  • Một nơ-ron trong tầng tuyến tính:

Minh họa tầng đầu vào và đầu ra với các mũi tên nối và khoanh tròn một nơ-ron đầu ra

Nhập môn Deep Learning với PyTorch

Tầng được tạo từ nơ-ron

$$

  • Kết nối đầy đủ khi mỗi nơ-ron nối với tất cả nơ-ron ở tầng trước

$$

  • Một nơ-ron trong tầng tuyến tính:
    • Thực hiện phép tuyến tính dùng mọi nơ-ron từ tầng trước

Minh họa với khoanh tròn một nơ-ron đầu ra và các mũi tên được tô đậm

Nhập môn Deep Learning với PyTorch

Tầng được tạo từ nơ-ron

$$

  • Kết nối đầy đủ khi mỗi nơ-ron nối với tất cả nơ-ron ở tầng trước

$$

  • Một nơ-ron trong tầng tuyến tính:
    • Thực hiện phép tuyến tính dùng mọi nơ-ron từ tầng trước
    • N+1 tham số: N từ đầu vào và 1 cho độ lệch (bias)

N+1

Nhập môn Deep Learning với PyTorch

Tham số và năng lực mô hình

  • Nhiều tầng ẩn hơn = nhiều tham số hơn = năng lực mô hình cao hơn

$$

Khối mã cho mạng hai tầng

Nhập môn Deep Learning với PyTorch

Tham số và năng lực mô hình

  • Nhiều tầng ẩn hơn = nhiều tham số hơn = năng lực mô hình cao hơn

$$

Khối mã cho mạng hai tầng

$$

Tính tay tham số:

  • Tầng 1 có 4 nơ-ron, mỗi nơ-ron có 8+1 tham số. 9 nhân 4 = 36 tham số
Nhập môn Deep Learning với PyTorch

Tham số và năng lực mô hình

  • Nhiều tầng ẩn hơn = nhiều tham số hơn = năng lực mô hình cao hơn

$$

Khối mã cho mạng hai tầng

$$

Tính tay tham số:

  • Tầng 1 có 4 nơ-ron, mỗi nơ-ron có 8+1 tham số. 9 nhân 4 = 36 tham số
Nhập môn Deep Learning với PyTorch

Tham số và năng lực mô hình

  • Nhiều tầng ẩn hơn = nhiều tham số hơn = năng lực mô hình cao hơn

$$

Khối mã cho mạng hai tầng

$$

Tính tay tham số:

  • Tầng 1 có 4 nơ-ron, mỗi nơ-ron có 8+1 tham số. 9 nhân 4 = 36 tham số
  • Tầng 2 có 2 nơ-ron, mỗi nơ-ron có 4+1 tham số. 5 nhân 2 = 10 tham số
Nhập môn Deep Learning với PyTorch

Tham số và năng lực mô hình

  • Nhiều tầng ẩn hơn = nhiều tham số hơn = năng lực mô hình cao hơn

$$

Khối mã cho mạng hai tầng

$$

Tính tay tham số:

  • Tầng 1 có 4 nơ-ron, mỗi nơ-ron có 8+1 tham số. 9 nhân 4 = 36 tham số
  • Tầng 2 có 2 nơ-ron, mỗi nơ-ron có 4+1 tham số. 5 nhân 2 = 10 tham số
  • 36 + 10 = 46 tham số có thể học
Nhập môn Deep Learning với PyTorch

Tham số và năng lực mô hình

  • Nhiều tầng ẩn hơn = nhiều tham số hơn = năng lực mô hình cao hơn

$$

Khối mã cho mạng hai tầng

$$

Dùng PyTorch:

  • .numel(): trả về số phần tử trong tensor
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Nhập môn Deep Learning với PyTorch

Cân bằng độ phức tạp và hiệu quả

Cân bằng giữa độ phức tạp và hiệu quả

Nhập môn Deep Learning với PyTorch

Ayo berlatih!

Nhập môn Deep Learning với PyTorch

Preparing Video For Download...