Learning the Number of Neurons in Deep Networks: Difference between revisions

From statwiki
Jump to navigation Jump to search
Line 15: Line 15:
='''Model Training and Model Selection'''=
='''Model Training and Model Selection'''=


In general, a deep network has L layers containing linear operations on their inputs, intertwined with activation functions. The activation function we generally use is '''Rectified Linear Units(RELU) or sigmoids'''. Suppose each layer l has $N_{l}$ neurons, and each of them has parameters $\theta={theta_{l}}_{1\leqslant{l}\leqslant{L}$
In general, a deep network has L layers containing linear operations on their inputs, intertwined with activation functions. The activation function we generally use is '''Rectified Linear Units(RELU) or sigmoids'''. Suppose each layer l has $N_{l}$ neurons, and each of them has parameters $\theta={theta_{l}}_{1\leqslant{l}\leqslant{L}}$


Given an input x, under the linear, on-linear and pooling operations, we obtain the output $\hat{y}=f(x,\theta)$, where f(*) encodes the succession of linear, non-linear and pooling operations.
Given an input x, under the linear, on-linear and pooling operations, we obtain the output $\hat{y}=f(x,\theta)$, where f(*) encodes the succession of linear, non-linear and pooling operations.

Revision as of 21:53, 21 October 2017

Introduction

Due to the availability of large-scale datasets and powerful computation, Deep Learning has made huge breakthroughs in many areas, like Language Models and Computer Vision. In deep neural networks, we need to determine the number of layers and the number of neurons in each layer, i.e, we need to determine the number of parameters, or complexity of the model. Typically, this is determined by errors manually. Currently, this is mostly achieved by manually tuning these hyper-parameters using validation data or building very deep networks. However, building a very deep model is still challenging, especially for the very large datasets, which causes a high cost on memory and speed.

In this paper, we use an approach to automatically select the number of neurons in each layer when we learn the network. Our approach introduces a group sparsity regularizer on the parameters of the network, and each group acts on the parameters of one neuron, rather than trains an initial network as as pre-processing step(training shallow or thin networks to mimic the behaviour of deep ones [Hinton et al., 2014, Romero et al., 2015]). We set those useless parameters to zero, which cancels out the effects of a particular neuron. Therefore, our approach does not need to learn a redundant network successfully and then reduce its parameters, instead, it learns the number of relevant neurons in each layer and the parameters of those neurons simultaneously.

In the experiments of several image recognition datasets, we show the effectiveness of our approach, which reduces the number of parameters by up to 80% compared to the complete model, and has no recognition accuracy loss at the same time. Actually, our approach even yields more effective and faster networks, and occupies less memory.

Related Work

The recent researches tend to build very deep networks. Building very deep networks means we need to learn more parameters, which leads to a significant cost on the memory of the equipment as well as the speed. Even though automatic model selection has developed in the past years by constructive and destructive approaches, there are some drawbacks. For constructive method, it starts a super shallow architecture, and then adds additional parameters [Bello, 1992]. A similar work that adds new layers to the initial shallow networks was successfully employed [Simonyan and Zisserman, 2014] at the process of learning. However, we know shallow networks have fewer parameters, so that it can not handle the non-linearities as effectively as the deep networks [Montufar et al., 2014], so shallow networks may easily get stuck by the bad optima. Therefore, the drawback of this method is that these networks may produce poor initializations for the later processes. For destructive method, it starts by a deep network to reduce a significant number of redundant parameters [Denil et al., 2013, Cheng et al., 2015] while keeping its behaviour unchanged. Even though this technique has shown removing the redundant parameters [LeCun et al., 1990, Hassibi et al., 1993] or the neutrons [Mozer and Smolensky, 1988, Ji et al., 1990, Reed, 1993] has little influence on the output, it requires the analysis of each parameter and neuron by network Hessian, which is very computationally expensive for large architectures. The main motivation of these works was to build a more compact network.

Particularly, building a compact network is a research focus for Convolutional Neural Networks(CNNs). Some works has proposed to decompose the filters of a pre-trained network into low-rank filters, which reduces the number of parameters [Jaderberg et al., 2014b, Denton et al., 2014, Gong et al., 2014]. The issue of this proposal is that we need to successfully train an initial deep network, since it acts as as post-processing step. [Weigend et al., 1991] and [Collins and Kohl, 2014] used direct training to develop regularizers that eliminate some of the parameters of the network. The problem is that the number of layers and neurons each layer is determined manually.

Model Training and Model Selection

In general, a deep network has L layers containing linear operations on their inputs, intertwined with activation functions. The activation function we generally use is Rectified Linear Units(RELU) or sigmoids. Suppose each layer l has $N_{l}$ neurons, and each of them has parameters $\theta={theta_{l}}_{1\leqslant{l}\leqslant{L}}$

Given an input x, under the linear, on-linear and pooling operations, we obtain the output $\hat{y}=f(x,\theta)$, where f(*) encodes the succession of linear, non-linear and pooling operations.

Experiment

Set Up

Results

Analysis on Testing

Conclusion

References