<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>First-Order Optimization (Training) Algorithms in Deep Learning</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Kharkiv National University of Radio Electronics</institution>
          ,
          <addr-line>Nauky Ave. 14, Kharkiv, 61166</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>0000</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>The use of artificial neural networks (ANN) requires solving structural and parametric identification problems corresponding to the choice of the optimal network topology and its training (parameter settings). In contrast to the problem of determining the structure, which is a discrete optimization (combinatorial), the search for optimal parameters is carried out in continuous space using some optimization methods. The most widely used optimization method in deep learning is the first-order algorithm that based on gradient descent (GD). In the given paper a comparative analysis of convolutional neural networks training algorithms that are used in tasks of image recognition is provided. Comparison of training algorithms was carried out on the Oxford17 category flower dataset with TensorFlow framework usage. Studies show that for this task a simple gradient descent algorithm is quite effective. At the same time, however, the problem of selecting the optimal values of the algorithms parameters that provide top speed of learning still remains open.</p>
      </abstract>
      <kwd-group>
        <kwd>Convolution</kwd>
        <kwd>Optimization</kwd>
        <kwd>Neural Network</kwd>
        <kwd>Algorithm</kwd>
        <kwd>Gradient</kwd>
        <kwd>Training</kwd>
        <kwd>Image Recognition</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Deep Learning is a class of Artificial Neural Network (ANN) that has many
