Tuỳ chỉnh các mô hình học máy: cách dễ dàng

1. Giới thiệu

2a934d0e86f14118.png

Lần cập nhật gần đây nhất: ngày 28 tháng 3 năm 2022

Công nghệ học máy

Học máy là một lĩnh vực phát triển với tốc độ chóng mặt. Mỗi ngày, những nghiên cứu và khả năng mới được phát hành, cho phép các trường hợp sử dụng mà trước đây không thể thực hiện được.

Những bản phát hành này thường có kết quả là một mô hình. Bạn có thể hiểu mô hình là các phương trình Toán học rất dài, khi nhận được một đầu vào (ví dụ: hình ảnh), mô hình sẽ xuất ra một kết quả (ví dụ: phân loại)

  • Điều gì sẽ xảy ra nếu bạn muốn sử dụng một trong những mô hình mới này với dữ liệu của riêng mình?
  • Bạn có thể hưởng lợi như thế nào từ những mô hình Hiện đại này cho trường hợp sử dụng của mình hoặc trong ứng dụng của bạn?

Lớp học lập trình này sẽ hướng dẫn bạn quy trình tuỳ chỉnh mô hình học máy cho dữ liệu của riêng bạn một cách dễ dàng.

Việc xây dựng và huấn luyện các mô hình học máy có nhiều thách thức:

  • Tốn nhiều thời gian.
  • Sử dụng lượng lớn dữ liệu.
  • Yêu cầu chuyên môn trong các lĩnh vực như Toán học và Thống kê.
  • Tốn nhiều tài nguyên: một số mô hình có thể mất nhiều ngày để huấn luyện.

Việc xây dựng các cấu trúc mô hình mới mất rất nhiều thời gian và có thể đòi hỏi nhiều thử nghiệm cũng như nhiều năm kinh nghiệm. Nhưng nếu bạn có thể tận dụng tất cả kiến thức đó và sử dụng trên dữ liệu của riêng mình bằng cách chỉ cần tuỳ chỉnh nghiên cứu hiện đại cho vấn đề của riêng bạn thì sao? Bạn có thể làm được điều đó bằng cách sử dụng một kỹ thuật gọi là Học chuyển giao!

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách thực hiện Học chuyển giao, lý do phương pháp này hiệu quả và thời điểm nên sử dụng phương pháp này.

Kiến thức bạn sẽ học được

  • Học chuyển giao là gì và thời điểm sử dụng.
  • Cách sử dụng phương pháp Học chuyển giao.
  • Cách tinh chỉnh mô hình.
  • Cách sử dụng Trình tạo mô hình TensorFlow Lite.
  • Cách sử dụng TensorFlow Hub.

Bạn cần có

  • Tất cả mã đều được thực thi bằng Google Colaboratory nên bạn không cần cài đặt bất cứ thứ gì trên máy của mình. Bạn chỉ cần có quyền truy cập vào Internet và Tài khoản Google để đăng nhập vào Colab.
  • Kiến thức cơ bản về TensorFlow và Keras API.
  • Có kiến thức về Python.

Nếu không có kiến thức cơ bản về TensorFlow hoặc Học máy, bạn vẫn có thể tìm hiểu về Học chuyển giao. Đọc bước tiếp theo "Học chuyển giao là gì" để tìm hiểu lý thuyết đằng sau kỹ thuật này, sau đó chuyển sang phần "Học chuyển giao bằng Model Maker". Nếu muốn tìm hiểu sâu hơn và xem quy trình chi tiết hơn, bạn có thể xem các phần về Học chuyển giao bằng TensorFlow Hub.

2. Học chuyển giao là gì?

Mô hình được huấn luyện tiền kỳ là một mạng lưới đã lưu được huấn luyện trước đó trên một tập dữ liệu lớn, thường là trong một nhiệm vụ phân loại hình ảnh quy mô lớn. Bạn có thể sử dụng mô hình được huấn luyện trước như hiện trạng hoặc sử dụng phương pháp học chuyển giao để tuỳ chỉnh mô hình này cho một tác vụ cụ thể.

