Danh sách các hàm chi phí được sử dụng trong các mạng thần kinh, bên cạnh các ứng dụng


133

Các hàm chi phí phổ biến được sử dụng để đánh giá hiệu suất của các mạng thần kinh là gì?

Chi tiết

(vui lòng bỏ qua phần còn lại của câu hỏi này, ý định của tôi ở đây chỉ đơn giản là cung cấp làm rõ về ký hiệu mà câu trả lời có thể sử dụng để giúp chúng dễ hiểu hơn đối với người đọc nói chung)

Tôi nghĩ sẽ hữu ích khi có một danh sách các hàm chi phí phổ biến, bên cạnh một vài cách mà chúng đã được sử dụng trong thực tế. Vì vậy, nếu những người khác quan tâm đến điều này, tôi nghĩ rằng wiki cộng đồng có lẽ là cách tiếp cận tốt nhất hoặc chúng ta có thể gỡ nó xuống nếu nó lạc đề.

Ký hiệu

Vì vậy, để bắt đầu, tôi muốn xác định một ký hiệu mà tất cả chúng ta sử dụng khi mô tả những điều này, vì vậy các câu trả lời rất phù hợp với nhau.

Ký hiệu này là từ cuốn sách của Neilsen .

Mạng thần kinh Feedforward là nhiều lớp tế bào thần kinh được kết nối với nhau. Sau đó, nó nhận một đầu vào, đầu vào đó "nhỏ giọt" qua mạng và sau đó mạng thần kinh trả về một vectơ đầu ra.

Chính thức hơn, gọi kích hoạt (còn gọi là đầu ra) của nơ ron trong lớp , trong đó là phần tử trong vectơ đầu vào. j t h i t h a 1 j j t hajijthithaj1jth

Sau đó, chúng ta có thể liên kết đầu vào của lớp tiếp theo với trước đó thông qua mối quan hệ sau:

aji=σ(k(wjkiaki1)+bji)

Ở đâu

σ là chức năng kích hoạt,

k t h ( i - 1 ) t h j t h i t hwjki là trọng lượng từ tế bào thần kinh trong lớp đến tế bào thần kinh trong lớp ,kth(i1)thjthith

j t h i t hbji là sai lệch của nơron trong lớp vàjthith

j t h i t haji đại diện cho giá trị kích hoạt của nơron trong lớp .jthith

Đôi khi chúng ta viết để thể hiện , nói cách khác, giá trị kích hoạt của nơ ron trước khi áp dụng chức năng kích hoạt .k ( w i j ka i - 1 k ) + b i jzjik(wjkiaki1)+bji

nhập mô tả hình ảnh ở đây

Để ký hiệu ngắn gọn hơn chúng ta có thể viết

ai=σ(wi×ai1+bi)

Để sử dụng công thức này để tính toán đầu ra của mạng feedforward cho một số đầu vào , hãy đặt , sau đó tính , , ..., , trong đó m là số lớp.a 1 = I a 2 a 3 a mIRna1=Ia2a3am

Giới thiệu

Hàm chi phí là thước đo "mức độ tốt" của mạng lưới thần kinh đối với mẫu đào tạo được đưa ra và sản lượng dự kiến. Nó cũng có thể phụ thuộc vào các biến như trọng số và độ lệch.

Hàm chi phí là một giá trị duy nhất, không phải là một vectơ, vì nó đánh giá mức độ tốt của mạng lưới thần kinh.

Cụ thể, một hàm chi phí có dạng

C(W,B,Sr,Er)

Trong đó là trọng số của mạng nơ-ron của chúng tôi, là độ lệch của mạng nơ-ron của chúng tôi, là đầu vào của một mẫu đào tạo duy nhất và là đầu ra mong muốn của mẫu đào tạo đó. Lưu ý chức năng này cũng có khả năng phụ thuộc vào và cho bất kỳ nơron trong lớp , bởi vì các giá trị này phụ thuộc vào , và .WBSrEryjizjijiWBSr

Trong backpropagation, hàm chi phí được sử dụng để tính toán lỗi của lớp đầu ra của chúng tôi, , thông quaδL

δjL=CajLσ(zji)
.

Mà cũng có thể được viết dưới dạng vector thông qua

