Zacznij terazZacznij za darmo

Jednowarstwowe sieci neuronowe

Aby swobodnie pracować z sieciami neuronowymi, warto zacząć od prostego przybliżenia funkcji.

Wytrenuj sieć neuronową, która przybliży odwzorowanie między wartością wejściową x a wyjściową y. Łączy je funkcja pierwiastka kwadratowego, czyli \(y = \sqrt{x}\).

Wektor wejściowy x jest już dostępny w środowisku. Najpierw oblicz pierwiastek kwadratowy z x za pomocą funkcji sqrt() z biblioteki NumPy, tworząc wyjściową serię y. Następnie zbuduj prostą sieć neuronową i wytrenuj ją na serii x.

Po zakończeniu treningu narysuj wykres zarówno serii y, jak i wartości przewidywanych przez sieć, aby zobaczyć, jak dobrze sieć przybliża funkcję pierwiastka kwadratowego.

Obiekty Sequential i Dense z biblioteki Keras są już dostępne w twoim środowisku.

To ćwiczenie jest częścią kursu

Ilościowe zarządzanie ryzykiem w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz wyjściowe wartości treningowe, korzystając z funkcji sqrt() z biblioteki NumPy.
  • Zbuduj sieć neuronową z jedną warstwą ukrytą złożoną z 16 neuronów, jedną wartością wejściową i jedną wartością wyjściową.
  • Skompiluj sieć neuronową i dopasuj ją do wartości treningowych przez 100 epok.
  • Narysuj wykres wartości treningowych (kolorem niebieskim) na tle wartości przewidywanych przez sieć neuronową.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Create the training values from the square root function
y = np.____(x)

# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))

# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)

## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()
Edytuj i uruchom kod