I am 14 years old and very interested in neural networks. I have been programming since I was 9 and I have recently discovered the world of AI and neural networks. Being 14 years old causes some limitations as for my understanding of mathematics and I don‘t know anything about calculus. To get to the point, is there a neural network that doesn‘t require advanced mathematics? I understand neural nets but back prop is where I get stuck. Can I back prop efficiently without all this maths and still create a neural network that can solve more than simple linear problems? Thanks in advance!
It is great to see that you are already at such an advanced level at your age, so I would really suggest for you to keep on programming. As for your specific question:
Mathematically, Neural Networks are a topic in Computer Science like anything else: To build a function that calculates the Fibonacci numbers iteratively, it certainly helps to understand the underlying algorithm and its properties, but it is not required to implement such an algorithm, since there is plenty of material out there covering something like that without you needing to know much about it.
As for Neural Networks, there are a lot of different tools out there, some of you might have heard before. An incomplete list includes, e.g., TensorFlow, PyTorch (my personal favorite), Keras (which uses TensorFlow in the backend, if wanted), and many others.
All of these allow you to "implement backpropagation" along these lines (example in PyTorch):
optimizer.zero_grad()
loss.backward()
optimizer.step()
Initializing optimizer
and loss
can also be done quite easily, and you get a lot of different choices for that.
Of course, with all these choices, you have to know (at least somewhat) which architecture (or optimizer, or loss, etc.) to use. It helps immensely if you understand what the underlying operations perform! Even if it is just some high-level understanding, knowing what a Convolution does, how Mean Squared Error differs from Cross Entropy Loss (just throwing around some words here) will make life much easier.
The reason why your network won't work at all could be only a very tiny detail in your code, and unlike classical coding, the computer won't really tell you what the reason for the failure is. That makes it a lot harder to debug, especially if you lack the understanding of the underlying concept.
Of course, you can start by creating a simple neural network, and won't even need much of an understanding for it. Many of the listed Toolkits provide their own tutorial section to get you started in the area.
Especially with all the hype surrounding Neural Networks currently, there are a ton of (more or less experienced) people out there creating Jupyter Notebooks, GitHub Pages, blog entries, etc., full of valuable examples.
As with everything in computer science, practice makes perfect, and you will slowly start to understand more and more of the underlying concepts.
As Dave already pointed out, there are also some very light explanations out there, that focus more on the theory. Many people are currently trying to shift towards AI/ML from completely different fields, and thus have about as much understanding of the topic as you. Sadly, I started with the topic after I learned about the "basic maths" behind it, so I cannot recommend any specific books/tutorials/authors to read up upon.