blob: d469682d8863e854ea9fc98496b92e27ba4144ea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
<!DOCTYPE html>
<html lang="en">
<head>
<title>chrhodgden - NNetwork</title>
<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>
<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>
|