Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Implementering av neurala nätverk | Grunderna i TensorFlow
Introduktion till Tensorflow

bookImplementering av neurala nätverk

Grundläggande översikt av neurala nätverk

Du har nu nått en nivå där du har den grundläggande kunskapen om TensorFlow för att själv skapa neurala nätverk. Även om de flesta neurala nätverk i verkliga tillämpningar är komplexa och vanligtvis byggs med högnivåbibliotek som Keras, kommer vi att konstruera ett grundläggande nätverk med hjälp av fundamentala TensorFlow-verktyg. Detta tillvägagångssätt ger praktisk erfarenhet av låg-nivå tensorhantering och hjälper oss att förstå de underliggande processerna.

I tidigare kurser som Introduction to Neural Networks, kanske du minns hur mycket tid och ansträngning det krävdes att bygga även ett enkelt neuralt nätverk, där varje neuron behandlades individuellt.

TensorFlow förenklar denna process avsevärt. Genom att använda tensorer kan du inkapsla komplexa beräkningar, vilket minskar behovet av invecklad kodning. Vårt huvudsakliga uppdrag är att skapa en sekventiell kedja av tensoroperationer.

Här är en kort repetition av stegen för att starta en träningsprocess för ett neuralt nätverk:

Databeredning och modellskapande

Den inledande fasen av träningen av ett neuralt nätverk innebär förberedelse av data, vilket omfattar både inmatningar och utmatningar som nätverket ska lära sig från. Dessutom fastställs modellens hyperparametrar – dessa är parametrar som förblir konstanta under hela träningsprocessen. Vikterna initialiseras, vanligtvis dragna från en normalfördelning, och biaserna, som ofta sätts till noll.

Framåtriktad propagiering

Vid framåtriktad propagiering följer varje lager i nätverket vanligtvis dessa steg:

  1. Multiplicera lagrets indata med dess vikter.
  2. Lägg till en bias till resultatet.
  3. Applicera en aktiveringsfunktion på denna summa.

Därefter kan förlusten beräknas.

Bakåtriktad propagiering

Nästa steg är bakåtriktad propagiering, där vi justerar vikterna och bias baserat på deras påverkan på förlusten. Denna påverkan representeras av gradienten, som TensorFlows Gradient Tape beräknar automatiskt. Vi uppdaterar vikterna och bias genom att subtrahera gradienten, skalad med inlärningshastigheten.

Träningsslinga

För att effektivt träna det neurala nätverket upprepas träningsstegen flera gånger samtidigt som modellens prestanda övervakas. Idealiskt sett bör förlusten minska över epokerna.

Uppgift

Swipe to start coding

Skapa ett neuralt nätverk utformat för att förutsäga utfallen av XOR-operationen. Nätverket ska bestå av 2 inmatningsneuroner, ett dolt lager med 2 neuroner och 1 utmatningsneuron.

  1. Börja med att ställa in initiala vikter och biaser. Vikterna ska initialiseras med en normalfördelning och biaserna ska alla initialiseras till noll. Använd hyperparametrarna input_size, hidden_size och output_size för att definiera lämpliga former för dessa tensorer.
  2. Använd en funktionsdekoratör för att omvandla funktionen train_step() till en TensorFlow graf.
  3. Utför framåtriktad propagiering genom både det dolda och utmatningslagret i nätverket. Använd sigmoid-aktiveringsfunktion.
  4. Bestäm gradienterna för att förstå hur varje vikt och bias påverkar förlusten. Säkerställ att gradienterna beräknas i korrekt ordning, i enlighet med namn på utmatningsvariablerna.
  5. Justera vikter och biaser baserat på deras respektive gradienter. Inkludera learning_rate i denna justeringsprocess för att styra omfattningen av varje uppdatering.

Lösning

Slutsats

Eftersom XOR-funktionen är en relativt enkel uppgift behövs inte avancerade tekniker som hyperparametertuning, datasättsuppdelning eller att bygga komplexa datapipelines i detta skede. Denna övning är bara ett steg mot att bygga mer sofistikerade neurala nätverk för verkliga tillämpningar.

Att behärska dessa grunder är avgörande innan du går vidare till avancerade tekniker för konstruktion av neurala nätverk i kommande kurser, där vi kommer att använda Keras-biblioteket och utforska metoder för att förbättra modellkvaliteten med TensorFlows omfattande funktioner.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain what forward and backward propagation mean in simple terms?

What is the purpose of using activation functions in neural networks?

