2017-11-15 26 views
9

Tôi hiện đang có các đầu vào văn bản được biểu diễn bằng vectơ và tôi muốn phân loại các danh mục của chúng. Vì chúng là các danh mục đa cấp, tôi muốn sử dụng Hierarchical Softmax.Tensorflow: Thực hiện Softmax theo thứ bậc

Example: 

- Computer Science 
    - Machine Learning 
    - NLP 
- Economics 
- Maths 
    - Algebra 
    - Geometry 

Tôi không biết cách triển khai trong Tensorflow. Tất cả các ví dụ tôi đã gặp là sử dụng các khung công tác khác.

Cảm ơn

+0

Bạn có thể ghi lại công thức chính xác mà bạn muốn thực hiện không? – MZHm

+0

Tôi cần phải xây dựng cây phân cấp trước. Giả sử đường dẫn cây đầu ra của 1 đầu vào là [A1-> A10-> A101], sau đó 'loss_of_that_input = softmax_cross_entropy (A1 | Ax) + softmax_cross_entropy (A10 | A1x) + softmax_cross_entropy (A101 | A10x)' –

+0

@MZHm bạn có thể thấy ví dụ về thực hiện ở đây (nhưng nó không sử dụng tensorflow): https://talbaumel.github.io/softmax/ –

Trả lời

0

Cuối cùng, tôi đã thay đổi để sử dụng Pytorch. Nó dễ dàng hơn và thẳng tiến hơn Tensorflow.

4

Thực tế nếu tổng số điện thoại các loại nằm trong phạm vi của hàng trăm đến hàng ngàn (dưới 50K), bạn không cần phải xem xét sử dụng softmax phân cấp, được thiết kế để chạy nhanh hơn đào tạo để phân loại thành hàng triệu danh mục (ví dụ: số từ trong từ vựng).

Theo kinh nghiệm của tôi (với mạng lưới Naive Bayesian và thần kinh), việc sử dụng cấu trúc phân cấp trong thời gian đào tạo không nhất thiết phải cải thiện chất lượng phân loại của bạn.

Tuy nhiên, nếu bạn quan tâm đến việc triển khai Softmax phân cấp, đó là một câu chuyện khác.

Các vấn đề liên quan