Tại sao tensor lại quan trọng với AI?

Viết bởi

trong

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)

Bình luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *