xáo trộn dữ liệu trong đào tạo hàng loạt nhỏ của mạng lưới thần kinh


14

Trong khóa đào tạo hàng loạt của một mạng lưới thần kinh, tôi nghe nói rằng một thực tiễn quan trọng là xáo trộn dữ liệu đào tạo trước mỗi kỷ nguyên. Ai đó có thể giải thích tại sao sự xáo trộn ở mỗi kỷ nguyên giúp?

Từ tìm kiếm google, tôi tìm thấy các câu trả lời sau:

  • nó giúp đào tạo hội tụ nhanh
  • nó ngăn chặn bất kỳ sự thiên vị trong quá trình đào tạo
  • nó ngăn cản mô hình học thứ tự đào tạo

Nhưng, tôi gặp khó khăn trong việc hiểu tại sao bất kỳ hiệu ứng nào trong số đó là do sự xáo trộn ngẫu nhiên. Bất cứ ai có thể cung cấp một lời giải thích trực quan?

Cảm ơn,

Câu trả lời:


8

Để cố gắng đưa ra một lời giải thích khác:

Một trong những điều mạnh mẽ nhất về mạng thần kinh là chúng có thể là các hàm rất phức tạp, cho phép một người tìm hiểu các mối quan hệ rất phức tạp giữa dữ liệu đầu vào và đầu ra của bạn. Các mối quan hệ này có thể bao gồm những điều bạn sẽ không bao giờ mong đợi, chẳng hạn như thứ tự dữ liệu được cung cấp trong mỗi epoch. Nếu thứ tự dữ liệu trong mỗi kỷ nguyên là như nhau, thì mô hình có thể sử dụng điều này như một cách để giảm lỗi đào tạo, đó là một loại quá mức.

Liên quan đến tốc độ: Các phương pháp lô nhỏ dựa vào độ dốc dốc ngẫu nhiên (và cải tiến trên đó), có nghĩa là chúng dựa vào tính ngẫu nhiên để tìm mức tối thiểu. Xáo trộn các lô nhỏ làm cho độ dốc thay đổi nhiều hơn, điều này có thể giúp hội tụ vì nó làm tăng khả năng đạt được hướng tốt (hoặc ít nhất đó là cách tôi hiểu về nó).


1
Làm thế nào một mạng lưới thần kinh có thể tìm hiểu thứ tự dữ liệu được cung cấp trong mỗi kỷ nguyên?
Mã Giáo hoàng

1
Nói một cách dễ hiểu, họ không thể. Nếu sử dụng đào tạo theo đợt nhỏ (nghĩa là nhiều hơn một đợt trên mỗi epoch), thì một thứ tự cụ thể đối với dữ liệu có thể ảnh hưởng đến đào tạo theo nghĩa là bằng cách đào tạo trên một lô nhỏ trước tiên, người giải có thể vào một vùng nhất định (có thể chứa một vùng nhất định tối thiểu địa phương ...) chứ không phải khác. Nhưng để nói rằng một NN tiến bộ "học" về thứ tự dữ liệu không thực sự chính xác bởi vì mỗi dự đoán được thực hiện độc lập với mọi dự đoán khác, và dĩ nhiên, thứ tự trong các lô nhỏ sẽ không có tác dụng gì.
Josh

6

Từ một điểm rất đơn giản của xem, dữ liệu được đưa vào liên tục, điều này cho thấy rằng ít nhất, nó có thể cho thứ tự dữ liệu có ảnh hưởng đến đầu ra. Nếu thứ tự không thành vấn đề, ngẫu nhiên chắc chắn sẽ không bị tổn thương. Nếu thứ tự có vấn đề, ngẫu nhiên sẽ giúp làm giảm các hiệu ứng ngẫu nhiên đó để chúng không trở thành sai lệch hệ thống. Nói tóm lại, ngẫu nhiên là rẻ và không bao giờ bị tổn thương, và thường sẽ giảm thiểu các hiệu ứng sắp xếp dữ liệu.


6

