Con người có thể nhận dạng một đối tượng chỉ qua một hoặc vài lần quan sát. Tuy nhiên, với máy móc, con số này có thể lên tới hàng nghìn. Việc học từ lượng dữ liệu hạn chế sẽ là một thách thức đối với học máy. Tuy nhiên, nhờ sự tiến bộ gần đây, học máy đã có khả năng nhận dạng đối tượng mới với số mẫu nhỏ hơn hoặc không có mẫu.
Ở Fridata tuần trước, chúng ta đã tìm hiểu về one-shot learning. Bài viết tuần này sẽ mang đến cái nhìn tổng quan hơn về zero-shot, one-shot và few-shot learning, đây đều là các cách tiếp cận thuận tiện và tương đối đơn giản để triển khai các kỹ thuật phân loại hình ảnh trong học sâu.
Few-shot Learning
Few-shot learning, đúng như tên gọi, cung cấp cho mô hình rất ít dữ liệu, trái ngược với việc cung cấp một lượng lớn dữ liệu. Few-shot learning là một ví dụ điển hình cho meta-learning, trong đó mô hình được đào tạo trên một số tác vụ liên quan trong giai đoạn meta training, nhờ đó có khả năng khái quát hóa tốt trên dữ liệu chưa nhìn thấy với số lượng mẫu rất nhỏ.
Nguồn ảnh: Analytics Vidhya
Tầm quan trọng của Few-shot Learning
- Do yêu cầu ít dữ liệu đào tạo hơn, Few-shot learning giúp các nhóm nghiên cứu giảm chi phí thu thập dữ liệu và chi phí tính toán.
- Việc không đủ dữ liệu cho các công cụ học máy giám sát hoặc không giám sát thường cản trở mô hình đưa ra các dự đoán; trong những trường hợp như vậy, Few-shot learning là giải pháp hữu ích để giải quyết vấn đề.
- Few shot learning mở đường để mô hình có thể học cách phân loại các ký tự viết tay hoặc các loại bệnh hiếm – lĩnh vực thường ít dữ liệu có sẵn.
Ứng dụng của Few-shot Learning
Few-shot learning có tiềm năng ứng dụng rất lớn, trong đa lĩnh vực:
- Thị giác máy tính: Nhận dạng ký tự, phân loại hình ảnh, truy xuất hình ảnh, nhận dạng cử chỉ và các ứng dụng Video.
- Xử lý ngôn ngữ tự nhiên: Phân tích cú pháp, dịch thuật, phân loại ý kiến từ các đánh giá ngắn, phân loại ý định của người dùng, phân loại văn bản, nhận dạng thái độ.
- Robotics: Điều hướng bằng hình ảnh, điều khiển liên tục (Continuous Control)…
- Xử lý âm thanh: Chuyển đổi giọng nói qua các ngôn ngữ khác nhau, Chuyển đổi giọng nói từ người dùng này sang người dùng khác.
- Khác: Ứng dụng y tế, ứng dụng IoT, ứng dụng toán học, ứng dụng khoa học vật liệu.
One-shot Learning
One-Shot learning là một thuật toán học máy yêu cầu rất ít cơ sở dữ liệu để xác định điểm tương đồng giữa các đối tượng. Đây là phương pháp hữu ích cho các mô hình học sâu. Khi áp dụng One-Shot learning, mô hình học máy chỉ cần một hoặc thậm chí không yêu cầu mẫu để đào tạo. Phương pháp này thường được áp dụng cho tác vụ nhận diện khuôn mặt.
Nguồn ảnh: Analytics Vidhya
Tầm quan trọng và ứng dụng của One-shot Learning
- Mục tiêu của one-shot learning là xác định và nhận dạng các đặc điểm của một đối tượng, chẳng hạn như cách con người có thể ghi nhớ và huấn luyện hệ thống sử dụng kiến thức có sẵn để phân loại các đối tượng mới
- One-shot learning có khả năng rất tốt trong việc xác định hình ảnh thị giác máy tính, nhận dạng khuôn mặt, kiểm tra nhận dạng hộ chiếu – ở đó, các cá nhân cần được phân loại chính xác dựa trên diện mạo khác nhau
- One-shot learning còn được sử dụng trong sao chép giọng nói, phân tích IoT, curve-fitting trong toán học, khám phá thuốc và các ứng dụng y tế khác.
Zero-shot Learning
Zero-shot learning là một thuật toán học máy trong đó mô hình học sâu đã đào tạo trước được xây dựng để có khả năng khái quát hóa danh mục mẫu. Ý tưởng đằng sau Zero-shot learning là huấn luyện máy khả năng nhận dạng, tương tự như việc con người có thể tìm thấy sự tương đồng giữa các lớp dữ liệu một cách tự nhiên.
Mục đích chính của việc học Zero-shot là đạt được khả năng dự đoán kết quả mà không cần bất kỳ mẫu đào tạo nào. Máy phải nhận ra các đối tượng từ các lớp không được đào tạo. Zero-Shot learning dựa trên việc chuyển giao kiến thức đã có trong các phiên bản được cung cấp trong quá trình đào tạo.
Ví dụ, giả sử bạn đã từng thấy một con ngựa nhưng chưa bao giờ nhìn thấy một con ngựa vằn. Nếu ai đó nói với bạn rằng ngựa vằn trông giống ngựa nhưng có sọc đen và trắng, bạn có thể sẽ nhận ra ngựa vằn khi bắt gặp nó trong thực tế.
Nguồn ảnh: Analytics Vidhya
Tầm quan trọng và ứng dụng của Zero-shot Learning
- Zero-shot learning có thể được sử dụng khi thiếu dữ liệu huấn luyện cho một lớp cụ thể.
- Zero-shot learning có thể được triển khai trong các tình huống mà mô hình phải học các nhiệm vụ mới mà không cần học lại những nhiệm vụ đã học trước đó.
- Zero-shot learning nâng cao khả năng khái quát hóa của mô hình học máy.
- Zero shot có thể là một cách hiệu quả hơn để học thông tin mới so với các phương pháp truyền thống, chẳng hạn như học thông qua việc thử và sai
- Trong Phân loại hình ảnh và Phát hiện đối tượng, Zero shot cũng hỗ trợ tìm kiếm hình ảnh
- Zero shot đặc biệt hữu ích trong việc phát triển một số framework làm việc sâu như tạo hình ảnh, truy xuất hình ảnh
Sự khác biệt giữa Zero-shot, One-shot và Few-shot learning
- Trong tình huống ta cần huấn luyện mô hình chỉ với một lượng nhỏ dữ liệu hiện có, few-shot learning là phương pháp hữu hiệu. Few-shot learning có thể được sử dụng trong phân loại hình ảnh, nhận dạng khuôn mặt
- Mặt khác, one-shot learning sử dụng ít dữ liệu hơn khi so sánh với few-shot learning. Thậm chí, nó chỉ sử dụng một mẫu dữ liệu chứ không phải cơ sở dữ liệu lớn. One-shot learning hữu ích hơn trong việc xác định hình ảnh của một người trong bất kỳ tài liệu nhận dạng nào.
- Khi không có sẵn dữ liệu đào tạo cho máy học, thuật toán hệ thống vẫn phải xác định hoặc phân loại đối tượng, trong các tình huống như vậy, Zero-Shot learning cho ra kết quả tốt nhất.
Kết luận
Bài viết đã cung cấp hiểu biết sơ bộ về one-shot, few-shot và zero-shot learning. Mặc dù có một vài nhược điểm, nhưng những phương pháp này mang lại nhiều lợi ích trong việc giúp mô hình đưa ra dự đoán với dữ liệu hạn chế hoặc không có dữ liệu. Tất cả những kỹ thuật này đều giúp khắc phục tình trạng khan hiếm dữ liệu và cắt giảm chi phí thu thập dữ liệu hay tính toán. One shot, few-shot và zero-shot learning được sử dụng rộng rãi trong Phân loại, Hồi quy và Nhận dạng hình ảnh.