Trực giác đằng sau việc học chuyển giao để phân loại hình ảnh là nếu một mô hình được huấn luyện trên một tập dữ liệu đủ lớn và tổng quát, thì mô hình này sẽ đóng vai trò là một mô hình chung của thế giới trực quan một cách hiệu quả. Sau đó, bạn có thể tận dụng các bản đồ đối tượng đã học này mà không cần phải bắt đầu từ đầu bằng cách huấn luyện một mô hình lớn trên một tập dữ liệu lớn.

Có hai cách để tuỳ chỉnh Mô hình học máy

  • Trích xuất đặc điểm: Sử dụng các biểu diễn mà một mạng trước đó đã học được để trích xuất các đặc điểm quan trọng từ các mẫu mới. Bạn chỉ cần thêm một trình phân loại mới (được huấn luyện từ đầu) lên trên mô hình được huấn luyện trước để có thể sử dụng lại các bản đồ đối tượng đã học trước đó cho tập dữ liệu. Bạn không cần phải (huấn luyện lại) toàn bộ mô hình. Mạng lưới cơ sở tích chập đã chứa các tính năng hữu ích chung cho việc phân loại hình ảnh. Tuy nhiên, phần phân loại cuối cùng của mô hình được huấn luyện trước dành riêng cho nhiệm vụ phân loại ban đầu và sau đó dành riêng cho tập hợp các lớp mà mô hình được huấn luyện.
  • Tinh chỉnh: Rã đông một số lớp trên cùng của một mô hình cơ sở cố định và cùng huấn luyện cả các lớp phân loại mới được thêm và các lớp cuối cùng của mô hình cơ sở. Điều này cho phép chúng ta "điều chỉnh" các biểu diễn đối tượng cấp cao trong mô hình cơ sở để làm cho chúng phù hợp hơn với nhiệm vụ cụ thể.

Việc trích xuất đặc điểm sẽ huấn luyện nhanh hơn, nhưng bạn có thể đạt được kết quả tốt hơn bằng cách tinh chỉnh.

Bạn sẽ thử cả hai (Trích xuất đặc điểm và Điều chỉnh) bằng cách sử dụng 2 cách khác nhau để thực hiện Học chuyển giao:

  • Thư viện Trình tạo mô hình TensorFlow Lite tự động thực hiện hầu hết các quy trình dữ liệu và tạo mô hình, giúp quy trình này trở nên dễ dàng hơn nhiều. Mô hình kết quả cũng dễ dàng xuất để sử dụng trên thiết bị di động và trên trình duyệt.
  • Các mô hình trên TensorFlow Hub tận dụng kho lưu trữ rộng lớn gồm các mô hình học máy có trên TensorFlow Hub. Các nhà nghiên cứu và cộng đồng đóng góp những mô hình này, giúp các mô hình hiện đại được cung cấp nhanh hơn nhiều và đa dạng hơn.

3. Học chuyển giao bằng Model Maker

Giờ đây, khi bạn đã hiểu ý tưởng đằng sau phương pháp Học chuyển giao, hãy bắt đầu sử dụng thư viện TensorFlow Lite Model Maker, một công cụ giúp bạn thực hiện việc này một cách dễ dàng.

Thư viện Trình tạo mô hình TensorFlow Lite là một thư viện nguồn mở giúp đơn giản hoá quy trình Chuyển giao học tập và giúp quy trình này dễ tiếp cận hơn nhiều đối với những nhà phát triển không phải là nhà phát triển ML, chẳng hạn như nhà phát triển Di động và Web.

Sổ tay Colab sẽ hướng dẫn bạn thực hiện các bước sau:

  • Tải dữ liệu.
  • Chia dữ liệu.
  • Tạo và huấn luyện mô hình
  • Đánh giá mô hình.
  • Xuất mô hình.

Sau bước này, bạn có thể bắt đầu thực hiện việc Chuyển giao học tập bằng dữ liệu của riêng mình theo đúng quy trình.

Colaboratory

Tiếp theo, hãy chuyển đến Google Colab để huấn luyện mô hình tuỳ chỉnh.

Bạn sẽ mất khoảng 15 phút để xem phần giải thích và hiểu những kiến thức cơ bản về sổ tay.

