Additional Resources
Part 6
Throughout these tutorials, we learnt what a neural network was and how it processed data using perceptrons and layers. Then we continued by exploring how these networks actually learn through the processes of gradient descent and backpropagation. We looked at the different types of neural networks, from CNNs A Convolutional Neural Network (CNN) is a type of neural network designed to process data with a grid-like structure, such as images. Instead of looking at the entire image at once, it uses small filters (kernels) that slide over the input to detect local patterns like edges, textures, or shapes, and then combines these to recognise more complex features. and RNNsA Recurrent Neural Network (RNN) is a type of neural network designed to handle sequential data by carrying information from one step of the sequence to the next through its hidden state. This memory-like ability makes it useful for tasks such as speech recognition, language modeling, and time-series prediction., to TransformersA Transformer is a neural network architecture that processes entire sequences in parallel using a mechanism called self-attention, which allows it to weigh the importance of different parts of the input relative to each other. This design makes it especially powerful for tasks like translation, text generation, and large-scale language modeling. and GANsA Generative Adversarial Network (GAN) consists of two competing neural networks: a generator that creates synthetic data and a discriminator that tries to distinguish between real and fake data. Through this adversarial training, GANs learn to produce highly realistic outputs, such as images, music, or even video.. Finally, we finished off by having a look at what implementing a neural network in real life involves, and how neural networks are used in a variety of fields to solve huge problems today. I hope I've taught you something, and possibly even encouraged you to dig deeper to elements of neural networks that you are curious about. I have compiled some good free online resources should you wish to continue this journey:
▬▬▬▬▬▬
"Vanilla" Neural Networks (FNNs):
- https://www.youtube.com/watch?v=aircAruvnKk: This video by 3Blue1Brown is really intuitive and approaches neural networks in an easy-to-understand way. However most of the content from these tutorials are covered in this website. The video is more for people that want a recap or visual experience. It is a series of videos each teaching a different thing. 3Blue1Brown also makes great other CS and Math videos which I've really liked.
- https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX9hdHaRr6b7XevZtgZRa1PoU: This is a really great resource that explains neural networks really well. I found it quite helpful in making this website. The course is divided up into little 5-minute videos, so there's not much investment. Also check out some of the other stuff that Welch Labs has done: it's great.
- https://www.youtube.com/watch?v=cAkMcPfY_Ns: A fun little video. It won't teach you a lot about the theory, but it's a really entertaining video and might show you a bit of what it's like making a neural network from scratch without frameworks like TensorFlow or PyTorch.
- https://openlearninglibrary.mit.edu/courses/course-v1:MITx+6.036+1T2019/course/: The MIT course is pretty good as it formally covers a lot of different parts of machine learning, not just neural networks, but don't expect it to be easy or extremely intuitive.
- https://brilliant.org/courses/intro-neural-networks/: Brilliant.org has a great course about neural networks which is very interactive. I have already explained most of the stuff covered here though.
- https://developers.google.com/machine-learning/crash-course/neural-networks: Google Developer courses are quite good. Not particularly intuitive though. However it's very good if you are thinking of making your own AI.
- http://neuralnetworksanddeeplearning.com/: This is a really great resource for bridging the gap between intuitive and formalised systems, so I would highly recommend reading this, but it requires investment.
▬▬▬▬▬▬
Transformers and LLMs:
- https://www.youtube.com/watch?v=wjZofJX0v4M&list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi&index=6: Another great 3Blue1Brown video which leads onto another one. This describes the maths and intuition behind self-attention in Transformers and how LLMs work.
- https://medium.com/data-science-at-microsoft/how-large-language-models-work-91c362f5b78f: This is an intuitive and fun but really useful resource that can help people of any knowlege level understand what LLMs and Chatbots really are. I would highly recommend (it's also by a Microsoft data scientist)
▬▬▬▬▬▬
CNNs:
- https://medium.com/@prathammodi001/convolutional-neural-networks-for-dummies-a-step-by-step-cnn-tutorial-e68f464d608f: A great article about how CNNs work, but some of the explanations aren't the best.
- https://www.datacamp.com/tutorial/introduction-to-convolutional-neural-networks-cnns: Pretty good introductory course to CNNs, but it can be confusing at times.
Glossary and Frequently Used terms:
- Artificial Intelligence (AI)
- Machines designed to perform tasks that usually require human intelligence, such as understanding speech, recognising images, or making decisions.
- Machine Learning (ML)
- A subset of AI where machines learn from data to make predictions or decisions without being explicitly programmed.
- Deep Learning
- A specialised area within ML that uses multi-layered neural networks to model complex patterns in large datasets. It is called "deep" because of the many layers of processing involved.
- Neural Network
- A computational model inspired by the human brain, consisting of layers of nodes (neurons) that process input data to produce an output.
- Neuron
- The basic unit in a neural network that receives input, processes it, and passes on its output to the next layer.
- Layer
- A collection of neurons in a neural network. Common types include:
- Input Layer: Receives raw data.
- Hidden Layers: Process data through weighted connections.
- Output Layer: Produces the final prediction or classification.
- Activation Function
- A mathematical function applied to a neuron's output, introducing non-linearity to help the network learn complex patterns.
- Training
- The process of teaching a neural network by feeding it data and adjusting its weights to minimise errors in predictions.
- Backpropagation
- A method used during training where the network adjusts its weights by calculating the gradient of the error and propagating it backwards through the network.
- Epoch
- One complete pass through the entire training dataset.
- Overfitting
- When a model learns the details and noise in the training data to the extent that it negatively impacts its performance on new data.
- Underfitting
- When a model is too simple to capture underlying patterns in the data, leading to poor performance on both training and new data.
- Generalisation
- The ability of a model to perform well on new, unseen data.
- Variance
- The model's sensitivity to small fluctuations in the training dataset. High variance can lead to overfitting.
- Cost/Loss Function
- A mathematical function that measures the difference between the model's predictions and the actual outcomes. The goal is to minimise this loss.
- Optimiser
- An algorithm used to adjust the weights of the neural network to minimise the cost/loss function.
- Convolutional Neural Network (CNN)
- A type of neural network particularly effective for processing structured grid data, such as images.
- Recurrent Neural Network (RNN)
- A type of neural network designed for sequential data, such as time series or natural language.
- Transfer Learning
- Reusing a pre-trained model on a new but related problem, saving time and computational resources.