Hot answers tagged

14

To complete the first answer that is rather graph oriented, I will write a little about deep learning on manifolds, which is quite general in terms of GDL thanks to the nature of manifolds. Note that the description of GDL through the explanation of what are DL on graphs and manifolds, in opposition to DL on euclidean domains, comes from the 2017 paper ...


6

The article Geometric deep learning: going beyond Euclidean data (by Michael M. Bronstein, Joan Bruna, Yann LeCun, Arthur Szlam, Pierre Vandergheynst) provides an overview of this relatively new sub-field of deep learning. It answers all the questions asked above (and more). If you are familiar with deep learning, graphs, linear algebra and calculus, you ...


3

You can flatten the graph into a matrix and then train it like a normal neural network input. Perhaps an adjacency graph or maybe simply a series of linear equations representing the nodes and convert it into matrix form.


3

I'm seeing recent trend of combining RNN/CNN with GNN(graph neural networks) so that both time dependency and topology are captured. I would suggest you to start by looking at DCRNN (Yaguang Li et al.), it's a strong baseline that everyone uses nowadays. Other good resources: Graph wavenet for deep spatial-temporal graph modeling (Zonghan Wu et al.) Spatio-...


3

Generally speaking a graph CNN is applied to data represented by graphs, not images. a graph is a collection of nodes and edges connecting them. an image is a 2D or 3D matrix, in which each element denotes a pixel in space If your data are just images, or something similar (e.g. some fMRI data), you usually cannot benefit from graph CNN compared with ...


2

Bioinformatics is an area that Graph Convolutional Neural Network is useful. Consider protein networks, or gene-gene networks. Surely, the biological networks can be represented as a graph. Now, you should see how GCN is useful for bioinformatics.


2

Yes, there are numerous, coming under the umbrella term Graph Neural Networks (GNN). The most common input structures accepted by these techniques are the adjacency matrix of the graph (optionally accompanied by its node feature matrix and/or edge feature matrix, if the graph has such information). A Comprehensive Survey on Graph Neural Networks, Wu et al (...


2

It's perfectly reasonable to apply 'traditional' Deep Learning approaches to try and learn an adjacency matrix (a matrix is just a vector of vectors, which can be flattened into a single output vector) but you might need a lot of training data as N gets larger. Your outputs could certainly have the form of an adjacency matrix, as you describe. Whether it's ...


2

A Comprehensive Survey on Graph Neural Networks (2019) presents a list of ConvGNN's. All of the following accept weighted graphs, and three accept those with edge weights as well: And below is a series of open source implementations of many of the above:


1

Graph neural networks, of which GCNs are a specific type, are able to handle arbitrary graphs as input. GNNs operate first over "neighborhoods" of nodes to compute individual node representations and then optionally apply a pooling function to reduce these to a single graph-level representation that can be used in classification. This means that ...


1

In spectral clustering we not find the eigenvectors of a graph (a graph is not a matrix) but the eigenvalues/eigenvectors of the Laplacian matrix related to the adjacency matrix of the graph: graph => adjacency matrix => Laplacian matrix => eigenvalues (spectrum). The adjacency matrix describes the "similarity" between two graph vertexs. ...


1

Low order/low level information refers to the most granular level of information. This is the most informative in terms of volume of information, but it can often be difficult to conceptualise for humans. High order/high level information refers to abstractions of the low level information to more intuitive but less easy to describe technically concepts. ...


1

You discovered already one solution for your problem: Zero-Padding. There are two other common possibilities: Using Recurrent NNsThis is often used at text processing, where you feed each word one after another into your model. Using Recursive NNs (I wont recommend this for your use case)This method is also frequently used in word processing, but is more ...


1

The authors of your cited paper use the term graph-based semi-supervised learning (G-SSL) to refer to semi-supervised learning techniques which take graph structured data as their input. Given their main example, the MNIST dataset, is not graph structured, they detail a method for converting the raw Euclidean data $X$ into said form (represented by its ...


1

You can use Pytorch_Geometric library for your projects. Its supports weighted GCNs. It is a rapidly evolving open-source library with easy to use syntax. It is mentioned in the landing page of Pytorch. It is the most starred Pytorch github repo for geometric deep learning. Creating a GCN model which can process graphs with weights is as simple as: import ...


1

Both study properties of a network. The literature under respective titles seems to focus on certain topics. Network analysis seems to focus on understanding the structure of a network. Centrality , modularity, assortativity etc are metrics used to study properties of networks. Key areas of research are for egs community detection, centrality measures, ...


1

Network analysis does not necessarily use deep learning techniques, while geometric deep learning (GDL) on graphs uses only deep learning techniques (that is, you train a neural network using gradient descent or other optimization methods). You can do some network analysis using GDL.


1

There are types of neural networks designed exactly for that purpose. For example, graph convolutional networks (GCN) by Thomas N. Kipf. The input to the network will be a matrix of size $N \times F$, where $N$ is the number of nodes and $F$ the number of features (for each node). You then can multiply the feature matrix with the adjacency matrix (each node ...


1

Your approach seems reasonable to me. The edges do not necessarily have to be numbers, but, if you wish, you could also encode the actions as numbers. For example, the weight of an edge could represent the "cost" of the corresponding action. If there's no natural cost associated with an action, then you can add a unit cost for each action.


1

I doubt that this problem is a good application of NN. Take a look at this https://en.wikipedia.org/wiki/Force-directed_graph_drawing. And try Graphviz if you haven't already. Drawing graphs in a meaningful way is notoriously difficult. An alternative approach would be to embed all nodes into a 2d or 3d metric space. I.e. for each node you will have ...


1

Neural networks are used to visualize high dimensional data through the use of autoencoding. It's similar to Principal Component Analysis and is regarded to perform better then PCA. Autoencoding will take your data and convert it to a 2 or 3-dimensional representation. Since you have an array of data you might want to use LSTM. You will have to make sure you ...


Only top voted, non community-wiki answers of a minimum length are eligible