Khi nào cần chuẩn hóa dữ liệu khi sử dụng hai bộ dữ liệu từ cùng một phân phối?


7

Giả sử bạn có hai bộ dữ liệu D1 và D2. Cả hai đều được lấy mẫu từ cùng một phân phối cơ bản X. Tôi muốn sử dụng chúng để huấn luyện một mạng lưới thần kinh. Các tính năng là tất cả các số nguyên không dấu trong phạm vi [0; 2 ^ 64].

Do thực tế là các tính năng có quy mô rất khác nhau, tôi quyết định sử dụng chuẩn hóa điểm z kết hợp với chức năng sigmoid. Điều đó có nghĩa là tôi cung cấp dữ liệu chuẩn hóa điểm z cho hàm logistic để ánh xạ các tính năng thành [0; 1] phạm vi.

Tại thời điểm này tôi không chắc chắn vào thời điểm nào để bình thường hóa dữ liệu.

1.) Tôi sử dụng D1 và chuẩn hóa nó với mean_1 và std_dev_1, thu được bằng cách chỉ xem xét D1. Tôi lặp lại quy trình cho D2 và chuẩn hóa nó bằng cách sử dụng mean_2 và std_dev_2. Sau đó, tôi đào tạo mạng với hai bộ dữ liệu tuần tự.

2.) Tôi thêm D1 và D2 ​​để lấy tập D3 và chuẩn hóa nó bằng cách tính mean_3 và std_dev_3 trên toàn bộ tập dữ liệu (D1 + D2). Sau đó, tôi đào tạo mạng với nó.

2 câu hỏi ở đây:

a) Hai phương pháp có dẫn đến kết quả tương tự không? Điều này đặc biệt quan trọng đối với tôi vì D2 có thể trở nên khả dụng sau này so với D1 và tôi phải biết liệu tôi có phải đào tạo lại mạng với toàn bộ dữ liệu hay không.

b) Khi thực hiện suy luận với mạng được đào tạo, tôi phải sử dụng tham số nào để chuẩn hóa các đầu vào mới? Vậy tôi có phải sử dụng mean_3 và std_dev_3 không?

EDIT: Tôi phát hiện ra rằng độ lệch trung bình và độ lệch chuẩn của sự kết hợp của hai bộ dữ liệu có thể được tính từ độ lệch trung bình và độ lệch chuẩn của dữ liệu gốc. Điều đó có nghĩa là (về lý thuyết) họ có thể được đào tạo tuần tự và các tham số phân phối của họ có thể được kết hợp để định mức các đầu vào cho suy luận.


Tại sao câu hỏi này có tiền thưởng nhưng vẫn không có câu trả lời thỏa đáng? Chà, tôi nghĩ bạn phải cung cấp thêm thông tin về bộ dữ liệu D1 và D2. Nguồn (một số quy trình vật lý là gì?) Và định dạng (là mảng số 1-d này?). Biết mục tiêu (ví dụ như nó là phân loại nhị phân?) Cũng sẽ hữu ích.
hans

@hans: dữ liệu về cơ bản là siêu dữ liệu trên lưu lượng mạng (ví dụ: số gói / giây trung bình). Những gì tôi cố gắng làm là tìm thấy sự bất thường trong giao thông. Ý tưởng là trong một mạng hoàn toàn tốt, lưu lượng truy cập bình thường có một số mẫu riêng biệt và sự bất thường gây ra sự sai lệch so với mẫu này.
DocDriven

Câu trả lời:


3

Bạn nên áp dụng cùng một chuyển đổi cho tất cả các cá nhân.

Đừng sử dụng phương pháp 1; nó sẽ được thiên vị. Một cách dễ dàng để nhận ra điều này là tưởng tượng rằng hai cá thể có các đặc điểm giống hệt nhau tồn tại trongD1D2. Bạn sẽ muốn hai cá nhân này giống hệt nhau trong các bộ dữ liệu được chuyển đổi, nhưng phương pháp 1 của bạn không cho phép điều này.

Phương pháp 2 là OK. Nếu bạn muốn đào tạo tuần tự, một tùy chọn khác sẽ là áp dụng phép chuyển đổi được tạo bởi mean_1 và std_dev_1 cho tất cả các điểm dữ liệu; tuy nhiên lưu ý rằng điều này có thể dẫn đến các vấn đề nếu các điểm dữ liệu trong tương lai khác rất nhiều so với dữ liệu trongD1.


'(...) Tưởng tượng rằng hai cá thể có các đặc điểm giống hệt nhau tồn tại trong D1 và D2. Bạn sẽ muốn hai cá nhân này cũng giống hệt nhau trong các bộ dữ liệu được chuyển đổi '- không hoàn toàn chính xác. Bạn thường làm ngược lại: (đặc biệt nếu tập dữ liệu của bạn nhỏ) bạn tăng dữ liệu để một ví dụ được trình bày một vài lần khác nhau cho một NN.
hans

