ทำความรู้จัก Activation Functions

Deep Learning เบื้องต้นด้วย PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Activation functions

$$

  • Activation functions เพิ่ม non-linearity ให้เครือข่าย
    • Sigmoid สำหรับ binary classification
    • Softmax สำหรับ multi-class classification
  • เครือข่ายสามารถเรียนรู้ความสัมพันธ์ที่ ซับซ้อน ขึ้นด้วย non-linearity
  • ผลลัพธ์ "pre-activation" ถูกส่งต่อไปยัง activation function

ไดอะแกรมโครงข่ายประสาทเทียมที่มี linear layers และ activation function

Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Sigmoid Function

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี input, linear layers และ activation function

  • สัตว์เลี้ยงลูกด้วยนมหรือไม่?

ภาพประกอบของลีเมอร์

Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Sigmoid Function

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs และ linear layers

  • สัตว์เลี้ยงลูกด้วยนมหรือไม่?

ภาพประกอบของลีเมอร์

  • Input:
    • Limbs: 4
    • Eggs: 0
    • Hair: 1
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Sigmoid Function

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs และตัวเลข 6 เป็น output ไปยัง linear layers

  • สัตว์เลี้ยงลูกด้วยนมหรือไม่?

ภาพประกอบของลีเมอร์

  • Output ไปยัง linear layers คือ 6
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Sigmoid Function

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs, ตัวเลข 6 เป็น output ไปยัง linear layers และ sigmoid activation function

  • สัตว์เลี้ยงลูกด้วยนมหรือไม่?

ภาพประกอบของลีเมอร์

  • นำ pre-activation output (6) ส่งต่อไปยัง sigmoid function
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Sigmoid Function

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs, ตัวเลข 6 เป็น output ไปยัง linear layers, sigmoid activation function และ output

  • สัตว์เลี้ยงลูกด้วยนมหรือไม่?

ภาพประกอบของลีเมอร์

  • นำ pre-activation output (6) ส่งต่อไปยัง sigmoid function
  • ได้ค่าระหว่าง 0 ถึง 1

  • ถ้า output > 0.5 หมายความว่า class label = 1 (สัตว์เลี้ยงลูกด้วยนม)

  • ถ้า output <= 0.5 หมายความว่า class label = 0 (ไม่ใช่สัตว์เลี้ยงลูกด้วยนม)
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Sigmoid Function

import torch
import torch.nn as nn

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

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Deep Learning เบื้องต้นด้วย PyTorch

Activation เป็น Layer สุดท้าย

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

การใช้ Sigmoid เป็นขั้นตอนสุดท้ายใน network ของ linear layers นั้นเทียบเท่ากับ logistic regression แบบดั้งเดิม

Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

  • สามคลาส:
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

  • สามคลาส:

รูปลีเมอร์พร้อมตัวเลือก "นก"

Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

  • สามคลาส:

รูปลีเมอร์พร้อมตัวเลือก "นก" และสัตว์เลี้ยงลูกด้วยนม

Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

  • สามคลาส:

รูปลีเมอร์พร้อมสามตัวเลือก: นก, สัตว์เลี้ยงลูกด้วยนม หรือสัตว์เลื้อยคลาน

Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs

  • รับ input สามมิติและให้ output ที่มี shape เดียวกัน
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs, เวกเตอร์เป็น output ไปยัง linear layers, softmax activation function และ output

  • รับ input สามมิติและให้ output ที่มี shape เดียวกัน
  • ให้ผลเป็นการกระจายความน่าจะเป็น:
    • แต่ละ element คือค่าความน่าจะเป็น (อยู่ระหว่าง 0 ถึง 1)
    • ผลรวมของ output vector เท่ากับ 1
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก Softmax

ไดอะแกรมส่วนหนึ่งของโครงข่ายประสาทเทียมที่มี inputs, เวกเตอร์เป็น output ไปยัง linear layers, softmax activation function และ output

  • รับ input สามมิติและให้ output ที่มี shape เดียวกัน
  • ให้ผลเป็นการกระจายความน่าจะเป็น:
    • แต่ละ element คือค่าความน่าจะเป็น (อยู่ระหว่าง 0 ถึง 1)
    • ผลรวมของ output vector เท่ากับ 1
Deep Learning เบื้องต้นด้วย PyTorch

ทำความรู้จัก 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 ระบุว่า softmax ถูกนำไปใช้กับมิติสุดท้ายของ input tensor
  • nn.Softmax() ใช้เป็นขั้นตอนสุดท้ายใน nn.Sequential() ได้
Deep Learning เบื้องต้นด้วย PyTorch

มาฝึกกันเถอะ!

Deep Learning เบื้องต้นด้วย PyTorch

Preparing Video For Download...