Có phải là thông lệ để giảm thiểu tổn thất trung bình trong các đợt thay vì tổng?


14

Tensorflow có một ví dụ hướng dẫn về phân loại CIFAR-10 . Trong hướng dẫn, tổn thất entropy chéo trung bình trên toàn lô được giảm thiểu.

def loss(logits, labels):
  """Add L2Loss to all the trainable variables.
  Add summary for for "Loss" and "Loss/avg".
  Args:
    logits: Logits from inference().
    labels: Labels from distorted_inputs or inputs(). 1-D tensor
            of shape [batch_size]
  Returns:
    Loss tensor of type float.
  """
  # Calculate the average cross entropy loss across the batch.
  labels = tf.cast(labels, tf.int64)
  cross_entropy = tf.nn.sparse_softmax_cross_entropy_with_logits(
      logits, labels, name='cross_entropy_per_example')
  cross_entropy_mean = tf.reduce_mean(cross_entropy, name='cross_entropy')
  tf.add_to_collection('losses', cross_entropy_mean)

  # The total loss is defined as the cross entropy loss plus all of the weight
  # decay terms (L2 loss).
  return tf.add_n(tf.get_collection('losses'), name='total_loss')

Xem cifar10.py , dòng 267.

Tại sao nó không giảm thiểu số tiền trong toàn bộ đợt thay thế? Liệu nó có làm cho một sự khác biệt? Tôi không hiểu làm thế nào điều này sẽ ảnh hưởng đến tính toán backprop.


Không có chính xác tổng / avg liên quan, nhưng lựa chọn mất là một lựa chọn thiết kế ứng dụng. Ví dụ, nếu bạn tốt với mức trung bình, hãy tối ưu hóa mức trung bình. Nếu ứng dụng của bạn nhạy cảm với trường hợp xấu nhất (ví dụ: sự cố ô tô), bạn nên tối ưu hóa giá trị tối đa.
Alex Kreimer

Câu trả lời:


15

Như pkubik đã đề cập, thường có một thuật ngữ chính quy cho các tham số không phụ thuộc vào đầu vào, ví dụ như trong dòng chảy, nó giống như

# Loss function using L2 Regularization
regularizer = tf.nn.l2_loss(weights)
loss = tf.reduce_mean(loss + beta * regularizer)

Trong trường hợp này, tính trung bình trên lô nhỏ giúp giữ tỷ lệ cố định giữa cross_entropytổn thất và regularizertổn thất trong khi kích thước lô được thay đổi.

Ngoài ra, tốc độ học tập cũng nhạy cảm với mức độ tổn thất (độ dốc), do đó, để bình thường hóa kết quả của các kích cỡ lô khác nhau, lấy mức trung bình có vẻ là một lựa chọn tốt hơn.


Cập nhật

Bài viết này của Facebook (Chính xác, Minibatch SGD: Đào tạo ImageNet trong 1 giờ) cho thấy, trên thực tế, tỷ lệ học tập theo quy mô lô hoạt động khá tốt:

Quy tắc chia tỷ lệ tuyến tính: Khi kích thước xe buýt nhỏ được nhân với k, nhân tỷ lệ học với k.

về cơ bản giống như để nhân độ dốc với k và giữ cho tốc độ học tập không thay đổi, vì vậy tôi đoán việc lấy trung bình là không cần thiết.


8

Tôi sẽ tập trung vào phần:

Tôi không hiểu làm thế nào điều này sẽ ảnh hưởng đến tính toán backprop.

Trước hết, có lẽ bạn đã nhận thấy rằng sự khác biệt duy nhất giữa các giá trị tổn thất kết quả là tổn thất trung bình được giảm xuống theo tổng của hệ số , tức là , trong đó là kích thước lô. Chúng ta có thể dễ dàng chứng minh rằng mối quan hệ tương tự là đúng đối với một đạo hàm của bất kỳ wrt biến nào. các hàm mất ( ) bằng cách xem định nghĩa của đạo hàm: Bây giờ, chúng tôi muốn nhân giá trị của hàm và xem làm thế nào nó ảnh hưởng đến đạo hàm: 1BLSBạnM= =BLMộtVGBdLSBạnMdx= =BdLMộtVGdx

dLdx= =limΔ0L(x+Δ)-L(x)Δ
d(cL)dx= =limΔ0cL(x+Δ)-cL(x)Δ
Khi chúng ta tính ra hằng số và di chuyển nó trước giới hạn, chúng ta sẽ thấy rằng chúng ta đưa ra định nghĩa đạo hàm gốc nhân với một hằng số, mà chính xác là những gì chúng tôi muốn chứng minh:
d(cL)dx= =climΔ0L(x+Δ)-L(x)Δ= =cdLdx

Trong SGD, chúng tôi sẽ cập nhật các trọng số bằng cách sử dụng độ dốc của chúng nhân với tỷ lệ học tập và chúng tôi có thể thấy rõ rằng chúng tôi có thể chọn tham số này theo cách các cập nhật trọng số cuối cùng sẽ bằng nhau. Quy tắc cập nhật đầu tiên: và quy tắc cập nhật thứ hai (hãy tưởng tượng rằng ): λ

W: =W+λ1dLSBạnMdW
λ1= =λ2B
W: =W+λ1dLMộtVGdW= =W+λ2BdLSBạnMdW


Phát hiện xuất sắc của dontloo có thể gợi ý rằng sử dụng tổng có thể là một cách tiếp cận phù hợp hơn một chút. Để biện minh cho mức trung bình dường như phổ biến hơn, tôi thêm rằng việc sử dụng tổng có thể gây ra một số vấn đề với việc cân bằng trọng lượng. Điều chỉnh hệ số tỷ lệ cho các bộ chỉnh cho các kích cỡ lô khác nhau có thể gây khó chịu như điều chỉnh tốc độ học.

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.