-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathforward.r
More file actions
36 lines (33 loc) · 1009 Bytes
/
Copy pathforward.r
File metadata and controls
36 lines (33 loc) · 1009 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
forward <- function(stack, data, mode, nit){
numLayers = ncol(stack)
numcases = nrow(data)
orgData = data
if (strcmp(mode, 'deterministic')){
for (i in 1:numLayers){
hidbiases = stack[[i]]$hidbiases
hidbias = repmat(hidbiases,numcases,1)
#obtain hidden probabilities
poshidprobs = 1/(1 + exp(-data*stack[[i]]$vishid - hidbias))
#obtain hidden states
hidStates = round(poshidprobs)
data = hidStates
}
posteriorProbs = poshidprobs
}
else{ #mode equals 'stochastic'
probs = zeros(nrow(data), nit)
for (i in 1:nit){
data = orgData
for (j in 1:numLayers){
hidbiases = stack[[j]]$hidbiases
hidbias = repmat(hidbiases,numcases,1)
poshidprobs = 1/(1 + exp(-data*stack[[j]]$vishid - hidbias))
hidStates = as.integer(poshidprobs > rand(dim(poshidprobs)))
data = hidStates
}
probs[, i] = poshidprobs
}
posteriorProbs = mean(probs,2)
}
return(posteriotProbs)
}