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

1. Giới thiệu

2a934d0e86f14118.pngS

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

Công nghệ học máy

Công nghệ học máy là một lĩnh vực phát triển với tốc độ đột phá. Mỗi ngày, chúng tôi đều đưa ra các nghiên cứu và khả năng mới, tạo điều kiện cho những trường hợp sử dụng mà trước đây không thể làm được.

Thông thường, những bản phát hành này thường có một mô hình. Mô hình có thể được hiểu là các phương trình Toán học rất dài, trong đó đưa ra một dữ liệu đầu vào (ví dụ: hình ảnh) cho ra kết quả (ví dụ: phân loại)

  • Nếu bạn muốn sử dụng một trong các mô hình mới này bằng dữ liệu của riêng mình thì sao?
  • Bạn có thể khai thác những mô hình tiên tiến này như thế nào cho trường hợp sử dụng hoặc trong ứng dụng của mình?

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

Việc xây dựng và đào tạo 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 một lượng lớn dữ liệu.
  • Yêu cầu kiến thức chuyên môn về các lĩnh vực như Toán và Thống kê.
  • Tốn nhiều nguồn lực: một số mô hình có thể mất nhiều ngày để huấn luyện.

Việc xây dựng kiến trúc mô hình mới mất nhiều thời gian và có thể cần 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 bằng dữ liệu của riêng mình bằng cách chỉ cần tuỳ chỉnh hiện trạng nghiên cứu cho vấn đề của riêng bạn thì sao? Bạn có thể làm như vậy bằng cách sử dụng kỹ thuật tên là Chuyển học tập!

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách thực hiện kỹ thuật Transfer Learning, lý do phương pháp này hoạt động và trường hợp sử dụng phương pháp này.

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

  • Chuyển học là gì và trường hợp sử dụng nó.
  • Cách sử dụng công nghệ Học chuyển.
  • 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ã được thực thi bằng Google Colaboratory, vì vậy, bạn không cần phải cài đặt bất cứ phần mềm nào trên máy của mình. Bạn chỉ cần có kết nối Internet và một Tài khoản Google để đăng nhập vào Colab.
  • Có 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 Công nghệ học máy, bạn vẫn có thể tìm hiểu về Học chuyển. Đọc bước tiếp theo "Học chuyển dữ liệu là gì" về lý thuyết làm cơ sở cho kỹ thuật và sau đó chuyển sang phần "Chuyển học tập bằng Model Maker". Nếu muốn tìm hiểu sâu hơn và xem chi tiết hơn về quy trình này, bạn có thể tìm thấy những thông tin đó trong các phần Giới thiệu về phương pháp học chuyển giao bằng TensorFlow Hub.

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

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

Trực giác của phương pháp học chuyển đối với việc 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ò hiệu quả như một mô hình chung của thế giới trực quan. Sau đó, bạn có thể tận dụng các bản đồ đối tượng đã học được này mà không cần bắt đầu lại từ đầu bằng cách huấn luyện một mô hình lớn trên tập dữ liệu lớn.

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

  • Trích xuất tính năng: Sử dụng các cách biểu diễn đã học được của mạng trước đây để trích xuất các tính năng quan trọng từ mẫu mới. Bạn chỉ cần thêm một thuật toán phân loại mới (được huấn luyện từ đầu) vào mô hình đã huấn luyện trước để có thể sử dụng lại bản đồ tính năng đã học trước đó cho tập dữ liệu. Bạn không cần huấn luyện (lại) toàn bộ mô hình. Mạng tích chập cơ sở đã chứa các tính năng nhìn chung hữu ích 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 huấn luyện trước là dành riêng cho tác 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: Huỷ cố định một vài lớp trên cùng của cơ sở mô hình bị cố định và cùng huấn luyện cả lớp phân loại mới 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 tôi "tinh chỉnh" các đại diện tính năng bậc cao trong mô hình cơ sở để làm cho chúng phù hợp hơn cho tác vụ cụ thể.

Việc đào tạo đối tượng nhanh hơn nhưng với tinh chỉnh, bạn có thể đạt được kết quả tốt hơn.

Bạn sẽ thử cả hai cách (Trích xuất tính năng và Tinh chỉnh) theo hai cách khác nhau để thực hiện Học chuyển:

  • Thư viện Trình tạo mô hình TensorFlow Lite tự động thực hiện hầu hết quy trình và quy trình tạo mô hình dữ liệu, giúp quá trình này trở nên dễ dàng hơn nhiều. Mô hình thu được cũng có thể dễ dàng xuất để sử dụng trên thiết bị di động và trình duyệt.
  • Các mô hình của TensorFlow Hub tận dụng kho lưu trữ khổng lồ gồm các mô hình học máy 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 cho các mô hình hiện đại ra mắt nhanh hơn và đa dạng hơn nhiều.

3. Truyền đạt kiến thức bằng Trình tạo mô hình