δL=aCσ(zi)
.

Chúng tôi sẽ cung cấp độ dốc của các hàm chi phí theo phương trình thứ hai, nhưng nếu ai đó muốn tự chứng minh các kết quả này, thì nên sử dụng phương trình thứ nhất vì nó dễ làm việc hơn.

Yêu cầu chức năng chi phí

Để được sử dụng trong backpropagation, hàm chi phí phải đáp ứng hai thuộc tính:

1: Hàm chi phí phải có thể được viết ở mức trung bìnhC

C=1nxCx

hàm chi phí cho các ví dụ đào tạo cá nhân, . xCxx

Điều này là để nó cho phép chúng ta tính toán độ dốc (liên quan đến trọng số và độ lệch) cho một ví dụ đào tạo duy nhất và chạy Gradient Descent.

2: Hàm chi phí không phải phụ thuộc vào bất kỳ giá trị kích hoạt của một mạng lưới thần kinh bên cạnh những kết quả giá trị .a LCaL

Về mặt kỹ thuật, hàm chi phí có thể phụ thuộc vào bất kỳ hoặc . Chúng tôi chỉ thực hiện hạn chế này để chúng tôi có thể backpropagte, bởi vì phương trình tìm độ dốc của lớp cuối cùng là phương trình duy nhất phụ thuộc vào hàm chi phí (phần còn lại phụ thuộc vào lớp tiếp theo). Nếu hàm chi phí phụ thuộc vào các lớp kích hoạt khác ngoài lớp đầu ra, việc sao lưu ngược sẽ không hợp lệ vì ý tưởng "lừa ngược" không còn hoạt động. z i jajizji

Ngoài ra, các chức năng kích hoạt được yêu cầu phải có đầu ra cho tất cả . Do đó, các hàm chi phí này chỉ cần được xác định trong phạm vi đó (ví dụ: là hợp lệ vì chúng tôi được đảm bảo ).j 0ajL1j một L j0ajLajL0


3
Đây là trang web Hỏi & Đáp và định dạng của bài đăng này không thực sự phù hợp với điều đó. Có lẽ bạn nên đặt phần lớn nội dung vào câu trả lời và chỉ để lại câu hỏi (ví dụ: Danh sách các hàm chi phí được sử dụng trong NN là gì?).
Roger Fan

Được rồi, tốt hơn không? Tôi nghĩ rằng các định nghĩa là quan trọng nếu không các câu trả lời trở nên mơ hồ cho những người không quen thuộc với thuật ngữ mà nhà văn sử dụng.
Phylliida

Nhưng nếu một câu trả lời khác nhau sử dụng ký hiệu hoặc thuật ngữ khác nhau thì sao?
Roger Fan

3
Ý tưởng là mọi người đều sử dụng cùng một thuật ngữ ở đây và nếu nó khác nhau, chúng tôi chuyển đổi nó thành cái này, vì vậy các câu trả lời "phù hợp" với nhau. Nhưng tôi cho rằng tôi có thể loại bỏ mảnh đó nếu bạn không nghĩ nó hữu ích.
Phylliida

1
Tôi chỉ nghĩ rằng chi tiết câu hỏi đi vào không thực sự cần thiết hoặc có liên quan. Có vẻ hơi quá mức và hạn chế, nhưng đó chỉ là tôi.
Roger Fan

Câu trả lời:


85

Đây là những người tôi hiểu cho đến nay. Hầu hết trong số này hoạt động tốt nhất khi được đưa ra các giá trị từ 0 đến 1.

Chi phí bậc hai

Còn được gọi là lỗi bình phương trung bình , khả năng tối đalỗi bình phương tổng , điều này được định nghĩa là:

CMST(W,B,Sr,Er)=0.5j(ajLEjr)2

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aCMST=(aLEr)

Chi phí entropy chéo

Còn được gọi là khả năng đăng nhập tiêu cực BernoulliEntropy nhị phân

CCE(W,B,Sr,Er)=j[Ejr ln ajL+(1Ejr) ln (1ajL)]

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aCCE=(aLEr)(1aL)(aL)

Chi phí theo cấp số nhân