processing layers. There is huge number of ANN architectures variants in the literature.
ANNs can be used as a very effective technology to solving a wide class of problems
[
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4 ref5">1-5</xref>
        ]. After the breakthrough result in the ImageNet classification challenge [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
different kinds of neural network, i.e. convolution NN (CNN) architectures have been
proposed and the performance is improved year by year [
        <xref ref-type="bibr" rid="ref6 ref7">6,7</xref>
        ].
      </p>
      <p>The use of ANN requires solving structural and parametric identification problems
corresponding to the choice of the optimal network topology and its training
(parameter settings). In contrast to the problem of determining the structure, which is a
discrete optimization (combinatorial), the search for optimal parameters is carried out in
continuous space using classical optimization methods. To train direct distribution
networks with a teacher, algorithms are usually used that optimize some objective
function. There are a lot of works that aim to improve ANN in different aspects
(architecture design, choice and optimization of training algorithms and so on).</p>
      <p>
        The most widely used optimization method in deep learning is the first-order
algorithm that based on gradient descent (GD). The BP algorithm is the standard training
method for ANN which uses GD. These methods can be split into the following
categories: batch gradient decent method, mini-batch gradient decent method, and
stochastic gradient decent method (SGD) [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ]. The GD method is the earliest
optimization method. It often converges with a slower speed. The batch gradient decent
method has high computational complexity for scale data.
      </p>
      <p>The using of SGDs is the predominant methodology in training deep learning
(CNN).
2</p>
    </sec>
    <sec id="sec-2">
      <title>The Structure of the Convolution Neural Network</title>
      <p>Initially, the convolution neural network structure was created taking into account the
structural features of some parts of the human brain responsible for vision. The basis
for the development of such networks is incorporated by three mechanisms:
- local perception;
- forming a set of layers in the shape of the characteristics maps (shared weights);
- sub-sampling (sub-set).</p>
      <p>Under the local perception it is understood that the input neuron receives not the
whole picture but only some part of it. This helps to keep the image configuration
during the transition from layer to layer.</p>
      <p>The idea of shared weights means that a large number of connections used a small
set of weights, i.e. each area of the image to which it is divided, will be processed by
the same set of weights. Such artificial limitation of weights improves network’s
generalization property.</p>
      <p>CNN consists of the convolution layers, sub-sampling and fully connected neural
network layers.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Convolution Neural Network Layers</title>
      <p>CNN got its name from the operator "convolution". The main purpose of convolution
in the CNN case is to extract features from the input image.</p>
      <p>Convolution keeps spatial relations among pixels, studying the features of the
image, using the small batches of the input data.</p>
      <p>Each neuron in the plane of the convolutional layer receives its inputs from the
certain region of the previous layer (local receptive field).</p>
      <p>Subsample layer zooms planes by local averaging of the neurons output values.
Subsequent layers extract more common characteristics relied upon the picture
distortion.</p>
      <p>Each convolutional layer is followed by subsampling or computational layer which
produces a reduction of the image dimension by local averaging the values of the
neurons output.</p>
      <p>The architecture of the convolution network is assumed that evidence of the
feature’s existence is more important information than its exact location. Therefore, from
a plurality of neighboring neurons in the map attributes one neuron with maximum
value is chosen to map features of smaller dimension.</p>
      <p>Difference between subsample layer and convolution layer is that in the
convolution layer neighboring neurons overlap, which does not occur in the subsampling
layer.</p>
      <p>Thus, CNN is constructed by alternating of convolution and subsampling layers. At
the output of the network several layers of fully connected neural network are usually
installed. The input for these layers is the final feature’s map. Each neuron of the
output layer is the perceptron, which has a non-linear activation function.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Training Methods of Convolution Neural Network</title>
      <p>For convolutional neural network training a standard backpropagation algorithm and
its various modifications can be used. The basis of this method is a stochastic gradient
descent algorithm (Stochastic Gradient Descent).</p>
      <p>4.1</p>
      <sec id="sec-4-1">
        <title>Training Based on Stochastic Gradient</title>
        <p>Stochastic gradient descent (SGD) and its variants are the most widely-studied
algorithms for optimization problems in machine learning and stochastic approximation.</p>
        <p>The usual gradient descent is described by the following relation</p>
        <p> (k 1)  (k)  J ( (k)),
where  – network parameter N 1 , J ( (k)) – the loss function; – training speed
parameter (learning rate).</p>
        <p>
          Algorithm (1) convergence is generally not guaranteed, but it is proved [
          <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
          ] that
in the case of a convex function J ( (k)) and under the following conditions:
(1)
(2)
 
lim (k)  0;  (k)  ;  2 (k )  ,
gradient descent process will converge.
        </p>
        <p>There are two main approaches to implementing gradient descent:
 Batch - when the training sample is viewed entirely at each iteration, and
only after this  is changed. This requires large computational cost.
 Stochastic (online) - where at each iteration of the algorithm from the
training set some (random) object is selected. Thus, the vector  is configurable
for each newly selected object.</p>
        <p>The following disadvantages are inherent to this algorithm:
 stuck in local minima and saddle points of the minimized functional.
 Slow convergence due to difficult terrain of the objective function when the
plateau regions alternate with strong nonlinearity (the derivative of the
plateau is almost zero, and sudden fall, on the contrary, can change the
parameter estimation).
 Some of the parameters are updated less often than others, especially when
in the data some informative but rare features are found. This has a bad
effect on the nuances of the network rules generalization. On the other hand,
giving too much importance to all rarely seen features can lead to
overtraining.
 Too small value of  parameter leads to slow convergence and stucking in
local minima, while too large value of  leads to "overshooting" the narrow
global minima or no divergence at all.</p>
        <p>Using the second-order methods discussed above requires calculating the Hessian
derivative matrix for each pair of parameters, and, for the Newton’s method
additionally its inverse matrix, i.e. implementation of these methods involves considerable
computing effort.</p>
        <p>
          Therefore, in practice, widespread methods are based on the stochastic gradient
method which has number of advantages [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
        </p>
        <p>Consider these methods in more detail.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Stochastic Average Gradient (SAG)</title>
        <p>
          The stochastic average gradient (SAG) algorithm [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] is a difference decrease
strategy proposed to increase the speed of convergence.
        </p>
        <p>The SAG iterations take the form
where  (k ) is the learning rate and a random index ik is selected at each iteration
during which we set.</p>
        <p>Essentially, SAG maintains in memory, the gradient with respect to each function
in the sum of functions being optimized. The gradient value of only one such function
is computed and updated in memory at each iteration. The SAG method estimates the
overall gradient at by averaging the gradient values stored in memory.</p>
        <p>However, the SAG technique can be utilized only with the smooth loss function
and a convex objective function. The SAG has better convergence comparing to the
SGD in tasks like convex linear prediction problems.</p>
        <p>4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Stochastic Variance Reduction Gradient (SVRG)</title>
        <p>
          The SVRG algorithm [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] calculates gradient %in the following way:
% 1 N gi (%),
        </p>
        <p>N</p>
        <p>i1
where %- interval update parameter. SVRG performs gradient updates by using
following equation:</p>
        <p> (k 1)  (k)  (gi (k)( (k)  gi (k)(%)  %).</p>
        <p>The gradient can be calculated up to two times during each update. After w
iterations, parameter % is updated and the next w iterations start. Through these update,
 (k 1) and the interval update parameter %will converge to the optimal   , and
then % 0 , and</p>
        <p>gi (k)( (k)  gi (k)(%)  % gi (k)( (k)  gi (k)( )  0.</p>
        <p>
          There are also many variants of such linear convergence stochastic optimization
algorithms, such as the SAGA algorithm [
          <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
          ].
        </p>
        <p>4.4</p>
      </sec>
      <sec id="sec-4-4">
        <title>Momentum</title>
        <p>
          Instead of depending on current gradient only for updating weights, the gradient
descent algorithm [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] with momentum replaces the current gradient with v(k  1) ( v
means the velocity), exponential moving average of the current and past gradients
(i.e., before the time k  1 )
        </p>
        <p> (k 1)  (k)  v(k 1);
v(k 1)   v(k)  (1 ) J ( (k),
where   0.9.</p>
        <p>Later this pulse update becomes a standard for the gradient components upgrade.
(4)
(5)
(6)
(7)
(8)
4.5</p>
      </sec>
      <sec id="sec-4-5">
        <title>NAG (Nesterov Accelerated Gradient)</title>
        <p>
          This algorithm [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] implements the idea of accumulation the pulse by using the
information on the change of each parameter in the form of an exponential moving
average
        </p>
        <p>v(k  1)   v(k)  (1  )x.</p>
        <p>The gradient algorithm accumulates target network functions
which is used during the parameters correction
v(k  1)   v(k)  J ( (k)),</p>
        <p> (k 1)  (k)  v(k).</p>
        <p>More precise correlation algorithm for NAG has the form</p>
        <p> (k 1)  (k)  v(k 1);
v(k 1)   v(k)  J ( (k)  v(k)).</p>
        <p>
          (9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
Adagrad (adaptive gradient) [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] takes into account the frequency of neurons
activation by storing for each network parameter the sum of its squares updates. It uses a
modified formula of renovation
and correction parameter is carried out according to the rule
        </p>
        <p>M{g2 (k 1)}   M{g2 (k)}  (1 )g2 (k),</p>
        <p>
G(k) 
g(k),
4.6</p>
      </sec>
      <sec id="sec-4-6">
        <title>SNM (Simplified Nesterov Momentum)</title>
        <p>
          In [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] was offer a new formulation of Nesterov momentum differing from (8) and
(9). The main difference from (8) and (9) lies in committing to the “peekedahead”
parameters (k)  (k)  (k)v(k) and backtracking by the same amount before each
update. These new parameters (k 1) updates become [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]:
        </p>
        <p>v(k 1)  (k)v(k)  (k)J ((k));
(k  1)  (k )   (k )v(k )   (k  1)v(k  1)  v(k  1) 
 (k)  (k  1) (k )v(k )  (1   (k  1)) (k ) J ((k )).
where g(k)   J ( (k); G(k) – the sum of the updates squares,  - smoothing
parameter that is required in order to avoid division by 0. The frequently updated last
parameter G(k) is large (large denominator in (17)), i.e. the parameter will change
slightly. Rarely changed parameters will change substantially. Parameter  generally
selected in range of 10-6 - 10-8.</p>
        <p>4.8</p>
      </sec>
      <sec id="sec-4-7">
        <title>RMSProp</title>
        <p>
          Disadvantage of Adagrad is that G(k) in (17) can be increased without any
limitations. As the result, after short time an update becomes too small. This leads to
paralysis of the algorithm. RMSProp and Adadelta designed to solve this problem [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ].
        </p>
        <p>Adagrad modifies parameters in such a way that the frequently updated weights are
adjusted less frequently. To do this, instead of the full sum of the updates averaged
over history gradient square is used, i.e., moving average of the following form
then instead of (17) we obtain</p>
        <p>
          M{g2(k 1)}   M{g2(k)}  (1 )g2(k),
Adadelta is a continuation Adagrad [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], which aims to avoidance of monotonic
decrease of training speed. Instead of accumulating all the gradients of the last square,
Adadelta bounds the window of collected past gradients to the fixed size.
        </p>
        <p>Adadelta is different from RMSProp because we add to the numerator (17) the
stabilizing member proportional to RMS from  (k). In step k  1 value of
RMS{ (k)}is not yet known, so the update of the parameters is implemented in
three stages instead of two: at the first stage square of the gradient is accumulated,
then  is updated. And finally RMS{ (k)}, is updated
 (k 1)   (k) </p>
        <p>RMS{ (k)}
RMS{g(k)}
g(k);
(18)
(19)
(20)
(21)
For RMSProp, Adadelta and Adagrad there is no need in very accurate choose of the
learning curve - just its approximate value is needed. Usually it is advised to start
snapping  from 0,1-1, and leave  0.9. The closer  to 1, the longer RMSProp and
Adadelta with great RMS{ (k)} will much update rarely used weights. If   1 and
RMS{ (k)}  0 , then Adadelta be longer "with a grain of salt" refers to a rarely
used weights that can lead to paralysis of the algorithm, and intentionally cause
"greedy" behavior, when the algorithm updates the first neurons that encode the best
features.</p>
        <p>4.10</p>
      </sec>
      <sec id="sec-4-8">
        <title>Adam</title>
        <p>
          Adam (Adaptive moment estimation) – another optimization algorithm. It combines
the idea of accumulation of the motion and the idea of a weaker weight updates for
typical features [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. By analogy with (6) we can obtain:
        </p>
        <p>m(k 1)  1m(k)  (1 1)g(k).</p>
        <p>
          Nesterov is different from Adam because there is no need to accumulate  , and the
gradient’s value. To obtain information about the gradient’s change in [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] it is
proposed to estimate additionally an average dispersion:
        </p>
        <p>M{  (k 1) 2}   M{  (k) 2}  (1 )  (k) 2 ;</p>
        <p>RMS{ (k )} </p>
        <p>M {  (k ) 2 }   .
(23)
(24)
(25)
(26)
v(k 1)   2v(k)  (1  2 ) g(k 1) 2 ;
 (k  1)   (k ) 
1   2 (k  1)
1  1(k  1)
m(k  1)
v(k  1)  
where 1 , 2 [0,1) , g(k) – stochastic gradient off J at  (k 1) , – step size, – a
small constant.</p>
        <p>Authors of Adam offered as defaults 1  0.9, 2  0.999,   108 and argue that
an algorithm performs better or about the same as all previous algorithms on a broad
set of datasets due to the initial calibration.</p>
        <p>4.11</p>
      </sec>
      <sec id="sec-4-9">
        <title>AdaMax</title>
        <p>
          AdaMax algorithm [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] is a Adam’s algorithm modification, wherein the dispersion is
used instead of the inertial moment of the distribution of arbitrary degree gradients p.
        </p>
        <p>
          Using the core update law of Adam [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] it can be rewritten using induction as
following
While this may lead to the calculation of volatility, in practice the case p   . It
works surprisingly well
v(k 1)   2p v(k)  (1  2p ) g(k) p .
        </p>
        <p>k
m(k 1)  (1 1) 1i g(k  i);</p>
        <p>k
v(k 1)  (1  2 )  i g 2 (k).</p>
        <p>
          2
i0
i0
It is easy to note that m(k 1) and v(k 1) are different because of the exponential
moving average utilization. In paper [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ] was extend the second moment to
highorder moment.
        </p>
        <p>4.14</p>
      </sec>
      <sec id="sec-4-10">
        <title>Nadam</title>
        <p>
          Nadam algorithm (Nesterov-accelerated Adaptive Moment Estimation) [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] is a
modification of Nesterov algorithm with pulse parameter adaptation
Another version of Adam algorithm is AMSGrad [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. This version revises the
components of the adaptive learning rate in Adam and changes it to ensure that the current
G is always greater than at the previous time step
        </p>
        <p>Gˆ (k  1)  max Gˆ (k),G(k  1);
g(k 1)  1g(k)  (1  1) J ( (k);
G(k  1)   2G(k)  (1   2 ) J ( (k)2 ;
G(k 1)   2G(k)  (1  2 )  J ( (k)2 ;
(35)
(36)
(37)
(38)
(39)
(40)
(41)
(42)
α= 0.001; β₁= 0.9; β₂ = 0.999; ε = 10⁻⁷.</p>
        <p>4.16</p>
      </sec>
      <sec id="sec-4-11">
        <title>WNGrad</title>
        <p>
          In WNGrad algorithm (weight normalization Grad) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] the method of dynamic
update of the learning rate is used in accordance with the obtained gradients
According to the numerical experiments results, WNGrad is a rival to the simple
stochastic gradient descent algorithm in terms of sustainability and generalization error
in the training of neural networks. In [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] WNGrad modifications are proposed which
use pulse (WN-Adam and WNGrad-Momentum).
Padam (Partially adaptive momentum estimation method) [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] unifies
Adam/Amsgrad and SGD with momentum by a partially adaptive parameter
        </p>
        <p>Gˆ (k 1)  max Gˆ (k), G(k 1) ,
where p (0,1 / 2] is the partially adaptive parameter (1/2 is the largest possible value
for p and a larger p will result in non-convergence in the proof). When p  0,
Padam reduces to SGD with momentum and when p  1/ 2 it is exactly Amsgrad.</p>
        <p>
          It is empirically shown in [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ] that Padam achieves the highest training speed
while generalizing just as SGD. These outcomes recommend that a developer should
get adaptive gradient methods by and by for faster adjustment of CNN weights.
4.18
        </p>
      </sec>
      <sec id="sec-4-12">
        <title>AdaShift</title>
        <p>
          The key difference between Adam and AdaShift (ADAptive learning rate method
with temporal SHIFTing) [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ] is that the latter temporally shifts the gradient g(k) for
n -step, i.e., using g(k  n) for calculating v(k) and using the kept-out n gradients,
which makes v(k) and g(k) temporally shifted and hence decorrelated:
v(k 1)   2v(k)  (1  2 ) ( g(k  n) 2 ),
where  is a function (spatial operation). There is no restriction on the choice of
 (in [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ]  ( x)  max x(i)).
        </p>
        <p>i
4.19</p>
      </sec>
      <sec id="sec-4-13">
        <title>SWATS</title>
        <p>
          SWATS (Switching from Adam to SGD) [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] is a special method that Switches from
Adam to SGD when a triggering condition is satisfied.
        </p>
        <p>
          While the focus of [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] has been on Adam, the strategy proposed is generally
applicable and can be analogously employed to other adaptive methods such as Adagrad
and RMSProp. A viable research direction includes exploring the possibility of
switching back-and-forth, as needed, from Adam to SGD.
        </p>
        <p>4.20</p>
      </sec>
      <sec id="sec-4-14">
        <title>Parallelizing SGD</title>
        <p>
          A strength of SGDs is that they are simple to implement and also fast for problems
that have many training examples. However, SGD methods have many disadvantages
(43)
(44)
(45)
[
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]. Recently, several approaches [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ][
          <xref ref-type="bibr" rid="ref31">31</xref>
          ][
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ][
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] towards an effective
parallelization of the SGD optimization have been proposed.
        </p>
        <p>
          A theoretical framework for the analysis of SGD parallelization performance has
been presented in [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. In [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] was introduced an update scheme called Hogwild that
allows performing SGD updates in parallel on CPUs. In [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] was proposed an
algorithm called weighted parallel SGD (WP-SGD). Other methods of parallelizing SGD
were introduced in [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ] [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ].
5
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Modeling</title>
      <p>
        We train and evaluate our CNN model on the Oxford17 category flower dataset [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ].
It contains 17 categories of common flowers in the UK with 80 images for each class.
Some of the pictures from the dataset are present at Figure 1.
      </p>
      <p>
        Proposed CNN based application is implemented using TensorFlow [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] and is
trained with using Nvidia GeForce-2080 GPU. Performance and accuracy of different
first-order optimization algorithms shown in Figure 2 and Figure 3. From presented
results it can be seen that the considered training methods perform differently.
Adamax, adagrad and SGD converge faster than the other methods. Performance of
Adadelta is also acceptable.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>
        A comparative analysis of gradient learning algorithms of convolutional neural
networks in solving visual recognition problem was held in this report. Studies show that
for this task quite effective is a simple gradient descent algorithm. Pulse usage in the
considered modifications led to some improvement in the recognition process, but it
also increased the computation cost. In the considered problems the most effective
algorithm is Adamax. In [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] it is recommended to always start with the Adam
optimizer, regardless of the architecture of the neural network and problem areas in which
it is used. However, in our opinion, at the decision of problems of recognition the
Adamax algorithm should be used. At the same time, however, the problem of
selecting the optimal values of the algorithms parameters that provide top speed of learning
still remains open.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgement</title>
      <p>This project has been funded with support from the European Commission. This
publication reflects the views only of the author, and the Commission cannot be held
responsible for any use which may be made of the information contained therein.</p>
      <p>Fig. 1. Example images from the Oxford flower dataset</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Goodfellow</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bengio</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Courville</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Deep learning</article-title>
          . MIT Press (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Krzhevsky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sutshever</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Hinton</surname>
          </string-name>
          , G.:
          <article-title>ImageNet classi_cation with deep convolutional neuralnetworks</article-title>
          .
          <source>In NIPS</source>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Long</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shelhamer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Darrell</surname>
          </string-name>
          , T.:
          <article-title>Fully convolutional networks for semantic segmentation</article-title>
          .
          <source>In CVPR</source>
          (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Girshick</surname>
          </string-name>
          , R.:
          <string-name>
            <surname>Fast R-CNN. In</surname>
            <given-names>ICCV</given-names>
          </string-name>
          (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Girshick</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>He</surname>
          </string-name>
          , and
          <string-name>
            <surname>Sun</surname>
          </string-name>
          , J.:
          <string-name>
            <surname>Faster</surname>
            <given-names>R-CNN</given-names>
          </string-name>
          :
          <article-title>Towards real-time object detection with region proposal networks</article-title>
          .
          <source>IEEE Trans. PAMI</source>
          ,
          <volume>39</volume>
          :
          <fpage>1137</fpage>
          -
          <lpage>1149</lpage>
          (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Optimization Algorithms for Deep Learning</article-title>
          , http://lipiji.com/docs/li2017optdl.pdf
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Tan</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          <article-title>and</article-title>
          <string-name>
            <surname>Lim</surname>
            ,
            <given-names>K.H.</given-names>
          </string-name>
          :
          <article-title>Review of second-order optimization techniques in artificial neural networks backpropagation</article-title>
          .
          <source>IOP Conf. Series: Materials Science and Engineering</source>
          <volume>495</volume>
          (
          <year>2019</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Ruder</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>An overview of gradient descent optimization Algorithms</article-title>
          , https://arxiv.org/abs/1609.04747
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Robbins</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Monro</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A stochastic approximation method</article-title>
          . Ann. Math. Stat.,
          <volume>22</volume>
          (
          <issue>3</issue>
          ), pp.
          <fpage>400</fpage>
          -
          <lpage>407</lpage>
          (
          <year>1951</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Wasan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <given-names>Stochastic</given-names>
            <surname>Approximation</surname>
          </string-name>
          . Cambridge University Press (
          <year>1969</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Oppermann</surname>
            ,
            <given-names>A.A.</given-names>
          </string-name>
          :
          <article-title>Optimization Algorithms in Deep Learning</article-title>
          , https://www.deeplearningacademy.com/p/ai
          <article-title>-wiki-optimization-algorithms</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Le</given-names>
            <surname>Roux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            and
            <surname>Bach</surname>
          </string-name>
          ,
          <string-name>
            <surname>F.</surname>
          </string-name>
          :
          <article-title>Minimizing finite sums with the stochastic average gradient</article-title>
          .
          <source>Technical report</source>
          , INRIA, hal-
          <volume>0086005</volume>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Johnson</surname>
          </string-name>
          , R. and Zhang, T.:
          <article-title>Accelerating stochastic gradient descent using predictive variance reduction</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          , pp.
          <fpage>315</fpage>
          -
          <lpage>323</lpage>
          (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Defazio</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bach</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lacoste-Julien</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>SAGA: A Fast Incremental Gradient Method With Support for Non-Strongly Convex Composite Objectives https</article-title>
          ://arXiv:
          <fpage>1407</fpage>
          .0202v3
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Polyak</surname>
            ,
            <given-names>B.T.</given-names>
          </string-name>
          :
          <article-title>Some methods of speeding up the convergence of iteration methods</article-title>
          .
          <source>USSR Computational Mathematics and Mathematical Physics</source>
          , vol.
          <volume>4</volume>
          , no.
          <issue>5</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          (
          <year>1964</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Nesterov</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>A method of solving a convex programming problem with convergence rate O(1/sqr (k))</article-title>
          .
          <source>Soviet Mathematics Doklady</source>
          ,
          <volume>27</volume>
          , pp.
          <fpage>372</fpage>
          -
          <lpage>376</lpage>
          (
          <year>1983</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Bengio</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Boulanger-Lewandowski</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pascanu</surname>
          </string-name>
          , R.:
          <article-title>Advances in optimizing recurrent networks</article-title>
          .
          <source>Proc. ICASSP</source>
          , pp.
          <fpage>8624</fpage>
          -
          <lpage>8626</lpage>
          , (
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Duchi</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hazan</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Singer</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Adaptive Subgradient Methods for Online Learning</article-title>
          and
          <string-name>
            <given-names>Stochastic</given-names>
            <surname>Optimization</surname>
          </string-name>
          .
          <source>J. of Machine Learning Research</source>
          ,
          <volume>12</volume>
          , рр.
          <fpage>2121</fpage>
          -
          <lpage>2159</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Tieleman</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hinton</surname>
          </string-name>
          ,
          <source>G.: Lecture 6</source>
          .5
          <article-title>-rmsprop: Divide the gradient by a running average of its recentmagnitude</article-title>
          .
          <source>COURSERA: Neural Networks Mach. Learn.</source>
          ,
          <volume>4</volume>
          ,
          <fpage>26</fpage>
          -
          <lpage>31</lpage>
          (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Zeiler</surname>
          </string-name>
          , M.D.:
          <article-title>ADADELTA: An Adaptive Learning Rate Method</article-title>
          , http://arxiv.org/abs/1212.57012012.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Kingma</surname>
            ,
            <given-names>D.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ba</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          :
          <article-title>Adam: a Method for Stochastic Optimization</article-title>
          .
          <source>2nd Int. Conf. Learning Representations, ICLR</source>
          <year>2014</year>
          ,
          <article-title>Banff</article-title>
          ,
          <string-name>
            <surname>AB</surname>
          </string-name>
          , Canada, pp.
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          , April 14-
          <issue>16</issue>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Dozat</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Incorporating Nesterov Momentum into Adam</article-title>
          .
          <source>Technical report</source>
          , Stanford University, Tech. Rep., (
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Jiang</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tan</surname>
            ,
            <given-names>S.Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>Y.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarkar</surname>
            ,
            <given-names>C.S.</given-names>
          </string-name>
          :
          <article-title>On Higher-order Moments in Adam</article-title>
          , https://arXiv:
          <year>1910</year>
          .06878v1
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Reddi</surname>
            ,
            <given-names>S.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kale</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kumar</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>On the convergence of adam and beyond</article-title>
          .
          <source>Int. Conf. Learning Representations (ICLR)</source>
          , Vancouver, Canada,
          <volume>23</volume>
          p., Apr -May
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Wu</surname>
            ,
            <given-names>X..</given-names>
          </string-name>
          <string-name>
            <surname>Ward</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bottou</surname>
          </string-name>
          , L.:
          <article-title>WNGrad: Learn the Learning Rate in Gradient Descent</article-title>
          , https://arXiv:
          <year>1803</year>
          .02865v1.
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gu</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          :
          <article-title>Closing the Generalization Gap of Adaptive Gradient Methods in Training Deep Neural Networks</article-title>
          , https://arXiv:
          <year>1806</year>
          .06763v1
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lu</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , Zhang,
          <string-name>
            <given-names>W.</given-names>
            ,
            <surname>Yu</surname>
          </string-name>
          <string-name>
            <surname>Y</surname>
          </string-name>
          .:
          <article-title>AdaShift: decorrelation and convergence of adaptive learning rate methods</article-title>
          , https://arXiv:
          <year>1810</year>
          .00143v4
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Keskar</surname>
            ,
            <given-names>N.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Socher</surname>
          </string-name>
          , R.:
          <article-title>Improving Generalization Performance by Switching from Adam to SGD</article-title>
          , https://arXiv:
          <fpage>1712</fpage>
          .07628v1
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Ngiam</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coates</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lahiri</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Prochnow</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Le</surname>
            ,
            <given-names>Q.V.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Ng</surname>
          </string-name>
          , A.Y.:
          <article-title>On optimization methods for deep learning</article-title>
          .
          <source>In Proc. of the 28th Int. Conf. on Machine Learning (ICML11)</source>
          , pp.
          <fpage>265</fpage>
          -
          <lpage>272</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Zinkevich</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weimer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Smola</surname>
            ,
            <given-names>A.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Parallelized stochastic gradient descent</article-title>
          .,
          <source>Advances in neural information processing systems 23 (23)</source>
          , pp.
          <fpage>2595</fpage>
          -
          <lpage>2603</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Recht</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Re</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wright</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Niu</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Hogwild: A lock-free approach to parallelizing stochastic gradient descent</article-title>
          .
          <source>In Advances in Neural Information Processing Systems</source>
          , pages
          <fpage>693</fpage>
          -
          <lpage>701</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Daninga</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shiganga</surname>
            , Li, Yunquana,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Weighted parallel SGD for distributed unbalanced-workload training system</article-title>
          , https://arXiv:
          <fpage>1708</fpage>
          .04801v1
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Keuper</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Pfreundt F</surname>
          </string-name>
          .
          <article-title>-J.: Asynchronous Parallel Stochastic Gradient Descent A Numeric Core for Scalable Distributed Machine Learning Algorithms</article-title>
          , https://arXiv:
          <year>1802</year>
          .09941v2
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>Chu</surname>
            ,
            <given-names>C.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>Y.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bradski</surname>
            ,
            <given-names>G.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ng</surname>
            ,
            <given-names>A.Y.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Olukotun</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Mapreduce for machine learning on multicore</article-title>
          .
          <source>In Proc. of Neural Information Processing Systems Conf. NIPS '06</source>
          , . MITPress, pp.
          <fpage>281</fpage>
          -
          <lpage>288</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>35. Flower Datasets, http://www.robots.ox.ac.uk/~vgg/data/flowers/</mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <surname>An</surname>
          </string-name>
          end
          <article-title>-to-end open source machine learning platform</article-title>
          , https://www.tensorflow.org/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>