Chuyển đến nội dung chính

Học máy tự động với Auto-Keras

Tìm hiểu về học máy tự động và cách thực hiện với auto-keras.
Đã cập nhật 5 thg 10, 2026  · 11 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Ngày nay, học máy không còn là thuật ngữ xa lạ nhờ các tổ chức như DataCamp, Coursera, Udacity và nhiều đơn vị khác liên tục nỗ lực mang giáo dục về học máy đến với số đông một cách hiệu quả và linh hoạt. Nhờ các nền tảng này, hiện nay việc bắt đầu trong lĩnh vực này gần như không cần nhiều điều kiện tiên quyết. Tuy nhiên, thuật ngữ Học máy tự động đang thu hút rất nhiều sự chú ý trên các diễn đàn giáo dục Khoa học dữ liệu. Nhiều tổ chức như Google, H2O.ai, v.v. đang làm việc rất đáng ghi nhận trong lĩnh vực này. Chủ đề này không phổ biến như Học máy nói chung. Bởi học máy vốn dĩ đã liên quan đến phần tự động hóa; vậy nên câu hỏi đầu tiên nảy ra trong đầu là: "Liệu học máy cũng có thể được tự động hóa?"

Bạn sẽ tìm thấy câu trả lời cho nhiều câu hỏi như vậy trong hướng dẫn này.

Hãy bắt đầu.

Tìm hiểu một quy trình học máy chuẩn

Khi bạn giải một bài toán với vai trò Nhà khoa học dữ liệu, quy trình làm việc tiêu chuẩn của bạn thường như sau:

  1. Thu thập dữ liệu
  2. Tiền xử lý dữ liệu
  3. Khởi tạo một mô hình học máy có thể phù hợp với bài toán
  4. Huấn luyện mô hình
  5. Kiểm thử mô hình
  6. Tinh chỉnh tham số của mô hình
  7. Lại kiểm thử mô hình
  8. Truyền đạt kết quả

Bước thứ hai, Tiền xử lý dữ liệu, có phạm vi rất rộng vì về bản chất đây là một trong những công việc tốn thời gian nhất trong quy trình trên và bao gồm nhiều tác vụ con như Làm sạch dữ liệu, Biến đổi dữ liệu, Chọn đặc trưng, v.v. Các bước từ 3 đến 7 chỉ tương ứng với một mô hình học máy. Một người thực hành tốt chắn chắn sẽ không dừng lại ở chỉ một mô hình. Họ sẽ thử nghiệm với các mô hình khác nhau để so sánh kết quả và cuối cùng chọn ra mô hình tốt nhất cho bài toán. Vậy là xuất hiện thêm một nhóm tác vụ rất tốn thời gian khác - Quyết định chọn mô hình nào?

Trích dẫn sau đây về quy trình gỡ lỗi trong một nhiệm vụ học máy là vô cùng xác đáng và cần ghi nhớ:

"Gỡ lỗi cho học máy xảy ra trong hai trường hợp: 1) thuật toán của bạn không chạy được hoặc 2) thuật toán của bạn chạy chưa đủ tốt.[...] Rất hiếm khi một thuật toán chạy tốt ngay từ lần đầu tiên, vì vậy phần lớn thời gian xây dựng thuật toán sẽ dành cho công đoạn này." - S. Zayd Enam

Đến đây, hẳn bạn đã có hình dung sơ bộ về một nhiệm vụ kỹ thuật học máy tiêu chuẩn? Cuối cùng bạn sẽ phải quyết định mô hình nào là tốt nhất cho bài toán trong tay và bạn cũng cần giải thích vì sao nó là tốt nhất. Đôi khi, bạn sẽ rơi vào tình huống có quá nhiều phương án cần thử, nhưng hạn chót lại không còn xa. - Bạn đã cảm nhận được bản chất vấn đề? Hãy tìm hiểu thêm.

Quy trình học máy có thể tự động hóa như thế nào?

