SureStart VAIL Training wiki - ZahraaShehabeldin/SureStart-VAIL GitHub Wiki
WEEK 1 - THE BASICS
Day 1: Welcome TO SureStart! (GETTING STARTED)
Hello, this is Zahraa Shehabeldin. Yesterday marks the start day for the SureStart program that I have joined. I attended the welcome meeting where we had the chance to know each other. I am really excited to be part of that program, learn new skills while enjoying the journey with my fellows in the program. I am excited to :
- Learn about the basic concepts of ML and AL.
- Create a network with passionate fellows who are interested in the same field.
- Connect and learn from my mentors.
- Follow a guided program to keep me on track to know more about the areas I am interested in.
Day 2: Introduction to Machine Learning (ML) AND Scikit-learn
Action Item:
- What is the difference between supervised and unsupervised learning?
- Supervised Learning is done by training the program using pre-defined examples. Traning the program is done to achieve accuracy when another data is provided to it.
- Unsupervised Learning is done by giving the program a bunch of data and the algorithm trying to make sense by extracting features and patterns from these data on its own.
- Describe why the following statement is FALSE: Scikit-Learn has the power to visualize data without Graphviz, Pandas, or other data analysis libraries.
As Scikit is built on top of these common libraries and that made it able to integrate them all.
What I did:
-
I was having an error with running the Graphviz library on Jupiter. I spent some time trying to fix this issue. Finally, I was able to fix it. I will write the steps that I followed for reference later. I am using Windows and I was using pip to install the required libraries instead I installed Anaconda. I searched and I found that I can install Anaconda without the need to re-install Python and its libraries.
-
I searched about Scikit library as it was my first time to know about it. I saw a video on youtube as I understand better when I see someone explaining not just reading a test.
Here is a link for a useful video: https://www.youtube.com/watch?v=OBJ4ysavvcc
LO from the video:
To Make a good Model:\ -
Understand where the Modal is falling.
-
How to make it better.
-
What kind of features it is using & how it is using them.
To Change Anaconda Prompt User Path:
I wanted to change the Anaconda prompt path to make it open in the directory where I have saved my files by:
Go to Start and search for "Anaconda Prompt" - right-click this and choose "Open File Location", which will open a folder of shortcuts. Right-click the "Anaconda Prompt" shortcut, choose "Properties" and you can adjust the starting dir in the "Start in" box.
In addition:
I attended the talk by Eng. Randi Williams about "How to train your Robot?" and I really enjoyed the talk and how she is passionate about what she is doing. I also liked the questions that my colleagues asked during the talk about the limitation of the robots that should deal with children.
Day 3: Introduction to ML and TensorFlow
-
What are “Tensors” and what are they used for in Machine Learning?
Tensors are a type of data structure that is used to calculate arithmetic operations. Tensors are like vectors and matrices and they are represented using n-dimensional arrays.
Tensors have two parameters called dimensions and rank. They are used in ML as a basic unit for calculation.
Tensors use the matrix to be represented. It makes it so much easy to represent information in an array. It is also used to represent the image by representing its pixels same with videos. So using tensors make it easy to deal with data that includes multidimensions. -
What did you notice about the computations that you ran in the TensorFlow programs (i.e. interactive models) in the tutorial?
I have noticed that the computations need an interactive session to get calculated otherwise, the model gets defined, but no process will run to calculate the result.
Also, I found that we need to disable eager execution in TFv2 to be able to run the session correctly. This is done using that line of code: tf.compat.v1.disable_eager_execution() \ Before running the Neural Network the data needs to be prepared first and we should know our data well and extract the important features from it. Also for the case of dealing with data of images, it needs to be rescaled, and in case of classification problems, we can convert the images into grayscale as the colors do not matter that much. In addition, the neural network was prepared first without passing the data into it and the data is passed to it during the runtime and after initializing the session.
Day 4: What is Deep Learning?
For the dataset, I was not having a specific example in my mind. So I searched for datasets online, and I found that website that includes different datasets: https://www.analyticsvidhya.com/blog/2018/03/comprehensive-collection-deep-learning-datasets/
I thought of a useful application in which we can use that dataset. I am always interested in finding solutions for the visually impaired to make their life easier. I found a data set of handwritten digits. I thought of using this dataset and develop a solution that can identify the numbers so the computer or the smartphones can recognize them and read that for them.
Here is a link for the dataset that I found:
http://yann.lecun.com/exdb/mnist/
Day 5: What are Neural Networks (NN)?
General Reflection:
I learned about the differences between Deep Learning and Machine Learning. I learned that there are 4 main architectural of DL. I also learned about the components of the Neural Networks like the neuron, synapses, and bias. I also knew about the concepts of training the algorithm and what do iteration, Epoch, and batch mean.
After that, from the same provided article I read about some different kinds of NNs like Feed Forward NNs, Recurrent NNs, Convolutional NNS, and Generative NNs. For the generative NNs, I got amazed by how the DL and the NN are capable of creating deep fakes.
For that day I am still missing the Kagal Notebook, but I am planning to get it done soon.
WEEK 2 - CNNS, DATA & Machine Learning
Day 8: INTRODUCTION TO CONVOLUTIONAL NEURAL NETWORKS (CNNS)
I learned about the Convolution Neural Network and while reviewing the Kaggle notebook for the famous MNIST dataset I learned the basics of the classification problem like loading the data set, normalization, reshape label encoding. I reviewed the performance of the given Kaggle notebook by using a larger dataset and apply the confusion matrix to test the performance of the model. After applying the confusion matrix on a larger dataset, I found that accuracy is higher as the model used more data to train.
Day 9: Algorithmic Bias and Datasets
1. How do you think Machine Learning or AI concepts were utilized in the design of this game?
I guess the game used the classification concept and created a model. The model was trained according to the data provided to it. This data was the CVs that I have chosen. I choose people according to their high skills and high working experience and it ended up that I choose more orange candidates than the blue ones. The model reflected that as selection criteria and ended up being biased to the Orange than the blue candidate.
2. Can you give a real-world example of a biased machine learning model, and share your ideas on how you make this model more fair, inclusive, and equitable? Please reflect on why you selected this specific biased model.
I just read that, Amazon was using an algorithm for hiring employees and in 2015 they realized that their algorithm is biased against the selection of women. The biased was caused because they used data from the past 10 years to train the algorithm and the accepted candidates at that time were mostly men, so the algorithm learned to favor men over women.
I selected this model specifically as I guess that caused many issues for the rejected candidates as they might not getting the job although they were qualified and worked a lot to achieve this dream. Also, this might be a loss for the company not to hire more professional candidates.
To make this model fair, they must give attention to the provided data and review its parameters. Try to avoid biases in selecting the data and avoid human correlation fallacy as much as possible as that worse when the machine replicates it. Also, consider the inclusion while training an algorithm like giving attention to subgroups or data.
DAY 10: Neural Network Layers
1. Succinctly list the differences between a Convolutional Neural Network and a Fully Connected Neural Network.
The Convolutional Neural Network (CNN) is specialized in image recognition and computer vision tasks. Generally, CNN is more specialized and efficient than the Fully Connected Neural Network. In the fully connected NN, each neuron is connected to every neuron in the previous layer, which makes the fully connected NN sensitive to the locations of an object in an image, treats local pixels as pixels far from each other, and requires too much heavy computations.
2. Discuss layers and their role, and applications of each of the two types of architectures.
For the CNN: It is used for image classification and computer vision applications.
a) Convolutional Layer: filter the image by scanning few pixels at a time and creating a feature map that predicts the class to which the feature belongs to.
b) Polling Layer (Down Sampling): Then the pooling layer reduces the amount of information in each feature. That results in reducing the dimensions and the computation and makes the model tolerant towards distortion.
c) The fully connected input layer (Flatten): Takes the output of the previous layers, flatten the input into a single vector for the next layer.
d) Then the first fully connected layer: Takes the input from the feature analysis and applies weight to predict the correct label.
e) Fully Connected output layer: This layer gives the final probability for each label.
For the Fully connected Neural Network: Its main advantage is that it is “structure agnostic”, which means no special assumptions needed to be made for the input. For the layers, it consists of a series of fully connected layers where each neuron in one layer is connected to another neuron in the next layer.
DAY 11: NEURAL NETWORK PRACTICE WITH MNIST DIGITS
I followed the CNN MNIST Tutorial and developed a CNN for classifying the MNIST dataset. Then I evaluated the performance of the model and used other photos for handwritten digits to make predictions.
DAY 12: IMAGE CLASSIFICATION AND ML
Note: CNNs deliver the best results in computer vision tasks. \ I learned about data pre-processing and did some modification to the number of epochs to monitor the change in the results.
WEEK 3 - FUNCTIONS AND PREDICTIONS
DAY 15: ETHICS-DRIVEN ML PRACTICE
I read the article about ethical thinking while creating models and using AI and ML for creating solutions.
I used this Gender Classification Kaggle Notebook as a tutorial to create a gender classification model using a dataset of facial images. I played with the parameters like changing the number of epochs and try the same tutorial on different environments like Google Collab, Jupyter notebook, and Kaggle notebook.
DAY 16: ACTIVATION FUNCTIONS
Rectified Linear activation and It's Advantages
ReLU function is the modern default activation function for hidden layers. This is because it is simple to implement and effective at overcoming the limitations of other previously popular activation functions like Sigmoid and Tanh. In addition, a model that uses it is easier to train and often achieves better performance.
ReLU function is calculated as follows: max (0.0,x); which means if the input is -ve it returns it as zero otherwise it returns its value.
ReLU is used in common architectures, such as MLP and CNN.
There are also some known advantages of the Rectified Linear Activation Function: \
- Computational Simplicity: calculated using the max function.
- Representational Sparsity: It is capable of generating a true zero.
- Linear Behavior: as it is easy for a neural network to optimize when its behavior is linear or close to linear.
- Train Deep Networks