Deep Learning: Tự Xây Dựng Mô Hình Cơ Bản Bằng Keras

0
Dịch vụ dạy kèm gia sư lập trình

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.

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 optimizerloss 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!

Dịch vụ phát triển ứng dụng mobile giá rẻ - chất lượng
Bài trướcBí Quyết Giấu Tập Tin Quan Trọng Trên Máy Tính: An Toàn Hơn Bạn Nghĩ
Bài tiếp theoLàm thế nào để trở thành lập trình viên React trong 5 tháng
Sơn Dương
Tên đầy đủ là Dương Anh Sơn. Tốt nghiệp ĐH Bách Khoa Hà Nội. Mình bắt đầu nghiệp coder khi mà ra trường chẳng xin được việc đúng chuyên ngành. Mình tin rằng chỉ có chia sẻ kiến thức mới là cách học tập nhanh nhất. Các bạn góp ý bài viết của mình bằng cách comment bên dưới nhé !

Bình luận. Cùng nhau thảo luận nhé!

avatar
  Theo dõi bình luận  
Thông báo