Chuẩn hóa và chuẩn hóa dữ liệu trong các mạng thần kinh


40

Tôi đang cố gắng dự đoán kết quả của một hệ thống phức tạp bằng cách sử dụng các mạng thần kinh (ANN). Giá trị kết quả (phụ thuộc) nằm trong khoảng từ 0 đến 10.000. Các biến đầu vào khác nhau có phạm vi khác nhau. Tất cả các biến có phân phối gần như bình thường.

Tôi xem xét các lựa chọn khác nhau để mở rộng dữ liệu trước khi đào tạo. Một tùy chọn là chia tỷ lệ các biến đầu vào (độc lập) và đầu ra (phụ thuộc) thành [0, 1] bằng cách tính toán hàm phân phối tích lũy bằng cách sử dụng các giá trị độ lệch trung bình và độ lệch chuẩn của từng biến, một cách độc lập. Vấn đề với phương pháp này là nếu tôi sử dụng chức năng kích hoạt sigmoid ở đầu ra, tôi rất có thể sẽ bỏ lỡ dữ liệu cực đoan, đặc biệt là những dữ liệu không thấy trong tập huấn luyện

Một lựa chọn khác là sử dụng điểm z. Trong trường hợp đó, tôi không có vấn đề dữ liệu cực đoan; tuy nhiên, tôi bị giới hạn ở chức năng kích hoạt tuyến tính ở đầu ra.

Các kỹ thuật chuẩn hóa được chấp nhận khác đang được sử dụng với ANN là gì? Tôi đã cố gắng tìm kiếm các đánh giá về chủ đề này, nhưng không tìm thấy bất cứ điều gì hữu ích.


Bình thường hóa điểm Z đôi khi được sử dụng nhưng tôi có cảm giác buồn cười nó có thể là tên khác cho câu trả lời của người bay không ??
osknows

Nó giống nhau ngoại trừ phần làm trắng.
bayerj

1
Nếu bạn dự đoán một giá trị (như bạn) chứ không phải là xác suất (nghĩa là hồi quy thay vì phân loại), bạn nên luôn luôn sử dụng hàm đầu ra tuyến tính.
seanv507

Hạng-Gauss của Michael Jahrer . Đó là thứ hạng sau đó làm cho nó gaussian.
dùng3226167

Câu trả lời:


32

Một cách tiếp cận tiêu chuẩn là chia tỷ lệ các đầu vào có giá trị trung bình 0 và phương sai bằng 1. Ngoài ra, giải mã tuyến tính / làm trắng / pca giúp ích rất nhiều.

Nếu bạn quan tâm đến các mánh khóe trong giao dịch, tôi có thể giới thiệu giấy backprop hiệu quả của LeCun.


1
Tất nhiên người ta không bao giờ nên cố gắng bình thường hóa dữ liệu một cách mù quáng nếu dữ liệu không tuân theo phân phối bình thường (đơn). stats.stackexchange.com/a/816/4581
user4581

24
Với mạng lưới thần kinh, bạn phải. Nếu không, bạn sẽ ngay lập tức bão hòa các đơn vị ẩn, sau đó độ dốc của chúng sẽ gần bằng 0 và không thể học được. Đó không phải là về mô hình hóa (mạng lưới thần kinh không đảm nhận bất kỳ phân phối nào trong dữ liệu đầu vào), mà là về các vấn đề về số.
bayerj

Tôi khá bối rối. Liên kết này ( machinelearningmastery.com/ ( ) nói rằng Tiêu chuẩn hóa rất hữu ích khi thuật toán bạn đang sử dụng đưa ra các giả định về dữ liệu của bạn có phân phối Gaussian (Không phải trường hợp NN). Nếu không, nó nói rằng bạn nên sử dụng Chuẩn hóa. Ai đó có thể khai sáng cho tôi?
ihebiheb

21

1- Chuẩn hóa tối thiểu tối đa giữ lại phân phối điểm ban đầu ngoại trừ hệ số tỷ lệ và biến tất cả các điểm thành một phạm vi chung [0, 1]. Tuy nhiên, phương pháp này không mạnh mẽ (nghĩa là phương pháp này rất nhạy cảm với các ngoại lệ.

2- Tiêu chuẩn hóa (chuẩn hóa điểm Z) Kỹ thuật được sử dụng phổ biến nhất, được tính toán bằng trung bình số học và độ lệch chuẩn của dữ liệu đã cho. Tuy nhiên, cả độ lệch trung bình và độ lệch chuẩn đều nhạy cảm với các ngoại lệ và kỹ thuật này không đảm bảo phạm vi số chung cho các điểm số được chuẩn hóa. Hơn nữa, nếu điểm số đầu vào không được phân phối Gaussian, kỹ thuật này không giữ lại phân phối đầu vào ở đầu ra.

3- Trung vị và MAD: Độ lệch tuyệt đối trung vị và trung vị (MAD) không nhạy cảm với các ngoại lệ và các điểm trong các đuôi cực của phân bố. do đó, nó là mạnh mẽ. Tuy nhiên, kỹ thuật này không giữ lại phân phối đầu vào và không biến đổi điểm số thành một phạm vi số phổ biến.

4- tanh-ước tính: Các công cụ ước tính tanh được giới thiệu bởi Hampel et al. mạnh mẽ và hiệu quả cao. Việc chuẩn hóa được đưa ra bởi

ước tính tanh trong đó GH và GH lần lượt là ước tính độ lệch trung bình và độ lệch chuẩn của phân phối điểm chính hãng như được đưa ra bởi các công cụ ước tính Hampel.

Vì vậy, tôi khuyên bạn nên ước tính tanh.

tham khảo https://www.cs.ccu.edu.tw/~wylin/BA/Fusion_of_Biometrics_II.ppt


Tôi đang gặp khó khăn trong việc tìm kiếm thông tin về công cụ ước tính tanh này. Bất cứ ai có thể làm sáng tỏ về điều này?
Ben Ogorek

Cuối cùng cũng tìm thấy một bài báo thực hiện tốt công việc ước tính tanh để chuẩn hóa: wjscheirer.com/ con / wjs_eccv2010_fusion.pdf . Chúng không có vẻ khả thi như là một lựa chọn bình thường hóa mục đích chung. "[Công cụ ước tính Tanh] phức tạp hơn nhiều để tính toán, so với điểm z thích nghi ... Điểm đuôi cho ba khoảng khác nhau từ điểm trung vị của phân phối phải được xác định theo cách thức không thường xuyên. Các tham số này có thể khó khăn để xác định bằng thực nghiệm và nếu được chọn không chính xác, hãy giới hạn hiệu quả của các công cụ ước tính. "
Ben Ogorek

8

Tôi đã đưa ra một câu trả lời tương tự ở đây Khi tiến hành hồi quy bội, khi nào bạn nên tập trung vào các biến dự đoán của mình và khi nào bạn nên chuẩn hóa chúng? nhưng nghĩ rằng đó là bối cảnh đủ khác nhau mà một câu trả lời có thể đi đến đây.

Có một nguồn tài nguyên usenet tuyệt vời http://www.faqs.org/faqs/ai-faq/neural-nets/part2/section-16.html

Nó đưa ra một cách đơn giản một số vấn đề và cân nhắc khi một người muốn bình thường hóa / chuẩn hóa / sắp xếp lại dữ liệu. Vì nó xử lý chủ đề từ góc độ học máy, và như câu hỏi của bạn là ML, nó có thể có một số liên quan.


Bạn nên viết các điểm chính của mỗi liên kết tại đây, để không cần thêm "điều hướng"
leoschet

2

Bạn có thể làm

  • chuẩn hóa tối thiểu tối đa (Bình thường hóa đầu vào / mục tiêu nằm trong phạm vi [,11,1]) hoặc
  • chuẩn hóa độ lệch chuẩn trung bình (Bình thường hóa đầu vào / mục tiêu để có giá trị trung bình và phương sai thống nhất / độ lệch chuẩn)

1

Nếu bạn đang làm việc python, sklearnmột phương pháp để thực hiện việc này bằng các kỹ thuật khác nhau trong preprocessingmô-đun của họ (cộng với tính năng đường ống tiện lợi, với một ví dụ trong tài liệu của họ):

import sklearn

# Normalize X, shape (n_samples, n_features)
X_norm = sklearn.preprocessing.normalize(X)

0

Chà, [0,1] là cách tiếp cận tiêu chuẩn. Đối với Mạng thần kinh, hoạt động tốt nhất trong khoảng 0-1. Thu nhỏ tối đa (hoặc Chuẩn hóa) là cách tiếp cận cần tuân theo.

Bây giờ trên các ngoại lệ, trong hầu hết các kịch bản, chúng tôi phải đưa ra các ngoại lệ đó, vì các ngoại lệ không phổ biến, bạn không muốn các ngoại lệ ảnh hưởng đến mô hình của bạn (trừ khi phát hiện bất thường là vấn đề mà bạn đang giải quyết). Bạn có thể cắt nó dựa trên quy tắc Thực nghiệm 68-95-99.7 hoặc tạo một ô vuông, quan sát và cắt theo nó.

Công thức MinMax - (xi - min(x)) / (max(x) - min(x)) hoặc có thể sử dụngsklearn.preprocessing.MinMaxScaler


-1

"Được chấp nhận" là bất cứ điều gì tốt nhất cho bạn - sau đó bạn chấp nhận nó.

Theo kinh nghiệm của tôi, việc phân phối từ phân phối Johnson cho từng tính năng liên tục hoạt động tốt vì các bản phân phối có tính linh hoạt cao và có thể chuyển đổi hầu hết các tính năng đơn phương thành phân phối chuẩn thông thường. Nó cũng sẽ hỗ trợ các tính năng đa phương thức, nhưng điểm chung là nó đưa các tính năng vào dạng mong muốn nhất có thể (dữ liệu phân phối Gaussian tiêu chuẩn là lý tưởng để làm việc - nó tương thích và đôi khi tối ưu cho hầu hết mọi phương pháp thống kê / ML có sẵn).

http://qualityamerica.com/LSS-Knowledge-Center/statisticinference/johnson_distribution.php

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.