Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/iinjyi/hands-on-neural-networks

A series of hands-on notebooks for beginners in neural networks.
https://github.com/iinjyi/hands-on-neural-networks

ai cnn computer-science deep-learning deep-neural-networks lstm maths neural-networks python pytorch rnn transfer-learning

Last synced: about 2 months ago
JSON representation

A series of hands-on notebooks for beginners in neural networks.

Awesome Lists containing this project

README

        

# Hands-On Labs for Neural Networks with PyTorch

This repository contains a series of hands-on labs for beginners in neural networks using PyTorch. The labs are designed to briefly cover various topics, including Maths basics, Python refresher, and neural network concepts.

## Topics Covered

### 1. Maths Basics
- Linear Algebra: Introduction to linear algebra concepts used in neural networks.
- Calculus: Exploring calculus concepts relevant to neural networks.

### 2. Python Refresher & Environment Setup
- Miniconda Installation and Environment Setup: Step-by-step guide for installing Miniconda and setting up the environment.
- Python Refresher: Implementation of Maths functions.
- PyTorch: Getting started with PyTorch library for neural networks development.

### 3. Neural Network Concepts
- Neurons and Activation Functions: Understanding the building blocks of neural networks.
- Forward and Back Propagation: Implementing forward and back propagation algorithms in neural networks.
- Dense Neural Networks: Building and training dense neural networks.
- Convolutional Neural Networks (CNN): Introduction to CNNs and their applications in computer vision tasks.
- Recurrent Neural Networks (RNN): Exploring RNNs and their ability to process sequential data.
- Long Short-Term Memory (LSTM): Understanding LSTM networks and their role in handling long-term dependencies.
- Transfer Learning: Leveraging pre-trained models for transfer learning in neural networks.

## Labs

### 1. Introduction to Neural Networks
- Overview of neural networks, their applications, and workflow.

### 2. Linear Algebra for Neural Networks
- Understanding linear algebra concepts used in neural networks.

### 3. Calculus for Neural Networks
- Exploring calculus concepts relevant to neural networks.

### 4. Miniconda Installation and Environment Setup
- Step-by-step guide for installing Miniconda and setting up the environment with needed libraries.

### 5. Python Refresher & PyTorch
- Implementing maths concepts as a Python refresher and getting started with Pytorch for neural network development.

### 6. Neurons and Activation Functions
- Understanding the building blocks of neural networks: neurons and activation functions.

### 7. Forward and Back Propagation
- Implementing forward and back propagation algorithms in neural networks.

### 8. Dense Neural Networks
- Building and training dense neural networks.

### 9. Convolutional Neural Networks (CNN)
- Introduction to CNNs and their applications in computer vision tasks.

### 10. Recurrent Neural Networks (RNN)
- Exploring RNNs and their ability to process sequential data.

### 11. Long Short-Term Memory (LSTM)
- Understanding LSTM networks and their role in handling long-term dependencies.

### 12. Transfer Learning
- Leveraging pre-trained models for transfer learning in neural networks.

## Conclusion

This section provides a summary of the topics learned throughout the labs.

## References

- [1] [PyTorch Documentation](https://pytorch.org/docs/stable/index.html): Official documentation for PyTorch.
- [2] [Machine Learning Knowledge](https://machinelearningknowledge.ai/): A website providing resources and knowledge about machine learning.
- [3] [Miniconda Documentation](https://docs.conda.io/en/latest/miniconda.html): Official documentation for Miniconda.

## Additional Resources

- [3Blue1Brown](https://www.youtube.com/playlist?list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi): Visual tutorials for Neural Networks & Maths.
- [Deep Learning with PyTorch: A 60 Minute Blitz](https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html): A beginner-friendly tutorial on deep learning with PyTorch.
- [Neural Networks and Deep Learning](http://neuralnetworksanddeeplearning.com/): Online book by Michael Nielsen covering neural networks and deep learning concepts.
- [PyTorch Tutorials](https://www.youtube.com/playlist?list=PLqnslRFeH2UrcDBWF5mfPGpqQDSta6VK4): Complete beginner course.
- [Programming with Mosh](https://www.youtube.com/@programmingwithmosh): Python for beginners.

## Projects to implement (Optional)

Project 1: Image Classification

- Description: Build a neural network model that can classify images into different categories, such as cats and dogs.
- Steps:
1. Collect a dataset of labeled images.
2. Preprocess the images by resizing and normalizing them.
3. Design and train a convolutional neural network (CNN) model using PyTorch.
4. Evaluate the model's performance on a test set.
5. Fine-tune the model to improve its accuracy.
6. Test the model on new, unseen images.

Project 2: Sentiment Analysis

- Description: Develop a neural network model that can analyze the sentiment of text data, classifying it as positive, negative, or neutral.
- Steps:
1. Gather a dataset of labeled text data with corresponding sentiment labels.
2. Preprocess the text data by tokenizing, removing stopwords, and converting it into numerical representations.
3. Build and train a recurrent neural network (RNN) model using PyTorch.
4. Evaluate the model's performance on a validation set.
5. Fine-tune the model by adjusting hyperparameters and architecture.
6. Test the model on new, unseen text data.

Project 3: Stock Price Prediction

- Description: Create a neural network model that can predict future stock prices based on historical price data.
- Steps:
1. Collect a dataset of historical stock prices, including features such as opening price, closing price, volume, etc.
2. Preprocess the data by normalizing and splitting it into training and testing sets.
3. Design and train a recurrent neural network (RNN) or long short-term memory (LSTM) model using PyTorch.
4. Evaluate the model's performance by comparing predicted prices with actual prices.
5. Fine-tune the model by adjusting hyperparameters and architecture.
6. Use the model to make predictions on future stock price data.