Local normalization in Neural networks

Local normalization là một kĩ thuật tương đối mới trong neural network. Kĩ thuật này được sử dụng với ConvNN trong paper ImageNet 2012 của Hinton đã giúp giảm độ lỗi từ 1 đến 2%.

Về ý nghĩa, local normalization có thể xem là một kĩ thuật regularization cho neural network. Tuy nhiên thay vì tập trung vào thuật toán Backpropagation như nhiều kĩ thuật khác, phương pháp này trực tiếp thay đổi kiến trúc mạng. Cụ thể phương pháp này tỏ ra có hiệu quả khi sử dụng với các non-linearity không bị chặn như rectified linear unit (ReLU) vì nó ngăn không cho activation của các neuron có giá trị quá lớn so với các neuron chung quanh.

Tuy vậy, như sẽ thấy ngay sau đây, local normalization thêm vào 4 hyper-parameter cho mạng neural, làm tăng thêm gánh nặng hyper-parameter tuning vốn đã là “ác mộng” trong việc huấn luyện mạng neural. Cứ mỗi lớp normalization là có 4 hyper-parameter kèm theo.

Bài này ghi lại công thức và đạo hàm tương ứng của các thể loại local normalization. Chi tiết sẽ được viết sau, khi có dịp.

1. Local response normalization

Across maps:

\displaystyle b_{x,y}^i = \frac{a_{x,y}^i}{\displaystyle \left(k + \alpha\sum_{j=\max\left(0,i-\frac{n}{2}\right)}^{\min\left(N-1,i+\frac{n}{2}\right)}\left(a_{x,y}^j\right)^2\right)^\beta}

Same map:

\displaystyle b_{x,y}^i = \frac{a_{x,y}^i}{\displaystyle \left(k + \alpha\sum_{\left(u, v\right)=\left(\max\left(0,x-\frac{n}{2}\right), \max\left(0,y-\frac{n}{2}\right)\right)}^{\left(\min\left(S-1,x+\frac{n}{2}\right), \min\left(S-1,y+\frac{n}{2}\right)\right)}\left(a_{u,v}^i\right)^2\right)^\beta}

Đạo hàm:
Do local normalization không có tham số nào, nên ta chỉ cần tính đạo hàm của output đối với input. Tuy nhiên việc này hơi tricky vì ta phải tính hai thành phần:

  •  đạo hàm của b_{x, y}^i đối với a_{x, y}^i
  • đạo hàm của b_{x, y}^j đối với a_{x, y}^i, với b_{x, y}^j là output ở trong phạm vi neighborhood của b_{x, y}^i, và dĩ nhiên j \neq i

Ta có:

{\displaystyle \frac{\partial b_{x,y}^{i}}{\partial a_{x,y}^{i}}=\frac{1}{{\displaystyle \left(d_{x,y}^{i}\right)^{\beta}}}-2\alpha\beta a_{x,y}^{i}\frac{{\displaystyle b_{x,y}^{i}}}{d_{x,y}^{i}}}

{\displaystyle \frac{\partial b_{x,y}^{j}}{\partial a_{x,y}^{i}}=-2\alpha\beta a_{x,y}^{i}\frac{{\displaystyle b_{x,y}^{j}}}{d_{x,y}^{j}}}\quad\quad\left(j\neq i\right)

Vậy nên đạo hàm của output đối với a_{x, y}^i là tổng các đạo hàm riêng tại tất cả các vị trí trong local neighborhood của nó:

\displaystyle \frac{\partial b}{\partial a_{x,y}^i} = \displaystyle \sum_{j \in \mathcal{N}\left(i\right)}\frac{\partial b_{x,y}^j}{\partial a_{x,y}^i} = \frac{1}{\left(d_{x,y}^i\right)^\beta} - 2\alpha\beta a_{x,y}^i\sum_{j \in \mathcal{N}\left(i\right)}\frac{b_{x,y}^j}{d_{x,y}^j}

Trong đó d_{x,y}^i là kí hiệu tắt cho mẫu số trong biểu thức ban đầu:

