Giải thích về ví dụ về lý do tại sao việc chuẩn hóa hàng loạt phải được thực hiện một cách cẩn thận?


11

Tôi đã đọc bài viết chuẩn hóa hàng loạt [1] và nó có một phần trong đó là một ví dụ, cố gắng chỉ ra tại sao việc chuẩn hóa phải được thực hiện cẩn thận. Thành thật mà nói, tôi không thể hiểu được ví dụ này hoạt động như thế nào và tôi thực sự rất tò mò muốn hiểu họ viết nhiều nhất có thể. Đầu tiên hãy để tôi trích dẫn nó ở đây:

Ví dụ, hãy xem xét một lớp có u đầu vào có thêm độ lệch b đã học và bình thường hóa kết quả bằng cách trừ đi giá trị trung bình của kích hoạt được tính trên dữ liệu huấn luyện: trong đó là tập hợp các giá trị của trên tập huấn luyện và . Nếu bước giảm độ dốc bỏ qua sự phụ thuộc của vào , thì nó sẽ cập nhật , trong đó . Khi đó . Do đó, sự kết hợp của bản cập nhật lênx=u+b,X={x1. . . N}xE[x]= N i = 1 xiE[x]bbb+Δ>bx^=xE[x]x=u+b,X={x1...N}xE[x]=i=1NxiE[x]bbb+Δ>b u+(b+Δb)-E[u+(b+Δb)]=u+b-E[u+b]bΔblx^u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]b và sự thay đổi tiếp theo trong quá trình chuẩn hóa dẫn đến không có sự thay đổi nào về đầu ra của lớp và do đó, mất đi.

Tôi nghĩ rằng tôi hiểu thông điệp, rằng nếu một người không làm bình thường hóa đúng cách, nó có thể là xấu. Tôi chỉ không biết làm thế nào mà ví dụ họ đang sử dụng miêu tả này.

Tôi biết rằng thật khó để giúp đỡ ai đó nếu họ không cụ thể hơn về những gì gây nhầm lẫn cho họ vì vậy tôi sẽ cung cấp phần tiếp theo, những điều khiến tôi bối rối về lời giải thích của họ.


Tôi nghĩ rằng hầu hết những nhầm lẫn của tôi có thể là công chứng, vì vậy tôi sẽ làm rõ.

Đầu tiên, tôi nghĩ một trong những điều khiến tôi bối rối là ý nghĩa của việc các tác giả có một đơn vị trong mạng và việc kích hoạt là gì. Thông thường, tôi nghĩ về một kích hoạt như:

x(l)=a(l)=θ(z(l))=θ(w(l),x(l1)+b(l))

trong đó là các vectơ đặc trưng thô từ lớp đầu vào đầu tiên.x(0)=a(0)=x

Ngoài ra, tôi nghĩ một trong những điều đầu tiên làm tôi bối rối (vì lý do trước đó) là kịch bản họ đang cố gắng giải thích thực sự là gì. Nó nói rằng:

bình thường hóa kết quả bằng cách trừ đi giá trị trung bình của kích hoạt được tính trên dữ liệu huấn luyện: trong đóx^=xE[x]x=u+b

Tôi nghĩ điều họ đang cố gắng nói là thay vì sử dụng các kích hoạt như được tính bằng chuyển tiếp, người ta thực hiện một số loại "bình thường hóa" bằng cách trừ đi kích hoạt trung bình :x(l)=a(l)

x¯l=a¯l=1Ni=1Na¯l=1Ni=1Nx¯l

và sau đó chuyển nó sang thuật toán lan truyền ngược. Hoặc ít nhất đó là những gì sẽ có ý nghĩa với tôi.

Liên quan đến điều này, tôi đoán những gì họ gọi có thể là ? Đó là những gì tôi đoán bởi vì họ gọi nó là "đầu vào" và có phương trình (Tôi đoán họ đang sử dụng đơn vị kích hoạt tuyến tính / nhận dạng cho mạng thần kinh của họ? Có thể).x ( l )ux(l)x=u+b

Để làm tôi bối rối hơn, họ định nghĩa là một cái gì đó tỷ lệ thuận với đạo hàm riêng, nhưng đạo hàm riêng được tính với , có vẻ rất kỳ quái đối với tôi. Thông thường, các dẫn xuất một phần khi sử dụng độ dốc gốc liên quan đến các tham số của mạng. Trong trường hợp bù, tôi sẽ nghĩ:Δbx^

Δb(l)lb(l)

có ý nghĩa hơn là lấy đạo hàm đối với các kích hoạt chuẩn hóa. Tôi đã cố gắng hiểu lý do tại sao họ lại lấy đạo hàm liên quan đến và tôi nghĩ có lẽ họ đang đề cập đến đồng bằng khi họ viết kể từ đó thông thường đó là phần duy nhất của thuật toán back-prop có đạo hàm liên quan đến kích hoạt trước vì phương trình delta là:lx^lx^

δj(l)=Lzj(l)

Một điều nữa làm tôi bối rối là:

Khi đó .u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]

họ không thực sự nói những gì họ đang cố gắng tính toán trong phương trình trên nhưng tôi sẽ suy luận rằng họ đang cố gắng tính toán kích hoạt chuẩn hóa cập nhật (cho lớp đầu tiên?) sau khi được cập nhật lên ? Không chắc chắn nếu tôi mua điểm của họ bởi vì tôi nghĩ rằng phương trình chính xác nên có:b + Δ bbb+Δb

x^=θ(u+(b+Δb))E[θ(u+(b+Δb))]

không hủy sự thay đổi trong tham số . Tuy nhiên, tôi không thực sự biết họ đang làm gì nên tôi chỉ đoán thôi. Chính xác thì phương trình mà họ đã viết là gì?bΔbb

Tôi không chắc đây có phải là sự hiểu biết đúng đắn hay không nhưng tôi đã suy nghĩ một chút về ví dụ của họ. Có vẻ như ví dụ của họ không có đơn vị kích hoạt phi tuyến tính (sử dụng danh tính) và họ chỉ nói về lớp đầu vào đầu tiên? Vì họ đã bỏ qua rất nhiều chi tiết và ký hiệu không rõ ràng nên tôi không thể suy luận chính xác những gì họ đang nói. Có ai biết làm thế nào để diễn tả ví dụ này với ký hiệu diễn tả những gì đang diễn ra ở mỗi lớp không? Có ai hiểu những gì đang thực sự xảy ra với ví dụ đó và muốn chia sẻ sự khôn ngoan của họ với tôi không?


[1]: Ioffe S. và Szegedy C. (2015),
"Bình thường hóa hàng loạt: Tăng tốc đào tạo mạng lưới sâu bằng cách giảm sự thay đổi đồng biến nội bộ",
Kỷ yếu của Hội nghị quốc tế về học máy lần thứ 32 , Lille, Pháp, 2015.
Tạp chí học máy Nghiên cứu: W & CP tập 37


Tôi nghĩ rằng bản chất công chứng của đoạn đó hiện rõ ràng nhưng thông điệp mà nó đang cố gắng truyền tải và mục đích của nó thì không rõ ràng.
Charlie Parker

Câu trả lời:


3

Tôi nghĩ rằng toàn bộ điểm của đoạn này là, nếu một bước giảm độ dốc bỏ qua sự phụ thuộc của vào , việc cập nhật thuật ngữ b thiên vị sẽ dẫn đến không có thay đổi nào về đầu rabE[x]b , như được tuyên bố trong câu trước nó,

Tuy nhiên, nếu các sửa đổi này được xen kẽ với các bước tối ưu hóa, thì bước giảm độ dốc có thể cố gắng cập nhật các tham số theo cách yêu cầu chuẩn hóa phải được cập nhật, làm giảm hiệu ứng của bước gradient.

Do đó, họ đã thực hiện bước giảm độ dốc nhận thức về sự chuẩn hóa trong phương thức của họ.


Về câu hỏi của bạn

Liên quan đến điều này, tôi đoán những gì họ gọi có thể là ?ux(l)

Như đã tuyên bố trong câu đầu tiên của họ, là đầu vào của lớp. Những gì thực sự dường như không quan trọng, vì chúng chỉ minh họa hiệu ứng của trong ví dụ.uub

Tôi đã nghĩ có ý nghĩa hơn là lấy đạo hàm đối với các kích hoạt chuẩn hóa.Δblb

Chúng tôi biết , vì chúng tôi đang bỏ qua sự phụ thuộc của vào , chúng tôi có vì vậy .x^=xE[x]=u+bE[x]E[x]b

lb=lx^x^b=lx^,
Δblx^

b b + Δ bu+(b+Δb)E[u+(b+Δb)]=u+bE[u+b] họ không thực sự nói những gì họ đang cố gắng tính theo phương trình trên nhưng Tôi sẽ suy luận rằng họ đang cố gắng tính toán kích hoạt chuẩn hóa được cập nhật (cho lớp đầu tiên?) Sau khi được cập nhật thành ?bb+Δb

Nó đang tính toán sau khi được cập nhật thành , để cho thấy rằng nếu bước giảm độ dốc bỏ qua sự phụ thuộc của vào , việc cập nhật thuật ngữ thiên vị b sẽ không dẫn đến thay đổi trong đầu ra. bb+ΔbE[x]bx^bb+ΔbE[x]b


Có thể hữu ích khi xem xét một số triển khai nguồn mở của chuẩn hóa hàng loạt, ví dụ như ở LasagneKeras .

Có một câu hỏi khác có vẻ liên quan, Tại sao lại lấy độ dốc của các khoảnh khắc (trung bình và phương sai) khi sử dụng Batch Chuẩn hóa trong Mạng thần kinh?


Vì vậy, tôi đoán quan điểm của họ là họ cần phải cập nhật GD nhận thức về việc chuẩn hóa để mất thay đổi khi cập nhật sai lệch? Hay mục tiêu trung tâm của đoạn đó là gì?
Charlie Parker

@CharlieParker yep Tôi đoán vậy, để cho thấy có một lý do để làm cho cập nhật GD nhận thức được sự chuẩn hóa (IMO).
dontloo

Là E [Δb] = b? Nếu vậy, tại sao?
MichaelSB
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.