From d5af6f12c187580be5953a0031f5b50b2c1fbcf8 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Fri, 19 Oct 2018 06:43:54 +0200 Subject: [PATCH] deleting unnecessary material --- doc/pub/NeuralNet/html/._NeuralNet-bs000.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs001.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs002.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs003.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs004.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs005.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs006.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs007.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs008.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs009.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs010.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs011.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs012.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs013.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs014.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs015.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs016.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs017.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs018.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs019.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs020.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs021.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs022.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs023.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs024.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs025.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs026.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs027.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs028.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs029.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs030.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs031.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs032.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs033.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs034.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs035.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs036.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs037.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs038.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs039.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs040.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs041.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs042.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs043.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs044.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs045.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs046.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs047.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs048.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs049.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs050.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs051.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs052.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs053.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs054.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs055.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs056.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs057.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs058.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs059.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs060.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs061.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs062.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs063.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs064.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs065.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs066.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs067.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs068.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs069.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs070.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs071.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs072.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs073.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs074.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs075.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs076.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs077.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs078.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs079.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs080.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs081.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs082.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs083.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs084.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs085.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs086.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs087.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs088.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs089.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs090.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs091.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs092.html | 54 ++-- doc/pub/NeuralNet/html/._NeuralNet-bs093.html | 56 ++--- doc/pub/NeuralNet/html/._NeuralNet-bs094.html | 123 ++++----- doc/pub/NeuralNet/html/._NeuralNet-bs095.html | 123 ++++----- doc/pub/NeuralNet/html/._NeuralNet-bs096.html | 119 +++------ doc/pub/NeuralNet/html/._NeuralNet-bs097.html | 146 +++++------ doc/pub/NeuralNet/html/._NeuralNet-bs098.html | 118 +++------ doc/pub/NeuralNet/html/._NeuralNet-bs099.html | 117 +++++---- doc/pub/NeuralNet/html/._NeuralNet-bs100.html | 143 +++++------ doc/pub/NeuralNet/html/._NeuralNet-bs101.html | 75 +++--- doc/pub/NeuralNet/html/._NeuralNet-bs102.html | 125 ++++----- doc/pub/NeuralNet/html/._NeuralNet-bs103.html | 117 ++++----- doc/pub/NeuralNet/html/._NeuralNet-bs104.html | 142 +++-------- doc/pub/NeuralNet/html/NeuralNet-bs.html | 54 ++-- doc/pub/NeuralNet/html/NeuralNet-reveal.html | 228 ++--------------- .../NeuralNet/html/NeuralNet-solarized.html | 238 +++--------------- doc/pub/NeuralNet/html/NeuralNet.html | 238 +++--------------- doc/pub/NeuralNet/ipynb/NeuralNet.ipynb | 232 ++--------------- .../ipynb/ipynb-NeuralNet-src.tar.gz | Bin 88051 -> 88051 bytes doc/pub/NeuralNet/pdf/NeuralNet-minted.pdf | Bin 664815 -> 626143 bytes doc/src/NeuralNet/NeuralNet.do.txt | 163 +----------- 113 files changed, 2879 insertions(+), 4700 deletions(-) diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs000.html b/doc/pub/NeuralNet/html/._NeuralNet-bs000.html index ddfcae71f..0c296c5a0 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs000.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs000.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs001.html b/doc/pub/NeuralNet/html/._NeuralNet-bs001.html index de81d371e..3437f1a87 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs001.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs001.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -391,7 +383,7 @@ a weight variable.
  • 10
  • 11
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs002.html b/doc/pub/NeuralNet/html/._NeuralNet-bs002.html index e73bb72be..5a7d876bf 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs002.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs002.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -441,7 +433,7 @@ humanities to life science and medicine.
  • 11
  • 12
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs003.html b/doc/pub/NeuralNet/html/._NeuralNet-bs003.html index dcf0a0514..7433bc433 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs003.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs003.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ methods we discussed earlier.
  • 12
  • 13
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs004.html b/doc/pub/NeuralNet/html/._NeuralNet-bs004.html index 9c745763f..ebf6a3c7d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs004.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs004.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -398,7 +390,7 @@ to all nodes in the subsequent layer, making this a so-called
  • 13
  • 14
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs005.html b/doc/pub/NeuralNet/html/._NeuralNet-bs005.html index a0dfb186f..df80cc897 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs005.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs005.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -407,7 +399,7 @@ recognition.
  • 14
  • 15
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs006.html b/doc/pub/NeuralNet/html/._NeuralNet-bs006.html index 73eb8cfc7..1ea3e0bd1 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs006.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs006.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -399,7 +391,7 @@ especially well-suited for handwriting and speech recognition.
  • 15
  • 16
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs007.html b/doc/pub/NeuralNet/html/._NeuralNet-bs007.html index 9d5562fd5..9d8096052 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs007.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs007.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -400,7 +392,7 @@ type of NN due the unusual activation functions.
  • 16
  • 17
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs008.html b/doc/pub/NeuralNet/html/._NeuralNet-bs008.html index 1b186864d..77faa1342 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs008.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs008.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -398,7 +390,7 @@ Such networks are often called multilayer perceptrons (MLPs).
  • 17
  • 18
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs009.html b/doc/pub/NeuralNet/html/._NeuralNet-bs009.html index 3ea03c32f..508e66518 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs009.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs009.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -403,7 +395,7 @@ as to not restrict the range of output values.
  • 18
  • 19
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs010.html b/doc/pub/NeuralNet/html/._NeuralNet-bs010.html index 7cdbec57d..8a4eda371 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs010.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs010.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -404,7 +396,7 @@ of the outputs of all neurons in the previous layer.
  • 19
  • 20
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs011.html b/doc/pub/NeuralNet/html/._NeuralNet-bs011.html index 16d32e3f4..be98b9ac7 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs011.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs011.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -433,7 +425,7 @@ is obtained.
  • 20
  • 21
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs012.html b/doc/pub/NeuralNet/html/._NeuralNet-bs012.html index f26003662..5732e72e9 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs012.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs012.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -415,7 +407,7 @@ $$
  • 21
  • 22
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs013.html b/doc/pub/NeuralNet/html/._NeuralNet-bs013.html index b0b7038d1..5d37eacce 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs013.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs013.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ variables are the input values \( x_n \).
  • 22
  • 23
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs014.html b/doc/pub/NeuralNet/html/._NeuralNet-bs014.html index eb4f94e71..d405b7739 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs014.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs014.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -415,7 +407,7 @@ flexibility of a neural network.
  • 23
  • 24
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs015.html b/doc/pub/NeuralNet/html/._NeuralNet-bs015.html index 00c8edb01..55ee3dbf0 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs015.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs015.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -425,7 +417,7 @@ $$
  • 24
  • 25
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs016.html b/doc/pub/NeuralNet/html/._NeuralNet-bs016.html index 11a02a8f9..bc3f4581d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs016.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs016.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -409,7 +401,7 @@ used as input to the activation functions. For each operation
  • 25
  • 26
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs017.html b/doc/pub/NeuralNet/html/._NeuralNet-bs017.html index aef848854..df8aceedb 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs017.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs017.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -403,7 +395,7 @@ for a FFNN to fulfill the universal approximation theorem
  • 26
  • 27
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs018.html b/doc/pub/NeuralNet/html/._NeuralNet-bs018.html index dc8c5a10f..46287989f 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs018.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs018.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -411,7 +403,7 @@ $$
  • 27
  • 28
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs019.html b/doc/pub/NeuralNet/html/._NeuralNet-bs019.html index 10d9e9386..189c0d256 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs019.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs019.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -473,7 +465,7 @@ plt.show()
  • 28
  • 29
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs020.html b/doc/pub/NeuralNet/html/._NeuralNet-bs020.html index 056ecf225..6bc393196 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs020.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs020.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -424,7 +416,7 @@ like logistic regression or linear regression and their modifications on the oth
  • 29
  • 30
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs021.html b/doc/pub/NeuralNet/html/._NeuralNet-bs021.html index ebd93e9a6..659318202 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs021.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs021.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -414,7 +406,7 @@ the potential of being universal approximators.
  • 30
  • 31
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs022.html b/doc/pub/NeuralNet/html/._NeuralNet-bs022.html index e676a8b6e..d666679a6 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs022.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs022.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -420,7 +412,7 @@ classes.
  • 31
  • 32
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs023.html b/doc/pub/NeuralNet/html/._NeuralNet-bs023.html index 6b78ec10c..eea7ead41 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs023.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs023.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -424,7 +416,7 @@ $$
  • 32
  • 33
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs024.html b/doc/pub/NeuralNet/html/._NeuralNet-bs024.html index 53be8dcc2..b15b61ad6 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs024.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs024.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -408,7 +400,7 @@ $$
  • 33
  • 34
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs025.html b/doc/pub/NeuralNet/html/._NeuralNet-bs025.html index 29491da62..a8afb96d0 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs025.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs025.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -411,7 +403,7 @@ $$
  • 34
  • 35
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs026.html b/doc/pub/NeuralNet/html/._NeuralNet-bs026.html index 6ae0ebf5e..08f610ded 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs026.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs026.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -436,7 +428,7 @@ $$
  • 35
  • 36
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs027.html b/doc/pub/NeuralNet/html/._NeuralNet-bs027.html index ef088d578..3d2cb8d3f 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs027.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs027.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -403,7 +395,7 @@ That is, the error \( \delta_j^L \) is exactly equal to the rate of change of th
  • 36
  • 37
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs028.html b/doc/pub/NeuralNet/html/._NeuralNet-bs028.html index e40e694fe..531157c51 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs028.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs028.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -448,7 +440,7 @@ one \( L-1 \) in terms of the errors in the final output layer.
  • 37
  • 38
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs029.html b/doc/pub/NeuralNet/html/._NeuralNet-bs029.html index 39af94d22..52d2ecf9b 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs029.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs029.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -418,7 +410,7 @@ We are now ready to set up the algorithm for back propagation and learning the w
  • 38
  • 39
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs030.html b/doc/pub/NeuralNet/html/._NeuralNet-bs030.html index 1c51545ef..81f845bbb 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs030.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs030.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -462,7 +454,7 @@ Here it is convenient to use stochastic gradient descent (see the examples below
  • 39
  • 40
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs031.html b/doc/pub/NeuralNet/html/._NeuralNet-bs031.html index 473fedee8..6cad37323 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs031.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs031.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -424,7 +416,7 @@ of our network.
  • 40
  • 41
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs032.html b/doc/pub/NeuralNet/html/._NeuralNet-bs032.html index f28a6f4bc..bde55aac9 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs032.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs032.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -446,7 +438,7 @@ The back propagation equations need now only a small change, namely the definiti
  • 41
  • 42
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs033.html b/doc/pub/NeuralNet/html/._NeuralNet-bs033.html index 64c11e975..ab60941fc 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs033.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs033.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -434,7 +426,7 @@ In case we use another activation function than the logistic one, we need to eva
  • 42
  • 43
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs034.html b/doc/pub/NeuralNet/html/._NeuralNet-bs034.html index b7eb14900..fcdc8f7b8 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs034.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs034.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -408,7 +400,7 @@ which in case of the simply binary model reduces to having \( i=j \).
  • 43
  • 44
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs035.html b/doc/pub/NeuralNet/html/._NeuralNet-bs035.html index 71e9befe1..2219f3dbd 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs035.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs035.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -402,7 +394,7 @@ One can identify a set of key steps when using neural networks to solve supervis
  • 44
  • 45
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs036.html b/doc/pub/NeuralNet/html/._NeuralNet-bs036.html index f33b5a40b..7972fa977 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs036.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs036.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -481,7 +473,7 @@ plt.show()
  • 45
  • 46
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs037.html b/doc/pub/NeuralNet/html/._NeuralNet-bs037.html index c7ab2aeaf..32aaefdca 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs037.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs037.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -435,7 +427,7 @@ X_train, X_test, Y_train, Y_test = train_tes
  • 46
  • 47
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs038.html b/doc/pub/NeuralNet/html/._NeuralNet-bs038.html index f2d8151c6..5be78f07d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs038.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs038.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -432,7 +424,7 @@ which is inspired by probability theory (see logistic regression) and was most c
  • 47
  • 48
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs039.html b/doc/pub/NeuralNet/html/._NeuralNet-bs039.html index 38295173c..fbf7fde6d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs039.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs039.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -431,7 +423,7 @@ weights to the output layer.
  • 48
  • 49
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs040.html b/doc/pub/NeuralNet/html/._NeuralNet-bs040.html index 1de83339a..77566ed0f 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs040.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs040.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -422,7 +414,7 @@ output_bias = np49
  • 50
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs041.html b/doc/pub/NeuralNet/html/._NeuralNet-bs041.html index b133d453e..dfec677f9 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs041.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs041.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -413,7 +405,7 @@ $$ a_{j}^{L} = \frac{\exp{(z_j^{L})}}
  • 50
  • 51
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs042.html b/doc/pub/NeuralNet/html/._NeuralNet-bs042.html index c2a2f4587..fbadb1c4b 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs042.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs042.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -461,7 +453,7 @@ predictions = predict(X_train)
  • 51
  • 52
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs043.html b/doc/pub/NeuralNet/html/._NeuralNet-bs043.html index b43f51687..29a5bcf7c 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs043.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs043.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -417,7 +409,7 @@ you got the correct label. The probability of category \( c \) is given by the s
  • 52
  • 53
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs044.html b/doc/pub/NeuralNet/html/._NeuralNet-bs044.html index fa785a6c1..90fddebd1 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs044.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs044.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -426,7 +418,7 @@ The various optmization methods, with codes and algorithms, are discussed in o
  • 53
  • 54
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs045.html b/doc/pub/NeuralNet/html/._NeuralNet-bs045.html index cb34f2101..5bd49f3e1 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs045.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs045.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -419,7 +411,7 @@ calculate the gradient efficently.
  • 54
  • 55
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs046.html b/doc/pub/NeuralNet/html/._NeuralNet-bs046.html index f7b6c6af9..e4a73380a 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs046.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs046.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -500,7 +492,7 @@ lmbd = 0.0155
  • 56
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs047.html b/doc/pub/NeuralNet/html/._NeuralNet-bs047.html index 353cd30f8..613a5dc46 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs047.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs047.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ Andrew Ng goes through some of these considerations in this 56
  • 57
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs048.html b/doc/pub/NeuralNet/html/._NeuralNet-bs048.html index d66d4c2b3..79d59fd0b 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs048.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs048.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -499,7 +491,7 @@ being realizations of this object with different hyperparameters. An implementat
  • 57
  • 58
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs049.html b/doc/pub/NeuralNet/html/._NeuralNet-bs049.html index e32de07a8..f71738a7e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs049.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs049.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -421,7 +413,7 @@ test_predict = dnn58
  • 59
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs050.html b/doc/pub/NeuralNet/html/._NeuralNet-bs050.html index e1e9eaded..df2fbff1d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs050.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs050.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -419,7 +411,7 @@ DNN_numpy = np.
  • 59
  • 60
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs051.html b/doc/pub/NeuralNet/html/._NeuralNet-bs051.html index 799cf8a88..11f161b54 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs051.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs051.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -428,7 +420,7 @@ plt.show()
  • 60
  • 61
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs052.html b/doc/pub/NeuralNet/html/._NeuralNet-bs052.html index bf2b566f0..02f6960cd 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs052.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs052.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -425,7 +417,7 @@ DNN_scikit = np
  • 61
  • 62
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs053.html b/doc/pub/NeuralNet/html/._NeuralNet-bs053.html index 0010c5a4f..d11d46492 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs053.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs053.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -428,7 +420,7 @@ plt.show()
  • 62
  • 63
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs054.html b/doc/pub/NeuralNet/html/._NeuralNet-bs054.html index 7470337de..36a58f392 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs054.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs054.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -401,7 +393,7 @@ NumPy arrays.
  • 63
  • 64
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs055.html b/doc/pub/NeuralNet/html/._NeuralNet-bs055.html index 5c345ef38..7c91ede4e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs055.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs055.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -431,7 +423,7 @@ and/or if you use anaconda, just write (or install from the graphical use
  • 64
  • 65
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs056.html b/doc/pub/NeuralNet/html/._NeuralNet-bs056.html index 2b57e12cd..3cb5d0094 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs056.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs056.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -452,7 +444,7 @@ X_train, X_test, Y_train, Y_test = train_tes
  • 65
  • 66
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs057.html b/doc/pub/NeuralNet/html/._NeuralNet-bs057.html index 27f07c6ed..45127b18d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs057.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs057.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -531,7 +523,7 @@ MathJax.Hub.Config({
  • 66
  • 67
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs058.html b/doc/pub/NeuralNet/html/._NeuralNet-bs058.html index 0ea92c54e..af0a7130a 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs058.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs058.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -464,7 +456,7 @@ writer.add_graph(tf67
  • 68
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs059.html b/doc/pub/NeuralNet/html/._NeuralNet-bs059.html index f16661bde..6b3da62f1 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs059.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs059.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -485,7 +477,7 @@ plt.show()
  • 68
  • 69
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs060.html b/doc/pub/NeuralNet/html/._NeuralNet-bs060.html index 4d2c5638f..8eadb921c 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs060.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs060.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -415,7 +407,7 @@ learn at widely different speeds
  • 69
  • 70
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs061.html b/doc/pub/NeuralNet/html/._NeuralNet-bs061.html index e4c2f4f32..77bd15e0b 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs061.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs061.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -416,7 +408,7 @@ better than the logistic function in deep networks).
  • 70
  • 71
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs062.html b/doc/pub/NeuralNet/html/._NeuralNet-bs062.html index fa2d57b53..01338cb55 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs062.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs062.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -422,7 +414,7 @@ fast to compute).
  • 71
  • 72
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs063.html b/doc/pub/NeuralNet/html/._NeuralNet-bs063.html index f8aefc426..a53731217 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs063.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs063.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -413,7 +405,7 @@ $$
  • 72
  • 73
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs064.html b/doc/pub/NeuralNet/html/._NeuralNet-bs064.html index d20879a62..e81c30225 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs064.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs064.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ bootstrap to evaluate other activation functions.
  • 73
  • 74
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs065.html b/doc/pub/NeuralNet/html/._NeuralNet-bs065.html index dfb40a9c2..ee9e11a31 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs065.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs065.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -428,7 +420,7 @@ supervised learning.
  • 74
  • 75
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs066.html b/doc/pub/NeuralNet/html/._NeuralNet-bs066.html index 1e69e0d38..30575d9f4 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs066.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs066.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -412,7 +404,7 @@ Some of these remarks are particular to DNNs, others are shared by all supervise
  • 75
  • 76
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs067.html b/doc/pub/NeuralNet/html/._NeuralNet-bs067.html index 3c7e90fa6..4ac465f8f 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs067.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs067.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -416,7 +408,7 @@ and the slides of 76
  • 77
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs068.html b/doc/pub/NeuralNet/html/._NeuralNet-bs068.html index d7b435e61..3112352fd 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs068.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs068.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -414,7 +406,7 @@ would quickly lead to possible overfitting.
  • 77
  • 78
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs069.html b/doc/pub/NeuralNet/html/._NeuralNet-bs069.html index c07eae397..a097400f2 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs069.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs069.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -426,7 +418,7 @@ dimension.
  • 78
  • 79
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs070.html b/doc/pub/NeuralNet/html/._NeuralNet-bs070.html index c97306768..8912ccbb0 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs070.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs070.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -409,7 +401,7 @@ A simple CNN for image classification could have the architecture:
  • 79
  • 80
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs071.html b/doc/pub/NeuralNet/html/._NeuralNet-bs071.html index 6f036636b..d3a258cb5 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs071.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs071.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -405,7 +397,7 @@ are consistent with the labels in the training set for each image.
  • 80
  • 81
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs072.html b/doc/pub/NeuralNet/html/._NeuralNet-bs072.html index 2cc1fbb00..0d69841c7 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs072.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs072.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -407,7 +399,7 @@ and the slides of 81
  • 82
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs073.html b/doc/pub/NeuralNet/html/._NeuralNet-bs073.html index ffe6cc5c9..10eab5a52 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs073.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs073.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -402,7 +394,7 @@ matrices, typically 1 for each color dimension (Red, Green, Blue).
  • 82
  • 83
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs074.html b/doc/pub/NeuralNet/html/._NeuralNet-bs074.html index b45367c01..3db00e542 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs074.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs074.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -398,7 +390,7 @@ $$
  • 83
  • 84
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs075.html b/doc/pub/NeuralNet/html/._NeuralNet-bs075.html index 72fda2090..5b41bdb34 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs075.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs075.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -404,7 +396,7 @@ single neuron in the first hidden layer.
  • 84
  • 85
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs076.html b/doc/pub/NeuralNet/html/._NeuralNet-bs076.html index dc0bcc4b5..a6bacf9a6 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs076.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs076.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -402,7 +394,7 @@ fixed, and known as a 85
  • 86
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs077.html b/doc/pub/NeuralNet/html/._NeuralNet-bs077.html index b1edc81d0..09bebf34e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs077.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs077.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -408,7 +400,7 @@ layer.
  • 86
  • 87
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs078.html b/doc/pub/NeuralNet/html/._NeuralNet-bs078.html index f455a85a1..c13d902d5 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs078.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs078.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -401,7 +393,7 @@ classification.
  • 87
  • 88
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs079.html b/doc/pub/NeuralNet/html/._NeuralNet-bs079.html index cc3e2fe20..2caa7d852 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs079.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs079.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -434,7 +426,7 @@ plt.show()
  • 88
  • 89
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs080.html b/doc/pub/NeuralNet/html/._NeuralNet-bs080.html index 813ed2ac9..a0ed1ac3e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs080.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs080.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ X_train, X_test, Y_train, Y_test = train_tes
  • 89
  • 90
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs081.html b/doc/pub/NeuralNet/html/._NeuralNet-bs081.html index 2fe02e70a..790bf815a 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs081.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs081.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -535,7 +527,7 @@ class ConvolutionalNeuralNetworkTensorflow:
  • 90
  • 91
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs082.html b/doc/pub/NeuralNet/html/._NeuralNet-bs082.html index 7566455ed..b2adef723 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs082.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs082.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -421,7 +413,7 @@ CNN_tf = np.91
  • 92
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs083.html b/doc/pub/NeuralNet/html/._NeuralNet-bs083.html index 1241709bb..f848e5ade 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs083.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs083.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -425,7 +417,7 @@ plt.show()
  • 92
  • 93
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs084.html b/doc/pub/NeuralNet/html/._NeuralNet-bs084.html index a9b4a6283..eea852e9c 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs084.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs084.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -429,7 +421,7 @@ lmbd_vals = np.
  • 93
  • 94
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs085.html b/doc/pub/NeuralNet/html/._NeuralNet-bs085.html index 56c43a35d..4b235b1f1 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs085.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs085.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -411,7 +403,7 @@ MathJax.Hub.Config({
  • 94
  • 95
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs086.html b/doc/pub/NeuralNet/html/._NeuralNet-bs086.html index f4e3e342e..422a5bffa 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs086.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs086.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -425,7 +417,7 @@ plt.show()
  • 95
  • 96
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs087.html b/doc/pub/NeuralNet/html/._NeuralNet-bs087.html index 233a4f3e7..a0b7e5007 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs087.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs087.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -395,7 +387,7 @@ MathJax.Hub.Config({
  • 96
  • 97
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs088.html b/doc/pub/NeuralNet/html/._NeuralNet-bs088.html index 908b5922f..733e3b52e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs088.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs088.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -414,7 +406,7 @@ them and see how the neural network performs.
  • 97
  • 98
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs089.html b/doc/pub/NeuralNet/html/._NeuralNet-bs089.html index c2e377031..f78f8ee6c 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs089.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs089.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -421,7 +413,7 @@ represents the weights to each neuron.
  • 98
  • 99
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs090.html b/doc/pub/NeuralNet/html/._NeuralNet-bs090.html index 10131f1e9..9dfbca8d1 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs090.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs090.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -407,7 +399,7 @@ $$
  • 99
  • 100
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs091.html b/doc/pub/NeuralNet/html/._NeuralNet-bs091.html index affb277af..4216aec1e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs091.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs091.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -416,7 +408,7 @@ is fulfilled as best as possible.
  • 100
  • 101
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs092.html b/doc/pub/NeuralNet/html/._NeuralNet-bs092.html index 39d3ae459..b499e91b6 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs092.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs092.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -437,7 +429,7 @@ $$
  • 101
  • 102
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs093.html b/doc/pub/NeuralNet/html/._NeuralNet-bs093.html index c54af6cb3..daa78f4be 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs093.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs093.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -383,6 +375,8 @@ painless. For simplicity, we assume that the input is an array \( \hat{x}= (x_1, \dots, x_N) \) with \( N \) elements. It is at these points the neural network should find \( P \) such that it fulfills (19). +All the ingredients discussed earlier, from the activation function, hidden layers and their weights, biases etc +are included below.

    @@ -410,7 +404,7 @@ network should find \( P \) such that it fulfills 102

  • 103
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs094.html b/doc/pub/NeuralNet/html/._NeuralNet-bs094.html index 99244eaac..2afa599f6 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs094.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs094.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,35 +355,54 @@ MathJax.Hub.Config({ -

    Feedforward

    - +

    Setting up the code, feed forward part

    -First, a feedforward of the inputs must be done. This means that \( \hat{x} \) -must be passed through an input layer, a hidden layer and a output - layer. The input layer in this case, does not need to process the - data any further. The input layer will consist of \( N_{\mathrm{input} } \) - neurons, passing its element to each neuron in the hidden layer. The - number of neurons in the hidden layer will be \( N_{\mathrm{hidden} } \). -

    -For the \( i \)-th in the hidden layer with weight \( w_i^{\mathrm{hidden} } \) -and bias \( b_i^{\mathrm{hidden} } \), the weighting from the \( j \)-th neuron -at the input layer is: + +

    # Note that we use the  numpy wrapper for Autograd (see the gradient descent  slides)
    +import autograd.numpy as np
    +from autograd import grad, elementwise_grad
    +import autograd.numpy.random as npr
    +from matplotlib import pyplot as plt
     
    -$$
    -\begin{aligned}
    -z_{i,j}^{\mathrm{hidden}} &= b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_j \\
    -&= 
    -\begin{pmatrix}
    -b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}}
    -\end{pmatrix}
    -\begin{pmatrix}
    -1 \\
    -x_j
    -\end{pmatrix} 
    -\end{aligned}
    -$$
    +def sigmoid(z):
    +    return 1/(1 + np.exp(-z))
     
    +def neural_network(params, x):
    +    
    +    # Find the weights (including and biases) for the hidden and output layer.
    +    # Assume that params is a list of parameters for each layer. 
    +    # The biases are the first element for each array in params, 
    +    # and the weights are the remaning elements in each array in params.   
    +    
    +    w_hidden = params[0]
    +    w_output = params[1]
    +
    +    # Assumes input x being an one-dimensional array
    +    num_values = np.size(x)
    +    x = x.reshape(-1, num_values)
    +    
    +    # Assume that the input layer does nothing to the input x
    +    x_input = x
    +
    +    ## Hidden layer:
    +    
    +    # Add a row of ones to include bias
    +    x_input = np.concatenate((np.ones((1,num_values)), x_input ), axis = 0)
    +    
    +    z_hidden = np.matmul(w_hidden, x_input)
    +    x_hidden = sigmoid(z_hidden)
    +
    +    ## Output layer:
    +    
    +    # Include bias:
    +    x_hidden = np.concatenate((np.ones((1,num_values)), x_hidden ), axis = 0)
    +
    +    z_output = np.matmul(w_output, x_hidden)
    +    x_output = z_output
    +
    +    return x_output
    +

    @@ -418,7 +429,7 @@ $$

  • 103
  • 104
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs095.html b/doc/pub/NeuralNet/html/._NeuralNet-bs095.html index 7a2b19125..e69a3c7b9 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs095.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs095.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -361,41 +353,62 @@ MathJax.Hub.Config({

     

     

     

    - + -

    Result after weighting

    +

    Backpropagation

    -The result after weighting the input at the \( i \)-th hidden neuron can be written as a vector: +Now that the feedforward can be done, the next step is to decide how the +parameters should change such that they minimize the cost function. + +

    +Recall that the chosen cost function for this problem is + $$ -\begin{aligned} -\hat{z}_{i}^{\mathrm{hidden}} &= \Big( b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_1 , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_2, \ \dots \, , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_N\Big) \\ -&= -\begin{pmatrix} - b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -x_1 & x_2 & \dots & x_N -\end{pmatrix} \\ -&= \hat{p}_{i, \mathrm{hidden}}^T X -\end{aligned} +c(x, P) = \sum_i \big(g_t'(x_i, P) - ( -\gamma g_t(x_i, P) \big)^2 $$

    -It is the vector \( \hat{p}_{i, \mathrm{hidden}}^T \) that defines each row -in \( P_{\mathrm{hidden} } \), which contains the weights for the neural -network to minimize according to (19). +In order to minimize it, an optimalization method must be chosen.

    -After having found \( \hat{z}_{i}^{\mathrm{hidden}} \) for every neuron \( i \) -in the hidden layer, the vector will be sent to an activation function -\( a_i(\hat{z}) \). In this example, the sigmoid function has been used: +Here, gradient descent with a constant step size has been chosen. -$$ -f(z) = \frac{1}{1 + \exp{(-z)}}. -$$ +

    +Before looking at the gradient descent method, let us set up the cost +function along with the right ride of the ODE and trial solution. +

    + + +

    # The trial solution using the deep neural network:
    +def g_trial(x,params, g0 = 10):
    +    return g0 + x*neural_network(params,x)
    +
    +# The right side of the ODE:
    +def g(x, g_trial, gamma = 2):
    +    return -gamma*g_trial
    +
    +# The cost function:
    +def cost_function(P, x):
    +    
    +    # Evaluate the trial function with the current parameters P
    +    g_t = g_trial(x,P)
    +    
    +    # Find the derivative w.r.t x of the neural network
    +    d_net_out = elementwise_grad(neural_network,1)(P,x) 
    +    
    +    # Find the derivative w.r.t x of the trial function
    +    d_g_t = elementwise_grad(g_trial,0)(x,P)  
    +    
    +    # The right side of the ODE 
    +    func = g(x, g_t)
    +
    +    err_sqr = (d_g_t - func)**2
    +    cost_sum = np.sum(err_sqr)
    +    
    +    return cost_sum
    +

    @@ -421,8 +434,6 @@ $$

  • 103
  • 104
  • 105
  • -
  • ...
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs096.html b/doc/pub/NeuralNet/html/._NeuralNet-bs096.html index 81744050f..4458d483f 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs096.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs096.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,63 +355,31 @@ MathJax.Hub.Config({ -

    Output

    +

    Gradient Descent

    -The output $\hat{x}_i^{\mathrm{hidden}}$from each \( i \)-th hidden neuron is: +The idea of the gradient descent algorithm is to update parameters in +direction where the cost function decreases goes to a minimum. + +

    +In general, the update of some parameters \( \hat{\omega} \) given a cost +function defined by some weights \( \hat{\omega} \), \( c(x, \hat{\omega}) \), +goes as follows: $$ -\hat{x}_i^{\mathrm{hidden} } = f\big( \hat{z}_{i}^{\mathrm{hidden}} \big). +\hat{\omega}_{\mathrm{new} } = \hat{\omega} - \lambda \nabla_{\hat{\omega}} c(x, \hat{\omega}), $$

    -The outputs \( \hat{x}_i^{\mathrm{hidden} } \) are then sent to the output layer. +for a number of iterations or until \( \big|\big| \hat{\omega}_{\mathrm{new} } - \hat{\omega} \big|\big| \) +is smaller than some +given tolerance.

    -The output layer consist of one neuron in this case, and combines the -output from each of the neurons in the hidden layers. The output layer -combines the results from the hidden layer using some weights \( -w_i^{\mathrm{output}} \) and biases \( b_i^{\mathrm{output}} \). In this case, -it is assumes that the number of neurons in the output layer is one. - -

    -The procedure of weigthing the output neuron \( j \) in the hidden layer -to the \( i \)-th neuron in the output layer is similar as for the hidden -layer described previously. - -$$ -\begin{aligned} -z_{1,j}^{\mathrm{output}} & = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{\mathrm{hidden}} -\end{pmatrix} -\end{aligned} -$$ - -

    -Expressing \( z_{1,j}^{\mathrm{output}} \) as a vector gives the following procedure of weighting the inputs from the hidden layer: - -$$ -\hat{z}_{1}^{\mathrm{output}} = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_1^{\mathrm{hidden}} & \hat{x}_2^{\mathrm{hidden}} & \dots & \hat{x}_N^{\mathrm{hidden}} -\end{pmatrix} -$$ - -

    -In this case we seek a continous range of values since we are -approximating a function. This means that after computing -\( \hat{z}_{1}^{\mathrm{output}} \) the neural network has finished its -feedforward step, and \( \hat{z}_{1}^{\mathrm{output}} \) is the final -output of the network. +The value of \( \lambda \) decides how large steps the algorithm must take +in the direction of $ \nabla_{\hat{\omega}} c(x, \hat{\omega})$. The +notatation \( \nabla_{\hat{\omega}} \) denotes the gradient with respect to +the elements in \( \hat{\omega} \).

    @@ -445,9 +405,6 @@ output of the network.

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • ...
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs097.html b/doc/pub/NeuralNet/html/._NeuralNet-bs097.html index df1409bf4..e406304cc 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs097.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs097.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,53 +355,67 @@ MathJax.Hub.Config({ -

    Setting up the code, feed forward part

    +

    More on GD and cost function

    + +

    +In our case, we have to minimize the cost function \( c(x, P) \) with +respect to the two sets of weights and bisases, that is for the hidden +layer \( P_{\mathrm{hidden} } \) and for the ouput layer \( P_{\mathrm{output} +} \) . + +

    +This means that \( P_{\mathrm{hidden} } \) and \( P_{\mathrm{output} } \) is +updated by + +$$ +\begin{align} +P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) +\tag{20}\\ +P_{\mathrm{output},\mathrm{new}} &= P_{\mathrm{output}} - \lambda \nabla_{P_{\mathrm{output}}} c(x, P) +\tag{21} +\end{align} +$$ + +

    +This might look like a cumberstone to set up the correct expression +for finding the gradients. Luckily, Autograd comes to the rescue. +

    -

    # Note that we use the  numpy wrapper for Autograd (see the gradient descent  slides)
    -import autograd.numpy as np
    -from autograd import grad, elementwise_grad
    -import autograd.numpy.random as npr
    -from matplotlib import pyplot as plt
    -
    -def sigmoid(z):
    -    return 1/(1 + np.exp(-z))
    -
    -def neural_network(params, x):
    +
    def solve_ode_neural_network(x, num_neurons_hidden, num_iter, lmb):
    +    ## Set up initial weigths and biases 
         
    -    # Find the weights (including and biases) for the hidden and output layer.
    -    # Assume that params is a list of parameters for each layer. 
    -    # The biases are the first element for each array in params, 
    -    # and the weights are the remaning elements in each array in params.   
    -    
    -    w_hidden = params[0]
    -    w_output = params[1]
    +    # For the hidden layer
    +    p0 = npr.randn(num_neurons_hidden, 2 ) 
     
    -    # Assumes input x being an one-dimensional array
    -    num_values = np.size(x)
    -    x = x.reshape(-1, num_values)
    -    
    -    # Assume that the input layer does nothing to the input x
    -    x_input = x
    +    # For the output layer
    +    p1 = npr.randn(1, num_neurons_hidden + 1 ) # +1 since bias is included
     
    -    ## Hidden layer:
    -    
    -    # Add a row of ones to include bias
    -    x_input = np.concatenate((np.ones((1,num_values)), x_input ), axis = 0)
    -    
    -    z_hidden = np.matmul(w_hidden, x_input)
    -    x_hidden = sigmoid(z_hidden)
    +    P = [p0, p1]
     
    -    ## Output layer:
    +    print('Initial cost: %g'%cost_function(P, x))
         
    -    # Include bias:
    -    x_hidden = np.concatenate((np.ones((1,num_values)), x_hidden ), axis = 0)
    +    ## Start finding the optimal weigths using gradient descent
    +    
    +    # Find the Python function that represents the gradient of the cost function
    +    # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer
    +    cost_function_grad = grad(cost_function,0)
    +    
    +    # Let the update be done num_iter times
    +    for i in range(num_iter):
    +        # Evaluate the gradient at the current weights and biases in P. 
    +        # The cost_grad consist now of two arrays; 
    +        # one for the gradient w.r.t P_hidden and 
    +        # one for the gradient w.r.t P_output
    +        cost_grad =  cost_function_grad(P, x)
    +    
    +        P[0] = P[0] - lmb * cost_grad[0]
    +        P[1] = P[1] - lmb * cost_grad[1]
     
    -    z_output = np.matmul(w_output, x_hidden)
    -    x_output = z_output
    -
    -    return x_output
    +    print('Final cost: %g'%cost_function(P, x))
    +    
    +    return P
     

    @@ -434,10 +440,6 @@ MathJax.Hub.Config({

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • ...
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs098.html b/doc/pub/NeuralNet/html/._NeuralNet-bs098.html index 9bdb40cbc..ef5e97c8e 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs098.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs098.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,60 +355,19 @@ MathJax.Hub.Config({ -

    Backpropagation

    +

    An implementation of a Deep Neural Network

    -Now that feedforward can be done, the next step is to decide how the -parameters should change such that they minimize the cost function. +As previously stated, a Deep Neural Network (DNN) follows the same +concept of a neural network, but having more than one hidden +layer. Suppose that the network has \( N_{\mathrm{hidden}} \) hidden layers +where the \( l \)-th layer has \( N_{\mathrm{hidden}}^{(l)} \) neurons. The +input is still assumed to be an array of size \( 1 \times N \). The +network must now try to optimalize its output with respect to the +collection of weigths and biases \( P = \big\{P_{\mathrm{input} }, \ +P_{\mathrm{hidden} }^{(1)}, \ P_{\mathrm{hidden} }^{(2)}, \ \dots , \ +P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\} \). -

    -Recall that the chosen cost function for this problem is - -$$ -c(x, P) = \sum_i \big(g_t'(x_i, P) - ( -\gamma g_t(x_i, P) \big)^2 -$$ - -

    -In order to minimize it, an optimalization method must be chosen. - -

    -Here, gradient descent with a constant step size has been chosen. - -

    -Before looking at the gradient descent method, let us set up the cost -function along with the right ride of the ODE and trial solution. - -

    - - -

    # The trial solution using the deep neural network:
    -def g_trial(x,params, g0 = 10):
    -    return g0 + x*neural_network(params,x)
    -
    -# The right side of the ODE:
    -def g(x, g_trial, gamma = 2):
    -    return -gamma*g_trial
    -
    -# The cost function:
    -def cost_function(P, x):
    -    
    -    # Evaluate the trial function with the current parameters P
    -    g_t = g_trial(x,P)
    -    
    -    # Find the derivative w.r.t x of the neural network
    -    d_net_out = elementwise_grad(neural_network,1)(P,x) 
    -    
    -    # Find the derivative w.r.t x of the trial function
    -    d_g_t = elementwise_grad(g_trial,0)(x,P)  
    -    
    -    # The right side of the ODE 
    -    func = g(x, g_t)
    -
    -    err_sqr = (d_g_t - func)**2
    -    cost_sum = np.sum(err_sqr)
    -    
    -    return cost_sum
    -

    @@ -439,11 +390,6 @@ function along with the right ride of the ODE and trial solution.

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • 108
  • -
  • ...
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs099.html b/doc/pub/NeuralNet/html/._NeuralNet-bs099.html index 6674d6455..69d592b71 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs099.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs099.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,32 +355,53 @@ MathJax.Hub.Config({ -

    Gradient Descent

    - +

    The final parts of the code

    -The idea of the gradient descent algorithm is to update parameters in -direction where the cost function decreases goes to a minimum. -

    -In general, the update of some parameters \( \hat{\omega} \) given a cost -function defined by some weights \( \hat{\omega} \), \( c(x, \hat{\omega}) \), -goes as follows: + +

    def deep_neural_network(deep_params, x):
    +    # N_hidden is the number of hidden layers  
    +    N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer
    +        
    +    # Assumes input x being an one-dimensional array
    +    num_values = np.size(x)
    +    x = x.reshape(-1, num_values)
    +    
    +    # Assume that the input layer does nothing to the input x
    +    x_input = x
    +    
    +    # Due to multiple hidden layers, define a variable referencing to the
    +    # output of the previous layer:
    +    x_prev = x_input 
    +    
    +    ## Hidden layers:
    +    
    +    for l in range(N_hidden):
    +        # From the list of parameters P; find the correct weigths and bias for this layer
    +        w_hidden = deep_params[l]
    +        
    +        # Add a row of ones to include bias
    +        x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0)
     
    -$$
    -\hat{\omega}_{\mathrm{new} } = \hat{\omega} - \lambda \nabla_{\hat{\omega}} c(x, \hat{\omega}),
    -$$
    +        z_hidden = np.matmul(w_hidden, x_prev)
    +        x_hidden = sigmoid(z_hidden)
     
    -

    -for a number of iterations or until \( \big|\big| \hat{\omega}_{\mathrm{new} } - \hat{\omega} \big|\big| \) -is smaller than some -given tolerance. + # Update x_prev such that next layer can use the output from this layer + x_prev = x_hidden -

    -The value of \( \lambda \) decides how large steps the algorithm must take -in the direction of $ \nabla_{\hat{\omega}} c(x, \hat{\omega})$. The -notatation \( \nabla_{\hat{\omega}} \) denotes the gradient with respect to -the elements in \( \hat{\omega} \). + ## Output layer: + + # Get the weights and bias for this layer + w_output = deep_params[-1] + + # Include bias: + x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0) + z_output = np.matmul(w_output, x_prev) + x_output = z_output + + return x_output +

    @@ -410,10 +423,6 @@ the elements in \( \hat{\omega} \).

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • 108
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs100.html b/doc/pub/NeuralNet/html/._NeuralNet-bs100.html index 4d5df7946..676cf404a 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs100.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs100.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,63 +355,78 @@ MathJax.Hub.Config({ -

    More on GD and cost function

    +

    And adding Back propagation

    -In our case, we have to minimize the cost function \( c(x, P) \) with -respect to the two sets of weights and bisases, that is for the hidden -layer \( P_{\mathrm{hidden} } \) and for the ouput layer \( P_{\mathrm{output} -} \) . - -

    -This means that \( P_{\mathrm{hidden} } \) and \( P_{\mathrm{output} } \) is -updated by - -$$ -\begin{aligned} -P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) \\ -P_{\mathrm{output},\mathrm{new}} &= P_{\mathrm{output}} - \lambda \nabla_{P_{\mathrm{output}}} c(x, P) -\end{aligned} -$$ - -

    -This might look like a cumberstone to set up the correct expression -for finding the gradients. Luckily, Autograd comes to the rescue. +This step is very similar for the neural network. The idea in this +step is the same as for the neural network, but with more parameters +to update for. Again there is no need for computing the gradients +analytically since Autograd does the work for us.

    -

    def solve_ode_neural_network(x, num_neurons_hidden, num_iter, lmb):
    +
    # The trial solution using the deep neural network:
    +def g_trial_deep(x,params, g0 = 10):
    +    return g0 + x*deep_neural_network(params,x)
    +
    +# The same cost function as for the neural network, but calls deep_neural_network instead.
    +def cost_function_deep(P, x):
    +    
    +    # Evaluate the trial function with the current parameters P
    +    g_t = g_trial_deep(x,P)
    +    
    +    # Find the derivative w.r.t x of the neural network
    +    d_net_out = elementwise_grad(deep_neural_network,1)(P,x) 
    +    
    +    # Find the derivative w.r.t x of the trial function
    +    d_g_t = elementwise_grad(g_trial_deep,0)(x,P)  
    +    
    +    # The right side of the ODE 
    +    func = g(x, g_t)
    +
    +    err_sqr = (d_g_t - func)**2
    +    cost_sum = np.sum(err_sqr)
    +    
    +    return cost_sum
    +
    +def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb):
    +    # num_hidden_neurons is now a list of number of neurons within each hidden layer
    +
    +    # Find the number of hidden layers:
    +    N_hidden = np.size(num_neurons)
    +    
         ## Set up initial weigths and biases 
         
    -    # For the hidden layer
    -    p0 = npr.randn(num_neurons_hidden, 2 ) 
    +    # Initialize the list of parameters:
    +    P = [None]*(N_hidden + 1) # + 1 to include the output layer
     
    +    P[0] = npr.randn(num_neurons[0], 2 ) 
    +    for l in range(1,N_hidden):
    +        P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias 
    +    
         # For the output layer
    -    p1 = npr.randn(1, num_neurons_hidden + 1 ) # +1 since bias is included
    +    P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included
     
    -    P = [p0, p1]
    -
    -    print('Initial cost: %g'%cost_function(P, x))
    +    print('Initial cost: %g'%cost_function_deep(P, x))
         
         ## Start finding the optimal weigths using gradient descent
         
         # Find the Python function that represents the gradient of the cost function
         # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer
    -    cost_function_grad = grad(cost_function,0)
    +    cost_function_deep_grad = grad(cost_function_deep,0)
         
         # Let the update be done num_iter times
         for i in range(num_iter):
             # Evaluate the gradient at the current weights and biases in P. 
    -        # The cost_grad consist now of two arrays; 
    -        # one for the gradient w.r.t P_hidden and 
    -        # one for the gradient w.r.t P_output
    -        cost_grad =  cost_function_grad(P, x)
    -    
    -        P[0] = P[0] - lmb * cost_grad[0]
    -        P[1] = P[1] - lmb * cost_grad[1]
    +        # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases
    +        # in the hidden layers and output layers evaluated at x.
    +        cost_deep_grad =  cost_function_deep_grad(P, x)
    +        
    +        for l in range(N_hidden+1):
    +            P[l] = P[l] - lmb * cost_deep_grad[l]
     
    -    print('Final cost: %g'%cost_function(P, x))
    +    print('Final cost: %g'%cost_function_deep(P, x))
         
         return P
     
    @@ -443,10 +450,6 @@ for finding the gradients. Luckily, Autograd comes to the rescue.
  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • 108
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs101.html b/doc/pub/NeuralNet/html/._NeuralNet-bs101.html index 39d3c2082..9e8e49b8d 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs101.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs101.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,19 +355,18 @@ MathJax.Hub.Config({ -

    An implementation of a Deep Neural Network

    +

    Solving the ODE

    -As previously stated, a Deep Neural Network (DNN) follows the same -concept of a neural network, but having more than one hidden -layer. Suppose that the network has \( N_{\mathrm{hidden}} \) hidden layers -where the \( l \)-th layer has \( N_{\mathrm{hidden}}^{(l)} \) neurons. The -input is still assumed to be an array of size \( 1 \times N \). The -network must now try to optimalize its output with respect to the -collection of weigths and biases \( P = \big\{P_{\mathrm{input} }, \ -P_{\mathrm{hidden} }^{(1)}, \ P_{\mathrm{hidden} }^{(2)}, \ \dots , \ -P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\} \). +Finally, having set up the networks we are ready to use them to solve the ODE problem. +We add the analytical solution +

    + + +

    def g_analytic(x, gamma = 2, g0 = 10):
    +    return g0*np.exp(-gamma*x)
    +

    @@ -395,10 +386,6 @@ P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\} \).

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • 108
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs102.html b/doc/pub/NeuralNet/html/._NeuralNet-bs102.html index 9a6b42535..204ca01b7 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs102.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs102.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,50 +355,47 @@ MathJax.Hub.Config({ -

    Feed forward again

    +

    Using neural network

    -The feedforward step is similar to as for the neural netowork, but now considering more than one hidden layer. +The code below solves the ODE using a neural network. The number of +values for the input \( \vec x \) is 10, number of hidden neurons in the +hidden layer being 10 and th step size used in gradien descent +\( \lambda = 0.001 \). The program updates the weights and biases in the +network for a given number of iterations. Finally, it plots the results from using the +neural network along with the analytical solution.

    -The \( i \)-th neuron at layer \( l \) recieves the result -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) from the \( j \)-th neuron at layer -\( l-1 \). The \( i \)-th neuron at layer \( l \) weights all of the elements in -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) with a weight vector \( w_{i,j}^{(l), \ \mathrm{hidden}} \) with as many weigths as there are -elements in$\hat{x}_j^{(l-1),\mathrm{hidden} }$, and adds a bias -\( b_i^{(l), \ \mathrm{hidden} } \): -$$ -\begin{aligned} -z_{i,j}^{(l),\ \mathrm{hidden}} &= b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_j^{(l-1),\mathrm{hidden} } \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ + +

    npr.seed(15)
     
    -

    -The output from the \( i \)-th neuron at the hidden layer \( l \) becomes a vector \( \hat{z}_{i}^{(l),\ \mathrm{hidden}} \): +## Decide the vales of arguments to the function to solve +N = 10 +x = np.linspace(0, 1, N) -$$ -\begin{aligned} -\hat{z}_{i}^{(l),\ \mathrm{hidden}} &= \Big( b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_1^{(l-1),\mathrm{hidden} }, \ \dots \ , \ b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } \Big) \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_{1}^{(l-1),\mathrm{hidden} } & \hat{x}_{2}^{(l-1),\mathrm{hidden} } & \dots & \hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ +## Set up the initial parameters +num_hidden_neurons = 10 +num_iter = 10000 +lmb = 0.001 +P = solve_ode_neural_network(x, num_hidden_neurons, num_iter, lmb) + +res = g_trial(x,P) +res_analytical = g_analytic(x) + +print('Max absolute difference: %g'%np.max(np.abs(res - res_analytical))) + +plt.figure(figsize=(10,10)) + +plt.title('Performance of neural network solving an ODE compared to the analytical solution') +plt.plot(x, res_analytical) +plt.plot(x, res[0,:]) +plt.legend(['analytical','nn']) +plt.xlabel('x') +plt.ylabel('g(x)') +plt.show() +

    @@ -425,10 +414,6 @@ $$

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • 108
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs103.html b/doc/pub/NeuralNet/html/._NeuralNet-bs103.html index 4193a3e1a..82f95bb3f 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs103.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs103.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -361,54 +353,37 @@ MathJax.Hub.Config({

     

     

     

    - + + +

    Using a deep neural network

    -

    The final parts of the code

    -

    def deep_neural_network(deep_params, x):
    -    # N_hidden is the number of hidden layers  
    -    N_hidden = np.size(deep_params) - 1 # -1 since params consist of parameters to all the hidden layers AND the output layer
    -        
    -    # Assumes input x being an one-dimensional array
    -    num_values = np.size(x)
    -    x = x.reshape(-1, num_values)
    -    
    -    # Assume that the input layer does nothing to the input x
    -    x_input = x
    -    
    -    # Due to multiple hidden layers, define a variable referencing to the
    -    # output of the previous layer:
    -    x_prev = x_input 
    -    
    -    ## Hidden layers:
    -    
    -    for l in range(N_hidden):
    -        # From the list of parameters P; find the correct weigths and bias for this layer
    -        w_hidden = deep_params[l]
    -        
    -        # Add a row of ones to include bias
    -        x_prev = np.concatenate((np.ones((1,num_values)), x_prev ), axis = 0)
    +
    npr.seed(15)
     
    -        z_hidden = np.matmul(w_hidden, x_prev)
    -        x_hidden = sigmoid(z_hidden)
    +## Decide the vales of arguments to the function to solve
    +N = 10
    +x = np.linspace(0, 1, N)
     
    -        # Update x_prev such that next layer can use the output from this layer
    -        x_prev = x_hidden 
    +## Set up the initial parameters
    +num_hidden_neurons = np.array([10,10])
    +num_iter = 10000
    +lmb = 0.001
     
    -    ## Output layer:
    -    
    -    # Get the weights and bias for this layer
    -    w_output = deep_params[-1]
    -    
    -    # Include bias:
    -    x_prev = np.concatenate((np.ones((1,num_values)), x_prev), axis = 0)
    +P = solve_ode_deep_neural_network(x, num_hidden_neurons, num_iter, lmb)
     
    -    z_output = np.matmul(w_output, x_prev)
    -    x_output = z_output
    +res = g_trial_deep(x,P) 
    +res_analytical = g_analytic(x)
     
    -    return x_output
    +plt.figure(figsize=(10,10))
    +
    +plt.title('Performance of a deep neural network solving an ODE compared to the analytical solution')
    +plt.plot(x, res_analytical)
    +plt.plot(x, res[0,:])
    +plt.legend(['analytical','dnn'])
    +plt.ylabel('g(x)')
    +plt.show()
     

    @@ -427,10 +402,6 @@ MathJax.Hub.Config({

  • 103
  • 104
  • 105
  • -
  • 106
  • -
  • 107
  • -
  • 108
  • -
  • 109
  • »
  • diff --git a/doc/pub/NeuralNet/html/._NeuralNet-bs104.html b/doc/pub/NeuralNet/html/._NeuralNet-bs104.html index e8a1b8085..b9dbd8af4 100644 --- a/doc/pub/NeuralNet/html/._NeuralNet-bs104.html +++ b/doc/pub/NeuralNet/html/._NeuralNet-bs104.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -363,82 +355,21 @@ MathJax.Hub.Config({ -

    And adding Back propagation

    +

    Wrapping it up

    -This step is very similar for the neural network. The idea in this -step is the same as for the neural network, but with more parameters -to update for. Again there is no need for computing the gradients -analytically since Autograd does the work for us. +By rewriting the ODE as a minimization problem, it was possible to +solve equation using either a neural network (one hidden layer) or a +deep neural network (more than one hidden layers). How well the +network performed is measured by a specified cost function, which is +the function the network tries to minimize. Using a trial solution +which satisfies the additional condition and being defined by using +the output from the network in some way, the minimization problem +could be explicitly defined for out network to solve. The proposed +solution from the network is then the trial solution with parameters, +that is weights and biases within each layer in the network, such that +the solution minimizes the cost function. -

    - - -

    # The trial solution using the deep neural network:
    -def g_trial_deep(x,params, g0 = 10):
    -    return g0 + x*deep_neural_network(params,x)
    -
    -# The same cost function as for the neural network, but calls deep_neural_network instead.
    -def cost_function_deep(P, x):
    -    
    -    # Evaluate the trial function with the current parameters P
    -    g_t = g_trial_deep(x,P)
    -    
    -    # Find the derivative w.r.t x of the neural network
    -    d_net_out = elementwise_grad(deep_neural_network,1)(P,x) 
    -    
    -    # Find the derivative w.r.t x of the trial function
    -    d_g_t = elementwise_grad(g_trial_deep,0)(x,P)  
    -    
    -    # The right side of the ODE 
    -    func = g(x, g_t)
    -
    -    err_sqr = (d_g_t - func)**2
    -    cost_sum = np.sum(err_sqr)
    -    
    -    return cost_sum
    -
    -def solve_ode_deep_neural_network(x, num_neurons, num_iter, lmb):
    -    # num_hidden_neurons is now a list of number of neurons within each hidden layer
    -
    -    # Find the number of hidden layers:
    -    N_hidden = np.size(num_neurons)
    -    
    -    ## Set up initial weigths and biases 
    -    
    -    # Initialize the list of parameters:
    -    P = [None]*(N_hidden + 1) # + 1 to include the output layer
    -
    -    P[0] = npr.randn(num_neurons[0], 2 ) 
    -    for l in range(1,N_hidden):
    -        P[l] = npr.randn(num_neurons[l], num_neurons[l-1] + 1) # +1 to include bias 
    -    
    -    # For the output layer
    -    P[-1] = npr.randn(1, num_neurons[-1] + 1 ) # +1 since bias is included
    -
    -    print('Initial cost: %g'%cost_function_deep(P, x))
    -    
    -    ## Start finding the optimal weigths using gradient descent
    -    
    -    # Find the Python function that represents the gradient of the cost function
    -    # w.r.t the 0-th input argument -- that is the weights and biases in the hidden and output layer
    -    cost_function_deep_grad = grad(cost_function_deep,0)
    -    
    -    # Let the update be done num_iter times
    -    for i in range(num_iter):
    -        # Evaluate the gradient at the current weights and biases in P. 
    -        # The cost_grad consist now of N_hidden + 1 arrays; the gradient w.r.t the weights and biases
    -        # in the hidden layers and output layers evaluated at x.
    -        cost_deep_grad =  cost_function_deep_grad(P, x)
    -        
    -        for l in range(N_hidden+1):
    -            P[l] = P[l] - lmb * cost_deep_grad[l]
    -
    -    print('Final cost: %g'%cost_function_deep(P, x))
    -    
    -    return P
    -
    -

    diff --git a/doc/pub/NeuralNet/html/NeuralNet-bs.html b/doc/pub/NeuralNet/html/NeuralNet-bs.html index ddfcae71f..0c296c5a0 100644 --- a/doc/pub/NeuralNet/html/NeuralNet-bs.html +++ b/doc/pub/NeuralNet/html/NeuralNet-bs.html @@ -185,24 +185,20 @@ Automatically generated HTML file from DocOnce source ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -333,21 +329,17 @@ MathJax.Hub.Config({
  • Reformulating the problem
  • Estimating errors
  • Creating a simple Deep Neural Net
  • -
  • Feedforward
  • -
  • Result after weighting
  • -
  • Output
  • -
  • Setting up the code, feed forward part
  • -
  • Backpropagation
  • -
  • Gradient Descent
  • -
  • More on GD and cost function
  • -
  • An implementation of a Deep Neural Network
  • -
  • Feed forward again
  • -
  • The final parts of the code
  • -
  • And adding Back propagation
  • -
  • Solving the ODE
  • -
  • Using neural network
  • -
  • Using a deep neural network
  • -
  • Wrapping it up
  • +
  • Setting up the code, feed forward part
  • +
  • Backpropagation
  • +
  • Gradient Descent
  • +
  • More on GD and cost function
  • +
  • An implementation of a Deep Neural Network
  • +
  • The final parts of the code
  • +
  • And adding Back propagation
  • +
  • Solving the ODE
  • +
  • Using neural network
  • +
  • Using a deep neural network
  • +
  • Wrapping it up
  • @@ -406,7 +398,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 109
  • +
  • 105
  • »
  • diff --git a/doc/pub/NeuralNet/html/NeuralNet-reveal.html b/doc/pub/NeuralNet/html/NeuralNet-reveal.html index 26dec382d..9ec93ee5b 100644 --- a/doc/pub/NeuralNet/html/NeuralNet-reveal.html +++ b/doc/pub/NeuralNet/html/NeuralNet-reveal.html @@ -3974,152 +3974,13 @@ painless. For simplicity, we assume that the input is an array \( \hat{x}= (x_1, \dots, x_N) \) with \( N \) elements. It is at these points the neural network should find \( P \) such that it fulfills (19). +All the ingredients discussed earlier, from the activation function, hidden layers and their weights, biases etc +are included below.
    -

    Feedforward

    - -

    -First, a feedforward of the inputs must be done. This means that \( \hat{x} \) -must be passed through an input layer, a hidden layer and a output - layer. The input layer in this case, does not need to process the - data any further. The input layer will consist of \( N_{\mathrm{input} } \) - neurons, passing its element to each neuron in the hidden layer. The - number of neurons in the hidden layer will be \( N_{\mathrm{hidden} } \). - -

    -For the \( i \)-th in the hidden layer with weight \( w_i^{\mathrm{hidden} } \) -and bias \( b_i^{\mathrm{hidden} } \), the weighting from the \( j \)-th neuron -at the input layer is: - -

     
    -$$ -\begin{aligned} -z_{i,j}^{\mathrm{hidden}} &= b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_j \\ -&= -\begin{pmatrix} -b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -x_j -\end{pmatrix} -\end{aligned} -$$ -

     
    -

    - - -
    -

    Result after weighting

    - -

    -The result after weighting the input at the \( i \)-th hidden neuron can be written as a vector: -

     
    -$$ -\begin{aligned} -\hat{z}_{i}^{\mathrm{hidden}} &= \Big( b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_1 , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_2, \ \dots \, , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_N\Big) \\ -&= -\begin{pmatrix} - b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -x_1 & x_2 & \dots & x_N -\end{pmatrix} \\ -&= \hat{p}_{i, \mathrm{hidden}}^T X -\end{aligned} -$$ -

     
    - -

    -It is the vector \( \hat{p}_{i, \mathrm{hidden}}^T \) that defines each row -in \( P_{\mathrm{hidden} } \), which contains the weights for the neural -network to minimize according to (19). - -

    -After having found \( \hat{z}_{i}^{\mathrm{hidden}} \) for every neuron \( i \) -in the hidden layer, the vector will be sent to an activation function -\( a_i(\hat{z}) \). In this example, the sigmoid function has been used: - -

     
    -$$ -f(z) = \frac{1}{1 + \exp{(-z)}}. -$$ -

     
    -

    - - -
    -

    Output

    - -

    -The output $\hat{x}_i^{\mathrm{hidden}}$from each \( i \)-th hidden neuron is: - -

     
    -$$ -\hat{x}_i^{\mathrm{hidden} } = f\big( \hat{z}_{i}^{\mathrm{hidden}} \big). -$$ -

     
    - -

    -The outputs \( \hat{x}_i^{\mathrm{hidden} } \) are then sent to the output layer. - -

    -The output layer consist of one neuron in this case, and combines the -output from each of the neurons in the hidden layers. The output layer -combines the results from the hidden layer using some weights \( -w_i^{\mathrm{output}} \) and biases \( b_i^{\mathrm{output}} \). In this case, -it is assumes that the number of neurons in the output layer is one. - -

    -The procedure of weigthing the output neuron \( j \) in the hidden layer -to the \( i \)-th neuron in the output layer is similar as for the hidden -layer described previously. - -

     
    -$$ -\begin{aligned} -z_{1,j}^{\mathrm{output}} & = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{\mathrm{hidden}} -\end{pmatrix} -\end{aligned} -$$ -

     
    - -

    -Expressing \( z_{1,j}^{\mathrm{output}} \) as a vector gives the following procedure of weighting the inputs from the hidden layer: - -

     
    -$$ -\hat{z}_{1}^{\mathrm{output}} = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_1^{\mathrm{hidden}} & \hat{x}_2^{\mathrm{hidden}} & \dots & \hat{x}_N^{\mathrm{hidden}} -\end{pmatrix} -$$ -

     
    - -

    -In this case we seek a continous range of values since we are -approximating a function. This means that after computing -\( \hat{z}_{1}^{\mathrm{output}} \) the neural network has finished its -feedforward step, and \( \hat{z}_{1}^{\mathrm{output}} \) is the final -output of the network. -

    - - -
    -

    Setting up the code, feed forward part

    +

    Setting up the code, feed forward part

    @@ -4171,10 +4032,10 @@ output of the network.

    -

    Backpropagation

    +

    Backpropagation

    -Now that feedforward can be done, the next step is to decide how the +Now that the feedforward can be done, the next step is to decide how the parameters should change such that they minimize the cost function.

    @@ -4231,7 +4092,7 @@ function along with the right ride of the ODE and trial solution.

    -

    Gradient Descent

    +

    Gradient Descent

    The idea of the gradient descent algorithm is to update parameters in @@ -4262,7 +4123,7 @@ the elements in \( \hat{\omega} \).

    -

    More on GD and cost function

    +

    More on GD and cost function

    In our case, we have to minimize the cost function \( c(x, P) \) with @@ -4276,10 +4137,12 @@ updated by

     
    $$ -\begin{aligned} -P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) \\ +\begin{align} +P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) +\tag{20}\\ P_{\mathrm{output},\mathrm{new}} &= P_{\mathrm{output}} - \lambda \nabla_{P_{\mathrm{output}}} c(x, P) -\end{aligned} +\tag{21} +\end{align} $$

     
    @@ -4328,7 +4191,7 @@ for finding the gradients. Luckily, Autograd comes to the rescue.

    -

    An implementation of a Deep Neural Network

    +

    An implementation of a Deep Neural Network

    As previously stated, a Deep Neural Network (DNN) follows the same @@ -4344,58 +4207,7 @@ P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\} \).

    -

    Feed forward again

    - -

    -The feedforward step is similar to as for the neural netowork, but now considering more than one hidden layer. - -

    -The \( i \)-th neuron at layer \( l \) recieves the result -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) from the \( j \)-th neuron at layer -\( l-1 \). The \( i \)-th neuron at layer \( l \) weights all of the elements in -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) with a weight vector \( w_{i,j}^{(l), \ \mathrm{hidden}} \) with as many weigths as there are -elements in$\hat{x}_j^{(l-1),\mathrm{hidden} }$, and adds a bias -\( b_i^{(l), \ \mathrm{hidden} } \): - -

     
    -$$ -\begin{aligned} -z_{i,j}^{(l),\ \mathrm{hidden}} &= b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_j^{(l-1),\mathrm{hidden} } \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ -

     
    - -

    -The output from the \( i \)-th neuron at the hidden layer \( l \) becomes a vector \( \hat{z}_{i}^{(l),\ \mathrm{hidden}} \): - -

     
    -$$ -\begin{aligned} -\hat{z}_{i}^{(l),\ \mathrm{hidden}} &= \Big( b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_1^{(l-1),\mathrm{hidden} }, \ \dots \ , \ b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } \Big) \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_{1}^{(l-1),\mathrm{hidden} } & \hat{x}_{2}^{(l-1),\mathrm{hidden} } & \dots & \hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ -

     
    -

    - - -
    -

    The final parts of the code

    +

    The final parts of the code

    @@ -4446,7 +4258,7 @@ $$

    -

    And adding Back propagation

    +

    And adding Back propagation

    This step is very similar for the neural network. The idea in this @@ -4525,7 +4337,7 @@ analytically since Autograd does the work for us.

    -

    Solving the ODE

    +

    Solving the ODE

    Finally, having set up the networks we are ready to use them to solve the ODE problem. @@ -4541,14 +4353,14 @@ We add the analytical solution

    -

    Using neural network

    +

    Using neural network

    The code below solves the ODE using a neural network. The number of values for the input \( \vec x \) is 10, number of hidden neurons in the hidden layer being 10 and th step size used in gradien descent \( \lambda = 0.001 \). The program updates the weights and biases in the -network num_iter times. Finally, it plots the results from using the +network for a given number of iterations. Finally, it plots the results from using the neural network along with the analytical solution.

    @@ -4586,7 +4398,7 @@ plt.show()

    -

    Using a deep neural network

    +

    Using a deep neural network

    @@ -4620,7 +4432,7 @@ plt.show()

    -

    Wrapping it up

    +

    Wrapping it up

    By rewriting the ODE as a minimization problem, it was possible to diff --git a/doc/pub/NeuralNet/html/NeuralNet-solarized.html b/doc/pub/NeuralNet/html/NeuralNet-solarized.html index 419531dea..f5c9407fe 100644 --- a/doc/pub/NeuralNet/html/NeuralNet-solarized.html +++ b/doc/pub/NeuralNet/html/NeuralNet-solarized.html @@ -205,24 +205,20 @@ div { text-align: justify; text-justify: inter-word; } ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -3842,140 +3838,13 @@ painless. For simplicity, we assume that the input is an array \( \hat{x}= (x_1, \dots, x_N) \) with \( N \) elements. It is at these points the neural network should find \( P \) such that it fulfills \eqref{eq:min}. +All the ingredients discussed earlier, from the activation function, hidden layers and their weights, biases etc +are included below.











    -

    Feedforward

    - -

    -First, a feedforward of the inputs must be done. This means that \( \hat{x} \) -must be passed through an input layer, a hidden layer and a output - layer. The input layer in this case, does not need to process the - data any further. The input layer will consist of \( N_{\mathrm{input} } \) - neurons, passing its element to each neuron in the hidden layer. The - number of neurons in the hidden layer will be \( N_{\mathrm{hidden} } \). - -

    -For the \( i \)-th in the hidden layer with weight \( w_i^{\mathrm{hidden} } \) -and bias \( b_i^{\mathrm{hidden} } \), the weighting from the \( j \)-th neuron -at the input layer is: - -$$ -\begin{aligned} -z_{i,j}^{\mathrm{hidden}} &= b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_j \\ -&= -\begin{pmatrix} -b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -x_j -\end{pmatrix} -\end{aligned} -$$ - -

    - - -

    Result after weighting

    - -

    -The result after weighting the input at the \( i \)-th hidden neuron can be written as a vector: -$$ -\begin{aligned} -\hat{z}_{i}^{\mathrm{hidden}} &= \Big( b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_1 , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_2, \ \dots \, , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_N\Big) \\ -&= -\begin{pmatrix} - b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -x_1 & x_2 & \dots & x_N -\end{pmatrix} \\ -&= \hat{p}_{i, \mathrm{hidden}}^T X -\end{aligned} -$$ - -

    -It is the vector \( \hat{p}_{i, \mathrm{hidden}}^T \) that defines each row -in \( P_{\mathrm{hidden} } \), which contains the weights for the neural -network to minimize according to \eqref{eq:min}. - -

    -After having found \( \hat{z}_{i}^{\mathrm{hidden}} \) for every neuron \( i \) -in the hidden layer, the vector will be sent to an activation function -\( a_i(\hat{z}) \). In this example, the sigmoid function has been used: - -$$ -f(z) = \frac{1}{1 + \exp{(-z)}}. -$$ - -

    -









    - -

    Output

    - -

    -The output $\hat{x}_i^{\mathrm{hidden}}$from each \( i \)-th hidden neuron is: - -$$ -\hat{x}_i^{\mathrm{hidden} } = f\big( \hat{z}_{i}^{\mathrm{hidden}} \big). -$$ - -

    -The outputs \( \hat{x}_i^{\mathrm{hidden} } \) are then sent to the output layer. - -

    -The output layer consist of one neuron in this case, and combines the -output from each of the neurons in the hidden layers. The output layer -combines the results from the hidden layer using some weights \( -w_i^{\mathrm{output}} \) and biases \( b_i^{\mathrm{output}} \). In this case, -it is assumes that the number of neurons in the output layer is one. - -

    -The procedure of weigthing the output neuron \( j \) in the hidden layer -to the \( i \)-th neuron in the output layer is similar as for the hidden -layer described previously. - -$$ -\begin{aligned} -z_{1,j}^{\mathrm{output}} & = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{\mathrm{hidden}} -\end{pmatrix} -\end{aligned} -$$ - -

    -Expressing \( z_{1,j}^{\mathrm{output}} \) as a vector gives the following procedure of weighting the inputs from the hidden layer: - -$$ -\hat{z}_{1}^{\mathrm{output}} = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_1^{\mathrm{hidden}} & \hat{x}_2^{\mathrm{hidden}} & \dots & \hat{x}_N^{\mathrm{hidden}} -\end{pmatrix} -$$ - -

    -In this case we seek a continous range of values since we are -approximating a function. This means that after computing -\( \hat{z}_{1}^{\mathrm{output}} \) the neural network has finished its -feedforward step, and \( \hat{z}_{1}^{\mathrm{output}} \) is the final -output of the network. - -

    -









    - -

    Setting up the code, feed forward part

    +

    Setting up the code, feed forward part

    @@ -4026,10 +3895,10 @@ output of the network.











    -

    Backpropagation

    +

    Backpropagation

    -Now that feedforward can be done, the next step is to decide how the +Now that the feedforward can be done, the next step is to decide how the parameters should change such that they minimize the cost function.

    @@ -4083,7 +3952,7 @@ function along with the right ride of the ODE and trial solution.











    -

    Gradient Descent

    +

    Gradient Descent

    The idea of the gradient descent algorithm is to update parameters in @@ -4112,7 +3981,7 @@ the elements in \( \hat{\omega} \).











    -

    More on GD and cost function

    +

    More on GD and cost function

    In our case, we have to minimize the cost function \( c(x, P) \) with @@ -4125,10 +3994,12 @@ This means that \( P_{\mathrm{hidden} } \) and \( P_{\mathrm{output} } \) is updated by $$ -\begin{aligned} -P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) \\ +\begin{align} +P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) +\label{_auto13}\\ P_{\mathrm{output},\mathrm{new}} &= P_{\mathrm{output}} - \lambda \nabla_{P_{\mathrm{output}}} c(x, P) -\end{aligned} +\label{_auto14} +\end{align} $$

    @@ -4175,7 +4046,7 @@ for finding the gradients. Luckily, Autograd comes to the rescue.











    -

    An implementation of a Deep Neural Network

    +

    An implementation of a Deep Neural Network

    As previously stated, a Deep Neural Network (DNN) follows the same @@ -4191,54 +4062,7 @@ P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\} \).











    -

    Feed forward again

    - -

    -The feedforward step is similar to as for the neural netowork, but now considering more than one hidden layer. - -

    -The \( i \)-th neuron at layer \( l \) recieves the result -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) from the \( j \)-th neuron at layer -\( l-1 \). The \( i \)-th neuron at layer \( l \) weights all of the elements in -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) with a weight vector \( w_{i,j}^{(l), \ \mathrm{hidden}} \) with as many weigths as there are -elements in$\hat{x}_j^{(l-1),\mathrm{hidden} }$, and adds a bias -\( b_i^{(l), \ \mathrm{hidden} } \): - -$$ -\begin{aligned} -z_{i,j}^{(l),\ \mathrm{hidden}} &= b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_j^{(l-1),\mathrm{hidden} } \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ - -

    -The output from the \( i \)-th neuron at the hidden layer \( l \) becomes a vector \( \hat{z}_{i}^{(l),\ \mathrm{hidden}} \): - -$$ -\begin{aligned} -\hat{z}_{i}^{(l),\ \mathrm{hidden}} &= \Big( b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_1^{(l-1),\mathrm{hidden} }, \ \dots \ , \ b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } \Big) \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_{1}^{(l-1),\mathrm{hidden} } & \hat{x}_{2}^{(l-1),\mathrm{hidden} } & \dots & \hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ - -

    -









    - -

    The final parts of the code

    +

    The final parts of the code

    @@ -4288,7 +4112,7 @@ $$











    -

    And adding Back propagation

    +

    And adding Back propagation

    This step is very similar for the neural network. The idea in this @@ -4366,7 +4190,7 @@ analytically since Autograd does the work for us.











    -

    Solving the ODE

    +

    Solving the ODE

    Finally, having set up the networks we are ready to use them to solve the ODE problem. @@ -4381,14 +4205,14 @@ We add the analytical solution











    -

    Using neural network

    +

    Using neural network

    The code below solves the ODE using a neural network. The number of values for the input \( \vec x \) is 10, number of hidden neurons in the hidden layer being 10 and th step size used in gradien descent \( \lambda = 0.001 \). The program updates the weights and biases in the -network num_iter times. Finally, it plots the results from using the +network for a given number of iterations. Finally, it plots the results from using the neural network along with the analytical solution.

    @@ -4425,7 +4249,7 @@ plt.show()

    -

    Using a deep neural network

    +

    Using a deep neural network

    @@ -4458,7 +4282,7 @@ plt.show()











    -

    Wrapping it up

    +

    Wrapping it up

    By rewriting the ODE as a minimization problem, it was possible to diff --git a/doc/pub/NeuralNet/html/NeuralNet.html b/doc/pub/NeuralNet/html/NeuralNet.html index ff0d73330..67f62dbb7 100644 --- a/doc/pub/NeuralNet/html/NeuralNet.html +++ b/doc/pub/NeuralNet/html/NeuralNet.html @@ -210,24 +210,20 @@ div { text-align: justify; text-justify: inter-word; } ('Reformulating the problem', 2, None, '___sec90'), ('Estimating errors', 2, None, '___sec91'), ('Creating a simple Deep Neural Net', 2, None, '___sec92'), - ('Feedforward', 2, None, '___sec93'), - ('Result after weighting', 2, None, '___sec94'), - ('Output', 2, None, '___sec95'), - ('Setting up the code, feed forward part', 2, None, '___sec96'), - ('Backpropagation', 2, None, '___sec97'), - ('Gradient Descent', 2, None, '___sec98'), - ('More on GD and cost function', 2, None, '___sec99'), + ('Setting up the code, feed forward part', 2, None, '___sec93'), + ('Backpropagation', 2, None, '___sec94'), + ('Gradient Descent', 2, None, '___sec95'), + ('More on GD and cost function', 2, None, '___sec96'), ('An implementation of a Deep Neural Network', 2, None, - '___sec100'), - ('Feed forward again', 2, None, '___sec101'), - ('The final parts of the code', 2, None, '___sec102'), - ('And adding Back propagation', 2, None, '___sec103'), - ('Solving the ODE', 2, None, '___sec104'), - ('Using neural network', 2, None, '___sec105'), - ('Using a deep neural network', 2, None, '___sec106'), - ('Wrapping it up', 2, None, '___sec107')]} + '___sec97'), + ('The final parts of the code', 2, None, '___sec98'), + ('And adding Back propagation', 2, None, '___sec99'), + ('Solving the ODE', 2, None, '___sec100'), + ('Using neural network', 2, None, '___sec101'), + ('Using a deep neural network', 2, None, '___sec102'), + ('Wrapping it up', 2, None, '___sec103')]} end of tocinfo --> @@ -3847,140 +3843,13 @@ painless. For simplicity, we assume that the input is an array \( \hat{x}= (x_1, \dots, x_N) \) with \( N \) elements. It is at these points the neural network should find \( P \) such that it fulfills \eqref{eq:min}. +All the ingredients discussed earlier, from the activation function, hidden layers and their weights, biases etc +are included below.











    -

    Feedforward

    - -

    -First, a feedforward of the inputs must be done. This means that \( \hat{x} \) -must be passed through an input layer, a hidden layer and a output - layer. The input layer in this case, does not need to process the - data any further. The input layer will consist of \( N_{\mathrm{input} } \) - neurons, passing its element to each neuron in the hidden layer. The - number of neurons in the hidden layer will be \( N_{\mathrm{hidden} } \). - -

    -For the \( i \)-th in the hidden layer with weight \( w_i^{\mathrm{hidden} } \) -and bias \( b_i^{\mathrm{hidden} } \), the weighting from the \( j \)-th neuron -at the input layer is: - -$$ -\begin{aligned} -z_{i,j}^{\mathrm{hidden}} &= b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_j \\ -&= -\begin{pmatrix} -b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -x_j -\end{pmatrix} -\end{aligned} -$$ - -

    - - -

    Result after weighting

    - -

    -The result after weighting the input at the \( i \)-th hidden neuron can be written as a vector: -$$ -\begin{aligned} -\hat{z}_{i}^{\mathrm{hidden}} &= \Big( b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_1 , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_2, \ \dots \, , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_N\Big) \\ -&= -\begin{pmatrix} - b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -x_1 & x_2 & \dots & x_N -\end{pmatrix} \\ -&= \hat{p}_{i, \mathrm{hidden}}^T X -\end{aligned} -$$ - -

    -It is the vector \( \hat{p}_{i, \mathrm{hidden}}^T \) that defines each row -in \( P_{\mathrm{hidden} } \), which contains the weights for the neural -network to minimize according to \eqref{eq:min}. - -

    -After having found \( \hat{z}_{i}^{\mathrm{hidden}} \) for every neuron \( i \) -in the hidden layer, the vector will be sent to an activation function -\( a_i(\hat{z}) \). In this example, the sigmoid function has been used: - -$$ -f(z) = \frac{1}{1 + \exp{(-z)}}. -$$ - -

    -









    - -

    Output

    - -

    -The output $\hat{x}_i^{\mathrm{hidden}}$from each \( i \)-th hidden neuron is: - -$$ -\hat{x}_i^{\mathrm{hidden} } = f\big( \hat{z}_{i}^{\mathrm{hidden}} \big). -$$ - -

    -The outputs \( \hat{x}_i^{\mathrm{hidden} } \) are then sent to the output layer. - -

    -The output layer consist of one neuron in this case, and combines the -output from each of the neurons in the hidden layers. The output layer -combines the results from the hidden layer using some weights \( -w_i^{\mathrm{output}} \) and biases \( b_i^{\mathrm{output}} \). In this case, -it is assumes that the number of neurons in the output layer is one. - -

    -The procedure of weigthing the output neuron \( j \) in the hidden layer -to the \( i \)-th neuron in the output layer is similar as for the hidden -layer described previously. - -$$ -\begin{aligned} -z_{1,j}^{\mathrm{output}} & = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{\mathrm{hidden}} -\end{pmatrix} -\end{aligned} -$$ - -

    -Expressing \( z_{1,j}^{\mathrm{output}} \) as a vector gives the following procedure of weighting the inputs from the hidden layer: - -$$ -\hat{z}_{1}^{\mathrm{output}} = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_1^{\mathrm{hidden}} & \hat{x}_2^{\mathrm{hidden}} & \dots & \hat{x}_N^{\mathrm{hidden}} -\end{pmatrix} -$$ - -

    -In this case we seek a continous range of values since we are -approximating a function. This means that after computing -\( \hat{z}_{1}^{\mathrm{output}} \) the neural network has finished its -feedforward step, and \( \hat{z}_{1}^{\mathrm{output}} \) is the final -output of the network. - -

    -









    - -

    Setting up the code, feed forward part

    +

    Setting up the code, feed forward part

    @@ -4031,10 +3900,10 @@ output of the network.











    -

    Backpropagation

    +

    Backpropagation

    -Now that feedforward can be done, the next step is to decide how the +Now that the feedforward can be done, the next step is to decide how the parameters should change such that they minimize the cost function.

    @@ -4088,7 +3957,7 @@ function along with the right ride of the ODE and trial solution.











    -

    Gradient Descent

    +

    Gradient Descent

    The idea of the gradient descent algorithm is to update parameters in @@ -4117,7 +3986,7 @@ the elements in \( \hat{\omega} \).











    -

    More on GD and cost function

    +

    More on GD and cost function

    In our case, we have to minimize the cost function \( c(x, P) \) with @@ -4130,10 +3999,12 @@ This means that \( P_{\mathrm{hidden} } \) and \( P_{\mathrm{output} } \) is updated by $$ -\begin{aligned} -P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) \\ +\begin{align} +P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) +\label{_auto13}\\ P_{\mathrm{output},\mathrm{new}} &= P_{\mathrm{output}} - \lambda \nabla_{P_{\mathrm{output}}} c(x, P) -\end{aligned} +\label{_auto14} +\end{align} $$

    @@ -4180,7 +4051,7 @@ for finding the gradients. Luckily, Autograd comes to the rescue.











    -

    An implementation of a Deep Neural Network

    +

    An implementation of a Deep Neural Network

    As previously stated, a Deep Neural Network (DNN) follows the same @@ -4196,54 +4067,7 @@ P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\} \).











    -

    Feed forward again

    - -

    -The feedforward step is similar to as for the neural netowork, but now considering more than one hidden layer. - -

    -The \( i \)-th neuron at layer \( l \) recieves the result -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) from the \( j \)-th neuron at layer -\( l-1 \). The \( i \)-th neuron at layer \( l \) weights all of the elements in -\( \hat{x}_j^{(l-1),\mathrm{hidden} } \) with a weight vector \( w_{i,j}^{(l), \ \mathrm{hidden}} \) with as many weigths as there are -elements in$\hat{x}_j^{(l-1),\mathrm{hidden} }$, and adds a bias -\( b_i^{(l), \ \mathrm{hidden} } \): - -$$ -\begin{aligned} -z_{i,j}^{(l),\ \mathrm{hidden}} &= b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_j^{(l-1),\mathrm{hidden} } \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ - -

    -The output from the \( i \)-th neuron at the hidden layer \( l \) becomes a vector \( \hat{z}_{i}^{(l),\ \mathrm{hidden}} \): - -$$ -\begin{aligned} -\hat{z}_{i}^{(l),\ \mathrm{hidden}} &= \Big( b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_1^{(l-1),\mathrm{hidden} }, \ \dots \ , \ b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } \Big) \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_{1}^{(l-1),\mathrm{hidden} } & \hat{x}_{2}^{(l-1),\mathrm{hidden} } & \dots & \hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -$$ - -

    -









    - -

    The final parts of the code

    +

    The final parts of the code

    @@ -4293,7 +4117,7 @@ $$











    -

    And adding Back propagation

    +

    And adding Back propagation

    This step is very similar for the neural network. The idea in this @@ -4371,7 +4195,7 @@ analytically since Autograd does the work for us.











    -

    Solving the ODE

    +

    Solving the ODE

    Finally, having set up the networks we are ready to use them to solve the ODE problem. @@ -4386,14 +4210,14 @@ We add the analytical solution











    -

    Using neural network

    +

    Using neural network

    The code below solves the ODE using a neural network. The number of values for the input \( \vec x \) is 10, number of hidden neurons in the hidden layer being 10 and th step size used in gradien descent \( \lambda = 0.001 \). The program updates the weights and biases in the -network num_iter times. Finally, it plots the results from using the +network for a given number of iterations. Finally, it plots the results from using the neural network along with the analytical solution.

    @@ -4430,7 +4254,7 @@ plt.show()

    -

    Using a deep neural network

    +

    Using a deep neural network

    @@ -4463,7 +4287,7 @@ plt.show()











    -

    Wrapping it up

    +

    Wrapping it up

    By rewriting the ODE as a minimization problem, it was possible to diff --git a/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb b/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb index dad165cbf..4a8251538 100644 --- a/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb +++ b/doc/pub/NeuralNet/ipynb/NeuralNet.ipynb @@ -4266,148 +4266,9 @@ "For simplicity, we assume that the input is an array \n", "$\\hat{x}= (x_1, \\dots, x_N)$ with $N$ elements. It is at these points the neural\n", "network should find $P$ such that it fulfills ([eq:min](#eq:min)).\n", + "All the ingredients discussed earlier, from the activation function, hidden layers and their weights, biases etc\n", + "are included below.\n", "\n", - "## Feedforward\n", - "\n", - "First, a feedforward of the inputs must be done. This means that $\\hat{x}$ \n", - "must be passed through an input layer, a hidden layer and a output\n", - " layer. The input layer in this case, does not need to process the\n", - " data any further. The input layer will consist of $N_{\\mathrm{input} }$\n", - " neurons, passing its element to each neuron in the hidden layer. The\n", - " number of neurons in the hidden layer will be $N_{\\mathrm{hidden} }$.\n", - "\n", - "For the $i$-th in the hidden layer with weight $w_i^{\\mathrm{hidden} }$\n", - "and bias $b_i^{\\mathrm{hidden} }$, the weighting from the $j$-th neuron\n", - "at the input layer is:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{aligned}\n", - "z_{i,j}^{\\mathrm{hidden}} &= b_i^{\\mathrm{hidden}} + w_i^{\\mathrm{hidden}}x_j \\\\\n", - "&= \n", - "\\begin{pmatrix}\n", - "b_i^{\\mathrm{hidden}} & w_i^{\\mathrm{hidden}}\n", - "\\end{pmatrix}\n", - "\\begin{pmatrix}\n", - "1 \\\\\n", - "x_j\n", - "\\end{pmatrix} \n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Result after weighting\n", - "\n", - "The result after weighting the input at the $i$-th hidden neuron can be written as a vector:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{aligned}\n", - "\\hat{z}_{i}^{\\mathrm{hidden}} &= \\Big( b_i^{\\mathrm{hidden}} + w_i^{\\mathrm{hidden}}x_1 , \\ b_i^{\\mathrm{hidden}} + w_i^{\\mathrm{hidden}} x_2, \\ \\dots \\, , \\ b_i^{\\mathrm{hidden}} + w_i^{\\mathrm{hidden}} x_N\\Big) \\\\\n", - "&= \n", - "\\begin{pmatrix}\n", - " b_i^{\\mathrm{hidden}} & w_i^{\\mathrm{hidden}}\n", - "\\end{pmatrix}\n", - "\\begin{pmatrix}\n", - "1 & 1 & \\dots & 1 \\\\\n", - "x_1 & x_2 & \\dots & x_N\n", - "\\end{pmatrix} \\\\\n", - "&= \\hat{p}_{i, \\mathrm{hidden}}^T X\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is the vector $\\hat{p}_{i, \\mathrm{hidden}}^T$ that defines each row\n", - "in $P_{\\mathrm{hidden} }$, which contains the weights for the neural\n", - "network to minimize according to ([eq:min](#eq:min)).\n", - "\n", - "After having found $\\hat{z}_{i}^{\\mathrm{hidden}} $ for every neuron $i$\n", - "in the hidden layer, the vector will be sent to an activation function\n", - "$a_i(\\hat{z})$. In this example, the sigmoid function has been used:\n", - "\n", - "$$\n", - "f(z) = \\frac{1}{1 + \\exp{(-z)}}.\n", - "$$\n", - "\n", - "\n", - "## Output\n", - "\n", - "The output $\\hat{x}_i^{\\mathrm{hidden}}$from each $i$-th hidden neuron is:\n", - "\n", - "$$\n", - "\\hat{x}_i^{\\mathrm{hidden} } = f\\big( \\hat{z}_{i}^{\\mathrm{hidden}} \\big).\n", - "$$\n", - "\n", - "The outputs $\\hat{x}_i^{\\mathrm{hidden} } $ are then sent to the output layer. \n", - "\n", - "The output layer consist of one neuron in this case, and combines the\n", - "output from each of the neurons in the hidden layers. The output layer\n", - "combines the results from the hidden layer using some weights $\n", - "w_i^{\\mathrm{output}}$ and biases $b_i^{\\mathrm{output}}$. In this case,\n", - "it is assumes that the number of neurons in the output layer is one.\n", - "\n", - "The procedure of weigthing the output neuron $j$ in the hidden layer\n", - "to the $i$-th neuron in the output layer is similar as for the hidden\n", - "layer described previously." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{aligned}\n", - "z_{1,j}^{\\mathrm{output}} & = \n", - "\\begin{pmatrix}\n", - "b_1^{\\mathrm{output}} & \\hat{w}_1^{\\mathrm{output}}\n", - "\\end{pmatrix}\n", - "\\begin{pmatrix}\n", - "1 \\\\\n", - "\\hat{x}_j^{\\mathrm{hidden}}\n", - "\\end{pmatrix}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Expressing $z_{1,j}^{\\mathrm{output}}$ as a vector gives the following procedure of weighting the inputs from the hidden layer:\n", - "\n", - "$$\n", - "\\hat{z}_{1}^{\\mathrm{output}} = \n", - "\\begin{pmatrix}\n", - "b_1^{\\mathrm{output}} & \\hat{w}_1^{\\mathrm{output}}\n", - "\\end{pmatrix}\n", - "\\begin{pmatrix}\n", - "1 & 1 & \\dots & 1 \\\\\n", - "\\hat{x}_1^{\\mathrm{hidden}} & \\hat{x}_2^{\\mathrm{hidden}} & \\dots & \\hat{x}_N^{\\mathrm{hidden}}\n", - "\\end{pmatrix}\n", - "$$\n", - "\n", - "In this case we seek a continous range of values since we are\n", - "approximating a function. This means that after computing\n", - "$\\hat{z}_{1}^{\\mathrm{output}}$ the neural network has finished its\n", - "feedforward step, and $\\hat{z}_{1}^{\\mathrm{output}}$ is the final\n", - "output of the network.\n", "\n", "\n", "## Setting up the code, feed forward part" @@ -4472,7 +4333,7 @@ "source": [ "## Backpropagation\n", "\n", - "Now that feedforward can be done, the next step is to decide how the\n", + "Now that the feedforward can be done, the next step is to decide how the\n", "parameters should change such that they minimize the cost function.\n", "\n", "Recall that the chosen cost function for this problem is" @@ -4588,11 +4449,29 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "\n", + "

    \n", + "\n", "$$\n", - "\\begin{aligned}\n", - "P_{\\mathrm{hidden},\\mathrm{new}} &= P_{\\mathrm{hidden}} - \\lambda \\nabla_{P_{\\mathrm{hidden}}} c(x, P) \\\\\n", - "P_{\\mathrm{output},\\mathrm{new}} &= P_{\\mathrm{output}} - \\lambda \\nabla_{P_{\\mathrm{output}}} c(x, P) \n", - "\\end{aligned}\n", + "\\begin{equation}\n", + "P_{\\mathrm{hidden},\\mathrm{new}} = P_{\\mathrm{hidden}} - \\lambda \\nabla_{P_{\\mathrm{hidden}}} c(x, P) \n", + "\\label{_auto13} \\tag{20}\n", + "\\end{equation}\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "
    \n", + "\n", + "$$\n", + "\\begin{equation} \n", + "P_{\\mathrm{output},\\mathrm{new}} = P_{\\mathrm{output}} - \\lambda \\nabla_{P_{\\mathrm{output}}} c(x, P) \n", + "\\label{_auto14} \\tag{21}\n", + "\\end{equation}\n", "$$" ] }, @@ -4664,67 +4543,8 @@ "P_{\\mathrm{hidden} }^{(N_{\\mathrm{hidden}})}, \\ P_{\\mathrm{output} }\\big\\}$.\n", "\n", "\n", - "## Feed forward again\n", "\n", - "The feedforward step is similar to as for the neural netowork, but now considering more than one hidden layer. \n", "\n", - "The $i$-th neuron at layer $l$ recieves the result\n", - "$\\hat{x}_j^{(l-1),\\mathrm{hidden} }$ from the $j$-th neuron at layer\n", - "$l-1$. The $i$-th neuron at layer $l$ weights all of the elements in\n", - "$\\hat{x}_j^{(l-1),\\mathrm{hidden} }$ with a weight vector $w_{i,j}^{(l), \\ \\mathrm{hidden}}$ with as many weigths as there are\n", - "elements in$\\hat{x}_j^{(l-1),\\mathrm{hidden} }$, and adds a bias\n", - "$b_i^{(l), \\ \\mathrm{hidden} }$:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{aligned}\n", - "z_{i,j}^{(l),\\ \\mathrm{hidden}} &= b_i^{(l), \\ \\mathrm{hidden}} + \\big(\\hat{w}_{i}^{(l), \\ \\mathrm{hidden}}\\big)^T\\hat{x}_j^{(l-1),\\mathrm{hidden} } \\\\\n", - "&= \n", - "\\begin{pmatrix}\n", - "b_i^{(l), \\ \\mathrm{hidden}} & \\big(\\hat{w}_{i}^{(l), \\ \\mathrm{hidden}}\\big)^T\n", - "\\end{pmatrix}\n", - "\\begin{pmatrix}\n", - "1 \\\\\n", - "\\hat{x}_j^{(l-1),\\mathrm{hidden} }\n", - "\\end{pmatrix} \n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The output from the $i$-th neuron at the hidden layer $l$ becomes a vector $\\hat{z}_{i}^{(l),\\ \\mathrm{hidden}}$:" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "$$\n", - "\\begin{aligned}\n", - "\\hat{z}_{i}^{(l),\\ \\mathrm{hidden}} &= \\Big( b_i^{(l), \\ \\mathrm{hidden}} + \\big(\\hat{w}_{i}^{(l), \\ \\mathrm{hidden}}\\big)^T\\hat{x}_1^{(l-1),\\mathrm{hidden} }, \\ \\dots \\ , \\ b_i^{(l), \\ \\mathrm{hidden}} + \\big(\\hat{w}_{i}^{(l), \\ \\mathrm{hidden}}\\big)^T\\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\\mathrm{hidden} } \\Big) \\\\\n", - "&= \n", - "\\begin{pmatrix}\n", - "b_i^{(l), \\ \\mathrm{hidden}} & \\big(\\hat{w}_{i}^{(l), \\ \\mathrm{hidden}}\\big)^T\n", - "\\end{pmatrix}\n", - "\\begin{pmatrix}\n", - "1 & 1 & \\dots & 1 \\\\\n", - "\\hat{x}_{1}^{(l-1),\\mathrm{hidden} } & \\hat{x}_{2}^{(l-1),\\mathrm{hidden} } & \\dots & \\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\\mathrm{hidden} }\n", - "\\end{pmatrix}\n", - "\\end{aligned}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ "## The final parts of the code" ] }, @@ -4897,7 +4717,7 @@ "values for the input $\\vec x$ is 10, number of hidden neurons in the\n", "hidden layer being 10 and th step size used in gradien descent\n", "$\\lambda = 0.001$. The program updates the weights and biases in the\n", - "network *num_iter* times. Finally, it plots the results from using the\n", + "network for a given number of iterations. Finally, it plots the results from using the\n", "neural network along with the analytical solution." ] }, diff --git a/doc/pub/NeuralNet/ipynb/ipynb-NeuralNet-src.tar.gz b/doc/pub/NeuralNet/ipynb/ipynb-NeuralNet-src.tar.gz index 3f80b06c93f81314bdbce3191f64022a5a19f327..e098aee2cea53b714650130aeb81215630aa51c3 100644 GIT binary patch delta 20 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

    R%W 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 V7Yj>(fB-Kym>&QF$*RZ!{tJp~b-4fl diff --git a/doc/src/NeuralNet/NeuralNet.do.txt b/doc/src/NeuralNet/NeuralNet.do.txt index 958c631f5..5c0da3c04 100644 --- a/doc/src/NeuralNet/NeuralNet.do.txt +++ b/doc/src/NeuralNet/NeuralNet.do.txt @@ -3214,120 +3214,9 @@ painless. For simplicity, we assume that the input is an array $\hat{x}= (x_1, \dots, x_N)$ with $N$ elements. It is at these points the neural network should find $P$ such that it fulfills (ref{eq:min}). +All the ingredients discussed earlier, from the activation function, hidden layers and their weights, biases etc +are included below. -!split -===== Feedforward ===== - -First, a feedforward of the inputs must be done. This means that $\hat{x}$ -must be passed through an input layer, a hidden layer and a output - layer. The input layer in this case, does not need to process the - data any further. The input layer will consist of $N_{\mathrm{input} }$ - neurons, passing its element to each neuron in the hidden layer. The - number of neurons in the hidden layer will be $N_{\mathrm{hidden} }$. - -For the $i$-th in the hidden layer with weight $w_i^{\mathrm{hidden} }$ -and bias $b_i^{\mathrm{hidden} }$, the weighting from the $j$-th neuron -at the input layer is: - -!bt -\begin{aligned} -z_{i,j}^{\mathrm{hidden}} &= b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_j \\ -&= -\begin{pmatrix} -b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -x_j -\end{pmatrix} -\end{aligned} -!et - - -!split -===== Result after weighting ===== - -The result after weighting the input at the $i$-th hidden neuron can be written as a vector: -!bt -\begin{aligned} -\hat{z}_{i}^{\mathrm{hidden}} &= \Big( b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}}x_1 , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_2, \ \dots \, , \ b_i^{\mathrm{hidden}} + w_i^{\mathrm{hidden}} x_N\Big) \\ -&= -\begin{pmatrix} - b_i^{\mathrm{hidden}} & w_i^{\mathrm{hidden}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -x_1 & x_2 & \dots & x_N -\end{pmatrix} \\ -&= \hat{p}_{i, \mathrm{hidden}}^T X -\end{aligned} -!et - -It is the vector $\hat{p}_{i, \mathrm{hidden}}^T$ that defines each row -in $P_{\mathrm{hidden} }$, which contains the weights for the neural -network to minimize according to (ref{eq:min}). - -After having found $\hat{z}_{i}^{\mathrm{hidden}} $ for every neuron $i$ -in the hidden layer, the vector will be sent to an activation function -$a_i(\hat{z})$. In this example, the sigmoid function has been used: - -$$ -f(z) = \frac{1}{1 + \exp{(-z)}}. -$$ - - -!split -===== Output ===== - -The output $\hat{x}_i^{\mathrm{hidden}}$from each $i$-th hidden neuron is: - -$$ -\hat{x}_i^{\mathrm{hidden} } = f\big( \hat{z}_{i}^{\mathrm{hidden}} \big). -$$ - -The outputs $\hat{x}_i^{\mathrm{hidden} } $ are then sent to the output layer. - -The output layer consist of one neuron in this case, and combines the -output from each of the neurons in the hidden layers. The output layer -combines the results from the hidden layer using some weights $ -w_i^{\mathrm{output}}$ and biases $b_i^{\mathrm{output}}$. In this case, -it is assumes that the number of neurons in the output layer is one. - -The procedure of weigthing the output neuron $j$ in the hidden layer -to the $i$-th neuron in the output layer is similar as for the hidden -layer described previously. - -!bt -\begin{aligned} -z_{1,j}^{\mathrm{output}} & = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{\mathrm{hidden}} -\end{pmatrix} -\end{aligned} -!et - -Expressing $z_{1,j}^{\mathrm{output}}$ as a vector gives the following procedure of weighting the inputs from the hidden layer: - -$$ -\hat{z}_{1}^{\mathrm{output}} = -\begin{pmatrix} -b_1^{\mathrm{output}} & \hat{w}_1^{\mathrm{output}} -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_1^{\mathrm{hidden}} & \hat{x}_2^{\mathrm{hidden}} & \dots & \hat{x}_N^{\mathrm{hidden}} -\end{pmatrix} -$$ - -In this case we seek a continous range of values since we are -approximating a function. This means that after computing -$\hat{z}_{1}^{\mathrm{output}}$ the neural network has finished its -feedforward step, and $\hat{z}_{1}^{\mathrm{output}}$ is the final -output of the network. !split @@ -3381,7 +3270,7 @@ def neural_network(params, x): !split ===== Backpropagation ===== -Now that feedforward can be done, the next step is to decide how the +Now that the feedforward can be done, the next step is to decide how the parameters should change such that they minimize the cost function. Recall that the chosen cost function for this problem is @@ -3468,10 +3357,10 @@ This means that $P_{\mathrm{hidden} }$ and $P_{\mathrm{output} }$ is updated by !bt -\begin{aligned} +\begin{align} P_{\mathrm{hidden},\mathrm{new}} &= P_{\mathrm{hidden}} - \lambda \nabla_{P_{\mathrm{hidden}}} c(x, P) \\ P_{\mathrm{output},\mathrm{new}} &= P_{\mathrm{output}} - \lambda \nabla_{P_{\mathrm{output}}} c(x, P) -\end{aligned} +\end{align} !et This might look like a cumberstone to set up the correct expression @@ -3528,47 +3417,7 @@ P_{\mathrm{hidden} }^{(1)}, \ P_{\mathrm{hidden} }^{(2)}, \ \dots , \ P_{\mathrm{hidden} }^{(N_{\mathrm{hidden}})}, \ P_{\mathrm{output} }\big\}$. -!split -===== Feed forward again ===== -The feedforward step is similar to as for the neural netowork, but now considering more than one hidden layer. - -The $i$-th neuron at layer $l$ recieves the result -$\hat{x}_j^{(l-1),\mathrm{hidden} }$ from the $j$-th neuron at layer -$l-1$. The $i$-th neuron at layer $l$ weights all of the elements in -$\hat{x}_j^{(l-1),\mathrm{hidden} }$ with a weight vector $w_{i,j}^{(l), \ \mathrm{hidden}}$ with as many weigths as there are -elements in$\hat{x}_j^{(l-1),\mathrm{hidden} }$, and adds a bias -$b_i^{(l), \ \mathrm{hidden} }$: - -!bt -\begin{aligned} -z_{i,j}^{(l),\ \mathrm{hidden}} &= b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_j^{(l-1),\mathrm{hidden} } \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 \\ -\hat{x}_j^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -!et - -The output from the $i$-th neuron at the hidden layer $l$ becomes a vector $\hat{z}_{i}^{(l),\ \mathrm{hidden}}$: - -!bt -\begin{aligned} -\hat{z}_{i}^{(l),\ \mathrm{hidden}} &= \Big( b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_1^{(l-1),\mathrm{hidden} }, \ \dots \ , \ b_i^{(l), \ \mathrm{hidden}} + \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T\hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } \Big) \\ -&= -\begin{pmatrix} -b_i^{(l), \ \mathrm{hidden}} & \big(\hat{w}_{i}^{(l), \ \mathrm{hidden}}\big)^T -\end{pmatrix} -\begin{pmatrix} -1 & 1 & \dots & 1 \\ -\hat{x}_{1}^{(l-1),\mathrm{hidden} } & \hat{x}_{2}^{(l-1),\mathrm{hidden} } & \dots & \hat{x}_{N_{hidden}^{(l-1)}}^{(l-1),\mathrm{hidden} } -\end{pmatrix} -\end{aligned} -!et !split ===== The final parts of the code ===== @@ -3710,7 +3559,7 @@ The code below solves the ODE using a neural network. The number of values for the input $\vec x$ is 10, number of hidden neurons in the hidden layer being 10 and th step size used in gradien descent $\lambda = 0.001$. The program updates the weights and biases in the -network *num_iter* times. Finally, it plots the results from using the +network for a given number of iterations. Finally, it plots the results from using the neural network along with the analytical solution.