+1

Ví dụ đơn giản về lan truyền tiến (Forward Propagation) trong Machine Learning

1. Khái Niệm Lan Truyền Thuận

Lan truyền thuận là quá trình tính toán đầu ra của mạng nơ-ron bằng cách truyền dữ liệu từ đầu vào qua các lớp ẩn đến đầu ra. Trong quá trình này, mô hình nhân đầu vào với trọng số, cộng thêm độ chệch và áp dụng hàm kích hoạt để đưa ra dự đoán.

2. Minh Họa Ví Dụ

Xét một mạng nơ-ron đơn giản với:

  • 1 đầu vào (xx)
  • 1 nơ-ron ẩn với trọng số (ww) và độ chệch (bb)
  • Hàm kích hoạt ReLU (f(z)=max(0,z)f(z) = max(0, z))
  • 1 đầu ra (yy)

Các phép tính lan truyền thuận:

z=xw+bz = x \cdot w + b

y=f(z)=max(0,z)y = f(z) = max(0, z)

3. Cài Đặt bằng Python

import numpy as np

# Giá trị đầu vào
x = 2  

# Trọng số và độ chệch (khởi tạo ngẫu nhiên hoặc từ quá trình huấn luyện)
w = 0.5  
b = -1  

# Lan truyền thuận
z = x * w + b  # Tổng có trọng số
y = max(0, z)  # Áp dụng ReLU

print(f"Đầu vào x: {x}")
print(f"Trọng số w: {w}, Độ chệch b: {b}")
print(f"Giá trị trước kích hoạt (z): {z}")
print(f"Đầu ra y (sau ReLU): {y}")

4. Phân Tích Kết Quả

Với đầu vào x=2x = 2, trọng số w=0.5w = 0.5 và độ chệch b=1b = -1:

  1. Tính zz: z=(2×0.5)+(1)=11=0z = (2 \times 0.5) + (-1) = 1 - 1 = 0

  2. Áp dụng hàm kích hoạt ReLU: y=max(0,0)=0y = max(0, 0) = 0

Đầu ra của mạng nơ-ron là 00.

5. Tóm Tắt

  • Lan truyền thuận tính toán đầu ra từ đầu vào thông qua phép nhân với trọng số, cộng độ chệch và áp dụng hàm kích hoạt
  • Đây là bước đầu tiên trong dự đoán của mạng nơ-ron trước khi tính toán lỗi và cập nhật trọng số

Hãy thử thay đổi các giá trị ww, bbxx để hiểu rõ hơn về lan truyền thuận! 🚀


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí