Tôi đang xây dựng mô hình hồi quy. Là bước tiền xử lý, tôi chia tỷ lệ các giá trị tính năng của mình thành trung bình 0 và độ lệch chuẩn 1. Có cần phải chuẩn hóa các giá trị đích không?
Tôi đang xây dựng mô hình hồi quy. Là bước tiền xử lý, tôi chia tỷ lệ các giá trị tính năng của mình thành trung bình 0 và độ lệch chuẩn 1. Có cần phải chuẩn hóa các giá trị đích không?
Câu trả lời:
Trước tiên hãy phân tích tại sao tính năng chia tỷ lệ được thực hiện. Tính năng mở rộng cải thiện sự hội tụ của các thuật toán gốc dốc nhất, không sở hữu thuộc tính bất biến tỷ lệ.
Trong các ví dụ đào tạo giảm độ dốc ngẫu nhiên thông báo các cập nhật trọng số lặp đi lặp lại như vậy,
Trong đó là các trọng số, là một stepize, là các trọng số wrt gradient, là một hàm mất, là hàm được tham số hóa bởi , là một ví dụ đào tạo và là phản hồi / nhãn.
So sánh các hàm lồi sau đây, biểu thị tỷ lệ phù hợp và tỷ lệ không phù hợp.
Một bước thông qua một bản cập nhật trọng lượng của kích thước sẽ giúp giảm lỗi tốt hơn trong trường hợp được chia tỷ lệ đúng so với trường hợp được chia tỷ lệ không đúng. Dưới đây là hướng của có độ dài .
Bình thường hóa đầu ra sẽ không ảnh hưởng đến hình dạng của , do đó thường không cần thiết.
Tình huống duy nhất tôi có thể tưởng tượng để nhân rộng các đầu ra có tác động, là nếu biến phản hồi của bạn rất lớn và / hoặc bạn đang sử dụng biến f32 (thường gặp với đại số tuyến tính GPU). Trong trường hợp này, có thể có được một dấu phẩy động của phần tử trọng số. Các triệu chứng là một giá trị Inf hoặc nó sẽ bao quanh các đại diện cực đoan khác.
Nói chung, nó không cần thiết. Kết quả là mở rộng quy mô giúp tránh tình huống, khi một hoặc một số tính năng chi phối các cường độ khác, do đó, mô hình hầu như không nhận được sự đóng góp của các biến quy mô nhỏ hơn, ngay cả khi chúng mạnh. Nhưng nếu bạn chia tỷ lệ mục tiêu, lỗi bình phương trung bình của bạn sẽ tự động được thu nhỏ. MSE> 1 tự động có nghĩa là bạn đang làm tồi tệ hơn dự đoán không đổi (ngây thơ).
Không, biến đổi tuyến tính của phản ứng là không bao giờ cần thiết. Tuy nhiên, chúng có thể hữu ích để hỗ trợ cho việc giải thích mô hình của bạn. Ví dụ: nếu phản hồi của bạn được tính theo mét nhưng thường rất nhỏ, có thể hữu ích để bán lại thành milimet. Cũng lưu ý rằng việc định tâm và / hoặc nhân rộng các đầu vào có thể hữu ích cho cùng một lý do. Chẳng hạn, bạn có thể hiểu đại khái một hệ số là hiệu ứng trên phản hồi trên mỗi đơn vị thay đổi trong bộ dự báo khi tất cả các yếu tố dự đoán khác được đặt thành 0 . Nhưng 0 thường không phải là một giá trị hợp lệ hoặc thú vị cho các biến đó. Căn giữa các đầu vào cho phép bạn diễn giải hệ số là hiệu ứng trên mỗi đơn vị thay đổi khi các yếu tố dự đoán khác giả định giá trị trung bình của chúng.
Các phép biến đổi khác (tức là log hoặc căn bậc hai) có thể hữu ích nếu đáp ứng không tuyến tính trong các yếu tố dự đoán trên thang đo ban đầu. Nếu đây là trường hợp, bạn có thể đọc về các mô hình tuyến tính tổng quát để xem chúng có phù hợp với bạn không.
Nó không ảnh hưởng đến độ dốc giảm dần theo cách xấu . kiểm tra công thức cho độ dốc gốc:
giả sử là một tính năng lớn hơn 1000 lần so với
với chúng ta có . Cách tối ưu để đạt (0,0) là tối ưu toàn cầu là di chuyển qua đường chéo nhưng nếu một trong các tính năng này chiếm ưu thế khác về quy mô sẽ không xảy ra.
Để minh họa: Nếu bạn thực hiện chuyển đổi , giả sử tỷ lệ học thống nhất cho cả hai tọa độ và tính toán độ dốc thìHình thức chức năng là như nhau nhưng tốc độ học tập cho tọa độ thứ hai phải được điều chỉnh thành 1/1000 so với tọa độ đầu tiên để khớp với nó. Nếu không phối hợp hai sẽ chiếm ưu thế và vectơ sẽ hướng nhiều hơn về hướng đó.
Kết quả là nó chỉ thiên vị delta để chỉ qua hướng đó và làm cho sự hội tụ chậm hơn.
Có , bạn cần phải mở rộng biến mục tiêu. Tôi sẽ trích dẫn tài liệu tham khảo này :
Đổi lại, một biến mục tiêu có độ lây lan lớn của các giá trị có thể dẫn đến các giá trị độ dốc lỗi lớn làm cho giá trị trọng số thay đổi đáng kể, làm cho quá trình học tập không ổn định.
Trong tài liệu tham khảo, cũng có một minh chứng về mã trong đó trọng lượng mô hình đã phát nổ trong quá trình đào tạo với các lỗi rất lớn và đến lượt nó, độ dốc lỗi được tính cho các cập nhật trọng lượng cũng phát nổ. Nói tóm lại, nếu bạn không mở rộng quy mô dữ liệu và bạn có các giá trị rất lớn, hãy đảm bảo sử dụng các giá trị tỷ lệ học tập rất nhỏ. Điều này cũng được đề cập bởi @drSpacy.