Bạn sẽ tiếp tục phần này với ý niệm về việc chọn mô hình tốt nhất cho một bài toán và trong bối cảnh số lượng phương án cần thử và thời hạn chót tỷ lệ nghịch với nhau.

Ngay đầu hướng dẫn này, bạn đã gặp câu hỏi "Liệu học máy cũng có thể được tự động hóa?" Câu hỏi này hoàn toàn không ngớ ngẩn. Ngay cả Sebastian Raschka trong một cuộc phỏng vấn cũng mô tả Học máy tự động là "tự động hóa của tự động hóa việc tự động hóa".

Hãy nhớ lại bước số 5 trong quy trình tiêu chuẩn của một nhiệm vụ khoa học dữ liệu mà bạn vừa xem - Tinh chỉnh siêu tham số của mô hình. Giả sử bạn đã hoàn tất chuẩn bị dữ liệu cho các bước tiếp theo và vừa khởi tạo một bộ phân loại $X$. Giờ, giả sử $X$ có 5 siêu tham số khác nhau. Vậy bạn sẽ phải thử cùng bộ phân loại $X$ nhưng với các tập giá trị siêu tham số khác nhau, điều này chắc chắn không hề dễ thực hiện. Giờ đến phần rắc rối hơn. Sau khi thử nhiều tổ hợp, bạn phát hiện kết quả vẫn chưa đủ tốt. Thế là bạn quyết định thử thêm bốn bộ phân loại nữa (mỗi cái có 6 siêu tham số khác nhau). Bạn có thể hình dung việc này tốn thời gian đến mức nào không? Ngay cả sau đó, nếu vẫn không có kết quả tốt thì sao? Việc điều tra nguyên nhân cũng sẽ lại là một quá trình cực kỳ tốn thời gian.

Ý tưởng về Học máy tự động xuất phát chính từ vấn đề này.

"Nếu cần xây dựng nhiều mô hình học máy, sử dụng nhiều thuật toán khác nhau và hàng loạt cấu hình siêu tham số khác nhau, thì việc xây dựng mô hình này có thể được tự động hóa, cũng như việc so sánh hiệu năng và độ chính xác của các mô hình." - KDNuggets

Giờ thì bạn đã hiểu vì sao thuật ngữ Học máy tự động lại được nhắc đến nhiều trên các diễn đàn giáo dục Khoa học dữ liệu. Bạn sẽ tiếp tục tìm hiểu sâu hơn về học máy tự động ở phần tiếp theo.

Giới thiệu về Học máy tự động

Nhiệm vụ tinh chỉnh siêu tham số cho các mô hình học máy khác nhau cũng rất có khả năng tốn nhiều thời gian. Theo cách nói chuyên ngành Khoa học máy tính hơn, tinh chỉnh siêu tham số là một quá trình tìm kiếm, trong trường hợp này có thể cực kỳ đồ sộ. Vậy nếu chính quá trình này có thể được tự động hóa thì sao? Đó chính là điều học máy tự động thực hiện. "Học máy tự động là lời giải trực tiếp cho tình trạng thiếu hụt nhà khoa học dữ liệu vì nó có thể tăng mạnh hiệu năng và năng suất của họ bằng cách tăng tốc vòng đời công việc, cải thiện độ chính xác của mô hình và cuối cùng, thậm chí có thể thay thế nhu cầu về các nhà khoa học dữ liệu." -Automated Machine Learning for Internet of Things

Giờ bạn đã có đủ kiến thức về học máy tự động và sẵn sàng xem nó hoạt động. Nhưng trước hết, hãy điểm qua một số thư viện Python được dùng rộng rãi để thực hiện học máy tự động.

Thư viện Python cho Học máy tự động

Có nhiều thư viện Python để thực hiện học máy tự động. Tất cả đều hướng tới mục tiêu tương tự ở mức độ nào đó: tự động hóa quy trình học máy. Sau đây là một số thư viện Python được dùng rộng rãi cho học máy tự động:

