Machine Learning and Neural Networks

Course Pre-requisite(s): Basic knowledge of programming, preferably in Python, and familiarity with basic algebra and statistics.

Course Overview

This course provides an introduction to Machine Learning (ML) and Neural Networks, with an emphasis on their practical applications in solving real-world problems. Topics covered include supervised learning, unsupervised learning, deep learning, neural network architectures, and performance evaluation. Students will gain hands-on experience by implementing algorithms in Python and applying them to diverse datasets. The course aims to equip students with the necessary skills to understand and develop ML models, preparing them for careers in data science, AI development, and research.

Learning Outcomes

By the end of this course, students should be able to:

-Understand and explain core concepts of Machine Learning and Neural Networks.
-Apply Neural Network architectures for classification, regression, and image processing tasks.
-Solve real-world problems using Deep Learning models, including Convolutional Neural Networks (CNNs) and Recurrent Neural Networks (RNNs).
-Work with popular ML libraries, such as TensorFlow, Keras, and Scikit-learn.

Course Content

Introduction to Machine Learning
-Types of machine learning: supervised, unsupervised, and reinforcement learning
- Basic ML algorithms: regression, classification, clustering
Introduction to Neural Networks
- Perceptron and feedforward neural networks
-Activation functions: ReLU, sigmoid, tanh
-Backpropagation and optimization algorithms

Deep Learning
-Convolutional Neural Networks (CNNs)
-Recurrent Neural Networks (RNNs) and Long Short-Term Memory (LSTM) networks
-Transfer learning and fine-tuning pre-trained models

Practical Applications and Case Studies
-Image classification, sentiment analysis, and time-series forecasting

- Metrics: accuracy, precision, recall, F1 score
-Hyperparameter tuning and model optimization

-Bias and fairness in machine learning
-Interpretability and explain ability in AI systems

Instructional Method

Lectures: To introduce theoretical concepts and provide a strong foundational understanding of machine learning and neural networks.
Hands-on Programming Sessions: Practical sessions where students will implement algorithms in Python using popular libraries like TensorFlow, Keras, and Scikit-learn.
Group Projects: Students will work in groups to apply machine learning techniques to solve real-world problems.
Seminars and Discussions: Students will analyze recent research papers and case studies to understand cutting-edge applications of machine learning and neural networks.

Required Course Materials

Textbook: "Deep Learning" by Ian Goodfellow, Yoshua Bengio, and Aaron Courville (MIT Press)

Software:
-Python 3.x
-TensorFlow, Keras, Scikit-learn, Matplotlib, and Pandas
-Jupyter Notebook (or preferred IDE)

Assessment

Assignments (30%): Weekly programming assignments and quizzes to reinforce key concepts.
Group Project (30%): Students will work in groups to apply machine learning techniques to a real-world problem, presenting their results at the end of the course.
Midterm Exam (20%): An in-class exam to assess students’ understanding of the fundamental concepts of machine learning and neural networks.
Final Exam (20%): A comprehensive exam covering all course topics, including theory and practical application.


Grading will be based on a scale of 100 points, and final grades will be assigned based on the following thresholds:
A: 90-100
B: 80-89
C: 70-79
D: 60-69
F: Below 60