Tại sao các nhà nghiên cứu mạng lưới thần kinh quan tâm đến kỷ nguyên?


69

Một epoch trong độ dốc dốc ngẫu nhiên được định nghĩa là một lần đi qua dữ liệu. Đối với mỗi xe buýt nhỏ SGD, mẫu được vẽ, độ dốc được tính toán và các tham số được cập nhật. Trong cài đặt kỷ nguyên, các mẫu được vẽ mà không thay thế.k

Nhưng điều này có vẻ không cần thiết. Tại sao không vẽ mỗi xe buýt nhỏ SGD khi rút ngẫu nhiên từ toàn bộ dữ liệu ở mỗi lần lặp? Trong một số lượng lớn các kỷ nguyên, các độ lệch nhỏ trong đó các mẫu được nhìn thấy ít nhiều thường có vẻ không quan trọng.k


1
+1 cho câu hỏi, thật thú vị tôi đã có gần như chính xác câu hỏi sắp hỏi!
Haitao Du

Bằng chứng giai thoại, nhưng gần đây tôi đã trang bị một mạng lưới thần kinh một lớp bằng cách sử dụng SGD trên dữ liệu MNIST, có kích thước đào tạo 50000. Sau một lần chạy ngẫu nhiên, độ chính xác của phân loại không cao hơn 30-40% và khả năng đăng nhập rõ ràng không được hội tụ. Vì vậy, tôi đã lặp lại quy trình cho thêm 30 kỷ nguyên dẫn đến độ chính xác hơn 90%. Ít nhất là bằng ví dụ mẫu này cho tôi thấy họ có thể cần thiết.
tomka

6
@tomka Điều đó dường như cung cấp bằng chứng cho thấy nhiều lần truyền dữ liệu là cần thiết, phù hợp với phương pháp được đề xuất ở đây: tiếp tục vẽ mẫu trên mỗi nauseam quảng cáo lặp đi lặp lại . k
Phục hồi Monica

1
Một câu hỏi thú vị khác là: liệu đơn hàng mini sẽ có tác động đến việc cung cấp quá mức?
Kh40tiK

3
@Pinocchio Thực hành SGD tiêu chuẩn là lấy mẫu mà không cần thay thế (cho đến khi nhóm mẫu bị cạn kiệt, tại thời điểm đó, một kỷ nguyên mới bắt đầu lại với tất cả dữ liệu). Câu hỏi của tôi là tại sao nó không sử dụng lấy mẫu với sự thay thế. Nó chỉ ra rằng một câu trả lời là lấy mẫu mà không thay thế sẽ cải thiện tốc độ hội tụ cho mô hình.
Phục hồi Monica

Câu trả lời:


60

Ngoài câu trả lời của Franck về thực tiễn và câu trả lời của David về việc xem xét các nhóm nhỏ - cả hai đều là những điểm quan trọng - trên thực tế có một số lý do lý thuyết để thích lấy mẫu mà không cần thay thế. Lý do có lẽ liên quan đến quan điểm của David (về cơ bản là vấn đề của người sưu tập phiếu giảm giá ).

Năm 2009, Léon Bottou đã so sánh hiệu suất hội tụ về một vấn đề phân loại văn bản cụ thể ( ).n=781,265

Bottou (2009). Tò mò nhanh chóng hội tụ của một số thuật toán gốc Stochastic Gradient . Kỷ yếu của hội nghị chuyên đề về học tập và khoa học dữ liệu. ( pdf của tác giả )

Ông đã đào tạo một máy vectơ hỗ trợ thông qua SGD với ba cách tiếp cận:

  • Ngẫu nhiên : vẽ các mẫu ngẫu nhiên từ bộ dữ liệu đầy đủ ở mỗi lần lặp.
  • Chu kỳ : xáo trộn tập dữ liệu trước khi bắt đầu quá trình học, sau đó đi qua nó một cách tuần tự, để trong mỗi kỷ nguyên bạn thấy các ví dụ theo cùng một thứ tự.
  • Xáo trộn : chia sẻ lại tập dữ liệu trước mỗi epoch, sao cho mỗi epoch đi theo một thứ tự khác nhau.

Ông đã kiểm tra thực nghiệm sự hội tụ , trong đó là hàm chi phí, các tham số ở bước tối ưu hóa và kỳ vọng sẽ được xáo trộn của các đợt được giao.E[C(θt)minθC(θ)]Cθtt

  • Đối với Ngẫu nhiên, độ hội tụ xấp xỉ theo thứ tự (như dự đoán của lý thuyết hiện tại vào thời điểm đó).t1
  • Chu kỳ thu được hội tụ theo thứ tự (với nhưng thay đổi tùy theo hoán vị, ví dụ cho Hình 1).tαα>1α1.8
  • Ngẫu nhiên là hỗn loạn hơn, nhưng dòng tốt nhất điều chỉnh kích thước cho , nhiều nhanh hơn ngẫu nhiên.t2

