Skip to main content

60 Days of Udacity: A Bertelsmann Technology Scholarship in AI

I applied and was recently awarded the Bertelsmann Technology scholarship where a group of students take part in an Artificial Intelligence track made up of 5 parts to be completed in 3.5 months.

 As part of taking the class, we have to take part in a slack channel where we post our daily studies for 60 days reflecting on what we have learned. This is a transcription of those 60 days. The public github wiki is located here 

Day 1: I am in p3  (Datasets) doing the xray annotation project. I have created the appen job using the "Image Categorization" template. I uploaded the xray image data and modified the CML to make the  questions specific to checking for pnemonia. Also updated the Examples section. I am still working out the usage of conditional only-if in checkboxes to determine what other smarts to include when annotators go through the page. Created one Question so far and will continue working on the other questions next (this seemed longer than 30 min so I'll continue tomorrow, have to make the 60 days last). I updated the files on my github here #60daysofudacity

Day 2: I just finished setting up my TopGreener smart plug IoT device to automate turning on the outdoor Christmas lights when sunset hits. I believe it connects to the weather network to estimate when sunset is for my city. That api call is binary but the astronomy service used on the other side may be using AI/ML to correctly annotate when sunset is for a location (I doubt they use human annotation). This service is one example  

I updated my notes here on my GitHub wiki



Day 3: Updated the appen job with 5 questions for p3 project. What is the ratio of questions to the 117 total dataset that is needed to generate an unbiased result set? My draft project proposal documentation here so far #60daysofudacity

Day 4: Started with p4 lesson 1 and completed the two quizzes there. I went back to p2 and realized I missed the quiz in section 11 (Unsupervised vs. Supervised Approaches) so I completed that as well. I think I missed it because I did the lessons from my phone initially, which makes it harder to see all the material, instead of doing them from my desktop. I also added another question to my p3 project in Appen dashboard for a total of 6 questions to ensure I include a test case for every 19 data points, i.e. 117 / 19 = 6+ questions in total needed. I have updated my notes here  #60daysofudacity

Day 5: Finished p4 lesson 1 including confusion matrix quiz. Starting to see AI practical uses everywhere including this robotic pool cleaner at YMCA. I think this pool cleaner is similar to the iRobot vacuum cleaner in that the same sensors are used to sense wall obstructions. “Transfer Learning” ML is probably used here to copy the pre-trained network for the first few layers but the output layer  is tuned to work in a pool environment like checking for mold for example. The YMCA pool is still closed due to covid but am excited nevertheless to see some activity on the pool deck.

Updated my github wiki notes here  #60daysofudacity


I was just googling pool cleaning robots and the embedded systems processors they use needing low power to work underwater in order to not electrocute the water. Don’t know how TinyML works but if it modifies code size then power consumption may increase. Will be reading up more on TinyML.

Day 6: Started training my model for p4 lesson 2 project. I signed up for a Google Cloud Platform free-trial for 90 days and $390 to spend. This trial expires in Mar 2021. Created an AutoML Vision classification project and setup a standard Google Cloud Storage free-tier account in the us-west1 region (single region only) which will be used to store the CSV dataset that I upload to GCP. I picked 100 Chest X-Ray Images each for normal/pneumonia for my new AutoML dataset and uploaded the zipped file to GCP which is now importing the images into the dataset.

Day 7: Completed the first model "Binary Classifier with Clean/Balanced Data" for p4 lesson 2 project.  The wording "score threshold" appears to have changed to "confidence threshold" on the GCP Vision dashboard so that confused my a little. The "TEST&USE" tab also shows as "Predict" in the lesson graphic which is incorrect. I don't see "Upload Image" so I assume I have to click on "Deploy Model" to actually run the test. This is where it starts incurring costs. So far I completed the AutoML Model Report for Binary Classifier with Clean/Balanced Data only.  I will add 3 additional models to the project next, with cleanunbalanced, dirtybalanced, and 3class datasets.

Day 8: Created another dataset containing 100 "normal" images and 300 "pneumonia" images to train the "Binary Classifier with Clean/Balanced Data" model. Also prepared the zip files for the other next two datasets, i.e. dirtybalanced and 3class. Just waiting for the cleanunbalanced dataset to finish training which could take a few hours. I entered codewars and finished a Kata in python. Currently considering challenge for Day 4. 

Day 9: Completed training the remaining 3 datasets for the cleanunbalanced, dirtybalanced, and 3class inside GCP. I recorded the confusion matrix for each one and answered the questions asked in the project report for each model. I am still working on how to correctly identify the binary classification (positive vs negative) for a matrix with 3 classes. The F1 score is also not calculated yet so I believe I need to upload a new dataset that only includes normal and one of the pneumonia classes in order to get a correct confusion matrix established. I'll do that next. I also completed two python challenges on with the results posted on my github here I might also setup my Raspberry Pi 3 in order to run some kaggle challenges next.

Day 10: Uploaded new datasets to my GCP project to train and evaluate. I split the 3class model to include 3classviral and 3classbacterial comparing each one to a normal dataset to ensure there is less confusion. Calculated the F1 score given the new datasets. I have completed my project report now for p4 lesson 2 and am looking to figure out how to do some peer-reviewing if anyone is interested. I posted a question on a uopeople subreddit asking what their process is because grading of projects and assignments are done by their classmates. I asked if they use any digital rights management product to protect the projects but haven't heard back yet. 

Day 11: Started p5 lesson 1 on "Measuring Impact and Updating Models". Got to item 13 or 76% done. I followed up on peer reviews with uopeople and it seems they use proctoru which isn't free. An alternative is using Google Drive to apply rights management to the project document to prevent copying, printing, downloading of that project. This also would require a Google account so plagiarism can be tracked that way. Just some thoughts.

Day 12: Drafted goals and objectives for study group #sg_pinoi_and_pin_ai for my filipino peoples. Also added a poly asking for a good time to meet. Read some of the SG Toolkit to get some ideas. Also lso reviewed first half of p5 lesson 1.

Day 13: Completed all the p5 lessons and quizzes. Started draft of capstone project but am still unsure of what to use for business proposal, whether I use an actual use case we can use at work, one I can use personally at home, or something that we can use at school for this udacity course.

Day 14: Continued working on capstone project. Also tried to setup some last minute calls with #sg_pinoi_and_pin_ai study group but will likely continue next week as it's Christmas in the Philippines now. 

Day 15: Reread p5 lessons and updated my github wiki Trying to find another free ML service as an alternative to GCP AutoML as I have only $200 credits left. Planning to use the Titanic dataset from Kaggle. 

Day 16: Created a new Google colab notebook to test training the Titanic dataset from the Kaggle challenge. Still undecided on business case for p5 project

Day 17: Reviewed great summary notes from @Winsome Yuen for p5. Trying to get train.csv dataset working from the Kaggle titanic challenge. 

Day 18: Will use company mid-year real estate prospectus generated by R&D team to come up with a capstone project proposal. Given the COVID pandemic is unlike any other pandemic, forecast the service-oriented jobs most heavily affected in the coming months using AI/ML to estimate US: CAN EN: 

Day 19: Close to fixing the titanic dataset for the Kaggle challenge using Keras API to train, evaluate, and predict survivors from given test set. Just don't know how to set the value for the label for the test dataset so I joined the kaggle study group. I also setup a kickoff meeting for #sg_pinoi_and_pin_ai study group tomorrow afternoon at 3:30pm Pacific.  

Day 20: Finished first page of capstone project. Updated SG charter with meeting minutes from today.

Day 21: Finished and submitted my first Kaggle challenge using Titanic datasets, detailed in my github repo here and wike here. I used keras on top of Tensorflow, dataframes in pandas, and numpy Python libraries. I submitted a survivor count of 184 out of 418 which is 0.74162 accuracy from Kaggle leaderboard. Opened another Zoom bridge at 10:30am Pacific today for our #sg_pinoi_and_pin_ai study group. Will start with project peer-review initiatives next week hopefully.

Day 22: Gathered the three project rubrics and working to assign points to each row in preparation for project peer grading in study group #sg_pinoi_and_pin_ai. Head on over to that channel to get yours graded mga Pinoy and Pinay. Happy new year to all

Day 23: Updated study group charter for #sg_pinoi_and_pin_ai with 2 initiatives. Customized project 1 rubrics for peer grading next week. Updated my personal blog.

Day 24: Completed all other sections of capstone project except for the MVP and post-MVP-Deployment sections. Registered for a free account as suggested by @@Winsome Yuen to try and generate a sketch of my product. Trying to figure out how to do that as it's not as easy as it looks. 

Day 25: Updated Project 1 rubrics and scheduled zoom call for tomorrow for #sg_pinoi_and_pin_ai study group. For capstone project, still trying to figure out what to wireframing with Figma because the proposal outcome is not an online website but a PDF report. #60daysofudacity 

Day 26: Completed the MVP and post-MVP-Deployment sections of the capstone project. I was able to figure out how to use Figma wireframing app to generate a layout of business outcome in the form of a line graph. I had to go back to A/B Testing using @Rohit Roy Chowdhury great handwritten notes to review as I couldn't quickly find it in the Udacity classroom lessons. Excited to get it peer-reviewed when we have the rubrics ready from our study group. We have a meetup scheduled today in a few hours time so hope to see some of the members there.

Day 27: Started working on project 2 rubrics for peer review. Updated SG charter and posted meeting minutes from yesterday meetup for our #sg_pinoi_and_pin_ai channel. Joined the featured SG #sg_ai_practioners and read about random forests.

Day 28: Continuing to work on project 2 rubrics.

Day 29: Attended meetup “Learn Data Science by doing Kaggle Competitions” where they looked at prostate cancer detection by looking at cancer tissue pictures.

Day 30: Half-way through Pluralsight course “Building Bots with Microsoft’s Bot Framework”. 

Day 31: Continued listening to the Pluralsight course “Building Bots with Microsoft’s Bot Framework”. Now at lesson 5 of 7, topic is “The Dialog of Bots”. Complicated stuff.

Day 32: Completed project 2 peer review rubrics template for our study group #sg_pinoi_and_pin_ai, and setup next weekly meeting. Finished lesson 6 of 7 of Pluralsight course “Building Bots with Microsoft’s Bot Framework”, topic is "Adding Natural Language Processing through LUIS AI". 

Day 33: Prepared meeting minutes for study group weekly calls. Updated project 1 rubrics for the sg_canada study group.

Day 34: Attended kickoff for mentorship program at BCIT, which I am hoping to use for our study groups as a possible initiative, if the members want to.

Day 35: Continued listening to lesson 6 of 7 of Pluralsight course “Building Bots with Microsoft’s Bot Framework”, topic is "Adding Natural Language Processing through LUIS AI". Did the intro to ML and started reading through the syllabus for CS 7638 Artificial Intelligence for Robotics class. 

Day 36: Finished first out of 4 in the Veracode Secure Coder competition titled "OWASP #2: Broken Authentication" running until Jan 15 midnight. Doing the challenge in python of course. 

Day 37: Started with the CS 7638 Artificial Intelligence for Robotics class and completed lesson 17/37 of Localization Overview module. Also started with CS 6601 Artificial Intelligence class and completed lesson 10/54 of the Game Playing module. Here is my reddit post asking other students for advise on these two courses. 

Day 38: Finished all 37 lessons of Localization Overview module from CS 7638 Artificial Intelligence for Robotics class. Learned about the foundation of autonomous driving and Bayes' theorem. 

Day 39: Installed minconda3 and PyCharm Community 2020.3 to my computer. Finished python quiz 2 out of 4 from problem set 0. Working with classes and dictionaries.

Day 40: Completed 4/5 lessons in the Problem Set 1 module. Working on the python Localization programming quiz for lesson 4. Scheduled our third weekly study group meetup for #sg_pinoi_and_pin_ai happening in 5 minutes.  

Day 41: Completed Problem Set 1 module including the python coded for the Localization Program. Very cool concept using probabilities to a robot's 2D world (lane marker vs road) for Google's self-driving car. Now working to submit via Gradescope. 

Day 42: Started with lesson 4/28 of Kalman Filter module, in preparation for the Meteorites (Kalman Filter) Project due in two weeks. 

Day 43: Completed lesson 20/28 of Kalman Filter module, covering 1D Karman filter code in python.

Day 44: Working on problem set 2 programming quiz, calculating the number of dimensions using matrix class.

Day 45: Submitted problem set 2 to Gradescope, was able to figure out the correct multi-dimenisonal matrices. Started working on the Meteorites Project due Feb 8. The goal is to track a collection of falling meteorites 1) estimate their future locations; 2) defend the Earth from them with your laser turret. I'm a little terrified let me tell you. 

