summaryrefslogtreecommitdiff
path: root/projects_blog/NNetwork.html
blob: e1fd16eaf54586916ae83d51fc1a980f8cc3ef33 (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
86
87
88
89
90
91
92
93
94
95
96
97
<!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"
			height="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>