Một trong những khát vọng lớn của ngành Trí tuệ nhân tạo (Artificial Intelligence – AI) là tạo ra các máy móc (robot) có khả năng hỗ trợ và sống hoà nhập với con người. Những robot ấy cần có khả năng hiểu, ứng dụng một cách đúng đắn tri thức và văn hoá của con người trong suốt thời gian sống của chúng. Đặc biệt, một khả năng không thể thiếu cho những robot ấy là khả năng học liên tục từ những quan sát về môi trường xung quanh.
Con người chúng ta có khả năng học một cách tự nhiên. Chúng ta có thể học từ bất cứ đâu và bất cứ khi nào. Mỗi ngày bộ não của chúng ta có thể tự động học thêm được một điều gì đó mới mẻ. Từ khi sinh ra chúng ta đã có khả năng học, và quá trình học cứ tiếp diễn cho đến cuối đời. Đây chính là khả năng học suốt đời. Liệu robot có khả năng học suốt đời không? Hay đúng hơn là Liệu chúng ta có thể tạo ra những robot mà có khả năng học suốt đời không?
Câu trả lời là có thể. Năm 2022 đã diễn ra một số đột phá lớn trong AI, như ChatGPT [1, 2] có khả năng hội thoại, viết, tư vấn, lập trình, giải toán,… và DALLE-2 hay MidJourney [3, 4] có khả năng vẽ tuyệt vời. Hình 1 và 2 là hai bức tranh do MidJourney vẽ. Những điều đó là cơ sở tốt để chúng ta hy vọng tạo khả năng học suốt đời cho robot. Tuy nhiên rất nhiều thách thức cần được giải quyết nếu chúng ta muốn tạo ra những cái máy như thế. Bài viết này sẽ giới thiệu với độc giả về việc học của máy móc và học liên tục.
1. Robot sẽ học thế nào?
Con người có thể học từ rất nhiều nguồn khác nhau, như sách, báo, tin tức, bạn bè, người thân, thầy, cô,… Chúng ta có thể học để làm những thứ đơn giản (như cầm đũa, đi lại, đạp xe, nấu cơm, giặt đồ,…), cho đến những việc thứ rất phức tạp (như lái xe ô tô, học nói, kinh doanh,…). Chúng ta có thể tự đúc kết kinh nghiệm sau khi đã quan sát nhiều lần về các sự vật hoặc hiện tượng. Đó là khả năng tự học rất tuyệt vời mà tự nhiên đã ban tặng.
Robot cũng có thể học như thế. Chúng có thể học được gì đó sau khi đã quan sát nhiều ví dụ khác nhau về một thứ gì đó. Đó là khả năng tự học từ các ví dụ. Trong thực tế, các ví dụ này có thể thu thập được khá dễ dàng (dùng camera, GPS, ăngten,…) và thường được gọi là Dữ liệu (Data). Hình 3 mô tả một vài ví dụ về các mẫu dữ liệu.
Lĩnh vực Học máy (Machine Leaning) [5] đã và đang phát triển rất nhiều phương pháp để huấn luyện robot (tức là tạo cho máy có khả năng học). Mỗi phương pháp học sẽ nhận đầu vào là một tập dữ liệu đã thu thập được trong quá khứ (tập huấn luyện) để tạo ra tri thức mới (đôi khi người ta gọi là mô hình hoặc hàm) cho máy. Sau khi huấn luyện, máy có thể dùng tri thức đó để phán đoán hoặc suy diễn về những quan sát mà nó gặp trong tương lai.
Như vậy về cơ bản, ta có thể hiểu việc robot học để giải quyết một nhiệm vụ nào đó là việc tìm ra một hàm toán học f (x) từ một tập huấn luyện. Hình 4 minh hoạ việc dùng tập dữ liệu D và phương pháp (thuật toán) A để giúp một máy học được tri thức. Hàm f có thể giúp máy đưa ra một phán đoán y = f (x) cho mỗi mẫu dữ liệu x. Tuỳ vào nhiệm vụ thực tế, hàm f có thể có tên gọi khác, như hàm phân loại, hàm hồi quy,… Tập huấn luyện D thường được thu thập trước và gồm một số ví dụ cụ thể của nhiệm vụ cần giải quyết. Hình 5 minh họa một tập dữ liệu cho một nhiệm vụ cơ bản.
Những nhiệm vụ trong thực tế có thể rất cơ bản, chẳng hạn phân biệt giữa “chó” và “mèo”, giữa quả “cam” và “bưởi”, giữa hoa “hướng dương” và “cúc”…, nhưng cũng có thể rất phức tạp như viết truyện, vẽ tranh, sáng tác nhạc… Mỗi nhiệm vụ thực tế có thể đưa về một trong số các bài toán học, như học có giám sát, học không giám sát, học tăng cường,… Độc giả có thể xem thêm chi tiết các bài toán học trong tài liệu tham khảo [5].
Phương pháp A học thế nào?
Trong nhiều mô hình học máy cơ bản, khi cho trước tập huấn luyện D, phương pháp A sẽ tìm ra một hàm f* bằng cách cực tiểu hoá một hàm lỗi L(f, D) nào đó. Nghĩa là f* là một điểm cực tiểu của hàm L(f, D). Trong đó L(f, D) mô tả lỗi của các phán đoán của hàm f trên tập D, và thường được chọn trước khi huấn luyện. Ta có thể hiểu rằng hàm L(f, D) mô tả chất lượng phán đoán của một hàm f đối với các mẫu dữ liệu trong D. Như vậy một phương pháp học cơ bản sẽ cố gắng đi tìm một hàm f* mà có lỗi ít nhất trên tập D. Nhiều ý tưởng gần đây trong Học máy có thể giúp việc học tốt hơn và tránh hiện tượng học vẹt.
2. Học liên tục như thế nào?
Ở phần trên, chúng ta mới thấy việc dùng một phương pháp A để giúp robot học từ một tập huấn luyện D. Chú ý rằng tập D cần được thu thập trước và sẽ không thay đổi trong quá trình huấn luyện. Điều này làm cho nhiều phương pháp học truyền thống gặp khó trong một số ứng dụng thực tế và không thể tạo khả năng học liên tục cho robot.
Trong kỷ nguyên bùng nổ về dữ liệu, rất nhiều ứng dụng đòi hỏi robot cần có khả năng làm việc với các luồng dữ liệu (data stream), nơi mà các mẫu dữ liệu đến một cách tuần tự và liên tục mà không có điểm dừng. Cũng như thế, khả năng học suốt đời có nghĩa là khả năng học liên tục từ nhiệm vụ này đến nhiệm vụ khác, và chuỗi nhiệm vụ có thể vô hạn. Hình 6 minh hoạ về một chuỗi nhiệm vụ mà robot cần học.
Trong các môi trường ấy, tại mỗi thời điểm, robot có thể quan sát thêm một số mẫu dữ liệu cho một nhiệm vụ đã học trong quá khứ hoặc cho nhiệm vụ mới. Với cách huấn luyện truyền thống, robot sẽ không thể học thêm từ các mẫu dữ liệu mới đó để cải thiện tri thức của mình. Nếu chỉ học nhiệm vụ mới một cách ngây thơ (như mô tả phía trên) từ các mẫu dữ liệu đó thì robot sẽ quên nhanh những thứ đã học trong quá khứ [6, 7]. Điều này không phải là thứ ta mong muốn và trái ngược với khả năng của con người.
Vậy làm thế nào để robot có khả năng học liên tục? Đây là câu hỏi đã được đặt ra nghiên cứu rất lâu trước đây [8, 9, 10], và gần đây đang thu hút một lượng lớn các nhà nghiên cứu trên thế giới [11, 12]. Năm 2022, hội nghị CoLLAs (http://lifelong-ml.cc/) đã được hình thành và sẽ diễn ra hàng năm để tập hợp những nghiên cứu tiên tiến nhất trên thế giới về việc tạo cho robot có khả năng học liên tục.
2.1. Bài toán học liên tục
Về cơ bản, bài toán học liên tục có thể được mô tả như sau. Tại thời điểm t hiện tại, robot đã có sẵn tri thức (mô hình) ft-1. Giả sử robot quan sát thêm một tập dữ liệu mới Dt và cần học thêm từ đó. Khi đó một phương pháp học CLA cần có khả năng sử dụng tri thức cũ và tập dữ liệu Dt để huấn luyện robot và tạo ra tri thức mới ft. Phương pháp CLA cần giúp robot làm việc tốt nhất với nhiệm vụ mới và có thể cải thiện việc giải quyết các nhiệm vụ quá khứ. Thông thường CLA sẽ không thể sử dụng lại các mẫu dữ liệu đã học trong quá khứ. Điều này cũng tương tự như chúng ta, bởi bộ não con người không thể lưu lại hết những thứ đã thấy trong quá khứ.
Đối với chuỗi nhiệm vụ học có giám sát, có hai bài toán con thường được nghiên cứu [13]:
– Học tiệm tiến theo nhiệm vụ (TIL – Task-incremental learning): đây là môi trường mà tập dữ liệu Dt chỉ phục vụ việc học nhiệm vụ thứ t, và việc phán đoán cho một mẫu dữ liệu x mới sẽ đòi hỏi Task-ID của nhiệm vụ cần thực hiện. Task-ID có thể là tên (hoặc mã định danh) của nhiệm vụ. Như vậy, robot cần biết ranh giới rõ ràng về các nhiệm vụ. Sau khi học xong nhiệm vụ t, robot sẽ không cần cập nhật tri thức về nó trong tương lai.
– Học tiệm tiến theo nhóm (CIL – Class-incremental learning): đây là môi trường mà tập dữ liệu Dt thu được tại thời điểm t phục vụ việc học nhiều nhiệm vụ khác nhau (có thể có nhiệm vụ cũ), các mẫu dữ liệu trong Dt có Task-ID rõ ràng; nhưng khi cần phán đoán cho một mẫu dữ liệu x trong tương lai, robot cần tự suy luận ra Task-ID và phán đoán nhãn. Bảng 1 minh hoạ sự khác nhau giữa CIL và TIL tại mỗi phán đoán trong tương lai.
Có thể thấy TIL thường dễ giải quyết hơn CIL. Trong CIL, đôi khi robot sẽ quan sát thêm được một ít dữ liệu của nhiệm vụ nào đó trong quá khứ, và cần cập nhật thêm tri thức về nhiệm vụ đó. Việc này có thể tạo ra nhiều khó khăn.
Ngoài TIL và CIL, đôi khi robot có thể phải học trong môi trường phức tạp hơn, như học không giám sát liên tục, hoặc học từ luồng dữ liệu không có thông tin về nhiệm vụ rõ ràng,… Vì tính phức tạp của chúng nên bài viết này sẽ không trình bày thêm. Độc giả có thể xem thêm trong tài liệu tham khảo [14]. Chúng tôi cũng đã có một vài nghiên cứu nằm trong khuôn khổ dự án khoa học công nghệ do Quỹ VINIF tài trợ về việc sử dụng tri thức con người một cách hiệu quả khi học không giám sát từ luồng dữ liệu [7, 15, 16].
2.2. Một số chiến lược học liên tục
Học liên tục từ luồng dữ liệu hoặc chuỗi nhiệm vụ vô hạn có thể có miền ứng dụng rộng lớn trong thực tế. Chẳng hạn, một hệ thống bán lẻ trực tuyến cần hiểu thị hiếu và nhu cầu thay đổi của khách hàng thông qua lịch sử tương tác của họ; một hệ thống hỏi đáp cần cập nhật tri thức thường xuyên từ xã hội; một chuyên gia tư vấn ảo cần cập nhật thường xuyên các tiến bộ khoa học trong ngành đó; một hệ thống phân tích thị trường chứng khoán cần có khả năng cập nhật thường xuyên sự biến động của các mã và xã hội; một hệ thống bảo vệ tài khoản của khách hàng thì cần thường xuyên cập nhật các tấn công và hành vi lạ của tin tặc,… Do đó, các nhà khoa học đã và đang phát triển rất nhiều phương pháp học liên tục khác nhau.
Sau khi học một nhiệm vụ cụ thể, tri thức thu được thường được lưu ở một nơi nào đó, ký hiệu là W. Nếu robot học tiếp một nhiệm vụ mới và lưu lại tri thức mới vào W thì sẽ xảy ra hiện tượng “Quên nghiêm trọng” (catastrophic forgetting). Tức là, máy sẽ quên một số tri thức của nhiệm vụ trước đó, và làm giảm hiệu quả của nhiệm vụ đó. Hiện tượng này có mặt ở khắp các hệ thống có khả năng học liên tục, bao gồm cả con người [6]. Một số phương pháp học trước đây có thể làm cho robot có tốc độ quên nhanh hơn con người [7].
Một cách đơn giản để tránh quên đó là robot sẽ dùng một bộ nhớ Wt cho mỗi nhiệm vụ t và không chồng lấn lên vùng lưu tri thức của nhiệm vụ khác. Khi đó máy sẽ không bao giờ quên những gì đã học trong quá khứ. Điều này nghe có vẻ hợp lý. Với cách làm này, mỗi lần robot học thêm một nhiệm vụ mới sẽ cần thêm một vùng nhớ mới, nghĩa là bộ não của nó cần tăng dần kích cỡ. Tuy nhiên, cách làm như thế sẽ cực kỳ tốn kém và không thực tế. Chúng ta nhớ rằng, mỗi bộ não con người chỉ có kích thước hữu hạn sau khi đã trưởng thành và không có khả năng tự tăng kích cỡ khi học một thứ gì đó mới. Cũng như thế, mỗi robot được sinh ra thường có một bộ nhớ hữu hạn (ví dụ 8Gb RAM và 1Tb HDD). Do đó cách làm này sẽ không khả thi.
Học liên tục dựa vào hiệu chỉnh: có thể nói đây là một hướng tiếp cận kinh điển để giúp đương đầu với vấn đề quên nghiêm trọng. Kirkpatrick và cộng sự [17] là những người tiên phong trong hướng nghiên cứu này. Họ đã tạo ra một phương pháp có tên EWC (Elastic Weight Consolidation – Trọng số đàn hồi/Trọng số lò xo) rất hiệu quả.
Ý tưởng của EWC cũng rất dễ hiểu. Giả sử robot đã có tri thức Wt-1 thu được sau khi học các nhiệm vụ trong quá khứ. Robot cần ước lượng mức độ quan trọng của mỗi thành phần trong Wt-1 đối với các nhiệm vụ cũ, và các thành phần quan trọng đó sẽ bị phạt (hạn chế thay đổi) khi học một nhiệm vụ mới. Với ý tưởng này, robot có thể hạn chế hoặc đương đầu tốt với vấn đề quên. Cụ thể hơn, đến thời điểm hiện tại, máy cần học nhiệm vụ thứ t từ tập dữ liệu Dt. Khi đó robot sẽ học bằng cách tìm Wt mà làm cho hàm số sau đạt cực tiểu
L(W,Dt) + a.d(Wt-1,W)
Trong đó L(W,Dt) mô tả lỗi trên tập Dt , d là độ đo khoảng cách (có trọng số) giữa hai đối tượng, và a là một hằng số phạt. d cần đảm bảo rằng những phần quan trọng của Wt-1 sẽ bị phạt nặng để không bị thay đổi nhiều.
Chúng ta có thể thấy rằng EWC sẽ đi tìm một nghiệm W mà làm cho cả L(W,Dt) và d(Wt-1,W) đều bé. Nghĩa là, EWC vừa học tri thức của nhiệm vụ mới (do lỗi L bé) và vừa đảm bảo rằng các tri thức mới không quá khác biệt với tri thức cũ (do d bé). Khi a rất bé (ví dụ a ≈ 0) thì robot sẽ tập trung chính vào việc học nhiệm vụ mới mà không quan tâm đến tri thức cũ. Điều này có thể làm cho robot sẽ mắc vấn đề quên tri thức. Ngược lại, khi a lớn thì việc học sẽ cần đảm bảo khoảng cách d(Wt-1,W) rất bé. Điều này có nghĩa là robot sẽ không học được nhiều tri thức từ nhiệm vụ mới, do chỉ được đi loanh quanh Wt-1, và robot có thể không giải quyết tốt nhiệm vụ mới. Do đó, hệ số phạt a đóng vai trò quan trọng để giúp robot cân bằng giữa nhớ tri thức cũ và học tri thức mới.
Có thể nói EWC là một trong những phương pháp phổ biến nhất trong học liên tục, mặc dù có ý tưởng khá đơn giản. Tuy nhiên nó còn có nhiều nhược điểm. Chẳng hạn, việc chọn hệ số a để cân bằng tri thức trong môi trường học liên tục là không dễ chút nào. Đã có rất nhiều các cải tiến đã được đưa ra cho EWC.
Ngoài chiến lược dựa vào hiệu chỉnh, các nhà nghiên cứu đã và đang tạo ra khá nhiều hướng khác. Có hai hướng lớn khác là hướng tiếp cận dựa vào kiến trúc và hướng tiếp cận dựa vào bộ nhớ. Tuy nhiên chúng tôi sẽ không trình bày chi tiết về chúng. Độc giả có thể xem thêm trong các tài liệu tham khảo [11, 12].
3. Kết luận
Bài viết này đã trình bày một vài khía cạnh cơ bản về việc học và học liên tục trong lĩnh vực Học máy. Để tạo ra robot có khả năng học suốt đời, chúng ta sẽ phải đối diện với rất nhiều thách thức, chẳng hạn quên tri thức, mâu thuẫn giữa ổn định và mềm dẻo, dữ liệu nhiễu,…
Tài liệu tham khảo
- Vincent, J. (8/12/2022). ChatGPT proves AI is finally mainstream – and things are only going to get weirder. The Verge.
- Thompson, D. (December 8, 2022). Breakthroughs of the Year. The Atlantic.
- Kim (17/8/2022). Tìm hiểu về công nghệ ma thuật dùng AI vẽ tranh theo mô tả của con người. Genk.vn
- Rachel, M. (3/9/2022). AI won an art contest, and artists are furious. Cable News Network (CNN).
- Mitchell, T. M. (1997). Machine Learning. McGraw-Hill press.
- Mermillod, M., Bugaiska, A., & Bonin, P. (2013). The stability-plasticity dilemma: Investigating the continuum from catastrophic forgetting to age-limited learning effects. Frontiers in Psychology, 4, 504.
- Tran, B., Nguyen, A. D., Van, L. N., & Than, K. (2023). Dynamic transformation of prior knowledge into Bayesian models for data streams. IEEE Transactions on Knowledge and Data Engineering.
- Thrun, S., & Mitchell, T. (1995). Lifelong robot learning. Robotics and Autonomous Systems, 15, 25–46.
- Robins, A. V. (1995). Catastrophic forgetting, rehearsal and pseudorehearsal. Connection Science, 7(2), 123–146.
- Chen, Z., & Liu, B. (2018). Lifelong machine learning. Synthesis Lectures on Artificial Intelligence and Machine Learning, 12(3), 1-207.
- Mundt, M., Hong, Y., Pliushch, I., & Ramesh, V. (2023). A wholistic view of continual learning with deep neural networks: Forgotten lessons and the bridge to active and open world learning. Neural Networks, 160, 306-336.
- Parisi, G. I., Kemker, R., Part, J. L., Kanan, C., & Wermter, S. (2019). Continual lifelong learning with neural networks: A review. Neural networks, 113, 54-71.
- Van de Ven, G. M., & Tolias, A. S. (2019). Three scenarios for continual learning. arXiv preprint arXiv:1904.07734.
- Zeno, C., Golan, I., Hoffer, E., & Soudry, D. (2021). Task-agnostic continual learning using online variational bayes with fixed-point updates. Neural Computation, 33(11), 3139-3177.
- Nguyen, H., Pham, H., Nguyen, S., Van Linh, N., & Than, K. (2022). Adaptive infinite dropout for noisy and sparse data streams. Machine Learning, 111(8), 3025-3060.
- Ngo, V. L., Bach, T. X., & Than, K. (2022). A graph convolutional topic model for short and noisy text streams. Neurocomputing, 468, 345-359.
- Kirkpatrick, J., Pascanu, R., Rabinowitz, N., Veness, J., Desjardins, G., Rusu, A. A., … & Hadsell, R. (2017). Overcoming catastrophic forgetting in neural networks. Proceedings of the National Academy of Sciences, 114(13), 3521-3526.
PGS.TS. Thân Quang Khoát
Trường CNTT&TT, Đại Học Bách Khoa Hà Nội