Day 46: Working on the two measurement methods for the meteorite python project. Paid for the tuition before deadline tomorrow.

Day 47: Continue to work on the get_meteorite_observations and do_kf_estimate_meteorites methods for the meteorite python project. Updated meeting minutes from study group.

Day 48: Finally got the get_meteorite_observations and do_kf_estimate_meteorites methods working and am now able to get 4/8 test cases to converge. Still some ways to go before I start working on get_laser_action method. 

Day 49: Completed the get_laser_action method but am still failing on 2/8 cases. I need to further tune the heuristics to prevent execution timeouts.

Day 50: Signed up for Open Athens and linked Google Scholar to GT Library for access to research papers on Localization and Kalman Filters. Have to find and write relevant research paper in 300-600 words due by Monday. Yikes.

Day 51: Found a research paper by Nick Dijkshoorn for his Master thesis about SLAM (Simultaneous Localization and Mapping) with AR.Drone. It covers what we learned in class about using Bayes theorem for beliefs and EKF (extended Kalman Filters) for non-linear problems to localize the drone's in a 2D world. Also contemplating what to do for the hardware challenge. I might buy a premade hw kit allows me to directly access the sensors and actuators via custom code I write. A drone would be nice but could be expensive.

Day 52: Starting on the face tracking hardware project. Ordered from Amazon a ULN2003 Motor Driver board and some 40pin male/female cables for my Raspberry Pi 3 model B board. Hope to use Kalman filters to track left to right face movement using a logitech external web camera. I also have my son's StarWars sphero R2D2 robot that allows for javascript code over bluetooth to teach it and make it autonomous. Unfortunately since it is a premade robot I doubt I can use it for the hardware challenge.


