Deep convolutional neural networks (DCNNs) have achieved state-of-the-art results on diverse computer vision tasks such as image classification(Krizhevsky et al., 2012; Simonyan & Zisserman, 2014; Szegedy et al., 2014), object detection (Girshick et al., 2014; Girshick, 2015; Ren et al., 2015), and semantic segmentation (Long et al., 2014). However, training such a network is very time-consuming. It usually takes weeks or even months to train an effective deep network, let alone the exploration of diverse network settings. It is very much desired for these well-trained networks to be directly adopted for other related applications with minimum retraining.
To accomplish such an ideal goal, we need to systematically study how to morph a well-trained neural network to a new one with its network function completely preserved. We call such operations network morphism. Upon completion of such morphism, the child network shall not only inherit the entire knowledge from the parent network, but also be capable of growing into a more powerful one in much shortened training time as the process continues on. This is fundamentally different from existing work related to network knowledge transferring, which either tries to mimic a parent network’s outputs (Bucilu et al., 2006; Ba & Caruana, 2014; Romero et al., 2014), or pre-trains to facilitate the convergence and/or adapt to new datasets with possible total change in network function (Simonyan & Zisserman, 2014; Oquab et al., 2014).
Mathematically, a morphism is a structure-preserving map from one mathematical structure to another (Weisstein, 2002). In the context of neural networks, network morphism refers to a parameter-transferring map from a parent network to a child network that preserves its function and outputs. Although network morphism generally does not impose constraints on the architecture of the child network, we limit the investigation of network morphism to the expanding mode, which intuitively means that the child network is deeper and/or wider than its parent network. Fig. 1
illustrates the concept of network morphism, where a variety of morphing types are demonstrated including depth morphing, width morphing, kernel size morphing, and subnet morphing. In this work, we derive network morphism equations for a successful morphing operation to follow, based on which novel network morphism algorithms can be developed for all these morphing types. The proposed algorithms work for both classic multi-layer perceptron models and convolutional neural networks. Since in the proposed network morphism it is required that the output is unchanged, a complex morphing can be decomposed into basic morphing steps, and thus can be solved easily.
Depth morphing is an important morphing type, since current top-notch neural networks are going deeper and deeper (Krizhevsky et al., 2012; Simonyan & Zisserman, 2014; Szegedy et al., 2014; He et al., 2015a)
. One heuristic approach is to embed an identity mapping layer into the parent network, which is referred as IdMorph. IdMorph is explored by a recent work(Chen et al., 2015), but is potentially problematic due to the sparsity of the identity layer, and might fail sometimes (He et al., 2015a). To overcome the issues associated with IdMorph, we introduce several practices for the morphism operation to follow, and propose a deconvolution-based algorithm for network depth morphing. This algorithm is able to asymptotically fill in all parameters with non-zero elements. In its worst case, the non-zero occupying rate of the proposed algorithm is still higher than IdMorph for an order of magnitude.
Another challenge the proposed network morphism will face is the dealing
of the non-linearity in a neural network. Even the simple IdMorph
method fails in this case, because it only works for idempotent functions111An idempotent function is defined to satisfy .
This condition passes the ReLU function but fails on most of other
commonly used activation functions, such as Sigmoid and TanH.
. This condition passes the ReLU function but fails on most of other commonly used activation functions, such as Sigmoid and TanH.. In this work, to deal with the non-linearity, we introduce the concept of parametric-activation function family, which is defined as an adjoint function family for arbitrary non-linear activation function. It can reduce the non-linear operation to a linear one with a parameter that can be learned. Therefore, the network morphism of any continuous non-linear activation neurons can be solved.
To the best of our knowledge, this is the first work about network morphism, except the recent work (Chen et al., 2015) that introduces the IdMorph. We conduct extensive experiments to show the effectiveness of the proposed network morphism learning scheme on widely used benchmark datasets for both classic and convolutional neural networks. The effectiveness of basic morphing operations are also verified. Furthermore, we show that the proposed network morphism is able to internally regularize the network, that typically leads to an improved performance. Finally, we also successfully morph the well-known 16-layered VGG net (Simonyan & Zisserman, 2014) to a better performing model, with only of the training time comparing against the training from scratch.
2 Related Work
We briefly introduce recent work related to network morphism and identify the differences from this work.
Mimic Learning. A series of work trying to mimic the teacher network with a student network have been developed, which usually need learning from scratch. For example, (Bucilu et al., 2006) tried to train a lighter network by mimicking an ensemble network. (Ba & Caruana, 2014) extended this idea, and used a shallower but wider network to mimic a deep and wide network. In (Romero et al., 2014), the authors adopted a deeper but narrower network to mimic a deep and wide network. The proposed network morphism scheme is different from these algorithms, since instead of mimicking, its goal is to make the child network directly inherit the intact knowledge (network function) from the parent network. This allows network morphism to achieve the same performance. That is why the networks are called parent and child, instead of teacher and student. Another major difference is that the child network is not learned from scratch.
Pre-training and Transfer Learning. Pre-training (Simonyan & Zisserman, 2014)
is a strategy proposed to facilitate the convergence of very deep neural networks, and transfer learning222Although transfer learning in its own concept is very general, here it is referred as a technique used for DCNNs to pre-train the model on one dataset and then adapt to another. (Simonyan & Zisserman, 2014; Oquab et al., 2014) is introduced to overcome the overfitting problem when training large neural networks on relatively small datasets. They both re-initialize the last few layers of the parent network with the other layers remaining the same (or refined in a lighter way). Their difference is that pre-training continues to train the child network on the same dataset, while transfer learning continues on a new one. However, these two strategies totally alter the parameters in the last few layers, as well as the network function.
Net2Net. Net2Net is a recent work proposed in (Chen et al., 2015). Although it targets at the same problem, there are several major differences between network morphism and Net2Net. First, the solution of Net2Net is still restricted to the IdMorph approach, while NetMorph is the first to make it possible to embed non-identity layers. Second, Net2Net’s operations only work for idempotent activation functions, while NetMorph is the first to handle arbitrary non-linear activation functions. Third, Net2Net’s discussion is limited to width and depth changes, while NetMorph studies a variety of morphing types, including depth, width, kernel size, and subnet changes. Fourth, Net2Net needs to separately consider depth and width changes, while NetMorph is able to simultaneously conduct depth, width, and kernel size morphing in a single operation.
3 Network Morphism
We shall first discuss the depth morphing in the linear case, which actually also involves with width and kernel size morphing. Then we shall describe how to deal with the non-linearities in the neural networks. Finally, we shall present the stand-alone versions for width morphing and kernel size morphing, followed by the subnet morphing.
3.1 Network Morphism: Linear Case
Let us start from the simplest case of a classic neural network. We first drop all the non-linear activation functions and consider a neural network only connected with fully connected layers.
As shown in Fig. 2, in the parent network, two hidden layers and are connected via the weight matrix :
where , , , and are the feature dimensions of and . For network morphism, we shall insert a new hidden layer , so that the child network satisfies:
where , , and . It is obvious that network morphism for classic neural networks is equivalent to a matrix decomposition problem:
Next, we consider the case of a deep convolutional neural network (DCNN). For a DCNN, the build-up blocks are convolutional layers rather than fully connected layers. Thus, we call the hidden layers as blobs, and weight matrices as filters. For a 2D DCNN, the blob
is a 3D tensor of shape, where , , and represent the number of channels, height and width of . The filters , , and are 4D tensors of shapes , , and , where , , are convolutional kernel sizes.
The convolutional operation in a DCNN can be defined in a multi-channel way:
where is the convolution operation defined in a traditional way. It is easy to derive that the filters and shall satisfy the following equation:
is a zero-padded version ofwhose effective kernel size (receptive field) is . If , we will have .
Mathematically, inner products are equivalent to multi-channel convolutions with kernel sizes of . Thus, Equation (3) is equivalent to Equation (5) with . Hence, we are able to unify them into one equation:
where is a non-communicative operator that can either be an inner product or a multi-channel convolution. We call Equation (6) as the network morphism equation (for depth in the linear case).
Although Equation (6) is primarily derived for depth morphing ( morphs into and ), it also involves network width the choice of ), and kernel sizes (the choice of and ). Thus, it will be called network morphism equation for short for the remaining of this paper.
The problem of network depth morphing is formally formulated as follows:
of shape ; , , .
of shape , of shape that satisfies Equation (6).
3.2 Network Morphism Algorithms: Linear Case
In this section, we introduce two algorithms to solve for the network morphism equation (6).
Since the solutions to Equation (6) might not be unique, we shall make the morphism operation to follow the desired practices that: 1) the parameters will contain as many non-zero elements as possible, and 2) the parameters will need to be in a consistent scale. These two practices are widely adopted in existing work, since random initialization instead of zero filling for non-convex optimization problems is preferred (Bishop, 2006), and the scale of the initializations is critical for the convergence and good performance of deep neural networks (Glorot & Bengio, 2010; He et al., 2015b).
Next, we introduce two algorithms based on deconvolution to solve the network morphism equation (6), i.e., 1) general network morphism, and 2) practical network morphism. The former one fills in all the parameters with non-zero elements under certain condition, while the latter one does not depend on such a condition but can only asymptotically fill in all parameters with non-zero elements.
3.2.1 General Network Morphism
This algorithm is proposed to solve Equation (6) under certain condition. As shown in Algorithm 1, it initializes convolution kernels and of the child network with random noises. Then we iteratively solve and by fixing the other. For each iteration, or is solved by deconvolution. Hence the overall loss is always decreasing and is expected to converge. However, it is not guaranteed that the loss in Algorithm 1 will always converge to 0.
We claim that if the parameter number of either or is no less than , Algorithm 1 shall converge to 0.
) claims that we have more unknowns than constraints, and hence it is an undetermined linear system. Since random matrices are rarely inconsistent (with probability 0), the solutions of the undetermined linear system always exist.
3.2.2 Practical Network Morphism
Next, we propose a variant of Algorithm 1 that can solve Equation (6) with a sacrifice in the non-sparse practice. This algorithm reduces the zero-converging condition to that the parameter number of either or is no less than , instead of . Since we focus on network morphism in an expanding mode, we can assume that this condition is self-justified, namely, either expands , or expands . Thus, we can claim that this algorithm solves the network morphism equation (6). As described in Algorithm 2, for the case that expands , starting from , we iteratively call Algorithm 1 and shrink the size of until the loss converges to 0. This iteration shall terminate as we are able to guarantee that if , the loss is 0. For the other case that expands , the algorithm is similar.
The sacrifice of the non-sparse practice in Algorithm 2 is illustrated in Fig. 3. In its worst case, it might not be able to fill in all parameters with non-zero elements, but still fill asymptotically. This figure compares the non-zero element occupations for IdMorph and NetMorph. We assume . In the best case (c), NetMorph is able to occupy all the elements by non-zeros, with an order of . And in the worst case (b), it has an order of non-zero elements. Generally, NetMorph lies in between the best case and worst case. IdMorph (a) only has an order of non-zeros elements. Thus the non-zero occupying rate of NetMorph is higher than IdMorph for at least one order of magnitude. In practice, we shall also have , and thus NetMorph can asymptotically fill in all parameters with non-zero elements.
3.3 Network Morphism: Non-linear Case
In the proposed network morphism it is also required to deal with the non-linearities in a neural network. In general, it is not trivial to replace the layer with two layers , where represents the non-linear activation function.
For an idempotent activation function satisfying the IdMorph scheme in Net2Net (Chen et al., 2015) is to set , and , where represents the identity mapping. Then we have
However, although IdMorph works for the ReLU activation function, it cannot be applied to other commonly used activation functions, such as Sigmoid and TanH, since the idempotent condition is not satisfied.
To handle arbitrary continuous non-linear activation functions, we propose to define the concept of P(arametric)-activation function family. A family of P-activation functions for an activation function , can be defined to be any continuous function family that maps to the linear identity transform . The P-activation function family for might not be uniquely defined. We define the canonical form for P-activation function family as follows:
where is the parameter to control the shape morphing of the activation function. We have , and . The concept of P-activation function family extends PReLU (He et al., 2015b), and the definition of PReLU coincides with the canonical form of P-activation function family for the ReLU non-linear activation unit.
The idea of leveraging P-activation function family for network morphism is shown in Fig. 4. As shown, it is safe to add the non-linear activations indicated by the green boxes, but we need to make sure that the yellow box is equivalent to a linear activation initially. This linear activation shall grow into a non-linear one once the value of has been learned. Formally, we need to replace the layer with two layers . If we set , the morphing shall be successful as long as the network morphing equation (6) is satisfied:
The value of shall be learned when we continue to train the model.
3.4 Stand-alone Width and Kernel Size Morphing
As mentioned, the network morphism equation (6) involves network depth, width, and kernel size morphing. Therefore, we can conduct width and kernel size morphing by introducing an extra depth morphing via Algorithm 2.
Sometimes, we need to pay attention to stand-alone network width and kernel size morphing operations. In this section, we introduce solutions for these situations.
3.4.1 Width Morphing
For width morphing, we assume are all parent network layers, and the target is to expand the width (channel size) of from to , . For the parent network, we have
For the child network, should be kept unchanged:
where and are the indices of the channels of the child network blob and parent network blob . is the index of the complement . Thus, we only need to satisfy:
It is obvious that we can either set or to 0, and the other can be set arbitrarily. Following the non-sparse practice, we set the one with less parameters to 0, and the other one to random noises. The zeros and random noises in and may be clustered together. To break this unwanted behavior, we perform a random permutation on , which will not change .
3.4.2 Kernel Size Morphing
For kernel size morphing, we propose a heuristic yet effective solution. Suppose that a convolutional layer has kernel size of , and we want to expand it to . When the filters of layer are padded with zeros on each side, the same operation shall also apply for the blobs. As shown in Fig. 5, the resulting blobs are of the same shape and also with the same values.
3.5 Subnet Morphing
Modern networks are going deeper and deeper. It is challenging to manually design tens of or even hundreds of layers. One elegant strategy is to first design a subnet template, and then construct the network by these subnets. Two typical examples are the mlpconv layer for Network in Network (NiN) (Lin et al., 2013) and the inception layer for GoogLeNet (Szegedy et al., 2014), as shown in Fig. 6(a).
We study the problem of subnet morphing in this section, that is, network morphism from a minimal number (typically one) of layers in the parent network to a subnet in the child network. One commonly used subnet is the stacked sequential subnet as shown in Fig. 6(c). An exmaple is the inception layer for GoogLeNet with a four-way stacking of sequential subnets.
We first describe the morphing operation for the sequential subnet, based on which its stacked version is then obtained.
Sequential subnet morphing is to morph from a single layer to multiple sequential layers, as illustrated in Fig. 6(b). Similar to Equation (6), one can derive the network morphism equation for sequential subnets from a single layer to layers:
where is a zero-padded version of . Its effective kernel size is , and is the kernel size of layer . Similar to Algorithm 1, subnet morphing equation (19) can be solved by iteratively optimizing the parameters for one layer with the parameters for the other layers fixed. We can also develop a practical version of the algorithm that can solve for Equation (19), which is similar to Algorithm 2. The algorithm details are omitted here.
For stacked sequential subnet morphing, we can follow the work flow illustrated as Fig. 6(c). First, a single layer in the parent network is split into multiple paths. The split is set to satisfy
in which the simplest case is . Then, for each path, a sequential subnet morphing can be conducted. In Fig. 6(c), we illustrate an -way stacked sequential subnet morphing, with the second path morphed into two layers.
4 Experimental Results
In this section, we conduct experiments on three datasets (MNIST, CIFAR10, and ImageNet) to show the effectiveness of the proposed network morphism scheme, on 1) different morphing operations, 2) both the classic and convolutional neural networks, and 3) both the idempotent activations (ReLU) and non-idempotent activations (TanH).
4.1 Network Morphism for Classic Neural Networks
The first experiment is conducted on the MNIST dataset (LeCun et al., 1998). MNIST is a standard dataset for handwritten digit recognition, with 60,000 training images and 10,000 testing images. In this section, instead of using state-of-the-art DCNN solutions (LeCun et al., 1998; Chang & Chen, 2015), we adopt the simple softmax regression model as the parent network to evaluate the effectiveness of network morphism on classic networks. The gray-scale digit images were flattened as a
dimension feature vector as input. The parent model achieved 92.29% accuracy, which is considered as the baseline. Then, we morphed this model into a multiple layer perception (MLP) model by adding a PReLU or PTanH hidden layer with the number of hidden neurons. Fig. 7(a) shows the performance curves of NetMorph333In the experiments, we use NetMorph to represent the proposed network morphism algorithm. and Net2Net after morphing. We can see that, for the PReLU activation, NetMorph works much better than Net2Net. NetMorph continues to improve the performance from 92% to 97%, while Net2Net improves only to 94%. We also show the curve of NetMorph with the non-idempotent activation PTanH in Fig. 7(b). The curve for Net2Net is unavailable since it cannot handle non-idempotent activations.
4.2 Depth Morphing, Subnet Morphing, and Internal Regularization for DCNN
Extensive experiments were conducted on the CIFAR10 dataset (Krizhevsky & Hinton, 2009) to verify the network morphism scheme for convolutional neural networks. CIFAR10 is an image recognition database composed of
color images. It contains 50,000 training images and 10,000 testing images for ten object categories. The baseline network we adopted is the Caffe(Jia et al., 2014) cifar10_quick model with an accuracy of 78.15%.
In the following, we use the unified notation cifar_ddd to represent a network architecture of three subnets, in which each digit d is the number of convolutional layers in the corresponding subnet. The detailed architecture of each subnet is described by (<kernel_size>:<num_output>,...). Following this notation, the cifar10_quick model, which has three convolutional layers and two fully connected layers, can be denoted as cifar_111, with its architecture described with (5:32)(5:32)(5:64). Additionally, we also use [<subnet>] to indicate the grouping of layers in a subnet, and x<times> to represent for the repetition of layers or subnets. Hence, cifar10_quick can also be denoted as (5:32)x2(5:64) or [(5:32)]x2[(5:64)]. Note that in this notation, the fully connected layers are ignored.
Fig. 8 shows the comparison results between NetMorph and Net2Net, in the morphing sequence of cifar_11121122222223333. The detailed network architectures of these networks are shown in Table 1. In this table, some layers are morphed by adding a 1x1 convolutional layer with channel size four times larger. This is a good practice adopted in the design of current state-of-the-art network (He et al., 2015a). Algorithm 2
is leveraged for the morphing. From Fig. 8(a) and (b), we can see the superiority of NetMorph over Net2Net. NetMorph improves the performance from 78.15% to 82.06%, then to 82.43%, while Net2Net from 78.15% to 81.21%, then to 81.99%. The relatively inferior performance of Net2Net may be caused by the IdMorph in Net2Net involving too many zero elements on the embedded layer, while non-zero elements are also not in a consistent scale with existing parameters. We also verified this by comparing the histograms of the embedded filters (after morphing) for both methods. The parameter scale for NetMorph fits a normal distribution with a relatively large standard derivation, while that of Net2Net shows two peaks around 0 and 0.5.
Fig. 8(c) illustrates the performance of NetMorph for subnet morphing. The architecture is morphed from cifar_222 to cifar_2222. As can be seen, NetMorph achieves additional performance improvement from 82.43% to 83.14%. Fig. 8(d) illustrates for the morphing from cifar_2222 to cifar_3333, and the performance is further improved to around 84%.
Finally, we compare NetMorph with the model directly trained from scratch (denoted as Raw) in Fig. 8. It can be seen that NetMorph consistently achieves a better accuracy than Raw. As the network goes deeper, the gap becomes larger. We interpret this phenomena as the internal regularization ability of NetMorph. In NetMorph, the parameters are learned in multiple phases rather than all at once. Deep neural networks usually involve a large amount of parameters, and overfit to the training data can occur easily. For NetMorph, the parameters learned have been placed in a good position in the parameter space. We only need to explore for a relatively small region rather than the whole parameter space. Thus, the NetMorph learning process shall result in a more regularized network to achieve better performance.
4.3 Kernel Size Morphing and Width Morphing
In this section we evaluate kernel size morphing and width morphing in the sequence of cifar_baseksizewidth. The detailed network architectures are shown in Table 1. The baseline network (cifar_base) is a narrower version of cifar_222 with an accuracy of 81.48%.
Fig. 9(a) shows the curve of kernel size morphing, which expands the kernel size of the second layer in each subnet from 1 to 3 (cifar_ksize). This results in a performance of 82.81%, which is 1.33% higher than the parent network. We further double the number of channels (width) for the first layer in each subnet (cifar_width). Fig. 9(b) shows the results of NetMorph and Net2Net. As can be seen, NetMorph is slightly better. It improves the performance to 83.09% while Net2Net dropped a little to 82.70%.
For width morphing, NetMorph works for arbitrary continuous non-linear activation functions, while Net2Net only for piece-wise linear ones. We also conducted width morphing directly from the parent network for TanH neurons, which results in about 4% accuracy improvement.
4.4 Experiment on ImageNet
We also conduct experiments on the ImageNet dataset (Russakovsky et al., 2014) with 1,000 object categories. The models were trained on 1.28 million training images and tested on 50,000 validation images. The top-1 and top-5 accuracies for both 1-view and 10-view are reported.
The proposed experiments is based on the VGG16 net, which was actually trained with multi-scales (Simonyan & Zisserman, 2014). Because the Caffe (Jia et al., 2014) implementation favors single-scale, for a fair comparison, we first de-multiscale this model by continuing to train it on the ImageNet dataset with the images resized to . This process caused about 1% performance drop. This coincides with Table 3 in (Simonyan & Zisserman, 2014) for model D. In this paper, we adopt the de-multiscaled version of the VGG16 net as the parent network to morph. The morphing operation we adopt is to add a convolutional layer at the end of the first three subsets for each. The detailed network architecture is shown in Table 2. We continue to train the child network after morphing, and the final model is denoted as VGG16(NetMorph). The results are shown in Table 3. We can see that, VGG16(NetMorph) not only outperforms its parent network, i.e, VGG16(baseline), but also outperforms the multi-scale version, i.e, VGG16(multi-scale). Since VGG16(NetMorph) is a 19-layer network, we also list the VGG19 net in Table 3 for comparison. As can be seen, VGG16(NetMorph) also outperforms VGG19 in a large margin. Note that VGG16(NetMorph) and VGG19 have different architectures, as shown in Table 2. Therefore, the proposed NetMorph scheme not only can help improve the performance, but also is an effective network architecture explorer. Further, we are able to add more layers into VGG16(NetMorph), and a better performing model shall be expected.
We compare the training time cost for the NetMorph learning scheme and the training from scratch. VGG16 was trained for around 2~3 months for a single GPU time (Simonyan & Zisserman, 2014), which does not include the pre-training time on a 11-layered network. For a deeper network, the training time shall increase. While for the 19-layered network VGG16(NetMorph), the whole morphing and training process was finished within 5 days, resulting in around 15x speedup.
In this paper, we have introduced the systematic study about network morphism. The proposed scheme is able to morph a well-trained parent network to a new child network, with the network function completely preserved. The child network has the potential to grow into a more powerful one in a short time. We introduced diverse morphing operations, and developed novel morphing algorithms based on the morphism equations we have derived. The non-linearity of a neural network has been carefully addressed, and the proposed algorithms enable the morphing of any continuous non-linear activation neurons. Extensive experiments have been carried out to demonstrate the effectiveness of the proposed network morphism scheme.
- Ba & Caruana (2014) Ba, Jimmy and Caruana, Rich. Do deep nets really need to be deep? In Advances in Neural Information Processing Systems, pp. 2654–2662, 2014.
- Bishop (2006) Bishop, Christopher M. Pattern recognition. Machine Learning, 2006.
- Bucilu et al. (2006) Bucilu, Cristian, Caruana, Rich, and Niculescu-Mizil, Alexandru. Model compression. In Proceedings of the 12th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 535–541. ACM, 2006.
- Chang & Chen (2015) Chang, Jia-Ren and Chen, Yong-Sheng. Batch-normalized maxout network in network. arXiv preprint arXiv:1511.02583, 2015.
- Chen et al. (2015) Chen, Tianqi, Goodfellow, Ian, and Shlens, Jonathon. Net2net: Accelerating learning via knowledge transfer. arXiv preprint arXiv:1511.05641, 2015.
- Girshick (2015) Girshick, Ross. Fast r-cnn. arXiv preprint arXiv:1504.08083, 2015.
- Girshick et al. (2014) Girshick, Ross, Donahue, Jeff, Darrell, Trevor, and Malik, Jagannath. Rich feature hierarchies for accurate object detection and semantic segmentation. In IEEE Conference on Computer Vision and Pattern Recognition, pp. 580–587. IEEE, 2014.
Glorot & Bengio (2010)
Glorot, Xavier and Bengio, Yoshua.
Understanding the difficulty of training deep feedforward neural
International Conference on Artificial Intelligence and Statistics, pp. 249–256, 2010.
- He et al. (2015a) He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian. Deep residual learning for image recognition. arXiv preprint arXiv:1512.03385, 2015a.
- He et al. (2015b) He, Kaiming, Zhang, Xiangyu, Ren, Shaoqing, and Sun, Jian. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. arXiv preprint arXiv:1502.01852, 2015b.
- Jia et al. (2014) Jia, Yangqing, Shelhamer, Evan, Donahue, Jeff, Karayev, Sergey, Long, Jonathan, Girshick, Ross, Guadarrama, Sergio, and Darrell, Trevor. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the ACM International Conference on Multimedia, pp. 675–678. ACM, 2014.
- Krizhevsky & Hinton (2009) Krizhevsky, Alex and Hinton, Geoffrey. Learning multiple layers of features from tiny images, 2009.
- Krizhevsky et al. (2012) Krizhevsky, Alex, Sutskever, Ilya, and Hinton, Geoffrey E. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems, pp. 1097–1105, 2012.
- LeCun et al. (1998) LeCun, Yann, Bottou, Léon, Bengio, Yoshua, and Haffner, Patrick. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11):2278–2324, 1998.
- Lin et al. (2013) Lin, Min, Chen, Qiang, and Yan, Shuicheng. Network in network. CoRR, abs/1312.4400, 2013. URL http://arxiv.org/abs/1312.4400.
- Long et al. (2014) Long, Jonathan, Shelhamer, Evan, and Darrell, Trevor. Fully convolutional networks for semantic segmentation. arXiv preprint arXiv:1411.4038, 2014.
- Oquab et al. (2014) Oquab, Maxime, Bottou, Leon, Laptev, Ivan, and Sivic, Josef. Learning and transferring mid-level image representations using convolutional neural networks. In IEEE Conference on Computer Vision and Pattern Recognition, pp. 1717–1724. IEEE, 2014.
- Ren et al. (2015) Ren, Shaoqing, He, Kaiming, Girshick, Ross, and Sun, Jian. Faster r-cnn: Towards real-time object detection with region proposal networks. In Advances in Neural Information Processing Systems, pp. 91–99, 2015.
- Romero et al. (2014) Romero, Adriana, Ballas, Nicolas, Kahou, Samira Ebrahimi, Chassang, Antoine, Gatta, Carlo, and Bengio, Yoshua. Fitnets: Hints for thin deep nets. arXiv preprint arXiv:1412.6550, 2014.
- Russakovsky et al. (2014) Russakovsky, Olga, Deng, Jia, Su, Hao, Krause, Jonathan, Satheesh, Sanjeev, Ma, Sean, Huang, Zhiheng, Karpathy, Andrej, Khosla, Aditya, Bernstein, Michael, et al. Imagenet large scale visual recognition challenge. International Journal of Computer Vision, pp. 1–42, 2014.
- Simonyan & Zisserman (2014) Simonyan, Karen and Zisserman, Andrew. Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556, 2014.
- Szegedy et al. (2014) Szegedy, Christian, Liu, Wei, Jia, Yangqing, Sermanet, Pierre, Reed, Scott, Anguelov, Dragomir, Erhan, Dumitru, Vanhoucke, Vincent, and Rabinovich, Andrew. Going deeper with convolutions. arXiv preprint arXiv:1409.4842, 2014.
- Weisstein (2002) Weisstein, Eric W. CRC concise encyclopedia of mathematics. CRC press, 2002.