Đây là Hình 1 minh họa rằng: minh họa về sự hội tụ ở mức giá nhất định

Điều này sau đó đã được xác nhận trên lý thuyết bởi bài báo:

Gürbüzbalaban, Ozdaglar và Parrilo (2015). Tại sao ngẫu nhiên chia sẻ lại nhịp đập Stochastic Gradient gốc . arXiv: 1510.08560 . ( video nói chuyện được mời tại NIPS 2015 )

Bằng chứng của họ chỉ áp dụng cho trường hợp hàm mất mát lồi mạnh, tức là không áp dụng cho các mạng thần kinh. Tuy nhiên, thật hợp lý để mong đợi rằng lý do tương tự có thể áp dụng cho trường hợp mạng thần kinh (khó phân tích hơn nhiều).


3
Đây là một câu trả lời rất sâu sắc. Cảm ơn bạn rất nhiều vì sự đóng góp của bạn.
Phục hồi Monica

1
xin lỗi vì sự thiếu hiểu biết, nhưng bạn có phiền giải thích thêm một chút về sự khác biệt giữa ba là gì không? Cụ thể tôi bối rối về Random, khi bạn nói "mẫu", ý bạn là gì? Tôi biết đây không phải là những gì bạn đang tham khảo mà là SGD lô mini tiêu chuẩn thường được lấy mẫu mà không thay thế ở mỗi lần lặp. Đó có phải là những gì ngẫu nhiên không? Nếu có, nó khác với Shuffle như thế nào?
Pinocchio

1
Bây giờ tôi đọc lại cả ba thuật toán có vẻ giống nhau, có gì khác biệt nếu tập dữ liệu bị xáo trộn hay không và tần suất nếu các lô cho SGD luôn luôn là ngẫu nhiên?
Pinocchio

3
@Pinocchio Hãy tưởng tượng một bộ dữ liệu bốn than thở. Ngẫu nhiên có thể đi ACADBBCA; mỗi mục là hoàn toàn ngẫu nhiên. Chu kỳ có thể đi BDAC BDAC BDAC; nó chọn một thứ tự cho mỗi kỷ nguyên và sau đó lặp lại. Shuffle có thể là BDAC ADCB CBAD; nó đi theo thời đại, nhưng mỗi cái là ngẫu nhiên. Phân tích này không sử dụng xe buýt nhỏ, chỉ là một yếu tố tại một thời điểm SGD.
Dougal

Đây là một câu trả lời tuyệt vời. Thnx bạn!
DankMasterDan

24

Nó thực sự không cần thiết từ quan điểm hiệu suất với một tập huấn luyện lớn, nhưng sử dụng epoch có thể thuận tiện, ví dụ:

  • nó đưa ra một số liệu khá tốt: "mạng lưới thần kinh được đào tạo trong 10 epoch" là một tuyên bố rõ ràng hơn "mạng lưới thần kinh được đào tạo cho 18942 lần lặp" hoặc "mạng lưới thần kinh được đào tạo trên 303072 mẫu".
  • có đủ những điều ngẫu nhiên đang diễn ra trong giai đoạn huấn luyện: khởi tạo trọng lượng ngẫu nhiên, xáo trộn hàng loạt nhỏ, bỏ học, v.v.
  • nó rất dễ thực hiện
  • nó tránh tự hỏi liệu tập huấn luyện có đủ lớn để không có kỷ nguyên không

[1] đưa ra thêm một lý do, điều đó không phù hợp lắm với cấu hình máy tính ngày nay:

Đối với bất kỳ phương pháp giảm độ dốc ngẫu nhiên nào (bao gồm cả trường hợp lô nhỏ), điều quan trọng đối với hiệu quả của công cụ ước tính là mỗi ví dụ hoặc xe buýt nhỏ được lấy mẫu độc lập. Bởi vì truy cập ngẫu nhiên vào bộ nhớ (hoặc thậm chí tệ hơn, vào đĩa) rất tốn kém, một phép tính gần đúng tốt, được gọi là độ dốc tăng dần (Bertsekas, 2010), là truy cập vào các ví dụ (hoặc các lô nhỏ) theo thứ tự cố định tương ứng với thứ tự của chúng trong bộ nhớ hoặc đĩa (lặp lại các ví dụ theo cùng thứ tự trên một kỷ nguyên thứ hai, nếu chúng ta không ở trong trường hợp trực tuyến thuần túy, nơi mỗi ví dụ chỉ được truy cập một lần).Trong bối cảnh này, sẽ an toàn hơn nếu các ví dụ hoặc các lô nhỏ lần đầu tiên được đặt theo thứ tự ngẫu nhiên (để đảm bảo đây là trường hợp, có thể hữu ích khi xáo trộn các ví dụ đầu tiên). Sự hội tụ nhanh hơn đã được quan sát nếu thứ tự các lô nhỏ được truy cập được thay đổi cho mỗi kỷ nguyên, có thể có hiệu quả hợp lý nếu tập huấn luyện giữ trong bộ nhớ máy tính.