Day 53: Started with next chapter on Particle Filters. Apparently it’s more accurate than either histogram or kalman filters. Currently at 13/28 lessons on this chapter

Day 54: Reviewed plans to complete foundation course review during study jam 1.0 and optional projects review from out study group meetup today. 

Day 55: Completed 28/28 lessons of Particle Filters module. Next will look at improving my project 1 defense method as it is still failing 4/10 cases. Downloaded project 2 Mars Glider project.

Day 56: Halfway through Problem 3 programming quizzes.

Day 57: Parts for the hardware challenge arrived. Connected the pi motor HAT and started downloading opencv to RPi.

Day 58: Was able to successfully run and using Spyder3 IDE.  I can actually rotate the step motor by modifying sleep timeouts. Now I need to build a makeshift cage to hold external webcam and have it rotate with motor.

Day 59: Hosted two lightly attended events today and covered #tech_help channel for an hour as part of Study Jam 1.0.  Also spent some time debugging my meteorite python project due Tuesday. Stuck on the defense method, too much meteorites hitting earth.

Day 60: Submitted to Gradescope my submission for Problem 3 on particle filters. Still need to work on project 1 due tomorrow.  That's it for this 60 day challenge.  


Popular posts from this blog

MacBook Pro boots up showing a folder with a flashing question mark