\displaystyle d_{x,y}^{i}=k+\alpha\sum_{j=\max\left(0,i-\frac{n}{2}\right)}^{\min\left(N-1,i+\frac{n}{2}\right)}\left(a_{x,y}^{j}\right)^{2}

Trong cài đặt của thuật toán Backpropagation, ta sẽ quan tâm đến đạo hàm của hàm lỗi (tạm gọi là C) đối với input a_{x, y}^i. Sử dụng chain rule, ta có:

\begin{array}{rl} \displaystyle \frac{\partial C}{\partial a_{x,y}^{i}} & \displaystyle =\sum_{j}\frac{\partial C}{\partial b_{x,y}^{j}}\frac{\partial b_{x,y}^{j}}{\partial a_{x,y}^{i}} \\ & \displaystyle =\frac{\partial C}{\partial b_{x,y}^{i}}\frac{1}{\left(d_{x,y}^{i}\right)^{\beta}}-2\alpha\beta a_{x,y}^{i}\sum_{j}\frac{\partial C}{\partial b_{x,y}^{j}}\frac{b_{x,y}^{j}}{d_{x,y}^{j}}\end{array}

Đây là công thức cuối cùng. Công thức này viết cho trường hợp across maps, trường hợp same map hoàn toàn tương tự.

2. Local contrast normalization

Trong khi local response normalization tính correlation trong vùng neighborhood thì local contrast normalization tính variance bằng cách tính thêm mean của vùng neighborhood. Chi tiết này làm tăng đáng kể sự phức tạp của đạo hàm cũng như khi cài đặt trên máy tính

Across maps:

\displaystyle b_{x,y}^i = \frac{a_{x,y}^i}{\displaystyle \left(k + \alpha\sum_{j=\max\left(0,i-\frac{n}{2}\right)}^{\min\left(N-1,i+\frac{n}{2}\right)}\left(a_{x,y}^j - m_{x,y}^i\right)^2\right)^\beta}

Same map:

{\displaystyle b_{x,y}^{i}=\frac{a_{x,y}^{i}}{{\displaystyle \left(k+\alpha\sum_{\left(u,v\right)=\left(\max\left(0,x-\frac{n}{2}\right),\max\left(0,y-\frac{n}{2}\right)\right)}^{\left(\min\left(S-1,x+\frac{n}{2}\right),\min\left(S-1,y+\frac{n}{2}\right)\right)}\left(a_{u,v}^{i}-m_{x,y}^{i}\right)^{2}\right)^{\beta}}}}

Đạo hàm:

Tương tự như local response normalization, đạo hàm cũng gồm 2 thành phần:

{\displaystyle \frac{\partial b_{x,y}^{i}}{\partial a_{x,y}^{i}}=\frac{1}{{\displaystyle \left(d_{x,y}^{i}\right)^{\beta}}}-2\alpha\beta\left(a_{x,y}^{i}-m_{x,y}^{i}\right)\frac{{\displaystyle b_{x,y}^{i}}}{d_{x,y}^{i}}}

{\displaystyle \frac{\partial b_{x,y}^{j}}{\partial a_{x,y}^{i}}=-2\alpha\beta\left(a_{x,y}^{i}-m_{x,y}^{j}\right)\frac{{\displaystyle b_{x,y}^{j}}}{d_{x,y}^{j}}}\quad\quad\left(j\neq i\right)

Và công thức đạo hàm của hàm lỗi theo input là:

\begin{array}{rl}{\displaystyle \frac{\partial C}{\partial a_{x,y}^{i}}} & ={\displaystyle \sum_{j}\frac{\partial C}{\partial b_{x,y}^{j}}\frac{\partial b_{x,y}^{j}}{\partial a_{x,y}^{i}}}\\ & ={\displaystyle \frac{\partial C}{\partial b_{x,y}^{i}}\frac{1}{\left(d_{x,y}^{i}\right)^{\beta}}-2\alpha\beta\sum_{j}\left(a_{x,y}^{i}-m_{x,y}^{j}\right)\frac{\partial C}{\partial b_{x,y}^{j}}\frac{b_{x,y}^{j}}{d_{x,y}^{j}}}\end{array}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s