I shall start with a quick overview about this post. In this post, I am going to reflect the learning experiences and the delightful moments I had while participating a 8 week study program in Artificial Intelligence at Pi School, Rome, Italy.
This is a story of passion and hardwork :)
At the dawn of 2018, I thought to myself that I’m going to be super serious about both Full-Stack Software Engineering and Data Science. In data science, I particularly choose machine learning and deep learning as I’ve been playing around these fields for some time. You might be puzzled on what made me to choose two paths. One of the main reason is that, so far I’ve been in the industry as a Full Stack Software Engineer and as a Research Engineer for only 2+ years, which means there’s a long way to go in my career. So it’s good to strike a balance between research and industry. Yeah, this is a personally bias opinion which seem agreeable to me :)
Now my day to day programming languages are Node.js and Python (thanks to the company I worked right after my graduation). I pull my finger out and started to do pet projects with Node.js and Python, I completed Andrew Ng’s Machine Learning course on Coursera, I started to follow fast.ai by Jeremy Howard and Rachel Thomas, I started to learn from Kagglers( I replicated the same code and learn from peers :)). There were certain days where I went to sleep at 4 am and woke up next day at 8.30 am and went to office. I didn’t feel tired cause I was so passionate about the things I was doing (which I am still doing, in an optimized way ;) ).
One fine evening, while doing some work, I came across an email from Kaggle job posting about this fascinating scholarship program. It was about an 8 weeks study program in Artificial Intelligence in mighty Rome :D. My first reaction was, “Wow, this is cool !!!”. First, it’s a scholarship where you can study AI for free. Secondly, it’s happening in the ancient city Rome :D . I straight away viewed the link and started to read the web page “Pi School AI Program”.
After reading this page carefully, I had a positive impression towards this program. Among several facts that I found on this page, few things really took my interest.
- This is a fully funded program which covers your total course fee
- Covers living expenses during the 8 weeks (including travel, accommodation, food and basic needs)
- Profile of the program director Sebastian Bratières
— I noted that the director for this program holds a PhD from prestigious Cambridge university and he has 15+ years of experience in AI.
- Collaborations with the industries and universities
— Cisco, Amazon, Google, Carnegie Mellon University, University of Sussex ++
- I satisfy all the minimum qualifications :D (and few preferred qualifications)
I always seek new opportunities. I always want to grow my network, I want to learn while doing. I learn from peers,and this was a perfect opportunity.
Applying for the scholarship
At this point, I was quite certain that I am going to apply for this program. I filled the form on the web page to apply for a scholarship. Then I was contacted by Program Manager who asked me my CV and Cover Letter to move forward in the selection process.
I received a reply on the same date acknowledging my application. One particular question that I had to answer was, “if I could make myself available throughout the 8 weeks”. Being a full time employee this is challenging. Nevertheless, I convinced myself that, if I get this opportunity, I’m going to take part.
The next step was to prepare. Applying doesn’t mean getting selected for initial interviews but I was hopeful :) . Frankly, even though I had a positive impression towards this program, I wanted to learn more. I’ve seen quite a lot articles/advertisements on boot camps, workshops where participants have to pay. But this is totally different. This aroused my curiosity to learn more about Pi School.
While searching , I found a pretty interesting video on Pi School Facebook page. From this video I learnt a lot about the Pi School vision, and about the founders (this is a definite watch if you are intend to apply for this program ;)).
Among several interesting statements made by Marco Trombetti who is one of the co-founder of Pi School, one statement really took my attention.This is one of the statement that I fell in love with. ***IMPORTANT***
“The most important meetings of your life, the people you marry, your business partner often these things happening in the school. If we need a school to create the world largest creative wonderful company we are gonna build one”
This is the exact reason why we still want to go back in the memory lane of our school days and university life. We all have really great networks from our schools and universities. The people that we met during our school/university time have played a major role in our lives. They’ve shaped us remarkable in positive manner.
I continued to watch the full video (spent about 100 minutes and it was totally worth). After watching this video, I already became a part of Pi School. I badly wanted to get selected to this program and I knew that it was the time for me to brush up my knowledge on linear algebra, statistics and probability (these areas were mentioned under the minimum requirements).
In few days, I received an email from the Program Manager, that I’ve got shortlisted for the initial round of interview. I felt happy and I wanted to make sure that I face this interview with good preparation. The program manager specifically asked to find a proper suitable place to have an effective conversation (i.e. a place with right luminescence, stable internet connectivity and not noisy)
On the interview date, I made sure that to make myself available sharply 10 minutes before the interview time. I managed to find a proper setting for my interview. I emailed my interviewer that I was ready and with in 3–5 minutes time I received and acknowledgement to proceed with interview.
During the interview
My first interview was with a Pi School’s AI & Robotics adviser (who participated Pi School AI 2017 program) who is currently pursuing his masters in Robotics field. The first question that asked from me was, whether if I could make myself available for whole 8 weeks and how I’m going to do that. I already made up my mind to participate the entire 8 weeks, so I convinced my interviewer that it was technically possible from my end. This interview checked my overall understanding on linear algebra, probability and statistics and the concepts of machine learning. I was asked to explain my background, the projects I have done etc. I particularly highlighted the ML projects I’ve been doing. I was asked, how I am keeping myself up-to date with ML. I pretty much explained what I’ve been doing since the dawn of 2018 in a nutshell. One of the very important question that you may face during an any interview process is, “why you want to become a part of this ?”. I’ve been already prepared for this question ;). I said that I aspire to become a specialized person is data science (which is very common in general during this kind of an interview I guess :P). Then I said, I watched this Facebook video on the School’s opening and also the video from the previous edition of the AI program. I highlighted that particular statement from Marco, which was obviously a point for me to be a part of this program. “I always seek opportunities and Pi School seems to be a lucrative investment”. I conveyed this message to my interviewer. I could say that this interview was around 80%-85% a success. There were certain questions which I could have answered better. I was hopeful anyway :)
After about 5–7 days time(if my memory serves me right), I received another email from program manager that I’ve been shortlisted for the second round of interviews with Sebastian Bratières who is the Program Director of the Artificial Intelligence Program at Pi School. I had my interview on the following day. While preparing for the second round, I worked out the problems that I got stuck during the first interview. I firmly believe this is a very important step in any kind of interview preparation. I felt that the interview going to be like first interview where we might go in depth in linear algebra, probability and statistics and machine learning concepts.
I managed to found a similar meeting setting and pretty much did the same things as the first interview prior to the meeting. I made myself available on-time. As I thought, the questions that asked from me based on linear algebra, statistics/probability and machine learning concepts. During the interview I was asked to write some formulas, a little bit of coding too. There was a question which lead to bias/variance and overfitting and underfitting which was based on a real life ML project. During the first interview, I was asked some questions from Bayes theorem and Bayesian networks, which I feel that I would have answered better in the first interview. These are the type of questions that I’ve been particularly given focus while preparing for the second interview. Guess what, it paid off ! :D . That’s why it’s very important to practice the questions that you couldn’t answer during initial interview steps. This interview too went well. Again I was hopeful :)
After around 3–5 days time I received the email that I’ve been waiting throughout from the very beginning. It was an email from program manager confirming my selection to Pi School AI Program. I was super excited and delighted, cause so far this was the biggest thing I earned in 2018. I signed the initial contracts and confirmed my participation to this awesome program :D
Applying for visa
Once you get selected, the next step is to prepare to relocate to Rome for 8 weeks. This process is depend on your nationality. Perhaps you might don’t want visa to enter Italy. In my case, I needed visa. For the most of the time, this is based on your nationality.
I would like to offer my sincere thanks especially to program manager for his immense support during my visa process. I know there are lot of people from Pi School behind this process. I directly interacted with program manager and he gave me the best possible support he could to facilitate my visa process (specially writing to the officials in embassy and answering calls at 5 am). If you get selected and need visa to go to Rome, feel free to write to Pi School’s Program Manager and he/she’ll be with you throughout this process.
8 weeks at Pi School
I could write a lot on the 8 weeks. I carefully selected few so that you will know what Pi School does and participants do during this 8 weeks.
Pi School made sure that all the necessary materials are available for all the participants from the very beginning onward. Before the official commencement (ie. 11th of June), the organizers shared a Google Drive folder which had learning materials, administrative materials and other relevant documents, granted the access to GitHub repositories, created the AWS instance for all participants, created a dedicated Slack instance to facilitate communication and foster open communication and created a project management instance on “Basecamp”.
There was a decorous welcome party the day before the official commencement, which was a peaceful Sunday. There were 26 participants from all over the world, namely, Sri Lanka, Italy, Brazil, France, Germany, Iran, Colombia, Greece, Iceland and Kazakhstan. I am always curious to learn more about different cultures and this kind of an atmosphere is something that is pretty exciting to me.
The program officially commenced on 11th of June 2018. All participants had the required infrastructure, a desk, chair, a big screen, AWS instances to GitHub accesses. Pi School created 13 groups, each group with 2 participants. Each team were assigned to a project which was patronized by graceful sponsors from industry. There were several industry partners. I would like to highlight few so that you can get an overview about the collaboration Pi Campus has with the tech industry. Few partners were Cisco, Amazon, Soldo, PosteItaliane, Xriba and Translated.
I was very much privileged to have hard-core deep learning practioner as my work companion. He is from Brazil and he works for one of the top petroleum corporation in Brazil. He knows the ins and outs of deep learning concepts. As a novice AI practitioner, my work companion was a gold mine :D . All participants had a unique skill that distinguish them from the rest. This uniqueness gave each team a good balance. The surprises didn’t stop from there. Later me and my partner got to know that we were assigned to the project which was sponsored by Cisco Systems, Inc. I gave my whole soul and effort in earning this scholarship and each day I was rewarded with big surprises :D . This is why I always believe in hard work and attitude :D :P . Attitude and hard work beats everything. Trust me :D
From the very first day onward, participants knew his/hers companion, the project and the expected deliverables and the teams are equipped with the infrastructure and guidance from the lectures.
I’ve been playing around with AI, ML for sometime. The project I was assigned by Pi School and the pet projects that I’ve been doing were totally different. For most of the time, the projects that we learn from MOOCs, books and papers, we can find a nicely labelled data set (may be in CSV or any other format which is very convenient). Quite contrary to these types of projects, the projects that we all were contributing had a remarkable uniqueness. Participants were given the responsibility to identify/generate data sets that they needed. So for most projects (may be all), there were no CSV or something identical.
I prefer to list down few projects.
- Design and develop deep learning workflow to analyze encrypted network traffic (Cisco) — This is the project that me and my partner did. More information on the post :)
- ICD Classification (Noovle) — Assist health authorities to pay by the code (Medical coding industry)
- Email Opening as a Function of User Data (PayBack) — Predict if an email receiver is likely to open up an email based on the user profile
- Anomaly Detection of Call Centre Campaign KPIs (Covisian)
- Looking at walk-in customers (Posteitaliane) — Predict age, gender of the walk in customers
There were few administrative tasks that each had to adhere to guarantee the smooth flow of each project.
- Maintain a project log- this is a Google document that teams maintain to report their daily activities, particularly on what they did, the results, challenges and steps followed to overcome the challenges. These log files became pretty handy when preparing for weekly meetings with project sponsors and mentors.
- Weekly meetings with stakeholders/mentors — depending on the availability meetings were arranged with stakeholders and mentors. In our project we had weekly meetings with our project sponsor Cisco :) . During these meetings team provided updates on their project, the challenges they faced and the measures they took in order to overcome the challenges. Stakeholders and mentors usually provide their positive feedback and propose constructive changes if necessary. These meetings were immensely helpful in developing an affinity about each companies technical goals in AI. Also, a great opportunity to get to know stakeholders and mentors in person because they are going to play a huge role in some point in participants life, may be as a referee, as a mentor or as a potential employer in the future. These meetings were lasted for about 1 hour or so depending on the availability of the mentors/stakeholders. Pi School shared a list of guidelines with each participant which contains the steps/process to follow while preparing for these meetings. As an example, when presenting progress in each week, share the code (pseudo code), plots, diagrams, formulas, model diagrams, learning curves, features using, baseline for model/tasks, model configurations and many more. As a data science practitioner, I”m still following these guidelines when preparing for meetings :) . Furthermore, to avoid any technical issues during the meeting, Pi School shared a checklist so that there wouldn’t be any delay nor it requires excess time than the scheduled. After a meeting done, team shared the meeting notes between all stakeholder so that everyone on the same page on what did and what is to be done.
- “All hands session”- this is a weekly session. Each Thursday, sharply at 10 A.M. Sébastien Bratières invites all participants to share their weekly updates. Each team got around 5–7 minutes to share their progress, challenges and the steps they took to mitigate challenges. Since this is an open session, everyone gets an opportunity to know the status of their peers.
A day of a Pi School AI scholar usually started at 9.00 AM. We enjoyed our free breakfast and straight away get started with the projects and we wrapped up the day around 5.30 PM or 6 PM.
During the day we committed more than 80% of our time to our projects. During the remaining time we discussed about project matters with other teammates, discussed about latest research work/papers in AI, AI startups and many more. Some days we had tutorial session on ML/AI topics which highlighted the state-of-the-art techniques and practical aspects. Pi School organizers were very encouraging the participants to showcase their areas of interests. My fellow colleagues too did sessions related to GPU Computing, optimum mechanisms in using Python, GitHub practices, AWS and security vulnerabilities. These sessions helped us very much in learning new things and to deepen our understanding in the things that we already knew.
One particular fact about the Pi School staff that I noted was they are key AI/ML activists in Rome (perhaps in Italy too). In Rome, there are two groups (as of my knowledge) that create awareness in AI/ML among students, industry partners and other enthusiast people. The groups are “TensorFlow X Rome” and “Machine Learning/Data Science Meetup” group. During the program period we were privileged to participate an event organized by these two groups. The invited speakers were for this event were from Twitter (California office) and H2O. The takeaways for me from this event were free beer and pizza :P . Hahaa, I’m just kidding. The speaker from Twitter did a session on sentiment analysis, and highlighted that in some cases AI could act racist and researcher are keen on rectifying this issue. The speaker from H2O presented the ML eco-system offered by H2O platform and their future plans to expand into GPU enabled platform.
“To be an entrepreneur”, “to build a product with AI” is surely something that majority of us have in the back of our minds. So the best way to learn about it, is directly interact with them (or listen to success stories). Usually the sample size of such success stories are pretty tiny. It’s only very few have a story to share where you can learn from. At Pi School, I was able to communicate with fellow participants who are freelance AI developers at this moment but who have an immense passion to build their own start up. I learnt lot from them. Pi School period helped most of participants to learn from their peers. And it’s not only from the peers, but sometimes from the invited speakers. During our stay we had a session by Illia Polosukhin, who is the co-founder of near.ai (also a major contributor to TensorFlow). Polosukhin shared his personal views on being a serial entrepreneur. Yes he did speak about near.ai, but I found his passion to make his product great rather interesting. He shared his personally biased views on not doing a PhD which is something that I still debate in my mind. There was another session (this time, it was a virtual session) by an entrepreneur from Austria (sadly I can’t remember his name). He highlighted why he switched from academic career to industry after pursuing his PhD. He was very frank in sharing all the obstacles that he had to face at the early days of his startup. He clearly said even though he is technically versatile, he is continuously improving his people management skills, which is a key factor in any startup. This is very important for anyone who wishes to start their own company because at the end of the day we’ll be dealing with humans and their personal values.
I believe each of us went through roller coaster of emotions in our life (at least once) when it’s come to “decision making”. We didn’t know which way to turn, didn’t know how to pick a choice from multiple options. Most of the times our gut feeling helped us to make a decision. On one evening, after we all have enjoyed our free lunch, Jamshid Alamuti(we called him Jam), the CEO of Pi School conducted a session to improve our soft-skills, especially in the area of decision making. Even-though still I would go ahead with my gut feeling, cause of Jam I know give the process a more logical approach by making use of “ Six Thinking Hats”. Surely this is going be vital in my career when I need to benchmark pros and cons of my actions, specially on “doing a PhD”.
The school of AI is one of the many programs that conduct by Pi School. If you closely look at their programs you’ll see there are programs on leadership, creative incubation, design, presentation and many more. Along with the school of AI program, there were few events happened at Pi School premises during our stay. For one of the event, there were highly successful investors from Israel. This clearly implies about the visionary thinking of Pi School leadership. For this event, the participants were invited at the last moment. But majority of us were highly absorbed with our project work. The few who went there said, it was a great speech where the investors talked about the directions that they intend to go in means of AI. Also, Towards to mid of our program there was this event where the stakeholders for projects came to Pi School premises and the scholars had the opportunity to discuss more about the projects and get to know the mentors and stakeholders better. It was a very nice evening with beer and food. (I talked with the gentleman from Noovle).
I should state a little bit of the project that me and my companion did (in brief :)). As you already know, we both were assigned to the project sponsored by Cisco. Our task was to develop a “deep learning workflow to analyze encrypted network traffic”, from the point of data acquisition to infer deep learning results via visualization. This project was directly supervised and mentored by the “Lead, Corporate Strategy AI program” at Cisco Systems Inc. The problem was defined as a classification problem (to analyze malware and benign traffic). While searching publicly available malware repositories, my companion brought up the idea since this is a classification problem, we could come up with our own experiment to classify network traffic based on the types of websites. The types of websites that we choose are, news websites (eg. Wall Street Journal), streaming websites (YouTube) and social media (Facebook). We captured data (network traffic) using Cisco Joy tool, which can capture and analyze network traffic. The captured data were stored as JSON objects in a .gz file. Each JSON object has lot of properties related to networking. Some are, packets out, bytes out, packets in, bytes in, network header specific data (TLS, DNS, HTTP) and many more. In our work we make use of hand engineered features from network properties as previous work too have heavily relied on task specific hand engineered features. Networking data structures is a complex hierarchical nested list of dictionaries and writing one unified function to extract features from network properties is not a generalized approach. My friend, came up with a unique idea to write a custom recursive function to analyze the structure of input data. In our work, We propose an automated way to identify and extract meaningful features using the data structure. Networking data is a complex hierarchical structure of nested dictionaries. We introduce neural network architectures (FF, RNN and Conv1D) that are capable of handling this specific type of data and propose models that can adapt to the structure of the data. Another very important task is, model tuning and selection.We develop functions that allow testing multiple models and tuning hyper-parameter simply by changing a YAML configuration file. In a nutshell that is an overview of what we did.(When time permits, I’ll write a separate post on this project at a later time)
Towards the last two weeks of the program, all the teams got occupied with the project work. We had to deliver final report around 4 days before the final day as AI scholar at Pi School. Also to deliver the final presentation prior to 2 days the final date. Even though this arrangement seemed tough at first, every team convinced that this was a good strategy as if we all sticked to the very last day to submit everything, it was going to be a big pain. Everyone managed to deliver all project deliverables on time.
One evening on the last week, Sébastien Bratières invited all of us for his final session. He had prepared several topics to discuss with us, some topics were on higher studies, entrepreneurship, Cambridge, preparing for a career in data science etc.
If my memory serves me right, the night before the final day, we decided to go to a nearby restaurant to enjoy a sumptuous dinner. One of my friend was deeply absorbed in thoughts. I asked him why. He said, he found a way to optimize his results even better than previous results, and that’s after done with the final report and he was so determined to give this final shot. And the next day when I talked to him, he had already done it :D, not only the final model, but also he revised the final report and final presentation with the latest results. These are the kind of people that you’ll meet at Pi School :D, they strive for excellence.
The final job of all Pi School scholars were to present their work to all the distinguish sponsors who are going to present at the final event on final day. Marco Trombetti, Jamshid Alamuti and Sébastien Bratières were very serious on this activity. So, Marco arranged a session for all of us to share his views on the “art of pitching”. Marco shared his experiences on how to do a convincing pitching to investors. Our sponsors were our investors cause they invested on our projects. Marco stated 5 steps to follow when doing a successful pitch.
- Understand the PROBLEM — your startup idea should solve a prevailing pain point
- Define the SOLUTION — clearly show how you address the pain points
- Understand the MARKET — Total addressable market
- Show that your user base grow over time (TRACTION)
- TEAM- why you guys are the best
The teams were given the full liberty to make use of these points in coming up with a solid presentation that lasts around 5 minutes. The day before the final day, all teams presented their prepared presentations to Marco, Jamshid and Sebastian. Everyone received feedback and everyone were ready for the final big moment :D
The final day arrangement was very peaceful and there was a professional event atmosphere. Everyone was eagerly looking forward to present their work. Before the final event officially started at evening, me and my companion had the privilege to talk with our sponsor/mentor from Cisco. We already made arrangements to have a cosy conversion prior to the official event. We discussed about the project we did and the projects in general. We got to know ourselves even better and this was a great opportunity. Imagine few weeks before you were doing usual coding and now you are talking with one of the top leadership of Cisco. Me and my companion rehearsed for our final presentation. I tend to panic a little in-front of a totally new audience until I get the momentum in my presentation. So the preparations came very handy in the final pitch/presentation.
The final event started with speeches from Marco, Sebastian and Jamshid. Then it was our time to present. 13 teams presented their work and every distinguish participant seemed to deeply absorbed with the presentations. Once everyone done, Sebastian delivered the certificates to us. We enjoyed the food and beverages and had our final night as AI scholars. (After around 1 am in the next day me and my friends decided to break the night, so we visited a party area in Rome :D).
On our last day at Pi School, my friend told “this is not the end, this is a new beginning for all of us…”. That’s perfectly true. On my perspective, I made a real quality network, witnessed the great glories of ancient Rome, became even more open minded on different cultures and people. There are many. Most of us still have the momentum we acquired from Pi School. I know few who do Kaggle competitions together. I am involved with few projects with my fellow friends. Hopefully we’ll do great things in the future, together.
With that I like to conclude this post. You’ll feel that I am very much appreciated and bias towards Pi School. That’s because I really am. The things I earned in all aspects is beyond my words. That’s why I like to offer my heartfelt thanks. This was a free ticket. The best things in our life are always free :) . I had a great time in my stay at Rome.
Give your best shot to get select to this program and there’ll be many of us :D
Source: Deep Learning on Medium