Bây giờ bạn đã nắm được ý tưởng tạo ra mô hình Transfer Learning, hãy bắt đầu sử dụng thư viện Trình tạo mô hình TensorFlow Lite để 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á quá trình Học chuyển và giúp quy trình này trở nên dễ tiếp cận hơn nhiều đối với các nhà phát triển không sử dụng công nghệ học máy (như nhà phát triển ứng dụng di động và nhà phát triển 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.
  • Phân tách 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 chuyển mô hình Học chuyển dữ liệu bằng dữ liệu của riêng mình theo quy trình tương tự.

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à nắm được kiến thức cơ bản về sổ tay này.

Ưu điểm:

  • Dễ dàng tuỳ chỉnh mô hình.
  • Không cần phải hiểu về TensorFlow hoặc API Keras.
  • Công cụ nguồn mở có thể thay đổi được nếu người dùng cần một công cụ 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ự xây dựng toàn bộ quy trình và tự lập mô hình, giống như hai phương pháp trước đây
  • Ngay cả khi chọn mô hình cơ sở, không phải mô hình nào cũng có thể dùng làm mô hình cơ sở.
  • Không phù hợp với lượng lớn dữ liệu mà quy trình 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 có thể:

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

Để thực hiện quy trình Học chuyển, bạn cần bắt đầu với 2 điều:

  • Dữ liệu, chẳng hạn như hình ảnh của các đối tượng mà bạn muốn nhận dạng.
  • Mô hình cơ sở mà bạn có thể tuỳ chỉnh cho 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 ra. Còn mô hình cơ sở thì sao? Bạn có thể tìm thấy ở đâu? là nơi TensorFlow Hub có thể giúp bạn.

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

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

Tìm kiếm mô hình

Trước tiên, hãy thực hiện một lượt tìm kiếm đơn giản để tìm các mô hình cần dùng trên TensorFlow Hub mà bạn có thể dùng trong mã sau này.

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 phương pháp Học chuyển trên miền hình ảnh, chúng ta cần vectơ đối tượng. Vectơ đối tượng giống như các mô hình phân loại, nhưng không có phần đầu phân loại.

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

Trên TFHub, bạn có thể tìm kiếm cụ thể Vectơ đối tượng bằng cách nhấp vào một thẻ cụ thể.

Hình ảnh trang tfhub.dev với một hình vuông làm nổi bật nhiệm vụ về vectơ nổi bật

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

Đây là hình ảnh của trang tìm kiếm từ tfhub.dev sau khi chọn một nhiệm vụ vectơ tính năng trên trang chính

Các thẻ có biểu tượng màu xanh dương là bộ sưu tập người mẫu. Nếu bạn 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ự để 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 của tfhub.dev

Di chuyển xuống rồi chọn MobileNet V3. Bất kỳ vectơ đặc điểm nào cũng sẽ thực hiện.

Đây là trang Bộ sưu tập hình ảnh từ tfhub.dev được cuộn 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 hay thậm chí là dùng thử trực tiếp trên một Sổ tay Colab.

Trang chi tiết về mô hình vectơ tính năng mobilenetV3

Hiện tại, bạn chỉ cần có URL ở trên cùng. Đó là tên người dùng mô hình và 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. Truyền tải kiến thức 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 trong thư viện TensorFlow Hub.

Phương thức này tải mô hình theo cách mà nó có thể được sử dụng làm lớp trên mô hình 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 phần bên trong đều bị ẩn để bạn dễ hiểu hơn. Không, bạn sẽ thấy Model Maker đang làm gì phía sau hậu trường.

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à nắm được kiến thức cơ bản về sổ tay này.

Ư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 đào tạo về nhiều tập dữ liệu.
  • Mô hình cho tất cả các thao tác, như thị giác, văn bản và âm thanh.
  • Dễ dàng thử nghiệm 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

  • Tuy nhiên, bạn vẫn cần có kiến thức chuyên môn về TensorFlow/Kera để sử dụng các mô hình.

Nếu muốn tìm hiểu sâu hơn, bạn cũng có thể thực hiện Chuyển phương pháp học bằng ứng dụng Keras. Quy trình này 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 đã biết Transfer Learning là gì và cách áp dụng phương pháp này vào dữ liệu của mình!

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 theo dữ liệu của riêng mình bằng kỹ thuật Transfer Learning

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 một vectơ tính năng từ Trung tâm TensorFlow.

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

Bạn cũng biết được rằng mình có thể tiến 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 mình.

Cả hai tuỳ chọn đều có thể tinh chỉnh trên các mô hình.

Công nghệ học chuyển 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 đại diện đã học của miền để điều chỉnh tập dữ liệu, nên tập dữ liệu cũng có thể được sử dụng cho miền Văn bản và Âm thanh.

Bước tiếp theo

  • Hãy dùng thử bằng dữ liệu của riêng bạn.
  • Hãy chia sẻ với chúng tôi những dự án bạn xây dựng 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ó thắc mắc?