Lưu ý: trong suốt câu trả lời này, tôi đề cập đến việc giảm thiểu tổn thất đào tạo và tôi không thảo luận về các tiêu chí dừng như mất xác nhận. Việc lựa chọn tiêu chí dừng không ảnh hưởng đến quá trình / khái niệm được mô tả dưới đây.

Quá trình đào tạo mạng nơ-ron là tìm giá trị tối thiểu của hàm mất , trong đó W đại diện cho ma trận (hoặc một số ma trận) trọng số giữa các nơ-ron và X đại diện cho tập dữ liệu huấn luyện. Tôi sử dụng một subscript cho X để chỉ ra rằng giảm thiểu của chúng ta về chỉ xảy ra trên các trọng số W (có nghĩa là, chúng tôi đang tìm kiếm W được giảm thiểu) trong khi X là cố định.X(W)WXXWWX

Bây giờ, nếu chúng ta giả định rằng chúng ta có yếu tố trong W (có nghĩa là, có P trọng trong mạng), là một bề mặt trong một P + 1 không gian ba chiều. Để đưa ra một sự tương tự trực quan, hãy tưởng tượng rằng chúng ta chỉ có hai trọng lượng nơ-ron ( P = 2 ). Sau đó có một giải thích hình học đơn giản: đó là một bề mặt trong một không gian 3 chiều. Điều này xuất phát từ thực tế là đối với bất kỳ ma trận có trọng số W nào , hàm mất có thể được đánh giá trên X và giá trị đó trở thành độ cao của bề mặt.PWPP+1P=2WX

Nhưng có vấn đề không lồi lõm; bề mặt tôi mô tả sẽ có rất nhiều cực tiểu cục bộ, và do đó các thuật toán giảm độ dốc dễ bị "kẹt" trong các cực tiểu đó trong khi giải pháp sâu hơn / thấp hơn / tốt hơn có thể nằm gần đó. Điều này có thể xảy ra nếu không thay đổi trên tất cả các lần lặp đào tạo, bởi vì bề mặt được cố định cho một X cho trước ; tất cả các tính năng của nó là tĩnh, bao gồm các cực tiểu khác nhau của nó.XX

