Làm thế nào để thiết lập mạng thần kinh để xuất dữ liệu thứ tự?


20

Tôi có một mạng lưới thần kinh được thiết lập để dự đoán một cái gì đó trong đó biến đầu ra là thứ tự. Tôi sẽ mô tả bên dưới bằng ba kết quả đầu ra có thể A <B <C.

Một cách khá rõ ràng là làm thế nào để sử dụng một mạng thần kinh để xuất dữ liệu phân loại: đầu ra chỉ là một phần mềm của lớp cuối cùng (thường được kết nối đầy đủ), mỗi loại và loại được dự đoán là loại có giá trị đầu ra lớn nhất (đây là mặc định trong nhiều mô hình phổ biến). Tôi đã được sử dụng cùng một thiết lập cho các giá trị thứ tự. Tuy nhiên, trong trường hợp này, các đầu ra thường không có ý nghĩa, ví dụ: đầu ra mạng cho A và C cao nhưng B thấp: điều này không hợp lý đối với các giá trị thứ tự.

Tôi có một ý tưởng cho việc này, đó là tính toán tổn thất dựa trên việc so sánh các đầu ra với 1 0 0 cho A, 1 1 0 cho B và 1 1 1 cho C. Các ngưỡng chính xác có thể được điều chỉnh sau đó bằng cách sử dụng phân loại khác (ví dụ Bayesian ) nhưng điều này dường như nắm bắt được ý tưởng thiết yếu của việc đặt hàng đầu vào, mà không quy định bất kỳ thang đo khoảng thời gian cụ thể nào.

Cách tiêu chuẩn để giải quyết vấn đề này là gì? Có nghiên cứu hay tài liệu tham khảo nào mô tả ưu và nhược điểm của các phương pháp khác nhau không?


1
Tôi đã nhận được rất nhiều lượt truy cập thú vị trên Google cho "hồi quy logistic thông thường", ví dụ như bài báo này
Shadowtalker 3/03/2015

@ssdecontrol: Thú vị. Tôi đã thử nó; kết quả tốt hơn so với chọn một đầu ra có giá trị cao nhất nhưng kém hơn một chút so với các phương pháp khác (Bayesian ngây thơ, v.v.). Điều này rất hữu ích, nhưng nó không giúp đào tạo mạng, chỉ cải thiện kết quả một chút sau khi thực tế ... hoặc ít nhất là tôi không thấy cách làm cho nó giúp đào tạo mạng.
Alex I

"nó" bạn đã thử? Điểm duy nhất của tôi là các công cụ tìm kiếm có thể hữu ích hơn bạn có thể mong đợi
shadowtalker

Ngoài ra tôi không chắc tôi hiểu ý của bạn là gì "ví dụ: đầu ra mạng cho A và C cao nhưng B thấp: điều này không hợp lý". Bạn có nghĩa là bạn dự đoán rất nhiều As và C nhưng vài Bs? Tôi không thấy lý do tại sao điều đó là không hợp lý trừ khi bạn có lý do thực sự hoặc cụ thể theo tên miền để nghĩ như vậy
Shadowtalker

Tôi cũng không biết làm thế nào bạn có thể có đầu ra như "1 1 0". Tôi nghĩ rằng có một số nhầm lẫn về thuật ngữ ở đây. Bạn đang mô tả kết quả thứ tự tích lũy ? Như trong một mô hình logit tích lũy?
Shadowtalker 3/03/2015

Câu trả lời:


15

Tôi tin rằng những gì hầu hết mọi người làm là chỉ đơn giản coi phân loại thứ tự là một phân loại đa lớp chung chung. Vì vậy, nếu họ có các lớp , họ sẽ có đầu ra , và chỉ cần sử dụng hàm kích hoạt sigmoid (không phải softmax rõ ràng) và entropy chéo nhị phân là mất.KKK

Nhưng một số người đã quản lý để phát minh ra một mã hóa thông minh cho các lớp thứ tự của bạn (xem câu trả lời stackoverflow này ). Đó là một loại mã hóa nóng,

  • lớp 1 được biểu diễn dưới dạng [0 0 0 0 ...]

  • lớp 2 được biểu diễn dưới dạng [1 0 0 0 ...]

  • lớp 3 được biểu diễn dưới dạng [1 1 0 0 ...]

tức là mỗi nơron đang dự đoán xác suất . Bạn vẫn phải sử dụng sigmoid làm chức năng kích hoạt, nhưng tôi nghĩ rằng điều này giúp mạng hiểu được sự liên tục giữa các lớp, tôi không biết. Sau đó, bạn thực hiện xử lý hậu kỳ ( ) để chuyển đổi đầu ra nhị phân thành các lớp của bạn.P(y^<k)np.sum

Chiến lược này giống với bản hòa tấu từ Frank và Hall , và tôi nghĩ đây là ấn phẩm đầu tiên như vậy.


Cách tiếp cận này có vẻ hấp dẫn hơn nhiều. Điều quan trọng là nhận ra rằng sử dụng các chế độ dự đoán để biến vấn đề này thành vấn đề phân loại không phải là một ý tưởng tốt. Các xác suất tích lũy dự đoán có thể được chuyển thành các xác suất riêng lẻ được dự đoán và do đó, chức năng tiện ích để đưa ra quyết định cuối cùng có thể được chèn vào sau đó khi các tiện ích được biết đến. Xem fharrell.com/post/ classification .
Frank Harrell

1
@RicardoCruz - Hmm, nghe có vẻ giống như những gì tôi đã đề xuất: "1 0 0 cho A, 1 1 0 cho B và 1 1 1 cho C". Thật tốt khi biết rằng hoạt động! Cũng wow, đó là một bài báo từ năm 2007, ý tưởng này đã có từ rất lâu
Alex I

Vâng, tôi đã ngạc nhiên khi tôi tìm thấy tờ giấy đó!
Ricardo Cruz

Lưu ý: Như đã nêu trong "Phương pháp tiếp cận mạng Neurel đối với hồi quy thông thường": "... sử dụng các hàm sigmoid độc lập cho các nút đầu ra không đảm bảo mối quan hệ đơn điệu (o1> = o2> = ....> = oK), đó là không cần thiết nhưng, mong muốn đưa ra dự đoán. " Do đó, chỉ thực hiện một "np.sum" tại thời điểm dự đoán không phải là phương pháp tốt nhất.
sccrthlt

1
Chỉnh sửa nhận xét của tôi ở trên: Thực hiện "np.sum" trên các đầu ra của mạng thần kinh là sai lệch. Tình huống sau đây có thể phát sinh trong đó vectơ đầu ra là [0 1 0 1 0]. Thực hiện tổng kết trên vectơ này sẽ tạo ra dự đoán lớp là 2, trong khi thực tế, mạng lưới thần kinh không chắc chắn.
sccrthlt
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.