Khám phá hàm kích hoạt

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

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Hàm kích hoạt

$$

  • Hàm kích hoạt thêm phi tuyến tính cho mạng
    • Sigmoid cho phân loại nhị phân
    • Softmax cho phân loại đa lớp
  • Phi tuyến giúp mạng học quan hệ phức tạp hơn
  • Đầu ra "tiền kích hoạt" được đưa vào hàm kích hoạt

Sơ đồ mạng nơ-ron với các lớp tuyến tính và hàm kích hoạt

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

Làm quen với hàm sigmoid

Sơ đồ một phần mạng nơ-ron với đầu vào, các lớp tuyến tính và hàm kích hoạt

  • Có phải động vật có vú không?

Minh họa một con vượn cáo

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

Làm quen với hàm sigmoid

Sơ đồ một phần mạng nơ-ron với đầu vào và các lớp tuyến tính

  • Có phải động vật có vú không?

Minh họa một con vượn cáo

  • Đầu vào:
    • Chi: 4
    • Trứng: 0
    • Lông: 1
Nhập môn Deep Learning với PyTorch

Làm quen với hàm sigmoid

Sơ đồ một phần mạng nơ-ron với đầu vào và số 6 là đầu ra của các lớp tuyến tính

  • Có phải động vật có vú không?

Minh họa một con vượn cáo

  • Đầu ra của các lớp tuyến tính là 6
Nhập môn Deep Learning với PyTorch

Làm quen với hàm sigmoid

Sơ đồ một phần mạng nơ-ron với đầu vào, số 6 là đầu ra của các lớp tuyến tính, và hàm kích hoạt sigmoid

  • Có phải động vật có vú không?

Minh họa một con vượn cáo

  • Lấy đầu ra tiền kích hoạt (6) và đưa qua hàm sigmoid
Nhập môn Deep Learning với PyTorch

Làm quen với hàm sigmoid

Sơ đồ một phần mạng nơ-ron với đầu vào, số 6 là đầu ra của các lớp tuyến tính, hàm sigmoid, và đầu ra

  • Có phải động vật có vú không?

Minh họa một con vượn cáo

  • Lấy đầu ra tiền kích hoạt (6) và đưa qua hàm sigmoid
  • Nhận giá trị trong khoảng 0 đến 1

  • Nếu đầu ra > 0.5, nhãn lớp = 1 (có vú)

  • Nếu đầu ra <= 0.5, nhãn lớp = 0 (không có vú)
Nhập môn Deep Learning với PyTorch

Làm quen với hàm sigmoid

import torch
import torch.nn as nn

input_tensor = torch.tensor([[6]])
sigmoid = nn.Sigmoid()

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Nhập môn Deep Learning với PyTorch

Kích hoạt ở lớp cuối

model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1), # Second linear layer
  nn.Sigmoid() # Sigmoid activation function
)

Dùng sigmoid làm bước cuối trong mạng các lớp tuyến tính là tương đương hồi quy logistic truyền thống

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

Làm quen với softmax

  • Ba lớp:
Nhập môn Deep Learning với PyTorch

Làm quen với softmax

  • Ba lớp:

Một con vượn cáo với tùy chọn "bird"

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

Làm quen với softmax

  • Ba lớp:

Một con vượn cáo với các tùy chọn "bird" và mammal

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

Làm quen với softmax

  • Ba lớp:

Một con vượn cáo với ba tùy chọn: bird, mammal, hoặc reptile

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

Làm quen với softmax

Sơ đồ một phần mạng nơ-ron với đầu vào

  • Nhận đầu vào 3 chiều và trả ra cùng kích thước
Nhập môn Deep Learning với PyTorch

Làm quen với softmax

Sơ đồ một phần mạng nơ-ron với đầu vào, một vector là đầu ra của các lớp tuyến tính, hàm softmax, và đầu ra

  • Nhận đầu vào 3 chiều và trả ra cùng kích thước
  • Xuất phân phối xác suất:
    • Mỗi phần tử là một xác suất (nằm trong [0, 1])
    • Tổng vector đầu ra bằng 1
Nhập môn Deep Learning với PyTorch

Làm quen với softmax

Sơ đồ một phần mạng nơ-ron với đầu vào, một vector là đầu ra của các lớp tuyến tính, hàm softmax, và đầu ra

  • Nhận đầu vào 3 chiều và trả ra cùng kích thước
  • Xuất phân phối xác suất:
    • Mỗi phần tử là một xác suất (nằm trong [0, 1])
    • Tổng vector đầu ra bằng 1
Nhập môn Deep Learning với PyTorch

Làm quen với softmax

import torch
import torch.nn as nn

# Create an input tensor
input_tensor = torch.tensor(
    [[4.3, 6.1, 2.3]])

# Apply softmax along the last dimension

probabilities = nn.Softmax(dim=-1) output_tensor = probabilities(input_tensor) print(output_tensor)
tensor([[0.1392, 0.8420, 0.0188]])
  • dim = -1 chỉ định áp dụng softmax theo chiều cuối của tensor đầu vào
  • nn.Softmax() có thể dùng làm bước cuối trong nn.Sequential()
Nhập môn Deep Learning với PyTorch

Ayo berlatih!

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

Preparing Video For Download...