Nhân ma trận
import torch
# Kiểm tra và sử dụng GPU (CUDA hoặc MPS) nếu có, nếu không thì dùng CPU
device = (
"cuda"
if torch.cuda.is_available()
else "mps"
if torch.backends.mps.is_available()
else "cpu"
)
print(f"Đang sử dụng thiết bị: {device}")
# Khởi tạo hai ma trận 3x3 kiểu float
matrix_A = torch.tensor([
[1.0, 2.0, 3.0],
[4.0, 5.0, 6.0],
[7.0, 8.0, 9.0]
], device=device)
matrix_B = torch.tensor([
[9.0, 8.0, 7.0],
[6.0, 5.0, 4.0],
[3.0, 2.0, 1.0]
], device=device)
# Thực hiện phép nhân ma trận (Matrix Multiplication)
# Trong PyTorch mới nhất, ta dùng toán tử `@` hoặc hàm `torch.matmul`
result = matrix_A @ matrix_B
# Hiển thị kết quả
print("\nMa trận A:")
print(matrix_A)
print("\nMa trận B:")
print(matrix_B)
print("\nKết quả phép nhân A x B:")
print(result)
Kết quả
Đang sử dụng thiết bị: cpu
Ma trận A:
tensor([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.]])
Ma trận B:
tensor([[9., 8., 7.],
[6., 5., 4.],
[3., 2., 1.]])
Kết quả phép nhân A x B:
tensor([[ 30., 24., 18.],
[ 84., 69., 54.],
[138., 114., 90.]])
Thành phần cơ bản nhất của mạng nơ-ron: Percepton
Perceptron = 1 nơ ron. Có nhiều loại nơ-ron máy tính. Ở đây dùng sigmoid
import torch
# Thiết lập thiết bị
device = "cuda" if torch.cuda.is_available() else "cpu"
# 1. Khởi tạo dữ liệu đầu vào (ví dụ: một mẫu dữ liệu có 3 tính năng)
x = torch.tensor([1.5, 2.0, -0.5], device=device)
# 2. Khởi tạo trọng số (weights) và bias ngẫu nhiên
# Một neuron sẽ có số lượng trọng số bằng đúng số lượng đầu vào
w = torch.tensor([0.8, -0.5, 1.2], device=device)
b = torch.tensor([0.1], device=device) # bias
# 3. Tính tổng có trọng số (Weighted Sum): z = x*w + b
z = torch.dot(x, w) + b
# 4. Áp dụng hàm kích hoạt Sigmoid để lấy đầu ra (output)
# Hàm sigmoid: f(z) = 1 / (1 + exp(-z))
output = torch.sigmoid(z)
print("Đầu vào (x):", x.cpu().numpy())
print("Trọng số (w):", w.cpu().numpy())
print("Bias (b):", b.item())
print("Tổng tuyến tính (z):", z.item())
print("Đầu ra của Neuron sau Sigmoid (y):", output.item())
Kết quả
Đầu vào (x): [ 1.5 2. -0.5]
Trọng số (w): [ 0.8 -0.5 1.2]
Bias (b): 0.10000000149011612
Tổng tuyến tính (z): -0.29999998211860657
Đầu ra của Neuron sau Sigmoid (y): 0.4255574941635132
Phân loại Perceptron nơ-ron:
- Nơ -ron 1 tầng
- Nơ-ron nhiều tầng
Cách phân loại khác
- Rời rạc (nhị phân: đúng/sai, có/không)
- Liên tục
Danh sách các hàm toán học có thể dùng làm perceptron
- Hàm bước
- Hàm sigmoid (logistic)
- Hàm hypebolic (tangh)
- Hàm ReLU
- Hàm softmax
Nền tảng toán học quan trọng nhất, phức tạp nhất cho superintelligence
- Quy nạp Solomonoff (Solomonoff Induction)
- Mô hình AIXI (Marcus Hutter)
- Hình học đại số (Algebra Geometry), định lý Hironaka
- Hệ số học thực địa
- Lý thuyết Học tập Xã hội (Social Learning Theory – SLT)
Để lại một bình luận