Reputation: 95
I'm working with data scientists who would like to gain insight and understanding of the neural network models that they train using the visual interfaces in Azure Machine Learning Studio/Service. Is it possible to dump out and inspect the internal representation of a neural network model? Is there a way that I could write code that accesses the nodes and weights of a trained neural network in order to visualize the network as a graph structure? Or if Azure Machine Learning Studio/Service doesn't support this I'd appreciate advice on a different machine learning framework that might be more appropriate for this kind of analysis.
Things I have tried:
I'm new to the Azure Machine Learning landscape, and could use some help with how to get started on how to access this data.
Upvotes: 2
Views: 323
Reputation: 620
Quote from Azure ML Exam reference:
By default, the architecture of neural networks is limited to a single hidden layer with sigmoid as the activation function and softmax in the last layer. You can change this in the properties of the model, opening the Hidden layer specification dropdown list, and selecting a Custom definition script. A text box will appear in which you will be able to insert a Net# script. This script language allows you to define neural networks architectures.
For instance, if you want to create a two layer network, you may put the following code.
input Picture [28, 28];
hidden H1 [200] from Picture all;
hidden H2 [200] from H1 all;
output Result [10] softmax from H2 all;
Nevertheless, with Net# you will face certain limitations as, it does not accept regularization (neither L2 nor dropout). Also, there is no ReLU activation that are commonly used in deep learning due to their benefits in backpropagation. You cannot modify the batch size of the Stochastic Gradient Descent (SGD). Besides that, you cannot use other optimization algorithms. You can use SGD with momentum, but not others like Adam, or RMSprop. You cannot define recurrent or recursive neural networks.
Another great tool is CNTK (Cognitive Toolkit) that allows you defining your computational graph and create a fully customizable model. Quote from documentation
It is a Microsoft open source deep learning toolkit. Like other deep learning tools, CNTK is based on the construction of computational graphs and their optimization using automatic differentiation. The toolkit is highly optimized and scales efficiently (from CPU, to GPU, to multiple machines). CNTK is also very portable and flexible; you can use it with programming languages like Python, C#, or C++, but you can also use a model description language called BrainScript.
Upvotes: 0