Nels Lindahl — Functional Journal

A weblog created by Dr. Nels Lindahl featuring writings and thoughts…

Month: January 2020

  • The reflective Wednesday conjecture

    Today was going to be one of those days that builds up and then drifts away. Maybe that is my fault. Every day you have the chance to seize the day and make something special happen. One of the things that I really enjoy about attending conferences and learning new things is that it creates the potential for a spark of invocation. Maybe that means pulling two things together or maybe making something out of nothing based on the spark of innovation. It is one of those things that when you see it you know it and it can slip away so quickly. Some days are just like that and you can make things happen that would otherwise take a long time. It is those moments of clarity that you cannot waste. You have to treat them like the precious opportunity they are to move things forward.

    Today my Google Pixelbook Go Chromebook actually paired to my Pixel 4 XL smartphone to get mobile data without any problems. That was nice. Where I am sitting right now does not have any really solid WiFi options. During the course of writing I do not need to use very much bandwidth to access the internet, but it is nice to have the option. Typically, I find not having access to the internet slows me down. It is probably just one of those things I need to work on moving past at some point. Earlier today I was thinking about a bunch of different academic paper topics. Sometimes it is easier than others to put the drafts together. I used to keep an idea notebook that helped push my research interests forward. Maybe it is time to bring that back. My overall publishing productivity has been down in the last 5 years. The only way to really work on fixing that is to actively write papers. Part of that is working literature reviews and the other part of it is completing research projects.

    My automated survey technology was ready and running for years. Maybe now is the time to turn that setup back on and pull together the data necessary to create a few research papers. This time around I could just share the code on GitHub and allow others to make the data collection magic happen. That is probably the right way to go about things. The only drawback for reproducibility is that the code would have to run on some server, but people have a lot more ways to get a server these days. Maybe that is something that I will start working on later this week. I’m still trying to finish up that “Google IT Automation with Python” course series. It has taken a little longer than I had expected. I’m probably going to have to focus in on knocking out part of it every night for the next 20 days to really finish it up. That has to happen in tandem with my efforts to create a new speaking presentation that focuses on walking some machine learning use case ROI example from start to finish.

    It seems like a few things are stacking up. Normally, I like to work in real time and finish anything that pops up with extreme alacrity. From time to time that is not possible. The things that need to be done are bigger than the slices of time that I have to complete tasks. Like right now that course is eating up a lot of cycles of time that could be used to do some other things, but learning and pushing things forward is an important part of the process. Being a lifelong learner is a commitment that requires both time and effort to make happen. It would be easier to stop taking on hard challenges, but that would not be the right thing to do.

  • Today started a bit slowly

    Today, I called an audible (in honor of the Pro Bowl) and focused on the “Introduction to Git and GitHub” course by Google on Coursera. It is the 3rd course in that “Google IT Automation with Python Professional Certificate” series that was released this year. Today, it seemed like a really good idea to focus in on version control systems. This cup of coffee is starting to work. During all these courses I’m using Microsoft Visual Studio Code as my starting point to try to execute code locally. It does not have a cost and seems to be gaining popularity with people who are doing interesting things. My goal for the day is to try and finish this course.

  • A little bit of wondering

    Oh, some wondering is happening. A little bit of thinking. A little bit of planning. My thoughts were all over the place. Last night I sat down to write some notes about attending a conference this week in California. At some point, I’m going to spend some time really digging into and writing about talking and the experience of getting to meet so many folks interested in machine learning. Instead of doing that writing at the moment, I need to spend some time working on week 2 of the “Crash Course on Python” by Google on Coursera. It feels like forever since I did week the first week of course work. This weekend will be a good opportunity to really jump in and dig into the course with the attention it deserves.

  • Day 3 #GlobalAI Conference Santa Clara

    Greetings from Day 3 of the #GlobalAI Conference. I’m speaking at two sessions today during the conference. Earlier today I went ahead and shared the slide deck and a pre read in mp3 format on LinkedIn. 

    Here are the talks I listened to today with a few notes:

    Business Track: The Autonomous Pharmacy: Applying AI and ML to Medication Management Across the Care Continuum (Ken Perez) – This was an interesting way to start the day. A lot of this talk focused on targeting and adherence. Both of those targets are about helping people get and sustain care. 

    General Keynote Session: The Pros and Cons of Automated Machine Learning in Healthcare (Sanjeev Kumar) – This talk really dug in and tried to address silos and data quality. Those are two things that make it very hard to use dispersed and highly inaccessible data from legacy systems. 

    General Keynote Session: Google’s Journey to AI-First  (Chanchal Chatterjee) – This was a really fun talk. Everybody really enjoyed it. The 3 hour version of this talk would have been epic.

  • Day 2 #GlobalAI Conference Santa Clara

    http://www.globalbigdataconference.com/santa-clara/4th-annual-global-artificial-intelligence-conference/schedule-121.html

    My notes from yesterday were a little bit unorthodox. A lot of them were just links or a couple words to learn more about. I’m going to head over to the conference here in a little bit. At the end of my Day 2 notes I’m going to just add a little bit of commentary about the talks I attended. 

    Day 2: Recap of what I learned and what talks I attended… 

    Business Track: Virtualizing ML/AI and data science workloads (Michael Zimmerman) – This talk was very interesting and Michael extolled the virtues of reading the paper listed below.

    https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf

    General Keynote Session: Implicit deep learning and robustness (Laurent El Ghaoui) – This presentation is really solid. When I convert my presentation into a full paper I hope the formulas are as elegantly presented as what Laurent was able to produce. This talk really set the bar for walking and presenting formulas.

    General Keynote Session: Pitfalls and panacea: AI and Cybersecurity (Wayne Chung) – It turns out my USB Type-C to HDMI cable works. It got an actual field test during this presentation. This turned out to be a very interesting talk full of security content and timelines. It was highly engaging.

    Technical Track:  AI methods for Formal Reasoning (Christian Szegedy) – Talked about moving AI efforts into a direction of true understanding and reasoning. I took a screenshot of a bunch of papers that are going to be added to my reading list.

    Technical Track: Challenges in machine learning from model building to deployment at scale (Anupama Joshi) – This talk really dug into the ML software development life cycle and how that is managed.

    Workshop: Tensorflow.js : Machine Learning In and Out of the Browser (Brian Sletten) – Talked about using machine learning at the edge. This was a longer several hour session that went into more detail. I did not take a ton of notes. This session was more hands on with the product.

    Day 1: Recap of what I listened to during the day… 

    Workshop: Building Real World AI Solutions (Alexander Liss & Michael Liu) – This was 4 hours of workshop related to using TensorFlow for machine learning on AWS. 

    Technical Track (Finance): Group Theory, Chaos and Financial Time Series (Revant Nayar) – This is one of those presentations that needed a much better projector setup. It was hard to read the notations on the screen. I’m going to see if I can get the deck later to dig into it a little bit more. 

    Technical Track (Finance):  Machine Learning In Finance (Chakri Cherukuri) – The visualizations used during this presentation were really top notch. I have been impressed with the team from Bloomberg. 

    Technical Track: Image Augmentations for Semantic Segmentation and Object Detection (Vladimir Iglovikov) – This talk was sort of a pitch for using Kaggle and competing in machine learning competitions. I actually wish Vladimir had just leaned into it and really talked about what it takes to compete and how that process worked. The talk really dived into the results and not the mechanics of how those competitions occur. I’m going to spend some time learning about Kaggle on the flight home tomorrow. 

    Finance Track : Data in Finance/Banking (Ryan Lee) – This talk could have gone a little bit deeper into the management and use of big data. 

    Other topic…

    I have decided that getting a paper accepted at NIPS is a noble pursuit. 

    https://medium.com/machine-learning-in-practice/nips-accepted-papers-stats-26f124843aa0

  • Traveling to San Jose

    Loading up John Wick: Chapter 3 took some time on my flight today. For some reason, the loading of the webpage took a lot longer than expected. Oh no, I got the error, “This video file cannot be played. (Error Code: 246000).” That was disappointing to start off my trip to San Jose, California. I did give it one more shot to see if it would work, but that ended up with the same error code on the screen. Even the live television option would not work. After a couple of minutes of messing around and refreshing the browser I just went back to listening to music. The flight has an hour and a half remaining. Given that much time I should be able to do something special with just my thoughts and this keyboard.

    Writing for the sake of writing is one of the great joys of having enough time to sit back and just think about things. I had considered writing my speech out again during the flight. Sometimes that is exactly what you want to do to get ready to give a talk. Practice does help ensure that the content gets packaged up correctly. Writing about how to operationalize machine learning is something I enjoy doing, but I am not entirely ready to produce a new block of prose. Right now, I am really just refining the content that I have and trying to make the talk better. One of the things I have really thought about is trying to make a better batch of slides. For some reason, my current slides do not feel impactful enough to bring the content to life.

    My goal is to setup and build an entirely new presentation after this week. That is going to involve sitting down and sketching out the story that needs to be told and building the parts of that story out one slide at a time. Working on something like that is going to take some time and a lot of thought and energy. Right now I could be working on that instead of just writing away and enjoying some music during this flight to California. Typing on a flight is really one of those things that works for me and I enjoy it. Some offices are building these little isolation chambers to let people lock in and really focus. Being able to really focus on things has always come easily to me. That is something I should probably not take for granted.

    This privacy screen on my Google Pixelbook Go is still working pretty well. Nothing has really gotten between the shield and the screen. I’m sure at some point that will happen and it will be very problematic. This privacy shield is held on the screen with some adhesive stickers along the edges. Trying to remove it and clean the underlying screen would be very problematic. It would have been much better to get a replaceable screen like the ones some of the Apple products have available. Those privacy screens seem to be much better. I’m not sure having people read over my shoulder is really that big of a deal to me, but at these conferences and traveling all over it seemed to be something I wanted to avoid.

  • Getting that coffee ready

    This post is only partly about coffee. It really is about my struggle with office chair mats.

    Today started with a wonderful cup of coffee. Instead of sporting two shots of espresso this morning it seemed like coffee is the way to go. In a little bit today before the start of the two NFL playoff games, I’m going to need to buy a new office chair mat for my home office CEO chair. Earlier this week the last floor mat sort of splintered and had to be put in the garbage. Since living in this house this will the 3rd floor mat for my office chain in the last 5 years. That seems a little bit out of control in terms of floor mat sustainability. Using my Scandanaviang Designs Wau office chair on the carpet is strange. It takes a lot of effort to move around. My guess is that this type of rolling around is probably not good for the carpet. My plan is to visit Costco first and then Staples as a backup route to finding a new office chair mat.

    This morning I’m watching the week 1 course content for the Coursera “Crash Course on Python” series the Google team recently released. It seemed like a good idea to just jump in and do the courses to change things up a little bit in my regular routine.

    As part of that course I just went out and looked at some fun documentation:

    https://docs.python.org/3/tutorial/index.html

    and

    Think Python, first edition

    I downloaded the “Think Python: How to Think Like a Computer Scientist” book in PDF format (Downey, 2012).

    I’m now done with week 1 of the “Crash Course on Python” Coursera course in the “Google IT Automation with Python” specialization.

  • Writing a little bit more

    Ok. 2020 has started and my writing output is lacking so far this year. Starting right now a small amount of time every morning and every evening will be devoted to the fine arts of writing epic prose or at least the creation of semi-muddled stream of consciousness driven prose. Was that last part a pivot against expectations? Potentially, that is why that fork in the road was put down on the page. Instead of thinking that way it would probably have been better to just accept that everyday things will keep getting better as the craft of writing is practiced one post at a time. That is where my head is at right now in this moment. For the most part during my writing journey the things that get put together as part of a weblog post are published almost immediately and very rarely edited after the fact. These posts are pretty much — what you see — is what you get expression of creativity in the moment published just after creation.

  • Moving along the tasking backlog

    Writing has to be a part of my daily routine. Sometimes the plan breaks down and that does not happen. Overcoming that obstacle is an important part of making sure that writing is a continuous part of your daily routine. Writers write. That is what they do and how they do it. One of the more consistent themes in this weblog is writing about writing. Just the process of typing and writing for a bit is the very thing that breaks down blocking factors and helps the words flow like the second cup of coffee for the day. That first cup never really flows the same way. Maybe it will never get the same amount of fanfare, because it is simply not going to be met with the same amount of enthusiasm. That is essentially what happens when you start writing about writing. You end up going until something worthy of enthusiasm shows up.

  • Working on some deliverables

    Routines have fallen way to a nearly endless stream of things that need to be delivered throughout the last few days. That happens from time to time. Tasks pile up and end up crushing routines. At the end of the day, I spent the last few minutes of the day working on a few things that needed to be done. One of them included putting together a little bit of content for a conference this summer.

    DATAx 2020 Conference Topic Area: Machine Learning

    Session Description (100 words inclusive of title):

    Title: Figuring out applied ML: Building ROI models, repeatable frameworks, and teams to operationalize ML at scale.

    Description: Solving the hard problems requires operationalizing ML at scale. Doing that in a definable and repeatable way takes planning and practice. Understanding how to match the deep understanding of subject matter experts to the technical application of ML programs remains a real barrier to applied ML in the workplace. Understanding applied machine learning models with strong potential return on investment strategies helps make delivery a definable and repeatable process.

    Well that worked out to a total of 87 words. Maybe I should sit down and write another sentence to flush out the full 100 word quota.

    3-Audience Takeaways

    1. Beginning to think about the process of building machine learning ROI models
    2. Setting the foundation for defining repeatable machine learning frameworks
    3. Building teams to operationalize machine learning at scale

    Well that is the content I needed to generate before the end of the day. Tomorrow, I need to spend some time working on some new slides. That is going to take a little bit of focus. Some of that content was sketched out the other day by hand. Maybe I should have started with the end product in mind instead of some back of the napkin sketches on this one. That might have helped turn the slides into reality a little bit faster. This approach is really both delaying the final product and maybe improving it. Sometimes you have to produce a couple of drafts of something to get to the finish line. Other times you only need to sit down and write it one time to create the final product.