Kom igångKom igång gratis

Enkellagers neurala nätverk

För att bli bekväm med neurala nätverk är det bra att börja med en enkel approximation av en funktion.

Du tränar ett neuralt nätverk för att approximera en mappning mellan ett indatavärde, x, och ett utdatavärde, y. De är relaterade via kvadratrotsfunktionen, det vill säga \(y = \sqrt{x}\).

Indatavektorn x finns redan tillgänglig. Du beräknar först kvadratroten av x med Numpys sqrt()-funktion och genererar på så sätt utdataserien y. Sedan skapar du ett enkelt neuralt nätverk och tränar det på x-serien.

Efter träningen plottar du både y-serien och nätverkets förutsagda värden, för att se hur väl nätverket approximerar kvadratrotsfunktionen.

Objekten Sequential och Dense från Keras-biblioteket finns också tillgängliga i din arbetsyta.

Den här övningen är en del av kursen

Kvantitativ riskhantering i Python

Visa kurs

Övningsinstruktioner

  • Skapa de utgående träningsvärdena med Numpys sqrt()-funktion.
  • Skapa det neurala nätverket med ett dolt lager med 16 neuroner, ett indatavärde och ett utdatavärde.
  • Kompilera och träna det neurala nätverket på träningsvärdena i 100 epoker.
  • Plotta träningsvärdena (i blått) mot nätverkets förutsagda värden.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod