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".