2,091 research outputs found
Automatic differentiation in machine learning: a survey
Derivatives, mostly in the form of gradients and Hessians, are ubiquitous in
machine learning. Automatic differentiation (AD), also called algorithmic
differentiation or simply "autodiff", is a family of techniques similar to but
more general than backpropagation for efficiently and accurately evaluating
derivatives of numeric functions expressed as computer programs. AD is a small
but established field with applications in areas including computational fluid
dynamics, atmospheric sciences, and engineering design optimization. Until very
recently, the fields of machine learning and AD have largely been unaware of
each other and, in some cases, have independently discovered each other's
results. Despite its relevance, general-purpose AD has been missing from the
machine learning toolbox, a situation slowly changing with its ongoing adoption
under the names "dynamic computational graphs" and "differentiable
programming". We survey the intersection of AD and machine learning, cover
applications where AD has direct relevance, and address the main implementation
techniques. By precisely defining the main differentiation techniques and their
interrelationships, we aim to bring clarity to the usage of the terms
"autodiff", "automatic differentiation", and "symbolic differentiation" as
these are encountered more and more in machine learning settings.Comment: 43 pages, 5 figure
Concepts and Paradigms for Neuromorphic Programming
The value of neuromorphic computers depends crucially on our ability to
program them for relevant tasks. Currently, neuromorphic computers are mostly
limited to machine learning methods adapted from deep learning. However,
neuromorphic computers have potential far beyond deep learning if we can only
make use of their computational properties to harness their full power.
Neuromorphic programming will necessarily be different from conventional
programming, requiring a paradigm shift in how we think about programming in
general. The contributions of this paper are 1) a conceptual analysis of what
"programming" means in the context of neuromorphic computers and 2) an
exploration of existing programming paradigms that are promising yet overlooked
in neuromorphic computing. The goal is to expand the horizon of neuromorphic
programming methods, thereby allowing researchers to move beyond the shackles
of current methods and explore novel directions
Automated Architecture Design for Deep Neural Networks
Machine learning has made tremendous progress in recent years and received
large amounts of public attention. Though we are still far from designing a
full artificially intelligent agent, machine learning has brought us many
applications in which computers solve human learning tasks remarkably well.
Much of this progress comes from a recent trend within machine learning, called
deep learning. Deep learning models are responsible for many state-of-the-art
applications of machine learning. Despite their success, deep learning models
are hard to train, very difficult to understand, and often times so complex
that training is only possible on very large GPU clusters. Lots of work has
been done on enabling neural networks to learn efficiently. However, the design
and architecture of such neural networks is often done manually through trial
and error and expert knowledge. This thesis inspects different approaches,
existing and novel, to automate the design of deep feedforward neural networks
in an attempt to create less complex models with good performance that take
away the burden of deciding on an architecture and make it more efficient to
design and train such deep networks.Comment: Undergraduate Thesi
- …