@hans: vậy điều bạn đang nói là phương pháp 1 có khả thi không?
DocDriven

@DocDriven Tôi đang nói rằng đối số này không thể được sử dụng để từ chối phương thức một.
hans

1

Nếu D1 và D2 ​​thực sự có cùng phân phối, thì miễn là D1 có ít nhất vài trăm điểm dữ liệu, bạn không nên thấy nhiều biến đổi trong giá trị trung bình và độ lệch chuẩn, vì vậy, bình thường hóa tất cả dữ liệu dựa trên D1 không nên đặt ra nhiều vấn đề Bình thường hóa từng tập hợp dữ liệu dựa trên giá trị trung bình và độ lệch chuẩn của chính nó có nghĩa là việc quá mức của bạn sẽ theo nhiều hơn từ kích thước mẫu của tập hợp con so với kích thước mẫu tổng thể và theo cách bạn giới thiệu một tính năng giả của "mẫu phụ nào đã làm điều này datapoint đến từ đâu? ". Bình thường hóa dữ liệu bằng các phương tiện và tiêu chuẩn khác nhau không nên ảnh hưởng đến kết quả của việc đào tạo mạng lưới thần kinh, mất bao lâu để hội tụ và nếu bạn lo lắng về điều sau, hãy xem xét lấy kết quả từ một giá trị ban đầu cho tiếp theo.


Tôi không hiểu câu nói cuối cùng của bạn. Những giá trị ban đầu tôi nên dùng để làm gì?
DocDriven

@DocDriven Khi bạn khởi tạo một mạng lưới thần kinh, bạn phải chọn nó với các giá trị ban đầu cho các trọng số. Gieo hạt với trọng lượng từ khóa đào tạo trước có thể tăng tốc độ đào tạo lại, mặc dù có những rủi ro như quá mức.
Tích lũy

1

Một vài nhận xét:

  1. Nếu cả hai tập dữ liệu từ cùng một phân phối, cả hai quy trình sẽ cho cùng một kết quả (vì D1 và D2 ​​sẽ có cùng giá trị trung bình và phương sai). Nhưng dường như họ không phải.

  2. Kiểm tra ý nghĩa thực tế và phương sai cho mỗi tập dữ liệu. Nếu chúng giống nhau - không thành vấn đề. Nếu chúng khác nhau, thì bình thường hóa mỗi tập dữ liệu với giá trị trung bình và phương sai riêng (phương pháp 1)

  3. Đào tạo trên một tập dữ liệu xáo trộn D3=D1¯D2¯, trong đó một thanh có nghĩa là bình thường hóa. Đào tạo đầu tiên trên một tập dữ liệu và sau đó trên một tập dữ liệu khác có thể gây ra nhiều vấn đề và nên được thực hiện một cách thận trọng (xem quên lãng thảm khốc ).

  4. Nếu các đầu vào mới sẽ từ cùng một nguồn với D2, thì bình thường hóa chúng với giá trị trung bình và phương sai của D2.

  5. Áp dụng sigmoid trên các giá trị chuẩn hóa có thể không cần thiết.


Cảm ơn bạn đã làm rõ điều này. Về điểm 1.) rằng hai bộ dữ liệu là từ cùng một phân phối: Chúng là, nhưng giá trị trung bình và phương sai không phải luôn luôn chính xác bằng trung bình và phương sai của dân số, ví dụ có sự khác biệt nhỏ. Điều này có nghĩa là nó không quan trọng với thông số nào tôi bình thường hóa đầu vào mới (điểm 4)?
DocDriven

@DocDriven Bạn nói đúng, có thể có những khác biệt nhỏ. Nếu bộ dữ liệu lớn, sự khác biệt sẽ nhỏ và không liên quan. Nếu bộ dữ liệu nhỏ, thì vấn đề chính là kích thước của bộ dữ liệu và làm thế nào để tăng nó. Làm thế nào lớn là họ chính xác?
hans

khoảng 1000 đến 2000 mẫu mỗi bộ. Vì vậy, tôi cho rằng sự khác biệt nên nhỏ.
DocDriven

1
Ok, và các bộ khác nhau như thế nào? Ví dụ: trong miền CV, nếu tôi có hai bộ ảnh được thực hiện với các máy ảnh khác nhau, tôi sẽ bình thường hóa nó một cách riêng biệt. Nhưng nếu tôi có hai bộ được thực hiện với cùng một máy ảnh nhưng vào những ngày khác, tôi sẽ hợp nhất chúng và bình thường hóa với nhau.
Hans
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.