Trong những năm gần đây, Deep Learning không chỉ là một xu hướng công nghệ mà còn trở thành công cụ chủ chốt cho nhiều ứng dụng AI trong đời sống. Deep Learning xuất hiện ở khắp nơi, từ tính năng nhận diện khuôn mặt trên điện thoại đến các hệ thống đề xuất sản phẩm trên các trang thương mại điện tử. Nhưng để bắt đầu với Deep Learning, chúng ta phải biết cách xây dựng mô hình cơ bản – đây chính là nền tảng giúp bạn có thể tạo ra những mô hình phức tạp hơn sau này.
Một trong những framework phổ biến và dễ dùng nhất để bắt đầu hành trình này chính là Keras. Đây là một thư viện mạnh mẽ nhưng lại rất thân thiện với người dùng, đặc biệt là những ai mới bắt đầu. VNTALKING sẽ cùng bạn xây dựng một mô hình học sâu cơ bản với Keras, giúp bạn hiểu rõ cách hoạt động của Deep Learning và sẵn sàng cho những thử thách lớn hơn.
Nội dung chính của bài viết
Tại Sao Nên Bắt Đầu Với Keras?
Keras là một thư viện mã nguồn mở được xây dựng trên nền tảng TensorFlow, giúp chúng ta dễ dàng xây dựng, đào tạo và kiểm thử các mô hình Deep Learning. Điểm đặc biệt của Keras là tính trực quan, dễ học, và đặc biệt phù hợp cho những ai đang muốn bắt đầu với học sâu mà không gặp khó khăn từ những thuật toán phức tạp.
Một số lợi ích nổi bật của Keras:
- Thân thiện với người dùng: Các hàm và lớp của Keras dễ sử dụng và có cú pháp đơn giản.
- Khả năng mở rộng: Bạn có thể phát triển các mô hình phức tạp hơn khi có nhu cầu.
- Tích hợp mạnh mẽ với TensorFlow: Điều này cho phép bạn tận dụng các công cụ mạnh mẽ mà TensorFlow cung cấp.
Các Bước Xây Dựng Mô Hình Học Sâu Đơn Giản Với Keras
Dưới đây là hướng dẫn từng bước để bạn có thể xây dựng một mô hình Neural Network đơn giản. Chúng ta sẽ đi qua các bước từ tạo dữ liệu, xây dựng mô hình, đào tạo, đến việc đánh giá mô hình.
Cài Đặt Keras và TensorFlow
Đầu tiên, hãy đảm bảo bạn đã cài đặt Keras và TensorFlow. Nếu chưa, bạn có thể cài đặt nhanh bằng lệnh sau trong terminal:
pip install tensorflow keras
Sau khi hoàn tất, chúng ta đã sẵn sàng để xây dựng mô hình đầu tiên!
Tạo Bộ Dữ Liệu Mẫu
Để làm ví dụ, chúng ta sẽ sử dụng một bộ dữ liệu đơn giản từ make_moons
của sklearn
. Bộ dữ liệu này có dạng hình trăng khuyết, giúp chúng ta có cái nhìn trực quan về dữ liệu đầu vào.
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_moons # Tạo dữ liệu mẫu X, y = make_moons(n_samples=1000, noise=0.2, random_state=42) plt.scatter(X[:,0], X[:,1], c=y, cmap="viridis") plt.xlabel("Feature 1") plt.ylabel("Feature 2") plt.title("Bộ dữ liệu hình trăng khuyết") plt.show()
Xây Dựng Kiến Trúc Mô Hình Neural Network
Chúng ta sẽ xây dựng một mô hình Neural Network với cấu trúc đơn giản gồm một lớp đầu vào, hai lớp ẩn và một lớp đầu ra.
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # Khởi tạo mô hình Sequential model = Sequential([ Dense(10, input_shape=(2,), activation='relu'), # Lớp ẩn đầu tiên Dense(5, activation='relu'), # Lớp ẩn thứ hai Dense(1, activation='sigmoid') # Lớp đầu ra ])
Trong đoạn mã trên:
Dense(10, input_shape=(2,), activation='relu')
: Lớp đầu tiên có 10 neuron và nhận đầu vào với 2 chiều.Dense(5, activation='relu')
: Lớp thứ hai có 5 neuron với hàm kích hoạt ReLU.Dense(1, activation='sigmoid')
: Lớp đầu ra có một neuron sử dụng hàm kích hoạt sigmoid, phù hợp cho bài toán phân loại nhị phân.
Biên Dịch Mô Hình
Sau khi xây dựng xong kiến trúc, ta cần biên dịch mô hình với optimizer
và loss function
phù hợp.
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
Ở đây:
- Optimizer: Sử dụng thuật toán
adam
để tối ưu hóa mô hình. - Loss Function: Sử dụng
binary_crossentropy
cho bài toán phân loại nhị phân. - Metrics: Đo lường độ chính xác (
accuracy
) để đánh giá mô hình.
Đào Tạo Mô Hình
Giờ thì chúng ta đã sẵn sàng để đào tạo mô hình với dữ liệu vừa tạo.
history = model.fit(X, y, epochs=50, batch_size=32, validation_split=0.2)
Lệnh fit
sẽ đào tạo mô hình qua 50 epoch, với batch_size
là 32. Validation Split là 20% giúp chúng ta đánh giá mô hình trong quá trình đào tạo.
plt.plot(history.history['loss'], label='Training loss') plt.plot(history.history['val_loss'], label='Validation loss') plt.xlabel("Epochs") plt.ylabel("Loss") plt.title("Biểu đồ mất mát trong quá trình đào tạo") plt.legend() plt.show()
Đánh Giá Mô Hình
Sau khi hoàn thành đào tạo, chúng ta sẽ đánh giá độ chính xác của mô hình trên toàn bộ dữ liệu:
loss, accuracy = model.evaluate(X, y) print(f"Độ chính xác của mô hình: {accuracy * 100:.2f}%")
Độ chính xác giúp chúng ta đo lường hiệu quả của mô hình trong việc phân loại dữ liệu mẫu.
Dự Đoán Và Hiển Thị Kết Quả
Để kiểm tra mô hình vừa xây dựng, chúng ta sẽ dự đoán nhãn của dữ liệu mẫu và hiển thị kết quả.
preds = model.predict(X) plt.scatter(X[:,0], X[:,1], c=(preds > 0.5).reshape(-1), cmap="coolwarm") plt.xlabel("Feature 1") plt.ylabel("Feature 2") plt.title("Kết quả phân loại với mô hình") plt.show()
Kết Luận
Qua bài viết này, bạn đã hiểu cách xây dựng mô hình Deep Learning đơn giản với Keras, từ khâu tạo dữ liệu, xây dựng mô hình, đào tạo đến việc đánh giá. Đây chính là những bước đầu tiên trên con đường phát triển các mô hình AI phức tạp hơn sau này.
VNTALKING hy vọng rằng, qua những chia sẻ này, bạn sẽ tự tin hơn và sẵn sàng khám phá thêm về Deep Learning. Nếu muốn đi sâu hơn, bạn có thể tham khảo các tài liệu sau:
Chúc bạn thành công trên hành trình AI của mình!
Bình luận. Cùng nhau thảo luận nhé!