Mỗi thư viện có cách tiếp cận riêng để xử lý quy trình "tự động hóa của tự động hóa việc tự động hóa". Nhưng trong hướng dẫn này, bạn sẽ dùng Auto-Keras. Vậy còn chờ gì nữa? Bắt tay vào làm thôi.

Giới thiệu về Auto-keras

"Auto-Keras là một thư viện phần mềm mã nguồn mở cho học máy tự động."(Nguồn) Dự án do DATA Lab tại Texas A&M University và cộng đồng đóng góp phát triển. Theo trang chính thức của auto-keras- "Mục tiêu cuối cùng của học máy tự động này là cung cấp các công cụ học sâu dễ tiếp cận cho các chuyên gia lĩnh vực có kiến thức hạn chế về khoa học dữ liệu hay học máy. Auto-Keras cung cấp các hàm để tự động tìm kiếm kiến trúc và siêu tham số của các mô hình học sâu."

Logo AutoKeras

Nguồn: Auto-Keras

Để cài đặt auto-keras, chỉ cần chạy lệnh sau.

Lưu ý: Hiện tại, Auto-Keras chỉ tương thích với: Python 3.6.

!pip install autokeras

Giờ bạn đã cài đặt thành công Auto-Keras, đến lúc triển khai nhanh một ví dụ.

Một nghiên cứu tình huống về AutoML với Auto-keras

Trong nghiên cứu tình huống này, bạn sẽ dùng bộ dữ liệu MNIST rất phổ biến. keras đã tích hợp sẵn bộ dữ liệu này nên bạn không cần tải riêng. Bạn sẽ bắt đầu bằng cách nạp mô-đun ImageClassifier của auto-keras. Bạn cũng sẽ nạp bộ dữ liệu MNIST từ mô-đun keras.

from keras.datasets import mnist
from autokeras import ImageClassifier

Bạn đã nạp bộ dữ liệu MNIST từ mô-đun keras.datasets và cũng đã nhập ImageClassifier từ auto-keras. Giờ bạn sẽ tách bộ dữ liệu thành các phần huấn luyện và kiểm thử.

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,)) # (1,) denotes the channles which is 1 in this case
x_test = x_test.reshape(x_test.shape + (1,)) # (1,) denotes the channles which is 1 in this case
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step

Bạn đã tách ra các phần huấn luyện và kiểm thử, và giờ bạn sẽ fit ImageClassifier với x_train và y_train. Bạn sẽ kiểm tra hiệu năng của nó trên x_test và y_test.

# Instantiate the ImageClassifier class
clf = ImageClassifier(verbose=True, augment=False)
# Fit the train set to the image classifier
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
# Summarize the results
y = clf.evaluate(x_test, y_test)
print(y * 100)

Đơn giản như trên. Chỉ 4 - 5 dòng mã là bạn đã hoàn tất một thử nghiệm nhanh. Tất nhiên, nó không hẳn là nhanh. Đoạn mã trên mất một khoảng thời gian đáng kể để chạy. Một cấu hình đủ tốt để chạy các thí nghiệm Học sâu chắc chắn sẽ hữu ích. Google Colab cũng là điểm khởi đầu tuyệt vời.

Giờ hãy tìm hiểu thêm về các tham số bạn đã dùng trong đoạn mã trên. Bạn sẽ tham khảo tài liệu của auto-keras và dưới đây là các trích dẫn liên quan từ tài liệu:

  • Trong ImageClassifier():
    • verbose: Kiểu boolean cho biết có in tiến trình tìm kiếm ra đầu ra hay không.
    • augment: Giá trị boolean cho biết dữ liệu có cần tăng cường hay không. Nếu không đặt, sẽ dùng giá trị của Constant.DATA_AUGMENTATION, mặc định là True.
  • Trong phương thức fit():
    • time_limit: Giới hạn thời gian cho quá trình tìm kiếm, tính bằng giây.
  • final_fit(): Huấn luyện cuối cùng sau khi đã tìm được kiến trúc tốt nhất.
    • retrain: Boolean cho biết có khởi tạo lại trọng số của mô hình hay không.

