Trang chủ Liên hệ

One-shot learning là gì? Tổng quan về One-shot Learning trong thị giác máy tính

CÔNG TY TNHH THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN 06/02/2024

Trước đây, các thuật toán học sâu sử dụng nhiều dữ liệu đào tạo đã gán nhãn cho các tác vụ đơn giản như xác định đối tượng trong ảnh hoặc nhận dạng khuôn mặt. Nhưng trong các tình huống trên, thông thường, ta không có nhiều ảnh của mỗi người để huấn luyện AI. Do đó, cần có một thuật toán học máy có thể thực hiện nhận dạng với số lượng dữ liệu đào tạo hạn chế. Đây cũng chính là lúc one-shot learning phát huy tác dụng. Chúng ta sẽ cùng khám phá khái niệm, cách thức hoạt động và ứng dụng thực tế của one-shot learning nhé!

One-shot learning là gì?

One-shot learning là một thuật toán phân loại đối tượng dựa trên học máy để đánh giá sự giống và khác nhau giữa hai hình ảnh. Nó chủ yếu được sử dụng trong thị giác máy tính.

Mục tiêu của one-shot learning là dạy mô hình đặt ra các giả định về những điểm tương đồng dựa trên số lượng hình ảnh tối thiểu. Có thể chỉ có một hình ảnh (hoặc một số lượng rất hạn chế, trong trường hợp đó thường được gọi là few-shot learning) cho mỗi lớp. Những hình ảnh này được sử dụng để xây dựng một mô hình mà sau đó có thể đưa ra dự đoán về những hình ảnh chưa biết tiếp theo.

Chẳng hạn, để phân biệt giữa táo và lê, một mô hình AI truyền thống sẽ cần hàng nghìn hình ảnh được chụp ở nhiều góc độ khác nhau, với ánh sáng, phông nền khác nhau, v.v. Ngược lại, one-shot learning không yêu cầu nhiều ví dụ về từng loại. Nó khái quát hóa thông tin đã học được thông qua kinh nghiệm với các tác vụ cùng loại bằng cách suy luận các đối tượng tương tự và phân loại các đối tượng không nhìn thấy vào các nhóm tương ứng của chúng.

One-shot learning hoạt động như thế nào?

Với mạng thần kinh truyền thống, việc bổ sung các lớp mới hỗ trợ phân loại dữ liệu là một thách thức. Trong trường hợp này, mạng thần kinh cần phải được cập nhật và đào tạo lại, điều này có thể tốn kém hoặc không thể thực hiện được do thiếu dữ liệu và/hoặc giới hạn về thời gian.

Nhưng đối với các tác vụ như nhận dạng khuôn mặt, không phải lúc nào ta cũng cần gán khuôn mặt vào các lớp được xác định trước (người A, người B, người C, v.v.). Điều ta cần chỉ là cho biết người đứng trước quầy thu phí cửa khẩu có đúng như trong căn cước công dân đã xuất trình hay không. Do đó, vấn đề ta phải giải quyết là đánh giá sự khác biệt hơn là phân loại.

Bám sát ví dụ về kiểm soát biên giới, ta có hai hình ảnh: đầu vào máy ảnh và ảnh hộ chiếu của người đó. Mạng nơ-ron đánh giá mức độ giống nhau giữa chúng.

Sau đây, ta hãy xem one-shot learning thực sự hoạt động như thế nào và những loại mạng thần kinh nào là cần thiết.

“Matching networks” với one-shot learning

One-shot learning cho các nhiệm vụ thị giác máy tính dựa trên một loại mạng thần kinh tích chập (CNN) đặc biệt được gọi là Siamese Neural Networks (SNN). CNN cổ điển điều chỉnh các tham số của chúng trong suốt quá trình đào tạo để phân loại chính xác từng hình ảnh. Siamese neural networks được đào tạo để đánh giá khoảng cách (độ tương đồng) giữa các đặc trưng của 2 ảnh đầu vào.

SNN chạy các đầu vào thông qua hai phiên bản giống hệt nhau của cùng một mạng. Cả hai đều được đào tạo trên cùng một tập dữ liệu và sau đó được kết hợp để tạo đầu ra dưới dạng vector đặc trưng (feature vector) của đầu vào.

Mỗi nhánh trong số hai nhánh của mạng tích chập này chịu trách nhiệm học các đặc điểm của một ảnh, sau đó 2 feature vector của cặp ảnh sẽ được so sánh để đưa ra độ tương đồng (similarity).

Đào tạo một SNN để học một lần bao gồm hai giai đoạn: xác minh (verification) và khái quát hóa (generalization).

