Please share this video if you know somebody whom it might help. Thanks :) edit: Some people correctly identified the 3Blue1Brown style of the video. That is because I am using the python library manim (created by 3Blue1Brown) for the animations. Link and more information in the description. Huge thanks for all the likes and comments so far. You guys are awesome!
I can't say anything that hasn't been said already: This video is golden. The visualization, explaining, everything is just so well done. Phenomenal work. I'm basically commenting just for the algo bump this video rightfully deserves.
This is the kind of video that I was looking for to get beyond the basics of ML and start gaining a better and deeper understanding. Thank you for putting the effort into making this great video.
This video is pretty great, although i had to pause and sketch along and keep referring to the code you showed, it definitely helped me understand better how to do it
FANTASTIC video. Doing Stanford's Coursera Deep Learning Specialization and they should be using your video to teach week 4. Much clearer and far better visualized. Clearly, you put great effort into this. And kudos to using 3Blue1Brown's manim lib. Excellent idea. I am going to put your video link in the course chat room.
As an ML beginner, I know how much effort and time is needed for such visualization of a program. I would like to give you a huge thumb! Thank you for the video.
You've just explained very clearly in a single video what others try to vaguely explain in series of dozens videos. Thank you. Fantastic job! Looking forward to more great videos from you.
For running the code on Ubuntu 20.04 you need to do this: git clone github.com/Bot-Academy/NeuralNetworkFromScratch.git cd NeuralNetworkFromScratch sudo apt-get install python3 python-is-python3 python3-tk -y pip install --user poetry ~/.local/bin/poetry install ~/.local/bin/poetry run python nn.py
This is so interesting. I always wondered how a neural net works... but it's also good to remind ourselves that we're not as clever as we thought. I feel humbled knowing that there's some fierce minds out there working on these complicated problems.
Such an amazing video with lots of visualization. But I don't think you can simplify delta_o to "o - l" with whatever mathematical tricks. It needs to be "(o - l) * (o * (1 - o))".
Nice job with the explanation!!! I felt like I was watching a 3blue1brown video! A few notes: 1.)You should run through examples more often because that is one of the best ways to understand a concept. For example. you should have run through the algorithm for the cost function so people understand it intuitively. 2.)It would be nice if you went more in depth behind backpropagation and why it works. Things you did well: 1.)Nice job with the animations and how you simplified them for learning purposes, the diagrams would be much harder to understand if there was actually 784 input layers. 2.)I love the way you dissect the code line by line! I cant wait to see more videos by you I think this channel could get really big!
Great Video! However, you say that "Mean Squared Error" is used as loss function and you also calculate it. However "o - l" (seemingly the derivative of the loss function) isn't the derivative of MSE. It's the derivative of Categorical Cross Entropy ( -np.sum(Y * np.log(output)), with Softmax before it). Anyways, keep up the great work :)
yes but wasnt the value before sigmoid in the last cell 9 ? precisely I got something like 8.998 If I missed something please explain I want to know why is that
Welcome back dude! I have been waiting your comeback for so long Please dont go away this long next time :) Great editing and audio quality btw Reminds me of 3b1b
Well done, i couldnt ask for a better video, Germans make the best and most detailed educational videos here on youtube. The pupils of the world say thank you.
Such a great video -- high quality and easy to follow. Thanks. One typo in Additional Notes; (X,) + (1,) == (X, 1) -- this is shown correctly in the video, but in the Notes you show result as (1, X)
hey this was a great into! Gave a good playing ground to experiment with in increasing the nodes of the hidden layer, changing the activation function and even adding an addition hidden layer to evaluate the effects/effectiveness! With more epochs could get it above 99% accuracy (on the training set, so might be overfitted, but hey_)
Thanks for a very clear explanation. I was doing the same from scratch in python, but got stuck at dimensioning the weight matrices correctly, especially in this case with the 784 neuron input. Now i can check if this helps me to complete my own three layer implementation. 😅
Source text Excellent video. Best of the best ) i want to see more and slowly about backpropagation algorithm. It is most interesting moments.. maybe better to make the step by step slides?
11:32 why are you checking for the highest value I dont understand when the highest is 0.67 its classified as 0 can you please explain? Like what this number has to be for example for input to be classified as 1
What do neurons represent? You say "just numbers" @1:39. That may be true of the input layer (pixel values) and bias. But don't the neurons in other layers represent functions?
at 14:32 you use the updated weights (to the output layer) to calculate the hidden layer deltas. I never saw anyone doing it this way. Usually, the old weights are used and all weights are updated after backprop. I don't think it makes a large difference but I wonder if this is intentional or I am missing something.
Thank you so much for posting this comment, i was wondering why my model was losing accuracy with every epoch. With that little change my accuracy jumped from 20'000 / 60'000 to 56'000 / 60'000
for the first node in the hidden layer you added the bias node of 1, for the rest of the nodes in the hidden layer you multiplied the bias node of 1 ??
The first minute of this video got myself asking who is this dude and does he make more videos explaining compicated topics in a simple way. pls do more
I know I'm watching this 2 years after it was released but I really can't stress enough how helpful this is. I've seen heaps of videos explaining the math and heaps of videos explaining the code but this video really helped me to link the two together and demystify what is actually happening in both.
Hey guys can someone help me i have a project where i need to define an automata for the handwritten digit recognition and i still don't know how to define the states and transitions for my automaton
after learning i did print the W and Bios but its what i get ([[nan nan nan ... nan nan nan] [nan nan nan ... nan nan nan] [nan nan nan ... nan nan nan] ... [nan nan nan ... nan nan nan] [nan nan nan ... nan nan nan] [nan nan nan ... nan nan nan]]) i dont understant... is there any thing that i can do
Well , your brain is basically a complex neural network Plus, our body isn't us; our brain is us. We are just a complex meat neural network controlling a big fleshy, meaty and boney body.
It's great to see content that helps demystify complex topics like neural networks, especially using a versatile language like Python! Understanding neural networks is so vital in today's tech-driven world, and Python is a fantastic tool for hands-on learning. It's amazing how such concepts, once considered highly specialized, are now accessible to a wider audience. This kind of knowledge-sharing really empowers more people to dive into the fascinating world of AI and machine learning! 🌟🐍💻
Help please..... When I try to run code given in the description, get_mnist() cannot load source files.So error occurs... I get such error Matplotlib created a temporary config/cache directory at /tmp/matplotlib-lxktq7_o because the default path (/root/.config/matplotlib) is not a writable directory; it is highly recommended to set the MPLCONFIGDIR environment variable to a writable directory, in particular to speed up the import of Matplotlib and to better support multiprocessing. Traceback (most recent call last): File "main.py", line 21, in images, labels = get_mnist() File "main.py", line 6, in get_mnist with np.load(f"{pathlib.Path(__file__).parent.absolute()}/data/mnist.npz") as f: File "/usr/local/lib/python3.8/dist-packages/numpy/lib/npyio.py", line 390, in load fid = stack.enter_context(open(os_fspath(file), "rb")) FileNotFoundError: [Errno 2] No such file or directory: 'data/mnist.npz'
Excellent video and explanation of this classic intro to cv... However, when I clone the repo, install poetry and run poetry install, it throws a ton of errors. is there just a requirements.txt file for this that can be used? I am using Ubuntu 23.04 and Python 3.11.3
Excellent video and accompanying code. I just keep staring at the code, its art. And the naming convention with the legend is insightful, the comments tell the story like a first class narrator. Thank you for sharing this.
What are you referring to when you talk about "defining the matrix from the right-layer to the left-layer" @ 2:35 ? I'm sure I'm just missing something obvious, but I can't seem to figure out what that's referring to in the code..
What if the shape in the input can shift all around the place? It's still the same shape (e.g. a hand-written digit), but one time it is more to the left, other time it is more to the right and a little closer to the bottom, etc.; let;s say that my canvas is 800×800 pixels, and I need to detect this 28×28 digit no matter where it appears on this canvas).
Do these initial layer numbers have to be between 0 and 1? Can't they just be any number if the activation function will clamp them down to be between 0 and 1?
Sir! can u please explain how to design and write a code for a SNN for digit recognition using unsupervised lifelong learning algorithm in pycharm. I hope you will explain soon, I am exited for this video.