How does TensorFlow's Gradient Tape help with training neural networks?

close

Awesome!

Completion rate improved to 5.56

bookImplementering av neurala nätverk

Svep för att visa menyn

Grundläggande översikt av neurala nätverk

Du har nu nått en nivå där du har den grundläggande kunskapen om TensorFlow för att själv skapa neurala nätverk. Även om de flesta neurala nätverk i verkliga tillämpningar är komplexa och vanligtvis byggs med högnivåbibliotek som Keras, kommer vi att konstruera ett grundläggande nätverk med hjälp av fundamentala TensorFlow-verktyg. Detta tillvägagångssätt ger praktisk erfarenhet av låg-nivå tensorhantering och hjälper oss att förstå de underliggande processerna.

I tidigare kurser som Introduction to Neural Networks, kanske du minns hur mycket tid och ansträngning det krävdes att bygga även ett enkelt neuralt nätverk, där varje neuron behandlades individuellt.

TensorFlow förenklar denna process avsevärt. Genom att använda tensorer kan du inkapsla komplexa beräkningar, vilket minskar behovet av invecklad kodning. Vårt huvudsakliga uppdrag är att skapa en sekventiell kedja av tensoroperationer.

Här är en kort repetition av stegen för att starta en träningsprocess för ett neuralt nätverk:

Databeredning och modellskapande

Den inledande fasen av träningen av ett neuralt nätverk innebär förberedelse av data, vilket omfattar både inmatningar och utmatningar som nätverket ska lära sig från. Dessutom fastställs modellens hyperparametrar – dessa är parametrar som förblir konstanta under hela träningsprocessen. Vikterna initialiseras, vanligtvis dragna från en normalfördelning, och biaserna, som ofta sätts till noll.

Framåtriktad propagiering

Vid framåtriktad propagiering följer varje lager i nätverket vanligtvis dessa steg:

  1. Multiplicera lagrets indata med dess vikter.
  2. Lägg till en bias till resultatet.
  3. Applicera en aktiveringsfunktion på denna summa.

Därefter kan förlusten beräknas.

Bakåtriktad propagiering

Nästa steg är bakåtriktad propagiering, där vi justerar vikterna och bias baserat på deras påverkan på förlusten. Denna påverkan representeras av gradienten, som TensorFlows Gradient Tape beräknar automatiskt. Vi uppdaterar vikterna och bias genom att subtrahera gradienten, skalad med inlärningshastigheten.

Träningsslinga

För att effektivt träna det neurala nätverket upprepas träningsstegen flera gånger samtidigt som modellens prestanda övervakas. Idealiskt sett bör förlusten minska över epokerna.

Uppgift

Swipe to start coding

Skapa ett neuralt nätverk utformat för att förutsäga utfallen av XOR-operationen. Nätverket ska bestå av 2 inmatningsneuroner, ett dolt lager med 2 neuroner och 1 utmatningsneuron.

  1. Börja med att ställa in initiala vikter och biaser. Vikterna ska initialiseras med en normalfördelning och biaserna ska alla initialiseras till noll. Använd hyperparametrarna input_size, hidden_size och output_size för att definiera lämpliga former för dessa tensorer.
  2. Använd en funktionsdekoratör för att omvandla funktionen train_step() till en TensorFlow graf.
  3. Utför framåtriktad propagiering genom både det dolda och utmatningslagret i nätverket. Använd sigmoid-aktiveringsfunktion.
  4. Bestäm gradienterna för att förstå hur varje vikt och bias påverkar förlusten. Säkerställ att gradienterna beräknas i korrekt ordning, i enlighet med namn på utmatningsvariablerna.
  5. Justera vikter och biaser baserat på deras respektive gradienter. Inkludera learning_rate i denna justeringsprocess för att styra omfattningen av varje uppdatering.

Lösning

Slutsats

Eftersom XOR-funktionen är en relativt enkel uppgift behövs inte avancerade tekniker som hyperparametertuning, datasättsuppdelning eller att bygga komplexa datapipelines i detta skede. Denna övning är bara ett steg mot att bygga mer sofistikerade neurala nätverk för verkliga tillämpningar.

Att behärska dessa grunder är avgörande innan du går vidare till avancerade tekniker för konstruktion av neurala nätverk i kommande kurser, där vi kommer att använda Keras-biblioteket och utforska metoder för att förbättra modellkvaliteten med TensorFlows omfattande funktioner.

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
single

single

some-alt