Deep Learning: Special Architectures ©  Fabian M. Suchanek
Overview 2 ->Deep-learning Special architectures     Convolutional neural networks     Graph Convolutional Networks     Recurrent neural networks     Encoder‐decoders
Def: Filter filter  is a matrix with an odd number of columns and an odd number of rows.  Filtering  a matrix   with a   filter   is the process of computing a matrix   with -1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 Filter: 1 (Here,   is the Hadamard product, which multiplies each matrix entry point-wise with the corresponding other matrix entry, yielding a matrix of the same size.   creates a sub‐matrix, padding with the closest values from   if necessary. The sum runs over all entries of the matrix.) 3
Filters Filters are commonly used in image processing to pre‐process an image: •  detect boundaries (as below) •  blur an image •  increase the contrast •  etc. They can be generalized to work on matrices of any dimension (1, 2, 3, ...). 0 0 0 0  1 1 1 1 0 0  1 1 1 1  0 0 0 0  1 1 1 1  0 0 0 0 0 0  1 1 1 1 0 0 0  1 1   0  0 0 0  1 1  0 0-1-1 0 0  1 1  0 0-1-1 0 0 0 0  1 1   0  0 0 -1 0 1 Our example filter detects vertical boundaries Filters were usually designed manually. Neural Networks can learn them! 4
Neural Networks and Filters 0 0 0 0  1 1 1 1 -1 0 1 1 Filter  Neural Networks can apply a filter to a one-dimensional matrix as illustrated here, if its first hidden layer has one perceptron per input: • each perceptron is connected    to 3 neighboring inputs (modulo    the borders) •  the weights are given by  ,    and are the  same for all    perceptrons •  the bias is 0, the activation    function is  5
Neural Networks and Filters Neural Networks can apply a filter to a one-dimensional matrix as illustrated here, if its first hidden layer has one perceptron per input: 0 0 0 0  1 1 1 1 1 Filter  • each perceptron is connected    to 3 neighboring inputs (modulo    the borders) •  the weights are given by  ,    and are the  same for all    perceptrons •  the bias is 0, the activation    function is  0 0 0 1 0 0 0 6
Neural Networks and Filters Neural Networks can apply a filter to a higher dimensional matrix analogously to the one‐dimensional case. 0 0 0 0  1 1 1 1 Filter  0 0  1 1 1 1  0 0 0 0 0 0  1 1 1 1 The weights are given by  The input is a vector as always, but arranged in a matrix filter plane  (also: feature map) has one perceptron per input, each connected to neighboring inputs. 7
Neural Networks and Filters Neural Networks can apply a filter to a higher dimensional matrix analogously to the one‐dimensional case. 0 0 0  0  1 1 1 1 Filter  0 0 1   1 1 1  0 0 0 0 0  0  1 1 1 1 Each connected to 9 inputs, with weights given by  -1 0 1 -2 0 1 -1 0 1 Intuition: each perceptron is connected to its “perception field”. The input is a vector as always, but arranged in a matrix 8
convolutional layer  of a FNN is a layer that consists of several filter planes. Each plane has a weight vector  , which is used for all of its perceptrons. Each filter plane will learn its own weights (= its filter). More planes will allow more filters to be learned. 0 0 0  0  1 1 1 1 0 0 1   1 1 1  0 0 0 0 0  0  1 1 1 1 Def: Convolutional Layer 9 Filters are great to spot invariants, i.e., patterns that occur in several places of the input.
Convolutional Layer convolutional layer  of a FNN is a layer that consists of several filter planes. Each plane has a weight vector  , which is used for all of its perceptrons. Each filter plane will learn its own weights (= its filter). More planes will allow more filters to be learned. Convolutional layers can also take their input from a hidden layer. 10
A convolutional layer is thus a layer with a special architecture and shared weights across all perceptrons in a filter plane. This reduces the complexity of the network, because there are less free variables than in an FFNN. Different filter planes will learn to detect different features of the input. The number of filter planes per layer is a hyperparameter to be chosen. Convolutional Layer 11
pooling layer  (also: subsampling layer) of width    is a neural network layer that has one perceptron for each non-overlapping   square of perceptrons of the preceding layer. This perceptron computes the maximum or the average of these   perceptrons. Pooling makes the following layer much smaller than the preceding one. The functions of the pooling perceptrons are fixed, and are not learned. Def: Pooling Layer 12
convolutional neural network  (CNN) is a FNN with convolutional layers, usually followed by pooling layers and fully connected layers. Def: Convolutional Neural Network [Aphex34] 13
The GoogleNet is a convolutional neural network for image recognition. CNN Example 14 [Leonardo Araujo dos Santos: Artificial Intelligence] >RNN
Overview 15 Special architectures     Convolutional neural networks     Graph Convolutional Networks     Recurrent neural networks     Encoder‐decoders ->Deep-learning
Graphs with Recursive Properties 16 In some graphs, the properties of one node depend on the properties of the neighboring nodes •  a Web page is popular if popular pages link to it (PageRank) •  a disambiguation is correct if its neighboring disambiguations are •  a variable is true if certain variables in certain logical formulae are true •  a user’s interest is influenced by the interests of their friends How can we compute the properties of a node, if they depend recursively on the properties of the other nodes?
Basic Idea 17 Every node   in the graph has a feature vector  .
Basic Idea 18 Every node   in the graph has a feature vector  . We update every vector   by replacing it by the average of its neighboring vectors and itself:  (where   are the neighbors of node  ).
Basic Idea 19 Every node   in the graph has a feature vector  . We update every vector   by replacing it by the average of its neighboring vectors and itself:  (where   are the neighbors of node  ).
Basic Idea in Matrix Form 20 A B C           2,1  3,0           1,3 5,1 6,4 4,3            1,1,0  1,1,1            0,1,1                    “sum of neighbors” The update can be written as  , where •    is the   matrix of stacked feature vectors (one row per node) •    is the   adjacency matrix, where the diagonal is set to 1 •    is the diagonal matrix that contains for each node the number     of incoming links in   replaces each entry   of   by  .
Basic Idea in Matrix Form 21 The update can be written as  , where •    is the   matrix of stacked feature vectors (one row per node) •    is the   adjacency matrix, where the diagonal is set to 1 •    is the diagonal matrix that contains for each node the number     of incoming links in   replaces each entry   of   by  . A B C               ½,0,0  0,3,0               0,0,½ -1 5,1 6,4 4,3 2½, ½ 2, 1.3    2,1½  
Basic Idea as CNN 22 The update can be computed by a convolutional neural network of two layers, where each graph node becomes   feature nodes, and is connected to its neighbors on the lower level. The values of the upper layer are given by  ), where   is the activation function. Lower layer Upper layer
Graph Convolutional Network 23 Given a graph  , where each node   has a feature vector , a  Graph Convolutional Network  (GCN) is a neural network with  nodes on each layer, whose activations on layer   are given by , where  , and   are defined as before. ... additional normalization
Overview 24 ->Deep-learning Special architectures     Convolutional neural networks     Graph Convolutional Networks     Recurrent neural networks     Encoder‐decoders
If the input to a network is a text (= a sequence of words = a sequence of embedding vectors), we have to compress the input vectors into a single vector. The easiest way to do this is to average the input vectors: This may not be the best way, though... Dealing with input sequences 25 Input: Elvis loves Priscilla Embeddings:    average of the input vectors
recurrent neural network  (RNN) is a neural network that works on a sequence of input vectors  , yielding a sequence of outputs  . In an RNN, a perceptron can receive as input the activation that another perceptron computed for the previous  . Def: Recurrent Neural Networks Very simple RNN with only one layer 26
recurrent neural network  (RNN) is a neural network that works on a sequence of input vectors  , yielding a sequence of outputs  . In an RNN, a perceptron can receive as input the activation that another perceptron computed for the previous  . Recurrent Neural Networks More concisely, with weight matrices   : 27
RNN example 28 RNNs can be used for Machine Translation: Used by Google Translate. [Sutskever et al. 2014, Bahdanau et al. 2014, Luong and Manning 2016] [Richard Socher: CS224n: Natural Language Processing with Deep Learning] >LSTM
long short term network  (LSTM) is a RNN of the following form: LSTM Networks Colah’s blog: Understanding LSTM Networks