summaryrefslogtreecommitdiff
path: root/projects_blog/NNetwork.html
blob: 9612ed8e131f388e0db2a24a374f60a47bb42344 (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
<!DOCTYPE html>
<html lang="en">
<head>
	<title>chrhodgden - NNetwork</title>
	<link rel="stylesheet" href="../style.css"/>
	<script src="../app.js"></script>
</head>
<body>

	<h1>NNetwork</h1>
	<h3>A simple neural network in R as an R6 class object</h3>
	<a href="https://github.com/chrhodgden/NNetwork">GitHub Repository</a>
	<h2>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.
		<br>
		<br>
		<a href="https://youtu.be/aircAruvnKk">
			But what is a neural network? | Chapter 1, Deep learning
		</a>
		<br>
		<br>
		<i>"Oh, I can do that."</i> I immediately thought to myself.
		<br>
		<br>
		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>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.
		<br>
		<br>		
		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.
		<br>
		<br>
		<a href="https://www.youtube.com/playlist?list=PLZbbT5o_s2xq7LwI2y8_QtvuXZedL6tQU">
			Deep Learning Fundamentals - Intro to Neural Networks
		</a>
		<br>
		<br>
		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.
		<br>
		<br>
		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>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>

	<a href="../index.html">Home Page</a>

</body>
</html>