<!DOCTYPE html> <html lang="en"> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>chrhodgden - NNetwork</title> <link rel="icon" type="image/svg+xml" href="../img/favicon.svg"> <link rel="stylesheet" href="../style.css"> <style> :root { --theme-color-check: 0; --accent-hue: var(--nnetwork-hue); } </style> </head> <body> <div class="dark-mode-container"> <input type="checkbox" id="--dark-theme-check">Dark Mode</input> </div> <h1>NNetwork</h1> <p class="header-sub-text">A simple neural network in R as an R6 class object</p> <nav class="nav-footer"> <hr> <a href="#background">Background</a> | <a href="#the-project">The Project</a> | <a href="#next-steps">Next Steps</a> <hr> </nav> <br> <a href="https://github.com/chrhodgden/NNetwork" target="_blank">GitHub Repository</a> <h2 id="background">Background</h2> <p> After learning R from a few R tutorials, I decided it was time to learn what machine learning and data science truly was. I had been putting off looking those up because I didn't feel like I was ready. I watched a series on neural networks by 3Blue1Brown on YouTube linked below. </p> <a href="https://youtu.be/aircAruvnKk" target="_blank"> But what is a neural network? | Chapter 1, Deep learning </a> <p> <i>"Oh, I can do that."</i> I immediately thought to myself. </p> <p> This video series applied old and familiar concepts of linear algebra and multivariable calculus that I had learned in college. Knowing that there were applications of this with data and programming inspired me to try to write some libraries from scratch. </p> <figure class="project"> <img src="../img/trained-nn.jpg" alt="Trained Neutal Network" width="300" > <figcaption>My first trained neural network!</figcaption> </figure> <h2 id="the-project">The Project</h2> <p> I chose R to do this rather than Python because I wanted to build experience with R. This project would be a good demonstration of mixing higher mathmatics with programming, which is what R was built to do. </p> <p> I did not follow any programming tutorials when developing this. My primary intention was to familiarize myself with the math behind these concepts. I wrote out as much of the program that made sense to me and then referenced YouTube for more detailed topics as I came to them. I primariliy referenced a series by deeplizard on Neural Networks linked below. </p> <a href="https://www.youtube.com/playlist?list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU" target="_blank"> Deep Learning Fundamentals - Intro to Neural Networks </a> <p> This series was helpful and taught me about weights and bias initialization, the learning rate, and walked the tedious math sequences in a way that I could follow with my code. </p> <p> One idea I came up with myself was simple testing process to verify the project worked. I decided to test the network by training it to read binary. This way I would not have to find or build a database of training data, nor label the data. </p> <h2 id="next-steps">Next Steps</h2> <p> This project was written in December of 2022 and added to GitHub in February of 2023. The next seps I would like to do would be to formalize the testing process into a Unit Test with the testthat library in R. After that, I would like to format the library into a package that could be installed consistently into other machines. Not necesarrily through CRAN, but through GitHub. </p> <nav class="nav-footer"> <hr> <a href="..\index.html">Home Page</a> | <a href="..\about.html">About Page</a> | <a href="#">Top of Page</a> <hr> </nav> <script src="../app.js"></script> </body> </html>