Một giải pháp cho vấn đề này là đào tạo hàng loạt kết hợp với xáo trộn. Bằng cách xáo trộn các hàng và chỉ đào tạo một tập hợp con của chúng trong một lần lặp đã cho, thay đổi theo mỗi lần lặp và thực tế là không có hai lần lặp nào trong toàn bộ chuỗi lặp và đào tạo sẽ được thực hiện trên cùng một X chính xác . Hiệu quả là bộ giải có thể dễ dàng "bật" ra khỏi mức tối thiểu cục bộ. Hãy tưởng tượng rằng bộ giải bị kẹt ở mức tối thiểu cục bộ khi lặp i với đào tạo mini- i X i . Mức tối thiểu cục bộ này tương ứng với ℒ được đánh giá ở một giá trị trọng số cụ thể; chúng tôi sẽ gọi nó là X i ( WXXiXi . Ở lần lặp lại tiếp theo, hình dạng bề mặt mất mát của chúng ta thực sự thay đổi bởi vì chúng ta đang sử dụng X i + 1 , nghĩa là,X i + 1 ( W i ) có thể có giá trị rất khác so vớiX i ( W i ) và nó hoàn toàn có thể là nó không tương ứng với mức tối thiểu cục bộ! Bây giờ chúng ta có thể tính toán một bản cập nhật gradient và tiếp tục đào tạo. Để rõ ràng: hình dạng củaX i + 1 sẽ - nói chung - khác với hình dạng củaX iXi(Wi)Xi+1Xi+1(Wi)Xi(Wi)Xi+1Xi. Lưu ý rằng ở đây tôi đề cập đến hàm tổn thất đánh giá trên tập huấn luyện X ; nó là một bề mặt hoàn toàn được xác định trên tất cả các giá trị có thể của W , chứ không phải là việc đánh giá thiệt hại đó (mà chỉ là một vô hướng) cho một giá trị cụ thể của W . Cũng lưu ý rằng nếu các lô nhỏ được sử dụng mà không xáo trộn thì vẫn có một mức độ "đa dạng hóa" bề mặt tổn thất, nhưng sẽ có một số lượng hữu hạn (và tương đối nhỏ) các bề mặt lỗi duy nhất mà người giải quyết nhìn thấy (cụ thể, nó sẽ thấy cùng một bộ chính xác của các lô nhỏ - và do đó làm mất bề mặt - trong mỗi kỷ nguyên).XWW

Một điều tôi cố tình tránh là một cuộc thảo luận về kích thước lô nhỏ, bởi vì có hàng triệu ý kiến ​​về điều này và nó có ý nghĩa thực tiễn quan trọng (có thể đạt được sự song song lớn hơn với các lô lớn hơn). Tuy nhiên, tôi tin rằng sau đây là đáng nói. Bởi vì được đánh giá bằng cách tính toán giá trị cho mỗi hàng của X (và tổng hợp hoặc lấy trung bình; ví dụ, một nhà điều hành giao hoán) cho một tập hợp các ma trận trọng lượng W , sự sắp xếp của các hàng của X không có tác dụng khi sử dụng full- giảm dần độ dốc hàng loạt (nghĩa là khi mỗi lô là X đầy đủ , và các lần lặp và epoch là cùng một thứ).XWX X


Cảm ơn bạn đã giải thích hữu ích này. Sau khi đọc câu trả lời của bạn sâu sắc, tôi có hai câu hỏi: 1. Bạn đã đề cập rằng lô nhỏ cung cấp một mức độ đa dạng hóa hạn chế. Tôi không hiểu tại sao điều này là không đủ để tránh bị mắc kẹt ở mức tối thiểu địa phương. Nếu một bộ giải nằm trong cực tiểu cục bộ của bề mặt của một lô, thì xác suất cao không nằm trong cực tiểu cục bộ của bề mặt của lô tiếp theo, do đó, nó không bị kẹt. 2. Làm thế nào để bộ giải hội tụ trong bề mặt của hàm mất trong khi bề mặt luôn thay đổi bằng cách sử dụng các lô khác nhau?
Mã Giáo hoàng

Lợi ích đa dạng hóa vẫn còn đó mà không cần xáo trộn, nhưng nó không đáng kể như khi xáo trộn được sử dụng bởi vì nó liên tục nhìn thấy cùng một chuỗi các bề mặt mất mát, trong khi nếu chúng ta sử dụng xáo trộn thì có lẽ không bao giờ nhìn thấy bề mặt mất chính xác nhiều hơn một lần. Đối với các tiêu chí dừng, tôi thường viết thư của mình sao cho một khi mức giảm phần trăm trung bình trong một số lần lặp được chỉ định ít hơn một số dung sai, việc đào tạo sẽ dừng lại.
Josh

2
Có lẽ tôi đã không thực sự trả lời câu hỏi của bạn về cực tiểu địa phương rất tốt. Về lý thuyết, tất cả các bề mặt mất mát này đều thể hiện một số mức độ tương tự vì phân phối xác suất của phản hồi (có điều kiện trên các yếu tố dự đoán của mô hình) được giả định là không đổi trên toàn bộ tập dữ liệu huấn luyện. Vì vậy, nếu mức tối thiểu đủ sâu, nó sẽ xuất hiện trên nhiều lô nhỏ, do đó, bộ giải không có khả năng thoát ra khỏi nó. Nhưng nếu tối thiểu về cơ bản chỉ là "tiếng ồn" thì chiến lược này sẽ hoạt động khá tốt và cho phép người mẫu tiếp tục đào tạo.
Josh

Cảm ơn. Phản ứng thứ hai của bạn làm cho nó dễ hiểu tại sao NN hội tụ mặc dù các bề mặt khác nhau. Về câu hỏi đầu tiên của tôi, có đúng không khi nói rằng có cùng trình tự sẽ có khả năng cao hơn là "tiếng ồn" lặp lại ở nhiều bề mặt mất mát của các lô so với khi sử dụng xáo trộn? Đây là lời giải thích duy nhất tôi có thể đưa ra lý do tại sao vẫn có thể bị mắc kẹt trong cực tiểu địa phương khi sử dụng các lô nhỏ mà không xáo trộn.
Mã Giáo hoàng

@CodePope Tôi nghĩ điều đó đúng. Ngoài ra, một khi tổn thất đã giảm đi rất nhiều kể từ khi bắt đầu đào tạo, độ dốc sẽ khá nhỏ và thậm chí có thể người giải quyết về cơ bản bị mắc kẹt trong một "vòng lặp" vì nó cứ nhìn thấy cùng một bề mặt mất mát. Xin lưu ý rằng đây là một lời giải thích dựa trên kinh nghiệm khá hạn chế của tôi, vì vậy nếu bạn có một mối quan tâm lý thuyết nghiêm túc về vấn đề này, bạn nên tham khảo ý kiến ​​chuyên gia.
Josh

4

Hãy tưởng tượng vài nhãn cuối cùng của bạn thực sự có nhiều tiếng ồn hơn. Sau đó, các lô này sẽ kéo các trọng số đã học cuối cùng đi sai hướng. Nếu bạn xáo trộn mỗi lần, cơ hội của vài đợt cuối bị nhiễu không tương xứng sẽ giảm.


1

Khi bạn huấn luyện mạng của mình bằng cách sử dụng một bộ dữ liệu cố định, nghĩa là dữ liệu bạn không bao giờ xáo trộn trong quá trình đào tạo. Bạn rất có thể có được trọng lượng rất cao và rất thấp, chẳng hạn như 40,70, -101,200 ... vv. Điều này đơn giản có nghĩa là mạng của bạn chưa học được dữ liệu đào tạo nhưng nó đã học được tiếng ồn của dữ liệu đào tạo của bạn. Trường hợp cổ điển của một mô hình overfit. Với mạng như vậy, bạn sẽ nhận được vị trí dự đoán cho dữ liệu bạn đã sử dụng để đào tạo. Nếu bạn sử dụng bất kỳ đầu vào nào khác để kiểm tra nó, mô hình của bạn sẽ sụp đổ. Bây giờ, khi bạn xáo trộn dữ liệu huấn luyện sau mỗi kỷ nguyên (lặp lại tập hợp tổng thể), bạn chỉ cần cung cấp đầu vào khác nhau cho các nơ-ron ở mỗi kỷ nguyên và điều đó chỉ đơn giản là điều chỉnh các trọng số có nghĩa là bạn có khả năng nhận được các trọng số "thấp hơn" gần bằng 0 và điều đó có nghĩa là mạng của bạn có thể tạo ra sự khái quát tốt hơn.

Tôi hy vọng điều đó đã rõ ràng.


1

Đây là một lời giải thích trực quan hơn:

Khi sử dụng độ dốc giảm dần, chúng tôi muốn giảm tổn thất theo hướng gradient. Độ dốc được tính bằng dữ liệu từ một lô nhỏ cho mỗi vòng cập nhật trọng lượng. Điều chúng tôi muốn xảy ra là độ dốc dựa trên lô nhỏ này gần bằng độ dốc dân số, bởi vì điều này được dự kiến ​​sẽ tạo ra sự hội tụ nhanh hơn. (Hãy tưởng tượng nếu bạn cung cấp dữ liệu mạng 100 class1 trong một đợt nhỏ và 100 dữ liệu class2 trong một mạng khác, mạng sẽ di chuột xung quanh. Cách tốt hơn là cung cấp dữ liệu với 50 class1 + 50 class2 trong mỗi đợt nhỏ.)

Làm thế nào để đạt được điều này vì chúng ta không thể sử dụng dữ liệu dân số trong một đợt nhỏ? Nghệ thuật thống kê cho chúng ta biết: xáo trộn dân số và các mẩu dữ liệu theo đợt đầu tiên có thể đại diện cho dân số. Đây là lý do tại sao chúng ta cần xáo trộn dân số.

Tôi phải nói rằng, xáo trộn là không cần thiết nếu bạn có phương pháp khác để lấy mẫu dữ liệu từ dân số và đảm bảo các mẫu có thể tạo ra độ dốc hợp lý.

Đó là sự hiểu biết của tôi. Hy vọng nó giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.