I'm investing a couple hours a day during the next three months to study machine learning. As a starting place, I'm working my way through fast.ai, a MOOC created by Jeremy Howard and Rachel Thomas intended to make machine learning (and specifically neural networks and deep learning) more accessible to programmers that don't have a math background. In order to reinforce my understanding of the material, I'm going to be writing regularly about what I'm learning as I make progress through the course.
This first post is focused on why I am learning about machine learning in the first place. I'm starting with this topic because I've found that creating personal clarity on why I'm spending time and energy on something helps me maintain my intrinsic motivation so that I am able to continue grinding even when the subject matter gets more challenging or when I inevitably get bored or distracted at various points.
So, why am I diving into machine learning?
In short, I want to work on problems that are both hard and meaningful. To me this means working on something that leads to people living more fulfilling, happier, and healthier lives. I also think that the intersection between the set of problems that are hard and meaningful and the types of problems that machine learning can be applied to is enormous, meaning that there is plenty of room in the space for people like me to make useful contributions.
In order to motivate this idea further, I spent a little bit of time brainstorming ways that I think or at least hope that machine learning could be applied to build useful tools that could have a massively positive impact on the world. Here is the list I have so far, in the order that they popped into my brain. Please note that this list is completely unfiltered so many of these ideas may fall into the category of being infeasible (in which case I'd love to know why!) or already built/in progress (in which case I'd love to learn more!). Regardless, hopefully somebody out there will find them as inspiring as I do at the moment.
- Mental Health: The road to becoming a psychologist is long and challenging. There aren’t enough great, affordable psychologists out there to deal with all the mental health challenges that people are facing right now. Yet many of the tools psychologists use on a regular basis are processes and frameworks that might be facilitated using machine learning (e.g. a chatbot that could walk you through a cognitive behavioral therapy session). This is a touchy subject obviously because mental health is such a sensitive issue, but it feels like it's worth exploring for the sake of creating more access to care.
- General health care: Applying machine learning to other specific areas of health care (eg automating radiology scan classification is one famous example I'm aware of thanks to fast.ai). I don't know much about medicine but I'm sure there are tons of processes that could be automated or facilitated to provide overall better care for patients.
- Skill development / coaching:
- Cooking / Eating: Imagine an application that could help you learn to cook, put together healthy simple recipes for you based on your tastes and diet goals, and could make tracking the nutritional value of meals you are eating just by snapping a picture of something (and it identifying it and estimating the weight and ingredients). It could teach you what combinations of ingredients work well together, how to season things, etc. Combine this with quantified self stuff like Nike Run Club / Apple Health trackers, and you are getting a ton of data about someone’s health that could be really useful for stuff like losing weight, training for marathons, etc.
- Navigation: If Google Maps directed me to drive off a bridge I wouldn't realize I'd taken a wrong turn until I heard the splash. I wish that instead of telling me exact turn by turn directions, I had an app that would coach me on how to get somewhere so I could actually create a mental map of the area. All this would need to do would be to force me to think! Eg "ok to get to your destination, you'll need to get on the highway heading West and look for Exit 58 and then go a couple miles and take a right." This could be configurable for more or less assistance, but eventually I'd imagine you'd actually learn the major highways, areas, and feel much more confident driving/biking around.
- Self-improvement / Mental Habits: How can machine learning help someone be a better version of themselves? Eg a chatbot that can have a dialogue to coach stoic thinking, encouraging focusing only on what you can control, etc. Another idea here is just mundane personal life management. Remind me when my friends birthdays are, remind me when my passport or driver's license is expiring, find my copy of my renter's insurance agreement. I think that many machine learning assistants like Google Assistant are trying to approach this problem one piece at a time.
- Learning / Education: Related to the above idea about skill development, but focused on more traditional education/learning specifically here is so much incredible learning content out there, videos on YouTube, papers, blog posts -- yet in most cases the learner must be able to create their own active engagement with the material and facilitate their own learning process. Could you build an machine learning to bring content to life like a teacher would? Ask questions to the student that come from the material and listen and respond to their answers, eg a socratic method bot. Create Anki style flash cards based on material for them by extracting out the core concepts of the material and creating knowledge graphs automatically. A complex version of this seems ambitious, but this is the type of problem that could be broken down into many, many easier subproblems and starts to potentially feel tractable.
- Climate change: Can machine learning help with climate change? This is a really broad topic, but one quick idea: could we reduce the use of pesticides and harmful farming practices like tilling (which breaks erodes topsoil and releases carbon into the atmosphere) if we could use robot labor to scale up organic/regenerative farming practices? I'm imagining swarms of drones with computer vision models used to rapidly identify unhealthy crops and reduce the search space for the farmer. Robotic/automated weeders / planters. Some of this tech may already exist, and some of it feels far-fetched but I love the idea of natural farms managed by robots that is healthier for the earth and reduces the impact of commerical farming is having on climate change.
- Exploring problem spaces / Strategy Generation: This feels too unconstrained to really be a good starting point, but the general idea of exploring a problem space in a creative way is the core idea that I’m interested in exploring further. Almost like “strategy generation” like if I want to get from point A to point B how many different ways can I do that and what are the pros and cons of each strategy.
- Learned or generated data structures / algorithms: Data structures are ultimately just creative ways to store data that have specific characteristics for data access, addition, removal, search etc. Could you build an machine learning that would just explore different structures and ways of linking data up to optimize for things like sorting, searching, etc. Same for compression… I’m guessing people have already done interesting work in this area.
- Making sense of unstructured data or finding connections between unrelated data: A ton of work I've done in the past for data engineering required a lot of manual mapping data from third parties to data in our systems. Could you build an machine learning that would explore incoming and existing data and find natural keys to link them together? One thing that feels tricky about this is that it would be ideal if it could happen without having to curate a training set of data to start with. A human can do this task just by using their critical thinking skills. Could you build an machine learning to do the same?
- Generated physical structures or machines: Pie in the sky idea but could we imagine better architecture / structures for actual buildings? What about creating robots automatically / designing them to be optimized for a terrain.
Anyway, hopefully it's obvious at this point that I'm full of optimism for how machine learning can make the world a better place!
If you are interested in this stuff too or on a learning journey of your own and would like to connect, feel free to reach out to me on Twitter or email.