Điều này đòi hỏi phải chọn một số tham số mà bạn nghĩ sẽ cung cấp cho bạn hành vi bạn muốn. Thông thường, bạn sẽ chỉ cần chơi với điều này cho đến khi mọi thứ hoạt động tốt.τ

CEXP(W,B,Sr,Er)=τ exp(1τj(ajLEjr)2)

trong đó chỉ đơn giản là tốc ký cho .exp(x)ex

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aC=2τ(aLEr)CEXP(W,B,Sr,Er)

Tôi có thể viết lại , nhưng điều đó có vẻ dư thừa. Điểm là độ dốc tính toán một vectơ và sau đó nhân nó với . C E X PCEXPCEXP

Khoảng cách Hellinger

CHD(W,B,Sr,Er)=12j(ajLEjr)2

Bạn có thể tìm hiểu thêm về điều này ở đây . Điều này cần phải có giá trị dương và giá trị lý tưởng trong khoảng từ đến . Điều này cũng đúng với các phân kỳ sau.01

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aC=aLEr2aL

Phân kỳ KullbackTHER Leibler

Còn được gọi là thông tin phân kỳ , thông tin Gain , entropy tương đối , KLIC , hoặc KL phân kỳ (Xem ở đây ).

Phân kỳ của KullbackTHER Leibler thường được ký hiệu là ,

DKL(PQ)=iP(i)lnP(i)Q(i)

nơi là một biện pháp của các thông tin bị mất khi được sử dụng để ước tính . Do đó, chúng tôi muốn đặt và , vì chúng tôi muốn đo lượng thông tin bị mất khi chúng tôi sử dụng để ước tính . Điều này cho chúng taDKL(PQ)QPP=EiQ=aLajiEji

CKL(W,B,Sr,Er)=jEjrlogEjrajL

Sự phân kỳ khác ở đây sử dụng ý tưởng này cùng thiết và .P=EiQ=aL

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aC=EraL

Tổng quát phân kỳ Kullback Rock Leibler

Từ đây .

CGKL(W,B,Sr,Er)=jEjrlogEjrajLj(Ejr)+j(ajL)

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aC=aLEraL

Khoảng cách Saito Itito Saito

Cũng từ đây .

CGKL(W,B,Sr,Er)=j(EjrajLlogEjrajL1)

Độ dốc của hàm chi phí này liên quan đến đầu ra của mạng nơ ron và một số mẫu là:r

aC=aLEr(aL)2

Trong đó . Nói cách khác, là chỉ đơn giản bằng bình phương mỗi phần tử của .((aL)2)j=ajLajL(aL)2aL


Cảm ơn bạn đã chia sẻ, bạn cũng có thể xem xét những điều sau: github.com/torch/nn/blob/master/doc/criterion.md
Yannis Assael

2
bạn có một sai lầm nhỏ trong mẫu số của đạo hàm cross-entropy, nó phải là a*(1-a)khônga*(1+a)
Amro

1
Cũng thật tuyệt khi hiển thị chức năng mất pinball để giảm thiểu số lượng lỗi thay vì lỗi trung bình. Rất được sử dụng trong các hệ thống hỗ trợ quyết định.
Ricardo Cruz

Tôi có thể xem biểu đồ cho những thứ này ở đâu?
coiso

1
Liên quan đến Hàm chi phí bậc hai, bạn cần lưu ý rằng "lỗi bình phương trung bình" "khả năng tối đa" "lỗi bình phương tổng". Các tác giả có thể sử dụng tên (không chính xác) thay thế cho nhau, nhưng chúng không giống nhau.
Jon

20

Không có danh tiếng để bình luận, nhưng có những lỗi về dấu hiệu trong 3 độ dốc cuối cùng.

Trong phân kỳ KL, này lỗi cùng dấu hiệu xuất hiện trong phân kỳ KL tổng quát.

C=jEjlog(Ej/aj)=jEjlog(Ej)Ejlog(aj)dC=jEjdlog(aj)=j(Ej/aj)dajaC=Ea

Trong khoảng cách Itakura-Saito,

C=j(Ej/aj)log(Ej/aj)1=j(Ej/aj)log(Ej)+log(aj)1dC=j(Ej/aj2)daj+dlog(aj)=j(1/aj)daj(Ej/aj2)daj=j(ajEj)/aj2dajaC=aE(a)2
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.