Ưu điểm:

  • Dễ dàng tuỳ chỉnh các mô hình.
  • Bạn không cần phải hiểu TensorFlow hoặc Keras API.
  • Công cụ nguồn mở có thể thay đổi nếu người dùng cần một tính năng cụ thể chưa được triển khai.
  • Xuất mô hình trực tiếp để thực thi trên thiết bị di động hoặc trình duyệt.

Nhược điểm

  • Ít khả năng định cấu hình hơn so với việc tự tạo mô hình và quy trình đầy đủ, như với 2 phương thức trước
  • Ngay cả khi chọn mô hình cơ sở, không phải mô hình nào cũng có thể được dùng làm mô hình cơ sở.
  • Không phù hợp với lượng dữ liệu lớn khi quy trình xử lý dữ liệu phức tạp hơn.

4. Tìm mô hình trên TensorFlow Hub

Khi kết thúc phần này, bạn sẽ có thể:

  • Tìm các mô hình học máy trên TensorFlow Hub.
  • Tìm hiểu về bộ sưu tập.
  • Tìm hiểu các loại mô hình.

Để thực hiện Học chuyển giao, bạn cần bắt đầu bằng 2 việc:

  • Dữ liệu, ví dụ: hình ảnh về những đối tượng bạn muốn nhận dạng.
  • Một mô hình cơ sở mà bạn có thể tuỳ chỉnh theo dữ liệu của mình.

Phần dữ liệu thường phụ thuộc vào doanh nghiệp, nhưng cách dễ nhất là chụp nhiều ảnh về những gì bạn muốn nhận dạng. Nhưng còn mô hình cơ sở thì sao? Bạn có thể tìm thấy một chiếc ở đâu? là nơi TensorFlow Hub có thể trợ giúp.

TensorFlow Hub là kho lưu trữ mô hình cho các nhu cầu về mô hình TensorFlow của bạn.

Bạn có thể tìm kiếm và đọc tài liệu của hàng nghìn mô hình, sẵn sàng để bạn sử dụng và nhiều mô hình trong số đó đã sẵn sàng cho hoạt động Học chuyển giao và Điều chỉnh.

Tìm kiếm một mô hình

Trước tiên, hãy tìm kiếm các mô hình đơn giản để sử dụng trên TensorFlow Hub mà sau này bạn có thể dùng trong mã của mình.

Bước 1: Trong trình duyệt, hãy mở trang web tfhub.dev.

hình ảnh trang chính tfhub.dev

Đối với việc Chuyển giao kiến thức trong miền hình ảnh, chúng ta cần Vectơ đặc trưng. Vectơ đặc trưng giống như mô hình phân loại, nhưng không có phần đầu phân loại.

Vectơ đặc trưng có thể chuyển đổi hình ảnh thành một biểu diễn bằng số trong không gian thứ N (trong đó N là số chiều của lớp đầu ra của mô hình).

Trên TF Hub, bạn có thể tìm kiếm cụ thể các Feature Vector bằng cách nhấp vào một thẻ cụ thể.

Hình ảnh trang tfhub.dev có một hình vuông làm nổi bật tác vụ vectơ đặc trưng

Bạn cũng có thể tìm kiếm tên của một mô hình bằng bộ lọc ở bên trái để chỉ hiển thị Image feature vectors.

Đây là hình ảnh về trang tìm kiếm trên tfhub.dev sau khi chọn một tác vụ vectơ đặc trưng trên trang chính

Các thẻ có biểu tượng màu xanh dương là các bộ sưu tập mô hình. Nếu nhấp vào một bộ sưu tập hình ảnh, bạn sẽ có quyền truy cập vào nhiều mô hình tương tự để lựa chọn. Hãy chọn bộ sưu tập hình ảnh.

Đây là trang Bộ sưu tập hình ảnh trên tfhub.dev

Di chuyển xuống rồi chọn MobileNet V3. Bạn có thể dùng bất kỳ vectơ nào trong số này.

Đây là trang Bộ sưu tập hình ảnh trên tfhub.dev, được cuộn xuống một chút so với trang trước

