ImageNet

GoogLeNet system

We need to go deeper

We need to go deeper:  xem reference [1] của paper

 GoogLeNet là hệ thống thắng giải ImageNet năm nay. Team vừa công bố slidespaper.

Advertisements

OverFeat released

OverFeat, the system that won ImageNet2013, can be accessed at http://cilvr.nyu.edu/doku.php?id=software%3Aoverfeat%3Astart

The paper is on arXiv: http://arxiv.org/abs/1312.6229

ImageNet 2013

Kết quả ImageNet 2013 đã được công bố ở đây.

Khác năm trước, năm nay ImageNet có thêm task localization (phải xác định bounding box). Tuy nhiên có vẻ neural network vẫn tiếp tục tỏ ra ưu thế. Các đội trong top đầu như OverFeat, Clarifai, ZF, và tất nhiên cả Toronto, đều dùng neural nets. Đặc biệt đội OverFeat của Yann LeCunn dùng convnet để dẫn đầu trong task localization.
Các đồng chí NUS (Singapore) cũng đạt kết quả khá cao trong task 2.
Các đội khác chắc sẽ publish mô hình trong thời gian tới.

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}

Neural network và object recognition: hành trình 30 năm từ MNIST đến ImageNet

Update 02/11/2012: Download the “Feature-Augmented RNN Toolkit” from MS Research.
Quotes: This tool kit implements language modeling with context-dependent recurrent neural networks (RNNs). Completely general context is supported through a user-supplied feature file.

Geoffrey Hinton là một trong những tên tuổi trong cộng đồng nghiên cứu về neural network, bên cạnh các tên tuổi khác như Yann LeCun hay Jürgen Schmidhuber… Geoffrey Hinton là một trong những người tiên phong “tái sử dụng” back-propagation để huấn luyện mạng neural và đã trở thành phương pháp kinh điển trong hơn 20 năm qua. Các đóng góp khác của Hinton có thể xem ở đây.

Ngoài lề một chút thì theo bài báo này, Hinton là cháu 4 đời của George Boole – nhà toán học nổi tiếng, tác giả của Đại số Boole và cũng là nền tảng của máy tính điện tử hiện đại. Dòng họ Hinton ở Anh cũng là dòng họ danh giá, với các tên tuổi như James Hinton (ông cố 4 đời của Geoffrey Hinton), Charles Hinton… Tuy nhiên chắc không dính dáng gì đến cô đào Paris Hilton.

Geoffrey Hinton đang dạy 1 khóa về neural network trên Coursera, và với kinh nghiệm 30 năm nghiên cứu của mình, nói quá một chút thì nghe Hinton giảng về neural network có khi cũng giống như nghe Phật dạy chân kinh. Vậy nên trong bài giảng của Hinton có thể tìm thấy vài câu kiểu như:

(more…)