Tôi đang sử dụng TensorFlow cho các thí nghiệm chủ yếu với các mạng thần kinh. Mặc dù tôi đã thực hiện khá nhiều thử nghiệm (XOR-Problem, MNIST, một số công cụ Hồi quy, ...), tôi vẫn phải vật lộn với việc chọn hàm chi phí "chính xác" cho các vấn đề cụ thể vì nhìn chung tôi có thể được coi là người mới bắt đầu.
Trước khi đến với TensorFlow, tôi đã mã hóa một số MLP được kết nối đầy đủ và một số mạng lặp lại bằng Python và NumPy nhưng chủ yếu tôi gặp vấn đề trong đó một lỗi bình phương đơn giản và một độ dốc đơn giản là đủ.
Tuy nhiên, vì TensorFlow cung cấp khá nhiều hàm chi phí cũng như xây dựng các hàm chi phí tùy chỉnh, tôi muốn biết liệu có một loại hướng dẫn nào có thể dành riêng cho các hàm chi phí trên mạng thần kinh không? (Tôi đã thực hiện được một nửa số hướng dẫn chính thức của TensorFlow nhưng họ không thực sự giải thích lý do tại sao các hàm chi phí cụ thể hoặc người học được sử dụng cho các vấn đề cụ thể - ít nhất là không dành cho người mới bắt đầu)
Để đưa ra một số ví dụ:
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y_output, y_train))
Tôi đoán nó áp dụng hàm softmax trên cả hai đầu vào sao cho tổng của một vectơ bằng 1. Nhưng chính xác thì entropy chéo với các bản ghi là gì? Tôi nghĩ rằng nó tổng hợp các giá trị và tính toán entropy chéo ... vì vậy một số phép đo?! Điều này sẽ không giống nhau nhiều nếu tôi bình thường hóa đầu ra, tổng hợp nó và nhận lỗi bình phương? Ngoài ra, tại sao điều này được sử dụng, ví dụ như đối với MNIST (hoặc thậm chí các vấn đề khó khăn hơn nhiều)? Khi tôi muốn phân loại như 10 hoặc thậm chí có 1.000 lớp, không tổng giá trị hoàn toàn phá hủy bất kỳ thông tin về mà lớp thực sự là đầu ra?
cost = tf.nn.l2_loss(vector)
Cái này để làm gì? Tôi nghĩ rằng mất l2 gần như là lỗi bình phương, nhưng API của TensorFlow nói rằng đầu vào của nó chỉ là một tenxơ. Không có ý tưởng nào cả?!
Bên cạnh đó tôi thấy điều này cho entropy chéo khá thường xuyên:
cross_entropy = -tf.reduce_sum(y_train * tf.log(y_output))
... nhưng tại sao nó lại được sử dụng? Không phải là mất mát trong entropy chéo về mặt toán học này:
-1/n * sum(y_train * log(y_output) + (1 - y_train) * log(1 - y_output))
Đâu là (1 - y_train) * log(1 - y_output)
phần trong hầu hết các ví dụ của TensorFlow? Nó không bị thiếu sao?
Trả lời: Tôi biết câu hỏi này khá mở, nhưng tôi không mong đợi có được 10 trang với mỗi hàm vấn đề / chi phí duy nhất được liệt kê chi tiết. Tôi chỉ cần một bản tóm tắt ngắn về thời điểm sử dụng hàm chi phí nào (nói chung hoặc trong TensorFlow, không quan trọng với tôi) và một số giải thích về chủ đề này. Và / hoặc một số nguồn cho người mới bắt đầu;)