Dieser Artikel ist eine leicht verständliche Ausgabe von ** Deep Learning von Grund auf neu. Kapitel 7 Lerntechniken **. Ich konnte es selbst verstehen, also hoffe ich, dass Sie es bequem lesen können. Ich würde mich auch sehr freuen, wenn Sie sich beim Studium dieses Buches darauf beziehen könnten.
Hyperparameter sind Parameter, die von der menschlichen Kraft festgelegt werden müssen, die beim Erstellen eines neuronalen Netzwerks erforderlich ist. Zum Beispiel die Anzahl der Schichten und die Anzahl der Neuronen.
Dieser Hyperparameter hat einen großen Einfluss auf die Leistung des neuronalen Netzwerks, daher möchte ich ihn definitiv optimieren, aber es ist sehr schwierig für die menschliche Kraft. Daher überlasse ich dies der Maschine und versuche, es zu implementieren, um automatisch den optimalen Wert des Hyperparameters zu finden.
Einfach ausgedrückt verwenden wir Zufallswerte als Hyperparameter, um die Lernergebnisse zu messen und den optimalen Wertebereich aus den Ergebnissen einzugrenzen.
#Hyper-Parameter-Tuning
from sklearn.model_selection import train_test_split
def hayper_tyning(lr_m, lr_d, wd_m, wd_d, x_train, t_train, sanpule = 2):
lr_list = []
wd_list = []
x_train = x_train[:500]
t_train = t_train[:500]#Weil es viel Zeit braucht
(train_x, hayper_x, train_t, hayper_t) = train_test_split(x_train, t_train, test_size=0.2, random_state=0)
for i in range(sanpule):
train_acc_list = []
test_acc_list = []
lr = 10 ** np.random.uniform(lr_d, lr_m)
weight_decay_lambda = 10 ** np.random.uniform(wd_d, wd_m)
lr_list.append(lr)
wd_list.append(weight_decay_lambda)
network = MutiLayerNet(input_size = 784, hiden_size_list = [50], output_size = 10, weight_decay_lambda = weight_decay_lambda)
for i in range(1, 101):
grads = network.gradient(train_x, train_t)
for p in ['W1','b1','W2','b2']:
network.params[p] = network.params[p] - (lr * grads[p])
if i % 100 == 0:
train_acc = network.accuracy(train_x, train_t)
test_acc = network.accuracy(hayper_x, hayper_t)
train_acc_list.append(train_acc)
test_acc_list.append(test_acc)
#Der Rest ist eine Grafik oder eine Verengung
Recommended Posts