This dreaded flashing question mark inside a folder means that the startup disk is no longer able to find a Mac operating system to boot from. There are a few things you can try to do to fix this yourself. Reboot MacBook pro and then hold the Command (⌘) and R keys on your keyboard to startup from the macOS Recovery. I did this and was able to go through disk diagnostics telling me that there were some disk errors. I proceeded to fix what I could but found that on subsequent reboots to macOS Recovery showed different partition errors. Sometimes the disk utility completed successfully but other times it would stop repairing even if left overnight. If you did have a failing disk drive, the marked errors would be consistent and multiple passes will bypass these marked errors. I had erratic results however which led me to believe it may or may not be a bad disk. The next investigation should be to look at the disk drive connections to the SATA controller. Open the MacBook pro

Unable to get to computer BIOS because monitor goes to sleep at startup?

I just enrolled in a course that requires running virtual machines on my Windows 10 Pro computer using VirtualBox. I couldn't start the virtual machines because of this error "The native API dll was not found (C:\WINDOWS\system32\WinHvPlatform.dll)". After doing some troubleshooting, I found this to mean that the hardware acceleration settings required by the CPU to support virtualization are currently disabled in my computer BIOS. I had to enable virtualization on my CPU chipset (VT-x/AMD-V).  Seems easy enough, right? I rebooted my computer and was expecting to see the memory counter and options to get into the BIOS. It must have been so quick that it took me straight to Windows 10 login prompt right away. I tried again and as usual I am immediately back to Windows 10 login. Each time I reboot, there is a box that says my monitor is going to sleep and does not wake again until presented with Windows 10 login prompt. I can hear the disk and fans spinning during startup,

Troubleshooting Microphone Problems using Fortnite on PS4

My son has been playing the popular game called Fortnite on PlayStation 4 for many months now. There is social component to the game where a team of players collaborate by using their headset and microphone in their party/group chats. One day, the microphone on my son’s headset stopped working in Fortnite.  The troubleshooting that father-son had to go through to fix the issue is worth blogging about because I couldn’t stand seeing him get declined from Battle Royale party invites and just playing the game solo which isn’t as fun. For a few days, he would FaceTime his friends on our iPad so that they can talk on the side while playing Fortnite on PS4. You probably won’t want to go through that scene as well so I thought it’s time to put in some of the troubleshooting skills that we are so good at and put that to good use so that others can benefit from our experience. Here are 4 phases you will likely go through to try and fix this. 1) The first thing that