Modelling of Artificial Neural Networks for Deep Learning A few questions arose, which are related to ANN modelling.
First of all, is it possible to determine the number of hidden layers at the beginning and the ANN itself changes this number on its own to optimize the results?
Second, in a supervised training phase, an expert delivers input-result-pairs to the ANN. Will the expert usually take a look at the weights the system proposed or is it hidden / not interesting for the expert?
Third, in an unsupervised training phase, only input elements are delivered to the system. How does the system optimize the weights or it's structure if there is no result for a comparison?
Thanks in advance for some clarification and hints.
 A: 
is it possible to determine the number of hidden layers

Unfortunately not. You can think of these as the parameters of the models and you have to specify or learn them.
Determining the number of layers and nodes per layer is a hard problem (as well as finding the weights). What you typically do is trying and out then checking the results. There are some more clever ways like e.g. genetic algorithms.

self adjusting

This can be done but not in an obvious way. If you set the Network to be very large and introduce regularization by decaying the weights or penalizing high weights the Network will reduce some of the weights to zeros. This is effectively having fewer weights. As for changing the number of layers i simply don't know. This changes the whole dynamic of the net and i don't think it's possible. At least easily.

Will the expert usually take a look at the weights

You can do that. I makes sense for the first layer, i.e. the ones that are connected directly to the input. If the input has a semantic meaning, like e.g. "female" you can interpret the weight assigned to it. In convolutional neural nets this is also quite popular. The weights can there be visualizes as images, like done here http://cs231n.github.io/assets/cnnvis/filt1.jpeg

unsupervised training

If you don't have any targets you can e.g. perform a clustering. This seeks to find a pattern in the data and match the data to so called prototypes. These prototypes represent a class of data. You can look into "Self Organizing Maps".
