R ESIDUAL C ONNECTIONS E NCOURAGE I TERATIVE I NFERENCE
CIFAR Senior Fellow
Equal Contribution
A BSTRACT
Residual networks (Resnets) have become a prominent architecture in deep learning.
However, a comprehensive understanding of Resnets is still a topic of ongoing research.
A recent view argues that Resnets perform iterative reﬁnement of features.
We attempt to further expose properties of this aspect.
To this end, we study
Resnets both analytically and empirically.
We formalize the notion of iterative reﬁnement in Resnets by showing that residual connections naturally encourage features of residual blocks to move along the negative gradient of loss as we go from one block to the next.
In addition, our empirical analysis suggests that Resnets are able to perform both representation learning and iterative reﬁnement.
In general, a Resnet block tends to concentrate representation learning behavior in the ﬁrst few layers while higher layers perform iterative reﬁnement of features.
Finally we observe that sharing residual layers naively leads to representation explosion and counterintuitively, overﬁtting, and we show that simple existing strategies can help alleviating this problem.
I NTRODUCTION
Traditionally, deep neural network architectures (e.g. VGG Simonyan & Zisserman (2014), AlexNet
Krizhevsky et al.
(2012), etc.) have been compositional in nature, meaning a hidden layer applies an afﬁne transformation followed by non-linearity, with a different transformation at each layer.
However, a major problem with deep architectures has been that of vanishing and exploding gradients.
To address this problem, solutions like better activations (ReLU Nair & Hinton (2010)), weight initialization methods Glorot & Bengio (2010);
He et al.
and
normalization methods Ioffe & Szegedy (2015); Arpit et al.
(2016) have been proposed.
Nonetheless, training compositional networks deeper than 15 − 20 layers remains a challenging task.
Recently, residual networks (Resnets He et al.
(2016a)) were introduced to tackle these issues and are considered a breakthrough in deep learning because of their ability to learn very deep networks and achieve state-of-the-art performance.
Besides this, performance of Resnets are generally found to remain largely unaffected by removing individual residual blocks or shufﬂing adjacent blocks
Veit et al.
These attributes of Resnets stem from the fact that residual blocks transform representations additively instead of compositionally (like traditional deep networks).
This additive framework along with the aforementioned attributes has given rise to two school of thoughts about
Resnets– the ensemble view where they are thought to learn an exponential ensemble of shallower models Veit et al.
(2016), and the unrolled iterative estimation view Liao & Poggio (2016);
Greff et al.
(2016), where Resnet layers are thought to iteratively reﬁne representations instead of learning new ones.
While the success of Resnets may be attributed partly to both these views, our work takes steps towards achieving a deeper understanding of Resnets in terms of its iterative feature reﬁnement perspective.
Our contributions are as follows:
We study Resnets
analytically
and provide a formal view of iterative feature reﬁnement using
Taylor’s expansion, showing that for any loss function, a residual block naturally encourages representations to move along the negative gradient of the loss with respect to hidden representations.
Each residual block is therefore encouraged to take a gradient step in order to minimize the loss in the hidden representation space.
We empirically conﬁrm this by measuring the cosine between the output of a residual block and the gradient of loss with respect to the hidden representations prior to the application of the residual block.
We empirically observe that Resnet blocks can perform
both
hierarchical
representation
learn
ing (where
each block
discovers
a different representation)
and
iterative
feature reﬁnement (where
each
block improves
slightly but keeps the semantics of the representation of the previous layer).
Speciﬁcally in Resnets, lower residual blocks learn to perform representation learning, meaning that they change representations signiﬁcantly and removing these blocks can sometimes drastically hurt prediction performance.
The higher blocks on the other hand essentially learn to perform iterative inference– minimizing the loss function by moving the hidden representation along the negative gradient direction.
In the presence of shortcut connections 1 , representation learning is dominantly performed by the shortcut connection layer and most of residual blocks tend to perform iterative feature reﬁnement.
The iterative reﬁnement view suggests that deep networks can potentially leverage intensive parameter sharing for the layer performing iterative inference.
But sharing large number of residual blocks without loss of performance has not been successfully achieved yet.
Towards this end we study two ways of reusing residual blocks: 1.
Sharing residual blocks during training; 2.
Unrolling a residual block for more steps that it was trained to unroll.
We ﬁnd that training Resnet with naively shared blocks leads to bad performance.
We expose reasons for this failure and investigate a preliminary ﬁx for this problem.
B ACKGROUND AND R ELATED W ORK Residual Networks and their analysis :
Recently, several papers have investigated the behavior of Resnets (He et al., 2016a).
In (Veit et al., 2016; Littwin & Wolf, 2016), authors argue that Resnets are an ensemble of relatively shallow networks.
This is based on the unraveled view of Resnets where there exist an exponential number of paths between the input and prediction layer.
Further, observations that shufﬂing and dropping of residual blocks do not affect performance signiﬁcantly also support this claim.
Other works discuss the possibility that residual networks are approximating recurrent networks (Liao & Poggio, 2016;
Greff et al., 2016).
This view is in part supported by the observation that the mathematical formulation of Resnets bares similarity to LSTM (Hochreiter & Schmidhuber, 1997), and that successive layers cooperate and preserve the feature identity.
Resnets have also been studied from the perspective of boosting theory Huang et al.
In this work the authors propose to learn Resnets in a layerwise manner using a local classiﬁer.
Our work has critical differences compared with the aforementioned studies.
Most importantly we focus on a precise deﬁnition of iterative inference.
In particular, we show that a residual block approximate a gradient descent step in the activation space.
Our work can also be seen as relating the gap between the boosting and iterative inference interpretations since having a residual block whose output is aligned with negative gradient of loss is similar to how gradient boosting models work.
Iterative reﬁnement and weight sharing :
Humans frequently perform predictions with iterative reﬁnement based on the level of difﬁculty of the task at hand.
A leading hypothesis regarding the nature of information processing that happens in the visual cortex is that it performs fast feedforward inference (Thorpe et al., 1996) for easy stimuli or when quick response time is needed, and performs iterative reﬁnement of prediction for complex stimuli (Vanmarcke et al., 2016).
The latter is thought to be done by lateral connections within individual layers in the brain that iteratively act upon the current state of the layer to update it.
This mechanism allows the brain to make ﬁne grained predictions on complex tasks.
A characteristic attribute of this mechanism is the recursive application of the lateral connections which can be thought of as shared weights in a recurrent model.
The above views suggest that it is desirable to have deep network models that perform parameter sharing in order to make the iterative inference view complete.
I TERATIVE INFERENCE IN R ESNETS
Our goal in this section is to formalize the notion of iterative inference in Resnets.
We study the properties of representations that residual blocks tend to learn, as a result of being additive in nature, in contrast to traditional compositional networks.
Speciﬁcally, we consider Resnet architectures (see ﬁgure 1) where the ﬁrst hidden layer is a convolution layer, which is followed by L residual blocks which may or may not have shortcut connections in between residual blocks.
A residual block applied on a representation h
i transforms the representation as,
[Equation]
Consider L such residual blocks stacked on top of each other followed by a loss function.
Then, we can Taylor expand any given loss function L recursively as,
[Equation]
Here we have Taylor expanded the loss function around h L − 1 .
We can similarly expand the loss function recursively around h L − 2 and so on until h i and get,
[Equation]
Notice we have explicitly only written the ﬁrst order terms of each expansion.
The rest of the terms are absorbed in the higher order terms O ( . ) .
Further, the ﬁrst order term is a good approximation when the magnitude of F j is small enough.
In other cases, the higher order terms come into effect as well.
Thus in part, the loss equivalently minimizes the dot product between F ( h i ) and
∂ L ( h i ) ∂
h i , which can be achieved by making F ( h i ) point in the opposite half space to that of ∂ L ( h i ) ∂
h i .
In other words, h i + F ( h i ) approximately moves h i in the same half space as that of − ∂ L ( h i )
∂
h i .
The overall training criteria can then be seen as approximately minimizing the dot product between these 2 terms along a path in the h space between h i and h L such that loss gradually reduces as we take steps from h i to h L .
The above analysis is justiﬁed in practice, as Resnets’ top layers output F j has small magnitude (Greff et al., 2016), which we also report in Fig.
Given our analysis we formalize iterative inference in Resnets as moving down the energy (loss) surface.
It is also worth noting the resemblance of the function of a residual block to stochastic gradient descent.
We make a more formal argument in the appendix.
E MPIRICAL A NALYSIS
Experiments are performed on CIFAR-10 (Krizhevsky & Hinton, 2009) and CIFAR-100 (see appendix) using the original Resnet architecture He et al.
(2016b) and two other architectures that we
[Figure] [Figure]
[Figure] [Figure]
introduce for the purpose of our analysis (described below).
Our main goal is to validate that residual networks perform iterative reﬁnement as discussed above, showing its various consequences.
Speciﬁcally, we set out to empirically answer the following questions:
• Do residual blocks in Resnets behave similarly to each other or is there a distinction between blocks that perform iterative reﬁnement vs. representation learning?
• Is the cosine between ∂ L ( h i )
∂
h i and F i ( h i ) negative in residual networks?
• What kind of samples do residual blocks target?
• What happens when layers are shared in Resnets?
Resnet architectures : We use the following four architectures for our analysis:
Original Resnet-110 architecture:
This is the same architecture as used in He et al.
(2016b) starting with a 3 × 3 convolution layer with 16 ﬁlters followed by 54 residual blocks in three different stages (of 18 blocks each with 16, 32 and 64 ﬁlters respectively)
each separated by a shortcut connections ( 1 × 1 convolution layers that allow change in the hidden space dimensionality) inserted after the 18 th and 36 th residual blocks such that the 3 stages have hidden space of height-width 32 × 32 , 16 × 16 and 8 × 8 .
The model has a total of 1 , 742 , 762 parameters.
Single representation Resnet: This architecture starts with a 3 × 3 convolution layer withﬁlters.
This is followed by 10 residual blocks such that all hidden representations have the same height and width of 32 × 32 and 100 ﬁlters are used in all the convolution layers in residual blocks as well.
Avg-pooling Resnet
This architecture repeats the residual blocks of the single representation
Resnet (described above) three times such that there is a 2 × 2 average pooling layer after each set of 10 residual blocks that reduces the height and width after each stage by half.
Also, in contrast to single representation architecture, it uses 150 ﬁlters in all convolution layers.
This is followed by the classiﬁcation block as in the single representation Resnet.
It has 12 , 201 , 310 parameters.
We call this architecture the avg-pooling architecture.
We also ran experiments with max pooling instead of average pooling but do not report results because they were similar except that max pool acts more non-linearly compared with average pooling, and hence the metrics from max pooling are more similar to those from original Resnet.
Wide Resnet: This architecture starts with
a 3 ×
3 convolution layer followed by
stages
of
four residual
blocks with
and 640 number
of
ﬁlters respectively, and 3 × 3 kernel
size
in all convolution layers.
This model has a total of 45,732,842 parameters
Experimental details:
For all architectures, we use He-normal weight initialization as suggested in He et al. (2015), and biases are initialized to 0.
For residual blocks, we use
BatchNorm → ReLU → Conv → BatchNorm → ReLU → Conv as suggested in He et al.
(2016b).
The classiﬁer is composed of the following elements:
BatchNorm → ReLU → AveragePool(8,8) →
Flatten → Fully-Connected-Layer( # classes) → Softmax.
This model has 1 , 829 , 210 parameters.
For all experiments for single representation and pooling
Resnet architectures, we use SGD with momentum 0.9 and train for 200 epochs and 100 epochs (respectively) with learning rate 0 .
1 until epoch 40 , 0 .
02 until 60 , 0 .
until 80 and 0 .afterwards.
For the original Resnet we use SGD with momentum 0.9 and train for 300 epochs with learning rate 0 .
1 until epoch 80 , 0 .
until 120 , 0 .
001 until 200 , 0 .
00001 until 240 and 0 .afterwards.
We use data augmentation (horizontal ﬂipping and translation) during training of all architectures.
For the wide Resnet architecture, we train the model with with learning rate 0 .
1 until epoch 60 and 0 .
02 until 100 epochs.
Note: All experiments on CIFAR-100 are reported in the appendix.
In addition, we also record the metrics reported in sections 4.1 and 4.2 as a function of epochs (shown in the appendix due to space limitations).
The conclusions are similar to what is reported below.
4. C OSINE L OSS OF R ESIDUAL B LOCKS
In this experiment we directly validate our theoretical prediction about Resnets minimizing the dot product between gradient of loss and block output.
To this end compute the cosine loss
F i ( h i ) .
∂ L ( h i ) ∂
h i (cid:107) F i ( h i ) (cid:107) 2 (cid:107) ∂
L ( h i ) ∂
h i (cid:107) 2 .
A negative cosine loss and small F i ( . ) together suggest that F i ( . ) is reﬁning features by moving them in the half space of − ∂ L ( h i )
∂
h i , thus reducing the loss value for the corresponding data samples.
Figure 4 shows the cosine loss for CIFAR-10 on train and validation sets.
These ﬁgures show that cosine loss is consistently negative for all residual blocks but especially for the higher residual blocks.
Also, notice for deeper architectures (original Resnet and pooling
Resnet), the higher blocks achieve more negative cosine loss and are thus more iterative in nature.
Further, since the higher residual blocks make smaller changes to representation (ﬁgure 2), the ﬁrst order Taylor’s term becomes dominant and hence these blocks effectively move samples in the half space of the negative cosine loss thus reducing loss value of prediction.
This result formalizes the sense in which residual blocks perform iterative reﬁnement of features– move representations in the half space of − ∂ L ( h i ) ∂
h i .
4. R EPRESENTATION L EARNING VS . F EATURE R EFINEMENT
In this section, we are interested in investigating the behavior of residual layers in terms of representation learning vs. reﬁnement of features.
To this end, we perform the following experiments.
(cid:96) 2 ratio (cid:107) F i ( h i ) (cid:107) 2 / (cid:107) h
i (cid:107) 2 : A residual block F i ( . ) transforms representation as h
i +
=
h
i + F i
( h i ) .
For every such block in a Resnet, we measure the (cid:96) 2 ratio of (cid:107) F i
( h i ) (cid:107) 2 / (cid:107) h
i (cid:107) 2 averaged across samples.
This ratio directly shows how signiﬁcantly F i ( . ) changes the representation
h
i ; a large change can be argued to be a necessary condition for layer to perform representation learning.
Figure 2 shows the (cid:96) 2 ratio for CIFAR-10 on train and validation sets.
For single representation
Resnet
and pooling Resnet,
the
ﬁrst few residual blocks (especially
the
ﬁrst residual
block)
changes
representations signiﬁcantly
up to twice the norm of the original representation)
, while
the rest of the higher blocks are
relatively much less
signiﬁcant
and this
effect
is monotonic as
we go
to
higher
blocks.
However this
effect
is
not as drastic in the original
Resnet and
wide
Resnet architectures which
have two 1 ×
shortcut
convolution
layers, thus
adding up to a total of 3 convolution layers in the main path of the residual network
notice there
exists
only one convolution layer
in
the main path
for the
other two architectures
This suggests that
residual blocks
in
general tend
to
learn to reﬁne features
but in the
case when
the
network
lacks enough compositional layers in
the main path
lower residual blocks are forced to change representations signiﬁcantly
as a proxy for the absence of compositional layers.
Additionally, small (cid:96) 2 ratio justiﬁes ﬁrst order approximation used to derive our main result in Sec.
Effect of dropping residual layer on accuracy: We drop individual residual blocks from trained Resnets and make predictions using the rest of network on validation set.
This analysis shows the signiﬁcance of individual residual blocks towards the ﬁnal accuracy that is achieved using all the residual blocks.
Note, dropping individual residual blocks is possible because adjacent blocks operate in the same feature space.
Figure 3 shows the result of dropping individual residual blocks.
As one would expect given above analysis, dropping the ﬁrst few residual layers (especially the ﬁrst) for single representation Resnet and pooling Resnet leads to catastrophic performance drop while dropping most of the higher residual layers have minimal effect on performance.
On the other hand, performance drops are not drastic for the original Resnet and wide Resnet architecture, which is in agreement with the observations in (cid:96) 2 ratio experiments above.
In another set of experiments, we measure validation accuracy after individual residual block during the training process.
This set of experiments is achieved by plugging the classiﬁer right after each residual block in the last stage of hidden representation (i.e., after the last shortcut connection, if any).
This is shown in ﬁgure 5.
The ﬁgures show that accuracy increases very gradually when adding more residual blocks in the last stage of all architectures.
4. B ORDERLINE E XAMPLES
In this section we investigate which samples get correctly classiﬁed after the application of a residual block.
Individual residual blocks in general lead to small improvements in performance.
Intuitively, since these layers move representations minimally (as shown by previous analysis), the samples that lead to these minor accuracy jump should be near the decision boundary but getting misclassiﬁed by a slight margin.
To conﬁrm this intuition, we focus on borderline examples, deﬁned as examples that require less than 10% probability change to ﬂip prediction to, or from the correct class.
We measure loss, accuracy and entropy over borderline examples over last 5 blocks of the network using the network ﬁnal classiﬁer.
Experiment is performed on CIFAR-10 using Resnet-110 architecture.
Fig 6 shows evolution of loss and accuracy on three groups of examples: borderline examples, already correctly classiﬁed and the whole dataset.
While overall accuracy and loss remains similar across the top residual blocks, we observe that a signiﬁcant chunk of borderline examples gets corrected by the immediate next residual block.
This exposes the qualitative nature of examples that these feature reﬁnement layers focus on, which is further reinforced by the fact that entropy decreases for all considered subsets.
We also note that while train loss drops uniformly across layers, test sets loss increases after last block.
Correcting this phenomenon could lead to improved generalization in Resnets, which we leave for future work.
4. U NROLLING R ESIDUAL N ETWORK
A fundamental requirement for a procedure to be truly iterative is to apply the same function.
In this section we explore what happens when we unroll the last block of a trained residual network for more steps than it was trained for.
Our main goal is to investigate if iterative inference generalizes to more steps than it was trained on.
We focus on the same model as discussed in previous section,
Resnet-110, and unroll the last residual block for 20 extra steps.
Naively unrolling the network leads to activation explosion (we observe similar behavior in Sec. 4.5).
To control for that effect, we added a scaling factor on the output of the last residual blocks.
We hypothesize that controlling the scale limits the drift of the activation through the unrolled layer, i.e. they remains in a given neighbourhood on which the network is well behaved.
Similarly to Sec.
4.3 we track evolution of
[Figure]
[Figure]
loss and accuracy on three groups of examples: borderline examples, already correctly and the whole dataset.
Experiments are repeated 4 times, and results are averaged.
We ﬁrst investigate how unrolling blocks impact loss and accuracy.
Loss on train set improved uniformly from 0 .
0012 to 0 .
001 , while it increased on test set.
There are on average 51 borderline examples in test set 2 , on which performance is improved from 43% to 53% , which yields slight improvement in accuracy on test set.
Next we shift our attention to cosine loss.
We observe that cosine loss remains negative on the ﬁrst two steps without rescaling, and all steps after scaling.
Figure 7 shows evolution of loss and accuracy on the three groups of examples: borderline examples, already correctly classiﬁed and the whole dataset.
Cosine loss and (cid:96) 2 ratio for each block are reported in Appendix E.
To summarize, unrolling residual network to more steps than it was trained on improves both loss on train set, and maintains (in given neighbourhood) negative cosine loss on both train and test set.
4. S HARING R ESIDUAL L AYERS
Our results suggest that top residual blocks should be shareable, because they perform similar iterative reﬁnement.
We consider a shared version of Resnet-110 model, where in each stage we share all the residual blocks from the 5 th block.
All shared Resnets in this section have therefore a similar number of parameters as Resnet-38.
Contrary to (Liao & Poggio, 2016)
we observe that naively sharing the higher (iterative reﬁnement) residual blocks of a Resnets in general leads to bad performance 3 (especially for deeper Resnets).
First, we compare the unshared and shared version of Resnet-110.
The shared version uses approximately 3 times less parameters.
In Fig.
8, we report the train and validation performances of the
Resnet-110.
We observe that naively sharing parameters of the top residual blocks leads both to
[Figure] [Figure]
overﬁtting (given similar training accuracy, the shared Resnet-110 has signiﬁcantly lower validation performances) and underﬁtting (worse training accuracy than Resnet-110).
We also compared our shared model with a Resnet-38 that has a similar number of parameters and observe worse validation performances, while achieving similar training accuracy.
We notice that sharing layers make the layer activations explode during the forward propagation at initialization due to the repeated application of the same operation (Fig 8, right).
Consequently, the norm of the gradients also explodes at initialization (Fig. 8, center).
To address this issue we introduce a variant of recurrent batch normalization (Cooijmans et al., 2016), which proposes to initialize γ to 0 .
1 and unshare statistics for every step.
On top of this strategy, we also unshare γ and β parameters.
Tab.
1 shows that using our strategy alleviates explosion problem and leads to small improvement over baseline with similar number of parameters.
We also perform an ablation to study, see Figure.
9 (left), which show that all additions to naive strategy are necessary and drastically reduce the initial activation explosion.
Finally, we observe a similar trend for cosine loss, intermediate accuracy, and (cid:96) 2 ratio for the shared Resnet as for the unshared Resnet discussed in the previous Sections.
Full results are reported in Appendix D.
Unshared Batch Normalization strategy therefore mitigates this exploding activation problem.
This problem, leading to exploding gradient in our case, appears frequently in recurrent neural network.
This suggests that future unrolled Resnets should use insights from research on recurrent networks optimization, including careful initialization (Henaff et al., 2016) and parametrization changes (Hochreiter & Schmidhuber, 1997).
[Table]
C ONCLUSION
Our main contribution is formalizing the view of iterative reﬁnement in Resnets and showing analytically that residual blocks naturally encourage representations to move in the half space of negative loss gradient, thus implementing a gradient descent in the activation space (each block reduces loss and improves accuracy).
We validate theory experimentally on a wide range of Resnet architectures.
We further explored two forms of sharing blocks in Resnet.
We show that Resnet can be unrolled to more steps than it was trained on.
Next, we found that counterintuitively training residual blocks with shared blocks leads to overﬁtting.
While we propose a variant of batch normalization to mitigate it, we leave further investigation of this phenomena for future work.
We hope that our developed formal view
[Table]
and practical results, will aid analysis of other models employing iterative inference and residual connections.
A CKNOWLEDGEMENTS
We acknowledge the computing resources provided by ComputeCanada and CalculQuebec.
SJ was supported by Grant No. DI 2014/016644 from Ministry of Science and Higher Education, Poland
Appendices A F URTHER A NALYSIS A. A SIDE - EFFECT OF MOVING IN THE HALF SPACE OF − ∂ L ( h o ) ∂ h o
Let h o
=
Wx + b be the output of the ﬁrst layer (convolution) of a ResNet.
In this analysis we show that if h o moves in the half space of − ∂ L ( h o ) ∂
h o , then it is equivalent to updating the parameters of the convolution layer using a gradient update step.
To see this, consider the change in h o from updating parameters using gradient descent with step size η .
This is given by,
[Equation]
Thus, moving h o in the half space of − ∂ L ∂ h
o has the same effect as that achieved by updating the parameters W , b
using gradient descent.
Although we found this insight interesting, we don’t build upon it in this paper.
We leave this as a future work.
B A NALYSIS ON CIFAR-
Here we report the experiments as done in sections 4.2 and 4.1, for CIFAR-100 dataset.
The plots are shown in ﬁgures 10, 11 and 12.
The conclusions are same as reported in the main text for CIFAR-10.
C A NALYSIS OF INTERMEDIATE METRICS ON CIFAR-10 AND CIFAR-
Here we plot the accuracy, cosine loss and (cid:96) 2 ratio metrics corresponding to each individual residual block on validation during the training process for CIFAR-10 (ﬁgures 13, 14, 5) and CIFAR- (ﬁgures 15, 16, 17).
These plots are recorded only for the residual blocks in the last space for each architecture (this is because otherwise the dimensions of the output of the residual block and the classiﬁer will not match).
In the case of cosine loss after individual residual block, this set of experiments is achieved by plugging the classiﬁer right after each hidden representation and measuring the cosine between the gradient w.r.t.
hidden representation and the corresponding residual block’s output.
We ﬁnd that the accuracy after individual residual blocks increases gradually as we move from from lower to higher residua blocks.
Cosine loss on the other hand consistently remains negative for all architectures.
Finally (cid:96) 2 ratio tends to increase for residual blocks as training progresses.
D I TERATIVE INFERENCE IN SHARED R ESNET
In this section we extend results from Sec. 4.5.
We report cosine loss, intermediate accuracy, and (cid:96)ratio for naively shared Resnet in Fig.
19, and with unshared batch normalization in Fig. ?? .
[Figure]
[Figure] [Figure]
[Figure] [Figure]
[Figure] [Figure]
[Figure] [Figure]
[Figure] [Figure]
was trained on.
E U NROLLING RESIDUAL NETWORKS
In this section we report additional results for unrolling residual network.
Figure 20 shows evolution of cosine loss an (cid:96) 2 ratio for Resnet-110 with unrolled last block for 20 additional steps.