Skip to content

Commit aa5c6fb

Browse files
committed
fixed
1 parent a57817d commit aa5c6fb

File tree

185 files changed

+2285
-6962
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

185 files changed

+2285
-6962
lines changed

notebooks/ch01_Introduction.ipynb

+22-16
Large diffs are not rendered by default.

notebooks/ch02_Probability_Distributions.ipynb

+97-68
Large diffs are not rendered by default.

notebooks/ch03_Linear_Models_for_Regression.ipynb

+21-21
Large diffs are not rendered by default.

notebooks/ch04_Linear_Models_for_Classfication.ipynb

+8-8
Large diffs are not rendered by default.

notebooks/ch05_Neural_Networks.ipynb

+51-54
Large diffs are not rendered by default.

notebooks/ch06_Kernel_Methods.ipynb

+10-10
Large diffs are not rendered by default.

notebooks/ch07_Sparse_Kernel_Machines.ipynb

+13-11
Large diffs are not rendered by default.

notebooks/ch09_Mixture_Models_and_EM.ipynb

+19-30
Large diffs are not rendered by default.

notebooks/ch10_Approximate_Inference.ipynb

+286-342
Large diffs are not rendered by default.

notebooks/ch11_Sampling_Methods.ipynb

+23-21
Large diffs are not rendered by default.

notebooks/ch12_Continuous_Latent_Variables.ipynb

+20-55
Large diffs are not rendered by default.

prml/__init__.py

+15-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
11
from prml import (
2-
nn
2+
clusterings,
3+
features,
4+
feature_extractions,
5+
linear,
6+
nn,
7+
rv,
8+
sampling
39
)
410

511

612
__all__ = [
7-
"nn"
13+
"clusterings",
14+
"features",
15+
"feature_extractions",
16+
"kernel",
17+
"linear",
18+
"nn",
19+
"rv",
20+
"sampling"
821
]

prml/feature_extractions/__init__.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
from .pca import PCA
2-
from .bayesian_pca import BayesianPCA
1+
from prml.feature_extractions.autoencoder import Autoencoder
2+
from prml.feature_extractions.bayesian_pca import BayesianPCA
3+
from prml.feature_extractions.pca import PCA
34

45

56
__all__ = [
6-
"PCA",
7-
"BayesianPCA"
7+
"Autoencoder",
8+
"BayesianPCA",
9+
"PCA"
810
]
+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import numpy as np
2+
from prml import nn
3+
4+
5+
class Autoencoder(nn.Network):
6+
7+
def __init__(self, *args):
8+
self.n_unit = len(args)
9+
super().__init__()
10+
for i in range(self.n_unit - 1):
11+
self.parameter[f"w_encode{i}"] = nn.Parameter(np.random.randn(args[i], args[i + 1]))
12+
self.parameter[f"b_encode{i}"] = nn.Parameter(np.zeros(args[i + 1]))
13+
self.parameter[f"w_decode{i}"] = nn.Parameter(np.random.randn(args[i + 1], args[i]))
14+
self.parameter[f"b_decode{i}"] = nn.Parameter(np.zeros(args[i]))
15+
16+
def transform(self, x):
17+
h = x
18+
for i in range(self.n_unit - 1):
19+
h = nn.tanh(h @ self.parameter[f"w_encode{i}"] + self.parameter[f"b_encode{i}"])
20+
return h.value
21+
22+
def forward(self, x):
23+
h = x
24+
for i in range(self.n_unit - 1):
25+
h = nn.tanh(h @ self.parameter[f"w_encode{i}"] + self.parameter[f"b_encode{i}"])
26+
for i in range(self.n_unit - 2, 0, -1):
27+
h = nn.tanh(h @ self.parameter[f"w_decode{i}"] + self.parameter[f"b_decode{i}"])
28+
x_ = h @ self.parameter["w_decode0"] + self.parameter["b_decode0"]
29+
self.px = nn.random.Gaussian(x_, 1., data=x)
30+
31+
def fit(self, x, n_iter=100, learning_rate=1e-3):
32+
optimizer = nn.optimizer.Adam(self.parameter, learning_rate)
33+
for _ in range(n_iter):
34+
self.clear()
35+
self.forward(x)
36+
log_likelihood = self.log_pdf()
37+
log_likelihood.backward()
38+
optimizer.update()

prml/feature_extractions/bayesian_pca.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import numpy as np
2-
from .pca import PCA
2+
from prml.feature_extractions.pca import PCA
33

44

55
class BayesianPCA(PCA):

prml/function/__init__.py

-42
This file was deleted.

prml/function/array/__init__.py

-12
This file was deleted.

prml/function/array/broadcast.py

-33
This file was deleted.

prml/function/array/flatten.py

-25
This file was deleted.

prml/function/array/reshape.py

-25
This file was deleted.

prml/function/array/split.py

-43
This file was deleted.

prml/function/function.py

-60
This file was deleted.

prml/function/math/__init__.py

-45
This file was deleted.

0 commit comments

Comments
 (0)