Trên trang chi tiết của mô hình, bạn có thể đọc tất cả tài liệu về mô hình, xem các đoạn mã để dùng thử mô hình hoặc thậm chí dùng thử trực tiếp trên Sổ tay Colab.

Trang thông tin chi tiết của một mô hình vectơ đặc trưng mobilenetV3

Hiện tại, bạn chỉ cần URL ở trên cùng. Đó là mã nhận dạng mô hình và là cách bạn có thể dễ dàng truy cập vào một mô hình trong thư viện TensorFlow Hub.

5. Học chuyển giao bằng TensorFlow Hub

Bây giờ, bạn đã chọn được một mô hình để sử dụng, hãy tuỳ chỉnh mô hình đó bằng cách tải mô hình bằng phương thức KerasLayer từ thư viện TensorFlow Hub.

Phương thức này tải một mô hình theo cách có thể dùng làm lớp trên mô hình của bạn, cho phép bạn xây dựng mô hình của mình xung quanh lớp này.

Trước đây, khi bạn học cách sử dụng Model Maker, tất cả các thành phần bên trong đều bị ẩn để bạn dễ hiểu hơn. Không, bạn sẽ thấy những gì Model Maker đang làm ở chế độ nền.

Colaboratory

Tiếp theo, hãy chuyển đến Google Colab để huấn luyện mô hình tuỳ chỉnh.

Bạn sẽ mất khoảng 20 phút để xem phần giải thích và hiểu những kiến thức cơ bản về sổ tay.

Ưu điểm:

  • Hàng nghìn mô hình có sẵn do các nhà nghiên cứu và cộng đồng đóng góp, được huấn luyện trên nhiều tập dữ liệu.
  • Mô hình cho tất cả các tác vụ, chẳng hạn như thị giác, văn bản và âm thanh.
  • Dễ dàng thử nghiệm với nhiều mô hình tương tự. Để thay đổi mô hình cơ sở, bạn có thể chỉ cần thay đổi một chuỗi.

Nhược điểm

  • Bạn vẫn cần có một số kiến thức chuyên môn về TensorFlow/Keras để sử dụng các mô hình này.

Nếu muốn tìm hiểu sâu hơn nữa, bạn cũng có thể thực hiện Học chuyển giao bằng Ứng dụng Keras. Đây là một quy trình rất giống với quy trình sử dụng TensorFlow Hub, nhưng chỉ có các API TensorFlow cốt lõi.

6. Xin chúc mừng

Xin chúc mừng! Bạn đã tìm hiểu được về Học chuyển giao và cách áp dụng phương pháp này cho dữ liệu của riêng bạn!

Trong Lớp học lập trình này, bạn đã tìm hiểu cách tuỳ chỉnh các mô hình Học máy cho dữ liệu của riêng mình bằng một kỹ thuật gọi là Học chuyển giao

Bạn đã thử 2 hình thức Học chuyển giao:

  • Sử dụng một công cụ như Trình tạo mô hình TensorFlow Lite.
  • Sử dụng vectơ đặc trưng từ TensorFlow Hub.

Cả hai lựa chọn đều có ưu điểm và nhược điểm riêng, cũng như nhiều cấu hình có thể đáp ứng nhu cầu cụ thể của bạn

Bạn cũng biết rằng bạn có thể đi xa hơn một chút và tinh chỉnh các mô hình bằng cách điều chỉnh trọng số của chúng thêm một chút để phù hợp hơn với dữ liệu của bạn.

Cả hai lựa chọn đều có thể tinh chỉnh các mô hình.

Học chuyển giao và tinh chỉnh không chỉ dành cho các mô hình liên quan đến hình ảnh. Vì ý tưởng là sử dụng một biểu diễn đã học của một miền để điều chỉnh cho phù hợp với tập dữ liệu của bạn, nên bạn cũng có thể sử dụng biểu diễn này cho miền Văn bản và Âm thanh.

Các bước tiếp theo

  • Hãy thử với dữ liệu của riêng bạn.
  • Hãy chia sẻ với chúng tôi những gì bạn tạo ra và gắn thẻ TensorFlow trên mạng xã hội cho các dự án của bạn.

Tìm hiểu thêm

Bạn có câu hỏi?