Jednovrstvé neuronové sítě
Abys získal/a jistotu při práci s neuronovými sítěmi, je dobré začít s jednoduchou aproximací funkce.
Natrénuješ neuronovou síť, která aproximuje zobrazení mezi vstupem x a výstupem y. Obě hodnoty jsou propojeny funkcí odmocniny, tedy \(y = \sqrt{x}\).
Vstupní vektor x je připravený. Nejprve vypočítáš odmocninu z x pomocí Numpy funkce sqrt(), čímž získáš výstupní řadu y. Pak vytvoříš jednoduchou neuronovou síť a natrénuješ ji na řadě x.
Po trénování vykreslíš řadu y i výstup neuronové sítě, abys viděl/a, jak přesně síť funkci odmocniny aproximuje.
Objekty Sequential a Dense z knihovny Keras jsou v pracovním prostředí k dispozici.
Toto cvičení je součástí kurzu
Kvantitativní řízení rizik v Pythonu
Pokyny k cvičení
- Vytvoř výstupní tréninkové hodnoty pomocí Numpy funkce
sqrt(). - Vytvoř neuronovou síť s jednou skrytou vrstvou o 16 neuronech, jednou vstupní hodnotou a jednou výstupní hodnotou.
- Zkompiluj neuronovou síť a natrénuj ji na tréninkových hodnotách po dobu 100 epoch.
- Vykresli tréninkové hodnoty (modrou barvou) v porovnání s hodnotami predikovanými neuronovou sítí.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()