Download presentation

Presentation is loading. Please wait.

Published byJayden Thyng Modified about 1 year ago

1
Soft Computing Lecture 10 Boltzmann machine

2
24.10.20052 Definition of wikipedia A Boltzmann machine is a type of stochastic recurrent neural networkstochastic recurrent neural network originally invented by Geoffrey Hinton and Terry Sejnowski.Geoffrey HintonTerry Sejnowski Boltzmann machines can be seen as the stochastic, generative counterpartstochasticgenerative of Hopfield nets.Hopfield nets They were an early example of neural networks capable of forming internal representations. Because they are very slow to simulate they are not very useful for most practical purposes. However, they are theoretically intriguing due to the biological plausibility of their training algorithm.

3
24.10.20053 Boltzmann machine, like a Hopfield net is a network of binary units withbinary an "energy" defined for the network. Unlike Hopfield nets though, Boltzmann machines only ever have units that take values of 1 or 0. The global energy, E, in a Boltzmann machine is identical to that of a Hopfield network, that is: Where: w ij is the connection weight from unit j to unit i. s i is the state (1 or 0) of unit i. θ i is the threshold of unit i.threshold Definition of BM (2)

4
24.10.20054 Thus, the difference in the global energy that results from a single unit i being 0 or 1, written ΔE i, is given by: A Boltzmann machine is made up of stochastic units.stochastic The probability, p i of the i th unit being on is given by: (The scalar T is referred to as the "temperature“scalar of the system.) Definition of BM (3)

5
24.10.20055 Definition of BM (4) Notice that temperature T plays a crucial role in the equation, and that in the course of running the network, the value of T will start high, and gradually 'cool down' to a lower value. This is a continuous function that transforms any inputs - from –infinity to +infinity - into real numbers in the interval [0, 1]. This is the logistic function, & has a characteristic sigmoid shape: So when Net = 0, e-Net = 1, because any number raised to the power 0 is 1. This true for all temperatures. So always prob(A = 1) = 1/2. I.e. if the netinput is 0, it's as likely to fire as not.

6
24.10.20056 Definition of BM (5) With very low temperatures, e.g. 0.001, if you get a little bit of positive activation, the probability it will fire goes to 1. conversely, with if it goes negative, i.e. at very low temperatures - as it approaches 0 - the Boltzmann machine becomes deterministic. Otherwise, the higher the temperature, the more it diverges from this.

7
24.10.20057 Units are divided into "visible" units, V, and "hidden" units, H. The visible units are those which receive information from the "environment", i.e. those units that receive binary state vectors for training.vectors The connections in a Boltzmann machine have three restrictions on them: (No unit has a connection with itself) ( All connections are symmetric)symmetric (Visible units have no connections between them) Definition of BM (6)

8
24.10.20058 Structure of BM

9
24.10.20059 Alternative structure of BM

10
24.10.200510 Training of BM Boltzmann machines can be viewed as a type of maximum likelihood model,maximum likelihood i.e. training involves modifying the parameters (weights) in the network to maximize the probability of the network producing the data as it was seen in the training set. In other words, the network must successfully model the probabilities of the data in the environment. There are two phases to Boltzmann machine training. One is the "positive“ phase where the visible units' states are clamped to a particular binary state vector from the training set. The other is the "negative" phase where the network is allowed to run freely, i.e. no units have their state determined by external data. A vector over the visible units is denoted V α and a vector over the hidden units is denoted as H β. The probabilities P + (S) and P − (S) represent the probability for a given state, S, in the positive and negative phases respectively. Note that this means that P + (V α ) is determined by the environment for every V α, because the visible units are set by the environment in the positive phase.

11
24.10.200511 Training of BM (2) Boltzmann machines are trained using a gradient descent algorithm,gradient descent so a given weight, w ij is changed by subtracting the partial derivativepartial derivative of a cost function with respect to the weight. The cost function used for Boltzmann machines, G, is given as: This means that the cost function is lowest when the probability of a vector in the negative phase is equivalent to the probability of the same vector in the positive phase. As well, it ensures that the most probable vectors in the data have the greatest effect on the cost

12
24.10.200512 Training of BM (3) This cost function would seem to be complicated to perform gradient descent with. Suprisingly though, the gradient with respect to a given weight, w ij, at thermal equilibrium is given by the very simple equation:thermal equilibrium Where: is the probability of units i and j both being on in the positive phase. is the probability of units i and j both being on in the negative phase.

13
24.10.200513 Training of BM (4) This result follows from the fact that at thermal equilibrium the probability of any state when the network is free-running is given by the BoltzmannBoltzmann distribution distribution (hence the name "Boltzmann machine"). A state of thermal equilibrium is crucial for this though, hence the network must be brought to thermal equilibrium before the probabilities of two units both being on are calculated. Thermal equilibrium is achieved with simulated annealing in a Boltzmann machine. It is the necessity of simulatedsimulated annealing annealing which can make training a Boltzmann machine on a digital computer a very slow process. However, this learning rule is fairly biologically plausible because the only information needed to change the weights is provided by "local" information. That is, the connection (or synapse biologically speaking) does not needsynapse information about anything other than the two neurons it connects. This is far more biologically realistic than the information needed by a connection in many other neural network training algorithms, such as backpropagation.backpropagation

14
24.10.200514 Training of BM (5) Simulated annealing (SA) is a generic probabilistic meta-algorithmprobabilisticmeta-algorithm for the global optimization problem, namely locating a good approximationglobal optimization to the global optimum of a given function in a large search space.global optimumfunctionsearch space It was independently invented by S. Kirkpatrick, C. D. Gelatt and M. P. Vecchi in 1983, and by V. Cerny in 1985. The name and inspiration come from annealing in metallurgy,annealingmetallurgy a technique involving heating and controlled cooling of a material to increase the size of its crystals and reduce their defects.crystalsdefects The heat causes the atoms to become unstuck from their initial positionsatoms (a local minimum of the internal energy) and wander randomly throughinternal energy states of higher energy; the slow cooling gives them more chances of finding configurations with lower internal energy than the initial one.

15
24.10.200515 Training of BM (6)

16
24.10.200516

17
24.10.200517 Similarity and difference of BM and Hopfield model

18
24.10.200518 Sometimes machine boltzmann are used in combination with Hopfield model and perceptron as device for find global minimum of energy function or error function correspondingly. In first case during of working (recall) state of any neuron is changed according of T (temperature) and if energy function decreases then this changing is accepted and process continues. In perceptron during of learning any weight is changed and this changing is accepted or not in according with estimation of error function. This process of changing may be executed in mixture with usual process of working or learning or after it to improve result.

19
24.10.200519

20
24.10.200520 Boltzmann Machine Simulator /****************************************************************************** ========================================== Network: Boltzmann Machine with Simulated Annealing ========================================== Application: Optimization Traveling Salesman Problem void InitializeApplication(NET* Net) { INT n1,n2; REAL x1,x2,y1,y2; REAL Alpha1, Alpha2; Gamma = 7; for (n1=0; n1

21
24.10.200521 void CalculateWeights(NET* Net) { INT n1,n2,n3,n4; INT i,j; INT Pred_n3, Succ_n3; REAL Weight; for (n1=0; n1

22
24.10.200522 void PropagateUnit(NET* Net, INT i) { INT j; REAL Sum, Probability; Sum = 0; for (j=0; j Units; j++) { Sum += Net->Weight[i][j] * Net->Output[j]; } Sum -= Net->Threshold[i]; Probability = 1 / (1 + exp(-Sum / Net->Temperature)); if (RandomEqualREAL(0, 1) <= Probability) Net->Output[i] = TRUE; else Net->Output[i] = FALSE; }

23
24.10.200523 void BringToThermalEquilibrium(NET* Net) { INT n,i; for (i=0; i Units; i++) { Net->On[i] = 0; Net->Off[i] = 0; } for (n=0; n Units; n++) { PropagateUnit(Net, i = RandomEqualINT(0, Net->Units-1)); } for (n=0; n Units; n++) { PropagateUnit(Net, i = RandomEqualINT(0, Net->Units-1)); if (Net->Output[i]) Net->On[i]++; else Net->Off[i]++; } for (i=0; i Units; i++) { Net->Output[i] = Net->On[i] > Net->Off[i]; }

24
24.10.200524 void main() { NET Net; InitializeRandoms(); GenerateNetwork(&Net); InitializeApplication(&Net); CalculateWeights(&Net); SetRandom(&Net); Anneal(&Net); FinalizeApplication(&Net); } void Anneal(NET* Net) { Net->Temperature = 100; do { BringToThermalEquilibrium(Net); WriteTour(Net); Net->Temperature *= 0.99; } while (NOT ValidTour(Net)); }

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google