Auto-keras là một thư viện đang phát triển và vẫn ở phiên bản tiền phát hành. Theo trang chính thức, nó hỗ trợ các mô-đun chính sau:

  • supervised: Lớp cơ sở cho mọi tác vụ giám sát.
  • bayesian: GaussianProcessRegressor cho tối ưu hóa Bayes.
  • search: Lớp cơ sở của tất cả các lớp tìm kiếm. Mỗi lớp tìm kiếm có thể ghi đè hàm search để triển khai chiến lược của mình.
  • graph: Lớp đại diện đồ thị kiến trúc thần kinh của một mô hình Keras. Graph trích xuất đồ thị kiến trúc thần kinh từ một mô hình Keras. Mỗi nút trong đồ thị là một tensor trung gian giữa các lớp. Mỗi lớp là một cạnh trong đồ thị. Đáng chú ý, nhiều cạnh có thể tham chiếu cùng một lớp (ví dụ, lớp Add cộng hai tensor thành một tensor nên liên quan tới hai cạnh).
  • preprocessor: Lớp định dạng dữ liệu. Lớp này cung cấp cách biến đổi nhãn phân loại của dữ liệu thành vector.
  • model_trainer: Lớp dùng để huấn luyện mô hình. Lớp này có thể huấn luyện mô hình Pytorch với các data loader cho trước. Metric, loss_function và model phải tương thích với nhau. Vui lòng xem chi tiết ở phần Thuộc tính.

Lời kết

Bạn đã đi đến cuối cùng. Trong hướng dẫn này, bạn đã tìm hiểu quy trình học máy nói chung và cách nó có thể được tự động hóa. Bạn đã điểm qua các thư viện có sẵn để thực hiện AutoML. Bạn đã dùng auto-keras và thấy mức độ trừu tượng cao mà nó cung cấp cũng như cách sử dụng auto-keras đơn giản ra sao.

Hướng dẫn này có thể khiến bạn nghĩ tiêu cực rằng AutoML có thể thay thế nhiều nhà khoa học dữ liệu khi nó trở nên hoàn thiện. Thật vậy không? Hãy suy nghĩ lại. AutoML thực ra giải phóng nhà khoa học dữ liệu khỏi gánh nặng quy trình lặp lại trong việc chọn mô hình tốt nhất cho một bài toán. Trong thời gian đó, họ có thể tập trung nhiều hơn vào chính dữ liệu, vốn quan trọng hơn. Bài phỏng vấn này với Randy Olson chia sẻ nhiều góc nhìn thú vị về chủ đề này. Hãy đọc để không còn thấy nản lòng. Nếu bạn từng cảm thấy không chắc về công việc của một người thực hành học máy, hãy xem bài viết này.

Lĩnh vực học máy tự động đang thực sự tiến bộ. Ví dụ, NAS (Neural Architecture Search) là một thuật toán tìm kiếm kiến trúc mạng nơ-ron tối ưu. Dưới đây là một số liên kết tới các tài nguyên trình bày những ca sử dụng AutoML tiên tiến nhất:

Một số tài liệu tham khảo đã dùng:

Nếu bạn quan tâm học thêm về Học sâu, hãy tham gia khóa "Deep Learning in Python" của DataCamp và xem khóa Giới thiệu về Học sâu với Python của chúng tôi.

Chủ đề
Machine Learning
Python

Tìm hiểu thêm về Python và Học máy

Khóa học

Machine Learning với mô hình dựa trên cây trong Python

5 giờ
119.8K
Trong khóa học này, bạn sẽ học cách sử dụng các mô hình dựa trên cây và các tập hợp cho hồi quy và phân loại bằng scikit-learn.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm