26/11/2018, 22:12

Tranfer Learning: part 1 Introduction

Tranfer learning là một phương pháp học máy mà trong đó, một mô hình đã được phát triển cho một task (pretrained network) được tái sử dụng ở một task khác. Phương pháp này mang đến một cách tiếp cận phổ biến và hiệu quả cao trong deep learning khi bạn có một tập dữ liệu vừa và nhỏ. Pretrained ...

Tranfer learning là một phương pháp học máy mà trong đó, một mô hình đã được phát triển cho một task (pretrained network) được tái sử dụng ở một task khác. Phương pháp này mang đến một cách tiếp cận phổ biến và hiệu quả cao trong deep learning khi bạn có một tập dữ liệu vừa và nhỏ. Pretrained network là một mạng đã lưu trước đó, được đào tạo trên một tập dữ liệu lớn (thường là trên một task phân loại ảnh quy mô lớn). Một số mạng pretrained thường được sử dụng như: VGG, ResNet, Inception, Inception-ResNet, Xception....

Có 2 cách để sử dụng một pretrained network, đó là "feature extraction", và "fine tuning".

Ở bài viết này, chúng ta sẽ cùng tìm hiểu những khái niệm tổng quan nhất về tranfer learning. Các bài viết sau cũng ta sẽ cùng đi sâu hơn vào các cách sử dụng trên nhé.

What is Transfer Learning?

  • Tranfer Learning là một kỹ thuật học máy, nơi một mô hình được đào tạo về một nhiệm vụ được tái sử dụng trên một nhiệm vụ liên quan thứ hai.
  • Tranfer Learning là một tối ưu hóa cho phép cải thiện tốc độ và hiệu suất khi mô hình hóa nhiệm vụ thứ hai
  • Tranfer Learning liên quan đến các vấn đề như multi-task learning và concept drift.

How to Use Transfer Learning?

Bạn có thể sử dụng transfer learning trong các mô hình dự đoán của chính mình theo hai cách tiếp cận phổ biến:

  1. Develop Model
  2. Pre-trained Model

Develop Model Approach

  1. Select Source Task. Bạn phải chọn một mô hình dự báo có liên quan với sự phong phú của dữ liệu trong đó có một số mối quan hệ trong dữ liệu đầu vào, dữ liệu đầu ra và / hoặc các khái niệm đã học trong quá trình ánh xạ từ dữ liệu đầu vào đến đầu ra.
  2. Develop Source Model. Tiếp theo, bạn phải phát triển mô hình cho nhiệm vụ đầu tiên này. Mô hình phải tốt hơn một mô hình Naive để đảm bảo rằng một số tính năng học tập đã được thực hiện.
  3. Reuse Model. Mô hình phù hợp với nhiệm vụ nguồn sau đó có thể được sử dụng làm điểm bắt đầu cho một mô hình trên nhiệm vụ thứ hai quan tâm. Điều này có thể liên quan đến việc sử dụng tất cả hoặc một phần của mô hình, tùy thuộc vào kỹ thuật mô hình được sử dụng.
  4. Tune Model. Mô hình có thể cần phải được điều chỉnh hoặc tinh chỉnh trên dữ liệu cặp đầu vào-đầu ra có sẵn cho nhiệm vụ quan tâm.

Pre-trained Model Approach

  1. Select Source Model. một pre-trained source model được chọn từ các mô hình có sẵn. Nhiều tổ chức nghiên cứu cung cấp các mô hình trên các tập dữ liệu lớn bạn có thể lựa chọn.
  2. Reuse Model. pre-trained model sau đó có thể được sử dụng làm điểm khởi đầu cho một mô hình trên nhiệm vụ thứ hai quan tâm. Điều này có thể liên quan đến việc sử dụng tất cả hoặc một phần của mô hình, tùy thuộc vào kỹ thuật mô hình được sử dụng.
  3. Tune Model. mô hình có thể cần phải được điều chỉnh hoặc tinh chỉnh trên dữ liệu cặp đầu vào-đầu ra có sẵn cho nhiệm vụ quan tâm.

Theo như tìm hiểu của mình thì cách tiếp cận thứ 2 này rất phổ biến trong deep learning đó ạ.

Một số mô hình deep learning bạn có thể tham khảo như:

  • Với xử lý ảnh: Oxford VGG Model, Google Inception Model, Microsoft ResNet Model
  • Đối với xử lý ngôn ngữ: Google’s word2vec Model, Stanford’s GloVe Model

When to Use Transfer Learning?

Tranfer Learning là một tối ưu hóa, một phím tắt để tiết kiệm thời gian hoặc nhận được hiệu suất tốt hơn. Tuy nhiên, bạn chỉ nên áp dụng Tranfer Learning trong các trường hợp sau, các trường hợp khác mình nghĩ cứ thực hiện như các bài toán machine learning khác vẫn có thể cho kết quả khả quan đó ạ.

  1. Higher start. The initial skill (trước khi tinh chỉnh mô hình) trên mô hình nguồn cao hơn.
  2. Higher slope Tỉ lệ cải thiện mô hình trong quá trình đào tạo có sự chênh lệch lớn.
  3. Higher asymptote. Tiệm cận hay khả năng hội tụ của mô hình được đào tạo tốt hơn.

Trong trường hợp lý tưởng nhất, bạn sẽ thấy tất cả ba lợi ích từ một ứng dụng thành công của transfer learning. Đó là một cách tiếp cận để bạn có thể xác định tác vụ có liên quan với dữ liệu, tài nguyên phong phú để phát triển mô hình cho nhiệm vụ đó và tái sử dụng nó như một điểm khởi đầu cho mô hình của riêng bạn. Trong một vài bài toán, nếu bạn không có quá nhiều dự liệu để thực hiện, thì tranfer learning cho phép bạn phát triển mô hình một cách khéo léo, đơn giản, tiết kiệm mà vẫn mang lại hiệu quả cao. Việc lựa chọn dữ liệu nguồn hoặc mô hình nguồn là một vấn đề mở và có thể yêu cầu về miền ứng dụng chuyên môn hóa hoặc thông qua các thực nghiệm.

Trong bài viết này tôi đã giới thiệu cho các bạn những nội dung cơ bản nhất về transfer learning, hy vọng nó sẽ có ích để các bạn có được cái nhìn cơ bản nhất về transfer learning. Các bài viết sau chúng ta sẽ cùng tìm hiểu kỹ mô hình này cụ thể thế nào và cách thực hiện ra sao nhé.

Tham Khảo

[1] https://machinelearningmastery.com/transfer-learning-for-deep-learning/

[2] Deep Learning with python - francois chollet (book)

0