From 6e33a7e14189afab3e9284dc01363f6b59d30cef Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Fri, 9 Oct 2020 07:34:29 -0400
Subject: [PATCH] Update readme

---
 readme.md | 35 ++++++++++++++++++++++++++++++-----
 1 file changed, 30 insertions(+), 5 deletions(-)

diff --git a/readme.md b/readme.md
index 617bb57..2cb21ef 100644
--- a/readme.md
+++ b/readme.md
@@ -1,12 +1,37 @@
+# Python - Intro to Back-Propagation
 
-# CS5300 a1
 
+## Description
+Attempts to implement Neural Network back-propagation. Once again, works with the Boston Housing data from the previous
+assignment. Calculations should be much more accurate than the previous assignment.
 
-## Author
-Brandon Rodriguez
 
+## Back-Propagation
+Back-propagation is one of the most basic and important aspects of modern Neural Nets.
 
-## Description
 
-Neural Network back-propagation project.
+### The Concept
+Essentially, it plots the dataset onto a multi-dimensional graph, where each data attribute is treated as a new
+dimension. The multi-dimensional plane will have theoretical hills and valleys, where the hills represent "local max"
+values and the valleys represent "local min" values.
+
+The network tries to determine which valley is the deepest, because it's the "global minimum" that will be
+the "most correct".
+
+In theory, this n-dimensional graph directly translates to some equation, such as ax<sub>1</sub> + bx<sub>2</sub> + ... +
+yx<sub>n-1</sub> + zx<sub>n</sub>, such that there is some [a, b, ..., y, z] location on the graph that will correctly
+solve most (or all) records in the dataset of [x<sub>1</sub>, x<sub>2</sub>, ..., x<sub>n-1</sub>, x<sub>n</sub>].
+
+### Back-Prop in Practice
+How it actually works is that the network has two modes. It can either be in "training" mode, where it checks against
+known solved data records, and attempts to learn how to replicate the answer. Or it will run on unsolved records, using
+what it learned in training to (hopefully) correctly solve these sets.
+
+When training, the network will compute with a given record. Then it examines against a known "correct" answer to
+see how close it was.
+
+At this point, if it was correct, then it pats itself on the back and moves on the the next record.
 
+If it was wrong, then it will work backwards to "nudge" itself closer to a correct solution. Going back to the
+theoretical concept, this is essentially akin to "updating some values of [a, b, ..., y, z], such that the network is
+moved closer to the global valley, or at least one of the local valleys."
-- 
GitLab