Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

So sánh kiến trúc Linear và Conv1D cho phân loại văn bản

Khi xử lý văn bản, lựa chọn kiến trúc mô hình phụ thuộc vào cách vector hóa. Bài này so sánh mô hình Linear (trên binary vector) và Conv1D (trên int vector).

Mã so sánh

print("So sánh hai mô hình")
print("Linear model trên binary vectorized data:")
print(binary_model.summary())

print("ConvNet model trên int vectorized data:")
print(int_model.summary())

Kết quả cấu trúc mô hình

Linear model trên binary vectorized data:
Model: "sequential"
Layer (type)        Output Shape    Param #
=================================================
dense (Dense)       (None, 4)       40,004
Total params: 40,004 (Trainable: 40,004)

ConvNet model trên int vectorized data:
Model: "sequential_1"
Layer (type)              Output Shape    Param #
=================================================
embedding (Embedding)     (None, None, 64)   640,064
conv1d (Conv1D)           (None, None, 64)   20,544
global_max_pooling1d      (None, 64)         0
dense_1 (Dense)           (None, 4)          260
Total params: 660,868 (Trainable: 660,868)

Phân tích

  • Linear Model: Chỉ 1 lớp Dense(4) trên input 10.000-d binary vector. Rất nhẹ (40k params), train nhanh.
  • Conv1D Model: Embedding(10001, 64) → Conv1D(64, kernel=5) → GlobalMaxPool → Dense(4). Nặng hơn (660k params) do embedding layer.
  • Embedding học được biểu diễn nghĩa (semantic) của từ, Conv1D bắt pattern n-gram cục bộ.
  • Trade-off: Linear đơn giản, hiệu quả tốt trên bài toán đơn giản; Conv1D mạnh hơn cho ngữ cảnh phức tạp.

Nguồn: TensorFlow Text Loading Tutorial