[1] Bengio, Yoshua. " Các khuyến nghị thiết thực cho đào tạo dựa trên độ dốc của các kiến ​​trúc sâu. " Mạng lưới thần kinh: Thủ thuật của thương mại. Springer Berlin Heidelberg, 2012. 437-478.


1
Đây có vẻ là những điểm tốt, nhưng liên quan đến cập nhật của bạn, có vẻ như việc lấy mẫu trên mỗi epoch là lấy mẫu phụ thuộc (vì xác suất mẫu được nhìn thấy hai lần trong một epoch là 0). Vì vậy, tôi không chắc làm thế nào các tác giả có thể tuyên bố rằng việc xây dựng kỷ nguyên là độc lập, trừ khi ý nghĩa của chúng là "xấp xỉ độc lập" là "hoàn toàn không độc lập". k
Phục hồi Monica

1
@Sycorax Lấy mẫu mà không thay thế, mặc dù tất nhiên là không độc lập, là "độc lập xấp xỉ" theo nghĩa là nó có thể trao đổi . Từ quan điểm đào tạo một bộ phân loại không quan tâm quá nhiều đến bất kỳ một điểm dữ liệu nào, khả năng trao đổi này chắc chắn khá gần với "xấp xỉ độc lập".
Dougal

18

Tôi không đồng ý phần nào rằng nó rõ ràng sẽ không thành vấn đề. Giả sử có một triệu ví dụ đào tạo và chúng tôi lấy mười triệu mẫu.

Trong R, chúng ta có thể nhanh chóng thấy phân phối trông như thế nào với

plot(dbinom(0:40, size = 10 * 1E6, prob = 1E-6), type = "h")

PMF nhị thức

Một số ví dụ sẽ được truy cập hơn 20 lần, trong khi 1% trong số đó sẽ được truy cập 3 lần hoặc ít hơn. Nếu tập huấn luyện được chọn cẩn thận để thể hiện phân phối dự kiến ​​của các ví dụ trong dữ liệu thực, thì điều này có thể có tác động thực sự trong một số khu vực của tập dữ liệu --- đặc biệt là khi bạn bắt đầu chia dữ liệu thành các nhóm nhỏ hơn.

Hãy xem xét trường hợp gần đây khi một cử tri ở Illinois đã vượt quá 30 lần và thay đổi đáng kể các ước tính của mô hình cho nhóm nhân khẩu học của mình (và ở mức độ thấp hơn, cho toàn bộ dân số Hoa Kỳ). Nếu chúng ta vô tình chồng lên các hình ảnh "Ruffed Grouse" được chụp trên nền màu xanh lá cây vào những ngày nhiều mây với độ sâu trường hẹp và nhấn mạnh các loại hình ảnh nhóm khác, mô hình có thể liên kết các tính năng không liên quan đó với nhãn danh mục. Càng có nhiều cách để cắt dữ liệu, sẽ càng có nhiều nhóm con này và càng có nhiều cơ hội cho loại sai lầm này.


1
Tôi không nghĩ rằng nó sẽ tạo ra một sự khác biệt lớn trong thực tế cho một tập huấn luyện lớn, nhưng chắc chắn tôi mong đợi nó sẽ với một tập huấn luyện nhỏ hơn.
Franck Dernoncourt

5
@FranckDernoncourt tốt, toàn bộ vấn đề là nó có thể quan trọng đối với các bộ dữ liệu lớn nếu bạn bắt đầu xem xét các nhóm nhỏ. Đó không phải là một thủ tục hiếm gặp trong các bộ dữ liệu lớn,
dimpol

khá chắc chắn rằng bạn nên sử dụng phân phối đồng đều, không phải nhị thức
lahwran

2
@lahwran Chúng tôi đang lấy mẫu lần từ yếu tố thay thế. Trong R, điều này sẽ được . Từ đó, bạn có thể vẽ biểu đồ phân phối tần số với . Nó trông giống như phân phối nhị thức mà tôi đã vẽ ở trên. 107106samples = sample(1:1E6, size = 1E7, replace = TRUE)plot(table(table(samples)) / 1E7)
David J. Harris

2
aha Tôi đã sai rồi.
lahwran
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.