Mô hình machine learning đang ghi nhớ hay đang khái quát hóa?
(pair.withgoogle.com)- Grokking được phát hiện ở các mô hình nhỏ là hiện tượng mô hình trước hết ghi nhớ dữ liệu huấn luyện, rồi chỉ sau khi học thêm rất lâu mới đột ngột dự đoán đúng các đầu vào chưa từng thấy, qua đó cung cấp manh mối để phân biệt giữa ghi nhớ và khái quát hóa
- MLP 1 tầng trong thí nghiệm cộng mô-đun ban đầu có trọng số nhiễu mạnh, nhưng khi độ chính xác trên tập kiểm tra tăng lên thì hình thành cấu trúc tuần hoàn và bắt đầu khái quát hóa
- Trong thí nghiệm với chuỗi 0/1 dài 30 chữ số, mô hình đã khái quát hóa giảm trọng số ở các vị trí phía sau dùng để gây nhiễu và tập trung vào 3 chữ số đầu, qua đó làm lộ rõ khác biệt giữa nghiệm ghi nhớ và nghiệm khái quát hóa
- Áp lực cốt lõi của quá trình chuyển đổi là tối thiểu hóa loss và weight decay, và dù loss trên tập kiểm tra có vẻ giảm đột ngột thì các trọng số bên trong thực ra di chuyển khá mượt giữa hai nghiệm
- Grokking chỉ xuất hiện khi các hyperparameter như kích thước mô hình, kích thước dữ liệu và weight decay phù hợp; việc liệu có thể diễn giải các mô hình lớn theo cùng cách hay không vẫn là câu hỏi còn bỏ ngỏ
Câu hỏi mà Grokking đặt ra
- Năm 2021, các nhà nghiên cứu phát hiện rằng trong những bài toán đồ chơi, các mô hình nhỏ sau khi đã khớp đúng dữ liệu huấn luyện vẫn chưa thể dự đoán đúng dữ liệu kiểm tra trong một thời gian, rồi sau khi học lâu hơn lại đột ngột khái quát hóa
- Hiện tượng này được gọi là grokking, chỉ động lực học học tập trong đó khả năng khái quát hóa xuất hiện rất lâu sau khi mô hình đã khớp với dữ liệu huấn luyện
- Các mô hình ngôn ngữ lớn có thể trông như đang hiểu thế giới, nhưng cũng có thể chỉ đang ghi nhớ rồi lặp lại một phần của kho văn bản huấn luyện khổng lồ
- Bắt đầu từ các mô hình nhỏ giúp dễ xây dựng trực giác hơn cho những kỹ thuật diễn giải vốn khó áp dụng trực tiếp lên các mô hình lớn nhất hiện nay
- Cách tiếp cận là quan sát quá trình học của mô hình nhỏ, rồi đảo ngược để hiểu nghiệm mà mô hình tìm ra, qua đó cho thấy một ví dụ về khả năng diễn giải cơ học
Cấu trúc tuần hoàn xuất hiện trong phép cộng mô-đun
- Cộng mô-đun được dùng như một bài toán nhỏ dễ quan sát grokking
- Khi cho hai số đầu vào
a,bvà một mô-đun, bài toán là dự đoána + btheo phép toán mô-đun - Thí nghiệm ví dụ dùng các số từ 0 đến 66, trong đó 67 được chọn để việc trực quan hóa không quá đơn giản cũng không quá phức tạp
- Khi cho hai số đầu vào
- Mô hình thí nghiệm là một MLP 1 tầng với 24 nơ-ron
- Toàn bộ các cặp
a, bđược chia ngẫu nhiên thành dữ liệu huấn luyện và dữ liệu kiểm tra - Dữ liệu huấn luyện được dùng để điều chỉnh trọng số mô hình, còn dữ liệu kiểm tra chỉ dùng để xác nhận xem mô hình có học được nghiệm tổng quát hay không
- Toàn bộ các cặp
- Mô hình chọn các cột embedding tương ứng với đầu vào
a,b, cộng chúng lại, biến các giá trị âm thành 0, rồi dùng cột gần nhất trong ma trận đầu ra làm dự đoán - Trọng số ban đầu trong quá trình huấn luyện có nhiều nhiễu, nhưng khi độ chính xác trên tập kiểm tra tăng lên và mô hình bắt đầu khái quát hóa thì mẫu tuần hoàn xuất hiện
- Khi kết thúc huấn luyện, mỗi nơ-ron nhiều lần đi qua các giá trị cao và thấp khi số đầu vào tăng từ 0 đến 66
- Nếu nhóm các nơ-ron theo tần số chu kỳ cuối cùng của chúng thì mẫu này hiện ra còn rõ hơn
- Tính tuần hoàn này gợi ý rằng mô hình đang học một cấu trúc toán học nào đó, và nó trùng với thời điểm mô hình bắt đầu giải được các ví dụ trong tập kiểm tra
Ghi nhớ và khái quát hóa qua bài toán 0 và 1
- Một thí nghiệm còn đơn giản hơn yêu cầu dự đoán xem số lượng số 1 trong 3 chữ số đầu của chuỗi 0/1 dài 30 có là số lẻ hay không
- Ví dụ, chuỗi bắt đầu bằng
000...có thể cho ra 0, còn bắt đầu bằng010...có thể cho ra 1 - Về bản chất, đây là một bài toán XOR khó hơn đôi chút, còn các chữ số phía sau chỉ là nhiễu gây xao lạc
- Ví dụ, chuỗi bắt đầu bằng
- Mô hình đã khái quát hóa chỉ nên dùng 3 chữ số đầu
- Mô hình ghi nhớ dữ liệu huấn luyện sẽ dùng cả các vị trí gây nhiễu ở phía sau
- Thí nghiệm này cũng dùng MLP 1 tầng và học trên 1.200 chuỗi cố định
- Ban đầu chỉ độ chính xác huấn luyện tăng, còn độ chính xác kiểm tra gần như ở mức ngẫu nhiên
- Sau đó độ chính xác kiểm tra tăng vọt và mô hình học được nghiệm tổng quát
- Mô hình đang ghi nhớ cho thấy các trọng số lớn phân tán trên nhiều đầu vào theo dạng dày đặc và nhiễu mạnh
- Khi khái quát hóa hoàn tất, các trọng số nối với những vị trí gây nhiễu trở nên rất nhỏ và mô hình tập trung vào 3 chữ số đầu vào đầu tiên
Cách weight decay đẩy mô hình sang nghiệm khái quát hóa
- Trong lúc học, mô hình đồng thời chịu hai áp lực
- Nó phải giảm loss để gán xác suất cao cho nhãn đúng
- Nó cũng chịu tác động của weight decay để giữ độ lớn trọng số ở mức thấp
- Trong bài toán 0/1, loss huấn luyện tăng nhẹ ngay trước khi mô hình bắt đầu khái quát hóa
- Đó là vì mô hình chấp nhận từ bỏ một phần loss vốn giúp tăng xác suất nhãn đúng để dịch chuyển sang nghiệm có trọng số nhỏ hơn
- Sự sụt giảm đột ngột của loss trên tập kiểm tra khiến ta có cảm giác như mô hình bỗng nhiên chuyển sang khái quát hóa
- Nhưng nếu nhìn vào các trọng số trong lúc huấn luyện, phần lớn chúng thực ra nội suy mượt mà giữa nghiệm ghi nhớ và nghiệm khái quát hóa
- Sự khái quát hóa nhanh xảy ra khi những trọng số cuối cùng nối với các vị trí gây nhiễu bị loại bỏ bởi weight decay
Những điều kiện để Grokking xuất hiện
- Grokking không phải lúc nào cũng xuất hiện mà là hiện tượng phụ thuộc điều kiện như kích thước mô hình, weight decay và kích thước dữ liệu
- Nếu weight decay quá nhỏ, mô hình không thể thoát khỏi việc overfit dữ liệu huấn luyện
- Khi tăng decay lên hơn nữa, mô hình sẽ ghi nhớ trước rồi mới khái quát hóa
- Nếu tăng mạnh hơn nữa, loss kiểm tra và loss huấn luyện cùng giảm và mô hình khái quát hóa ngay từ đầu
- Với decay quá lớn, mô hình sẽ không học được gì cả
- Trong bài toán 0/1, hơn 1.000 mô hình đã được huấn luyện với các hyperparameter khác nhau, và để tính đến nhiễu huấn luyện, mỗi tổ hợp hyperparameter đều được chạy với 9 mô hình
Nghiệm cộng mô-đun bằng năm nơ-ron
- Cộng mô-đun là một bài toán tuần hoàn, trong đó khi tổng vượt quá 67 thì nó quay vòng trở lại
- Nếu đặt các số đầu vào thành những điểm trên một đường tròn, ta có thể phản ánh trực tiếp tính tuần hoàn này vào bên trong cấu trúc mô hình
- Ma trận embedding được tạo bằng cách tính các giá trị
sinvàcoscho từng số đầu vào có thể có
- Ma trận embedding được tạo bằng cách tính các giá trị
- Trong MLP 1 tầng với điểm khởi đầu như vậy, nếu chỉ huấn luyện một số ma trận nhất định thì có thể tìm ra nghiệm đạt độ chính xác hoàn hảo chỉ với 5 nơ-ron
- Khi nhìn vào các tham số đã huấn luyện, các nơ-ron hội tụ về độ lớn gần như giống nhau, và nếu vẽ các thành phần
sin·costhì chúng nằm gần như cách đều nhau trên đường tròn - Nếu nối các nơ-ron kề nhau, phía
unembeddingcho thấy một mẫu trong đó nó quay quanh đường tròn nhanh gấp đôi phía embedding - Cấu hình này cung cấp một nghiệm 20 tham số để giải phép cộng mô-đun
Cùng một thuật toán bên trong MLP 1 tầng lớn hơn
- Mô hình ban đầu với 3.216 tham số được huấn luyện từ đầu và khởi đầu không có sẵn tính tuần hoàn
- Không giống nghiệm nhỏ được dựng thủ công, mô hình này dùng nhiều tần số
- Có thể dùng biến đổi Fourier rời rạc (DFT) để tách các mẫu tuần hoàn đã học trên toàn bộ đầu vào
- Với mỗi nơ-ron, ta thu được các giá trị
sinvàcoscho những tần số chu kỳ khả dĩ từ 1 đến 33 - Các nơ-ron có thể được nhóm theo tần số mà giá trị
sin·coscủa chúng lớn nhất
- Với mỗi nơ-ron, ta thu được các giá trị
- Mô hình càng khái quát hóa thì weight decay càng làm biểu diễn này trở nên thưa hơn
- Nếu nhóm các nơ-ron theo tần số cuối cùng rồi vẽ các thành phần DFT, sẽ xuất hiện hình ngôi sao giống như trong cấu hình năm nơ-ron
- Mô hình đã huấn luyện sử dụng cùng một thuật toán với nghiệm được dựng thủ công
- Khi xem đóng góp đầu ra của từng nhóm nơ-ron theo tần số, ta thấy chúng tạo ra dạng sóng tương ứng với phép tính
a + b mod 67 - Sau một giai đoạn chững ngắn quanh 45.000 bước, khi loss kiểm tra bắt đầu cải thiện thì nhóm nơ-ron ở tần số 7 sắp xếp thành hình ngôi sao và đầu ra trở nên gần với dạng sóng hơn
- Khi xem đóng góp đầu ra của từng nhóm nơ-ron theo tần số, ta thấy chúng tạo ra dạng sóng tương ứng với phép tính
- Mô hình dùng nhiều tần số để giảm loss mà không cần dùng trọng số lớn hơn, tận dụng giao thoa tăng cường
- Bản thân các tần số 4, 5, 7, 26 không có gì đặc biệt; trong những lần huấn luyện khác, các biến thể khác của thuật toán này cũng được học ra
Những câu hỏi vẫn còn bỏ ngỏ
- Chỉ huấn luyện trực tiếp một mô hình dạng
W = W_L W_Rthôi thì, ngay cả khi thêm weight decay, cũng không tạo ra khái quát hóa trong số học mô-đun- Ít nhất một ma trận phải được phân tích thành thừa số
- Sau DFT, nghiệm khái quát hóa là thưa, nhưng ma trận gộp lại lại có norm lớn
- Việc áp dụng weight decay trực tiếp lên
WvàUkhông cung cấp được độ lệch quy nạp phù hợp cho bài toán này
- Weight decay có thể đẩy nhiều mô hình rời xa việc ghi nhớ dữ liệu huấn luyện
- Những kỹ thuật khác để tránh overfit gồm dropout, mô hình nhỏ hơn và các thuật toán tối ưu hóa không ổn định về mặt số học
- Các cách tiếp cận này tương tác với nhau theo cách phức tạp và phi tuyến, khiến rất khó dự đoán trước cấu hình nào sẽ dẫn đến khái quát hóa
- Một giả thuyết về lý do ghi nhớ xảy ra trước khái quát hóa là số cách để ghi nhớ tập huấn luyện có thể nhiều hơn rất nhiều so với số nghiệm khái quát hóa
- Nếu không có regularization hoặc regularization quá yếu, về mặt thống kê khả năng ghi nhớ xảy ra trước sẽ cao hơn
- Những kỹ thuật regularization như weight decay ưu tiên một số kiểu nghiệm nhất định, chẳng hạn nghiệm thưa thay vì nghiệm dày đặc
- Những biểu diễn có cấu trúc tốt có thể liên quan đến khái quát hóa, nhưng không phải điều kiện cần cũng không phải điều kiện đủ
- Một số biến thể MLP không có đầu vào đối xứng học ra các biểu diễn kém mang tính tròn hơn khi giải cộng mô-đun
- Các mô hình nhỏ được huấn luyện không có weight decay đôi khi bắt đầu khái quát hóa rồi lại quay về ghi nhớ, ngay cả khi đang có embedding tuần hoàn
- Ở một số hyperparameter, thậm chí có thể xảy ra chuyển đổi khái quát hóa → ghi nhớ → khái quát hóa
Khả năng diễn giải mở rộng tới các mô hình lớn hơn
- Grokking đã được quan sát trong các bài toán thuật toán với Transformer nhỏ và MLP, và sau đó cũng được tìm thấy trong những bài toán phức tạp hơn trên dữ liệu ảnh, văn bản và dạng bảng trong các khoảng hyperparameter nhất định
- Những mô hình lớn nhất có thể xử lý nhiều loại nhiệm vụ có khả năng đang grokking nhiều thứ khác nhau với các tốc độ khác nhau trong quá trình huấn luyện
- Cũng có những kết quả nhằm dự đoán trước khi grokking thực sự xảy ra
- Một số phương pháp đòi hỏi phải biết nghiệm khái quát hóa hoặc toàn bộ miền dữ liệu
- Một số phương pháp chỉ dùng phân tích loss huấn luyện và có thể áp dụng cho các mô hình lớn hơn
- Một hướng đi trong tương lai là lặp lại việc dùng các mô hình đơn giản hơn
- Huấn luyện các mô hình đơn giản với độ lệch quy nạp mạnh hơn và ít thành phần chuyển động hơn
- Dùng chúng để giải thích những phần khó diễn giải trong các mô hình lớn
- Nếu cần, lặp lại quá trình này
- Cách tiếp cận khả năng diễn giải cơ học như vậy có thể giúp nhận diện hoặc tự động hóa những mẫu cho phép tìm ra các thuật toán mà mạng nơ-ron đã học
1 bình luận
Ý kiến trên Hacker News
Lý do trí nhớ con người đáng kinh ngạc có lẽ là vì tuy không có dung lượng lưu trữ như máy móc, nhưng lại có khả năng nén mẫu hình, tức lưu trữ thông tin sau khi rút gọn rất nhiều
Nó lại tiếp tục gom các mẫu hình đó với những mẫu hình khác để nén, rồi rút ra điều gì đó từ đó; đây là dạng nén mất mát cực mạnh, nhưng vẫn đạt được mục đích
Não chủ động chưng cất những kiến thức không cần phải ghi nhớ theo nghĩa đen thành các yếu tố cốt lõi, gần với việc tránh overfitting và đạt được “trực giác và hiểu biết đã được khái quát hóa” hơn
Tham khảo: https://www.scientificamerican.com/article/new-estimate-boosts-the-human-brain-s-memory-capacity-10-fold/
https://youtu.be/hpTCZ-hO6iI
Về mặt kỹ thuật, giới hạn trên là “vô hạn”, nhưng giữa số khái niệm được lưu trữ và lượng thông tin nền tảng có thể lưu trên mỗi khái niệm tồn tại một quan hệ đánh đổi, tương tự các nguyên lý đánh đổi khác như nguyên lý bất định
Tôi không biết não động vật có theo cùng cách đó hay không, nhưng tôi nghi ngờ rằng nó chủ yếu là một thuật toán nén để dự đoán và không lưu trữ nhiều dữ liệu tự thân
Hình học rất tốt cho kiểu rèn luyện này, và cũng thường hữu ích trong các chứng minh vật lý
Điểm mấu chốt có vẻ là weight decay giúp học các biểu diễn “thật” hơn thay vì các biểu diễn bị overfit bằng cách khuyến khích tính thưa
Trong quá trình phát triển, não người cũng xuất hiện rộng rãi một cơ chế trông tương tự là cắt tỉa synapse. Tôi muốn nghe từ chuyên gia trong ngành xem liệu đây có phải nguồn cảm hứng cho weight decay, hay trực tiếp hơn là cắt tỉa mạng nơ-ron hay không
Lý do weight decay hoạt động là khi được áp dụng như regularization, nó khiến mạng tiến gần hơn đến minimum description length (MDL), qua đó giảm regret trong quá trình học. Nó có liên quan ở mức nào đó tới việc cắt tỉa trong não, nhưng não dường như về cơ bản dùng tính thưa để tạo ra biểu diễn chứ không phải để nén, nên thực ra gần như là một mô-típ khác. Có thể nghĩ tới thiên lệch ngầm định của các biểu diễn khác nhau, và tác động kéo theo của chúng lên những biểu diễn đã học hoặc có thể học được
Nhưng cách chữa overfitting tốt nhất là mở rộng dataset và bảo đảm độ đa dạng dữ liệu. LLM thường chỉ học một epoch vì dataset quá lớn
L1 regularization tạo ra tính thưa nhiều hơn hẳn, nhưng hiệu năng thì không tốt bằng
Phía AI đang làm hỏng từ grok
Ban đầu nó đại khái có nghĩa là “hiểu một cách hoàn toàn, trọn vẹn”, nên dùng cùng từ đó cho việc khái quát hóa nghĩa là chưa grok được grokking
Hiện tượng này cũng đã được thảo luận trong phần bình luận của một bài viết đề xuất gọi nó là “sự phục hồi cuối cùng khỏi overfitting”: https://www.lesswrong.com/posts/GpSzShaaf8po4rcmA/qapr-5-grokking-is-maybe-not-that-big-a-deal
Nghĩa hàm ý trải từ “hít/uống sâu vào” theo nghĩa đen hoặc nghĩa bóng cho đến việc tiêu thụ thi thể vắng mặt của người mình yêu. Rất khuyên đọc Stranger in A Strange Land, và nên chọn bản tái bản không cắt xén ra khoảng năm 1990
Nó gợi ra các yếu tố như hiểu trực giác và sự gia tăng hiểu biết đột ngột, lớn lao, nên trông khá hợp lý; điều đó cũng giống với thay đổi xảy ra trong loss
Không biết tôi nhớ có đúng không, nhưng trong cuộc phỏng vấn Raphaël Millière trên Mindscape, hình như ông ấy nói rằng khi mô hình machine learning có nhiều chiều hơn, ranh giới giữa nội suy và ngoại suy không còn rõ ràng như trong miền mà chúng ta thường suy luận
Tôi không chắc đây có phải câu chuyện tương tự với điều bài viết này đang bàn hay không
Tôi tò mò không biết những biểu đồ đó được tạo ra như thế nào
Có vẻ như chúng được tạo khoảng một nửa bằng thư viện nào đó rồi được tinh chỉnh thủ công, và SVG động được tạo ra trông rất đẹp
Cũng có vài thư viện nhỏ để làm chú thích, trộn SVG với canvas, và khiến d3 bớt dài dòng hơn
https://github.com/PAIR-code/ai-explorables/tree/master/source/grokking
https://1wheel.github.io/swoopy-drag/
https://github.com/gka/d3-jetpack
https://roadtolarissa.com/hot-reload/
Nếu muốn tìm hiểu chi tiết về chủ đề này thì nên đọc bài trên máy tính. Có dữ liệu trực quan hóa không thể khám phá trên di động
Trước hết, đây là một bài blog hay với nhiều ví dụ xuất sắc, làm tôi nhớ đến distill.pub ngày trước
Như bài viết nói đúng, thông thường khi dùng suy giảm trọng số L2 sẽ tạo ra nhiều trọng số có độ lớn nhỏ. Tôi tự hỏi nếu muốn một mô hình tổng quát hóa tốt hơn thì có phải luôn nên dùng suy giảm trọng số L1 để thúc đẩy tính thưa và huấn luyện lâu hơn không. Tôi cũng thắc mắc liệu các mô hình deep learning chỉ dùng đặc trưng Fourier thưa thay vì các tầng tuyến tính dày đặc có thể hoạt động tốt hơn không
Nói dài hơn, các mô hình deep learning thường cố tìm một cơ sở phi tuyến tối ưu để biểu diễn đầu vào. Nếu đầu vào có thể được biểu diễn tốt, tức là thưa, trong một cơ sở nào đó đã biết trước, thì việc đưa nó lên cơ sở đó, như FFT tín hiệu RF, thường sẽ hữu ích. Tuy nhiên, cơ sở tối ưu toàn cục có thể khác với bất kỳ cơ sở nào của một cực tiểu cục bộ, nên cần mẹo để đẩy mạng về phía đó
Tôi tự hỏi hàm mục tiêu đại diện đến mức nào
Việc muốn mô hình học được phần quan trọng của đầu vào là chuyện phổ biến, nhưng chỉ chú ý đến ba bit đầu tiên trong chuỗi bit thì có vẻ khá gượng ép. Tôi không rõ đây là huấn luyện một bảng chân trị với kích thước tham số liên quan là 8 bằng 4,8 triệu mẫu, hay là tôi đang hiểu nhầm điều gì đó
Lý do dùng một tác vụ đơn giản là để khi chuyện như vậy xảy ra, ta có thể diễn giải được bên trong đang diễn ra điều gì
HTML không có feed tự động phát hiện RSS/Atom, cũng không có liên kết feed RSS, nhưng bằng cách đoán tên và vị trí feed có thể có, tôi đã tìm được feed RSS “Explorables”: https://pair.withgoogle.com/explorables/rss.xml
Trông giống tế bào lưới
https://en.wikipedia.org/wiki/Grid_cell
Nếu vẽ heatmap của các nơ-ron ở tầng ẩn trên biểu đồ 2D với một trục là $a$ và trục kia là $b$, tôi nghĩ sẽ xuất hiện một lưới tam giác. Nếu nó hoạt động theo cách tôi nghĩ, khi nhìn vào các nơ-ron ẩn khác sẽ thấy một lưới khác với hướng và tỉ lệ khác. Ghép những thứ này lại với nhau thì cũng có thể tạo ra một bộ cộng cơ số 67. Tôi cũng khó gạt bỏ trực giác rằng mối quan hệ giữa các nơ-ron W_in-proj và mối quan hệ giữa các nơ-ron W_out-proj giống với ánh xạ giữa vòng nửa cung và vòng quãng năm
https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Pitch_class_space_star.svg/220px-Pitch_class_space_star.svg.png