Trong giai đoạn xác minh, triplet loss function được sử dụng. Mô hình nhận được ba hình ảnh – anchor, positive image, và negative image. Các đặc trưng được mã hóa của hình ảnh thứ nhất và thứ hai rất giống nhau (anchor và positive), trong khi các đặc trưng của hình ảnh thứ ba thì khác (negative). Để đạt được kết quả tốt hơn cho việc đào tạo mô hình, bộ ba hình ảnh phải trông tương đối giống nhau để giúp mô hình học hỏi trên các ví dụ “khó nhận biết”.

Bộ dữ liệu đào tạo sử dụng triplet loss.

Trong giai đoạn khái quát hóa, mô hình được đào tạo để đánh giá xác suất mà các cặp đầu vào thuộc cùng một lớp. Ở bước này, điều cần thiết là cung cấp cho mô hình những hình ảnh rất khó nhận ra sự khác biệt. Bằng cách tăng độ phức tạp của các ước tính, ta sẽ tăng tốc quá trình đào tạo của mô hình.

Sau khi hoàn thành hai bước trên, mô hình đã sẵn sàng để sử dụng: giờ đây mô hình có thể so sánh các hình ảnh mới với nhau.

Lợi ích và hạn chế của SNN

Khi làm việc với các mô hình này, hãy ghi nhớ những điều sau.

Khi nói đến việc nhận dạng hình ảnh, khuôn mặt và các đối tượng khác có nhiều điểm tương đồng, SNN đã được chứng minh là vượt trội so với các loại mạng thần kinh khác về tốc độ và độ chính xác.

SNN có lợi thế là, giống như các mạng thần kinh khác, chúng có thể được đào tạo ban đầu trên các tập dữ liệu lớn, nhưng điểm vượt trội nằm ở chỗ: chúng không cần phải được đào tạo lại một cách nghiêm túc để phát hiện các lớp mới.

Ngoài ra, vì cả hai đầu ra đều có chung tham số, mô hình có thể đạt được hiệu suất tổng quát hóa tốt hơn, đặc biệt là khi xử lý các đối tượng tương tự nhưng không giống hệt nhau.

Nhược điểm chính của SNN là chúng đòi hỏi sức mạnh tính toán cao hơn nhiều so với các loại CNN khác vì có gấp đôi số thao tác cần thiết để dạy hai mô hình trong quá trình đào tạo.

Ngoài ra còn có một sự gia tăng lớn trong yêu cầu bộ nhớ.

Ý tưởng chính của SNN là tái cấu trúc các đối tượng ban đầu thành một latent space nơi bạn có thể buộc chúng đáp ứng một số yêu cầu được xác định trước. CNN trong hình ảnh là lĩnh vực ứng dụng chính cho one-shot learning. Tuy nhiên, các mạng không nhất thiết phải tích chập. Bên cạnh đó, không có hạn chế về loại bài toán, miễn là các ràng buộc có thể được chỉ định trong latent space.

Lưu ý rằng các mạng thần kinh khác cũng được sử dụng thành công trong quá trình học ngắn hạn để nhận dạng hình ảnh và video, chẳng hạn như memory augmented NNs, spiking neural networks, Bayesian NNs,…

Sự khác biệt giữa các mô hình zero-shot, one-shot learning và few-shot learning

Ngoài one-shot learning, còn tồn tại các mô hình khác chỉ yêu cầu một số dữ liệu gán nhãn (few-shot learning) hoặc không cần dữ liệu gán nhãn nào cả (zero-shot).

Few-shot learning chỉ đơn giản là một biến thể của mô hình one-shot learning với một số hình ảnh đào tạo có sẵn.

Mục tiêu của zero-shot learning là phân loại các lớp chưa biết mà không cần dữ liệu huấn luyện. Quá trình đào tạo ở đây dựa trên siêu dữ liệu của hình ảnh, tức là các đặc trưng có liên quan đến hình ảnh. Quá trình đó cũng giống như quá trình nhận thức của con người. Giả sử, bạn đọc một mô tả chi tiết về một con hươu cao cổ trong một cuốn sách. Có khả năng cao là bạn sẽ có thể nhận ra nó trong một bức ảnh hoặc khi bạn nhìn thấy nó trong thế giới thực.

Ứng dụng của one-shot learning

Các thuật toán one-shot learning đã được sử dụng cho các tác vụ như phân loại hình ảnh, phát hiện và khoanh vùng đối tượng, nhận dạng giọng nói, v.v.

Các ứng dụng phổ biến nhất là nhận dạng khuôn mặt và xác minh chữ ký. Với việc kiểm tra tại sân bay, kỹ thuật này có thể được các cơ quan thực thi pháp luật sử dụng để phát hiện những kẻ khủng bố ở những nơi đông người và tại các sự kiện lớn như trò chơi thể thao, buổi hòa nhạc và lễ hội. Dựa trên đầu vào của camera giám sát, AI có thể xác định người từ cơ sở dữ liệu của cảnh sát trong đám đông. Công nghệ này cũng được áp dụng tại các ngân hàng và các tổ chức khác, nơi họ cần nhận dạng người từ ID hoặc ảnh trong hồ sơ. Quá trình tương tự hoạt động để xác minh chữ ký.

One-shot learning là điều cần thiết cho thị giác máy tính, đặc biệt là cho máy bay không người lái và ô tô tự lái để nhận dạng các vật thể trong môi trường.

Một lĩnh vực khác là nhận dạng từ đa ngôn ngữ, trong đó phương pháp one-shot learning được áp dụng để xác định các từ chưa biết trong ngôn ngữ dịch.

Nó cũng có thể được sử dụng hiệu quả để phát hiện hoạt động của não trong quá trình chiếu chụp.

Phát triển mới nhất: ‘less than one’-shot learning

Vào năm 2020, các nhà nghiên cứu của MIT là Ilia Sucholutsky và Matthias Schonlau đã xuất bản một bài báo về ‘less than one’-shot learning. Các nhà nghiên cứu cố gắng thiết kế một mô hình có thể xác định nhiều đối tượng hơn số lượng dữ liệu đào tạo. Nghiên cứu này có khả năng thay đổi toàn bộ bối cảnh của học máy.

Phương pháp này sử dụng “nhãn mềm” (“soft labels”) để huấn luyện. Thay vì nói với mô hình AI rằng hình ảnh 1 đại diện cho một quả cam, các nhà nghiên cứu cung cấp cho hệ thống ước tính dựa trên phạm vi xác suất. Ví dụ: hình ảnh này có 70% là cam, 20% là bưởi và 10% là táo. Do đó, nhãn mềm nắm bắt một số đặc trưng được chia sẻ. Nếu được thiết kế đúng cách, nhãn mềm có thể đưa ra dự đoán về một số lượng lớn danh mục chỉ với hai ví dụ.

‘Less than one’-shot learning sẽ giúp AI dễ tiếp cận hơn với các doanh nghiệp. Nhìn chung, đây sẽ là một trang mới trong sự phát triển của AI, nơi các thuật toán trí tuệ nhân tạo hoạt động tương tự như bộ não con người.

One-shot learning với mạng memory-augmented neural networks

Một lĩnh vực nghiên cứu hiện tại khác là sử dụng mạng thần kinh tăng cường bộ nhớ (MANN) để học một lần.

MANN là một loại mạng thần kinh hồi quy (RNN). Trong khi các mạng thần kinh tích chập mà chúng ta đã thảo luận ở trên có cấu trúc lớp, RNN dựa trên các chuỗi. Các mạng này có bộ nhớ lưu trữ thông tin của các đầu vào trước đó để tạo ra đầu ra tiếp theo của chuỗi.

MANN tách tính toán khỏi bộ nhớ. Chúng dựa trên mô hình được gọi là neural turing machine (NTM), trong đó khả năng kết hợp của mạng thần kinh phối hợp với sức mạnh của máy tính có thể lập trình. NTM được kết nối với bộ nhớ ngoài thông qua bộ điều khiển mạng thần kinh.

Nghiên cứu đã chỉ ra rằng nhờ mô hình NTM, MANN có thể học nhanh và có khả năng khái quát hóa tốt. MANN có thể bổ sung kiến thức về trình tự logic mà nó thiếu. Do đó, việc đưa mô hình này vào sử dụng rộng rãi sẽ làm tăng đáng kể chất lượng dự báo và ước tính của NN và mở ra một trang mới trong quá trình phát triển của chúng.

Kết luận

Ưu điểm lớn của thuật toán one-shot learning là việc phân loại hình ảnh được thực hiện dựa trên sự tương đồng của chúng chứ không dựa trên phân tích một số lượng lớn các đặc trưng. Điều này làm giảm đáng kể chi phí tính toán và thời gian đào tạo mô hình.

Trên thực tế, one-shot learning có tiềm năng đặc biệt lớn đối với nhận dạng khuôn mặt ở bất cứ đâu, từ lối vào triển lãm đến nhận dạng các bản thảo cũ.

Công nghệ tiếp tục phát triển. Mô hình less-than-one shot learning và one-shot learning với MANN là bước tiếp theo trong quá trình phát triển học sâu và ứng dụng nó vào cuộc sống thực.

Bài viết liên quan