The What, How, and Why of Artificial Intelligence, Machine Learning, and Self-Driving Cars

Artificial Intelligence, Machine Learning, and Self-Driving Cars

Artificial intelligence. Machine learning. Self-driving cars. If you’re keeping up with the rapid changes in the technology industry, you’re seeing a bunch of terms thrown around as if they’re interchangeable—but really, there are some pretty important distinctions. In this post, we’re going to demystify the differences, and clarify the relationships, among these terms, especially artificial intelligence, machine learning, and self-driving cars. Let’s begin with a simple model for how we’ll approach this topic:

Artificial intelligence is the ‘what’.

Machine learning is the ‘how’.

Self-driving cars are the ‘why’.

Continue Reading

Improving With Experience: Machine Learning in the Modern World

MLND-blog-post

In the elevators and the stairwells, at desks and in conference rooms, by the coffee machine and in the library, everyone at Udacity is talking about machine learning. Why? Because we’re launching a brand-new Machine Learning Engineer Nanodegree program, and everyone is very excited!

Machine learning is a truly unique field, in that it can seem both very complicated, and very simple. For example, compare the following two descriptions:

“Machine learning is a subfield of computer science that evolved from the study of pattern recognition and computational learning theory in artificial intelligence. Machine learning explores the study and construction of algorithms that can learn from and make predictions on data.”

and

“Machine learning is the science of getting computers to act without being explicitly programmed.”

The first is from Wikipedia, the second is from a Stanford course description. Somewhat different flavor, no? So how can Machine Learning be both so complicated and so simple? The answer lies in its omnipresence. Machine Learning is literally everywhere.

But what IS Machine Learning?

Where did it come from, what does it mean, and why is it important?

At its core, machine learning is about making sense of large quantities of data. And note: by ‘large’, we mean LARGE—literally millions of just about everything you can count, quantify, and analyze: millions of patients, millions of students, millions of trades, millions of tweets. The sheer volume of data the modern world now produces is what makes machine learning both necessary, and possible.

Of course fields like statistics and algorithms have long aimed to summarize data for making decisions and predictions, and many of the formulas and techniques used in machine learning were developed by mathematicians centuries ago. What is new is the quantity. Increases in computational power allow us to perform analyses in hours that would have taken centuries by hand.

The result: a billion times more data than we’ve ever had before, and a billion times more power to make sense of it. How is this all made possible? Machine learning! Literally, a machine “learning” concepts from data. It learns like we do every day: it looks at experiences and observations and discerns useful information. But while we can do that based on a couple dozen experiences, machine learning can do it based on millions of experiences, all rigorously and numerically defined.

So what do machine learning engineers actually do?

Simple! Machine learning engineers build programs that dynamically perform the analyses that data scientists used to perform manually. And why is this important? Think for a moment of all the fields where data is very important. Healthcare, education, astronomy, finance, robotics, and more. Machine learning is already impacting them all, and in fact, there is virtually no field that machine learning won’t impact!

This is one of the key reasons why machine learning is so fascinating, because it’s everywhere. Often, it’s operating when we don’t even realize it. Ever used Google Translate? How about Siri? Your Facebook News Feed? All made possible through machine learning! If you know a bit about Udacity, you’ll know that our founder and CEO Sebastian Thrun himself has a long and remarkable history in the field, from founding a Master’s program at Carnegie-Mellon that evolved into a Machine Learning PhD program, to being director of the Artificial Intelligence Laboratory at Stanford University, to leading the development of the Google driverless car.

Google Translate may in fact be one of the most famous (and most utilized!) examples of machine learning in action, and Google’s description of how it works makes for a pretty classic illustration of the concepts at play:

Machine Translation is a great example of how cutting edge research and world class infrastructure come together at Google. We focus our research efforts towards developing statistical translation techniques that improve with more data and generalize well to new languages. Our large scale computing infrastructure allows us to rapidly experiment with new models trained on web-scale data to significantly improve translation quality.

The key sentence here is “techniques that improve with more data.” This is really the essence of machine learning.

In 2006, Tom Mitchell published The Discipline of Machine Learning. In it he posed the following question:

“How can we build computer systems that automatically improve with experience?”

Machine learning is the answer to this question, and it’s why we’re launching our new Machine Learning Engineer Nanodegree Program!

 

A Four-Step Exercise to Help Reach Your Goals

In modern society, we often consider formal education the ultimate destination, a prerequisite to professional success. As long as you have that degree, that diploma, or that certification, you’ll be golden. But for most of us, education is a marker on the journey to reach some other, deeper aspiration, like attaining a certain job or entering a certain industry. It’s not the degree or certificate itself that provides validation and fulfillment, but rather what we do with it afterwards.

This was certainly true for me when I started my PhD: I had a bachelor’s and a master’s, and I figured a PhD was the next logical step. It wasn’t until I reached the end of my program that I realized the PhD wasn’t actually needed for most of what I wanted to do in life. I thoroughly enjoyed the process of earning it and I appreciate a lot of what I learned, but had I really stopped to examine what my goals were before beginning the program, I probably would have discovered that a PhD wasn’t a must-have benchmark on my path.

You’re in a position to learn from my oversight. If education isn’t the destination, make sure you’re on a path that will actually lead you to the destination you have in mind. How do you do this?

Start by grabbing a sheet of paper: you’re going to identify your true goals, then move on to pinpointing the paths that will take you there and the constraints you’ll encounter. With all three elements laid out, you’ll be fully equipped to begin your journey.

Step 1: Identify Your Goals

The first step in this process is to really, fully identify your goals. What is it that you want? What do you picture yourself doing in five years, where, and why?

Identifying said goals might seem like an easy, obvious step, but it’s an important one. Humans are goal-oriented, but if we don’t explicitly identify what our own goals are, we might find that the ones we’re moving toward aren’t quite right. That’s what happened with me in graduate school: I thought getting a PhD was my goal, but if I had sat down and really considered it, I would have realized that the typical goal of people on the PhD path is to become a professor, and that wasn’t something I had a strong desire to do. If becoming a professor wasn’t my goal, why was I getting a PhD? I skipped this goal-defining step: I didn’t stop to think about what my real goals were, and so my implicit goal became just completing my degree.

There are lots of types of goals. For example:

  • Getting a good job, with good pay, working conditions, and benefits
  • Getting a job in a specific field that you enjoy
  • Getting promoted within the company where you work
  • Transitioning to a different team or project within the company
  • Preparing for upcoming changes in the industry
  • Making the world a better place

Write your goals down on the right side of your paper. Writing them down helps make them clear and explicit. Here’s an example using the goal of becoming a web developer:

What is REALLY your goal?

There’s a catch here. A lot of goals aren’t directly within our control. We can do things to raise the odds of achieving them, but we can’t, for instance, hire ourselves as a web developer or become our own clients. So, as part of the goal-setting process, you’ll want to narrow down the focus of the goals to help identify actionable sub-goals. Consider:

  • If your goal is to get a good job, you’ll need to drill deeper and find what exact kind of job you’d like.
  • If your goal is to work in a certain field, you’ll need to look more narrowly at the specific positions available.
  • If your goal is to make the world a better place, you’ll need to look at what jobs have a positive impact on the world.

Once you’re at the level of a specific job, you can start to look at popular job-surfing sites and other industry resources to build an understanding of what that job usually demands. Those prerequisites are specific mini-goals well within your control, such as learning something, creating something, or earning something, not goals that are partially reliant on others, like getting hired, getting sales, or getting paid.

In the above example, we’ve started at the job level: become a web developer. But what’s involved in becoming a web developer? We might say there are four valuable subgoals associated with becoming a web developer: learning the skills, building a portfolio, earning a credential, and forming a network.

Goals and sub-goals

If you learn the skills involved in web development, earn a credential that shows that you learned those skills, put together a portfolio that demonstrates those skills in action, and network with the type of people who can act on those things, you’ll be in a good position to accomplish the ultimate goal.

Once you have your aims laid out, it’s time to start planning. What are you going to do to accomplish those intentions?

Step 2: Identify the Paths to Your Goals

Chances are, you already have some ideas for paths that can be taken to reach your goals; that’s why you might have been thinking about a degree or certification in the first place. So next, write down these possible paths. Start with the ones you can think of off the top of your head. Some general, obvious roads could be getting a degree, obtaining a trusted certification, building a portfolio of work, learning the necessary skills, gathering work experience, and securing leads and references.

After writing down the obvious paths that come to mind, go a level deeper. Read through your goals and subgoals and do some research. Are there paths you had not considered? For example, volunteer experience can often supplement or replace work experience if it’s in the same field that you’re looking to enter. As a web developer in training, you might volunteer to help a charity dedicated to a cause about which you’re passionate, helping you gather portfolio exemplars, work experience, and relationships, all while making the world a better place.

Write down these different paths on the left side of your piece of paper. For example:

Reach your goals with a 4 step exercise

You could increase this set even more with possible paths like co-op positions, personal projects, open-source projects, 1:1 tutoring, apprenticeship opportunities, local meetups, and more.

Now you have a set of goals identified, as well as a set of paths to reach those goals. Next, map them together. Which paths will accomplish which goals? Draw a line between each path and the goals that it accomplishes. If you want to get complex, you can weight these lines in some way according to how well each path accomplishes each goal.

Every goal outlined above needs a path that will accomplish it. If you have a goal that doesn’t seem to suggest a clear path, it’s a good idea to revisit the goal and see if you aren’t missing the chance to break it down into more actionable subgoals. Don’t worry right now if the path won’t work for you for some reason, we’ll get to that in a second.

Matching up our paths with our goals, we get this:

A 4 step exercise to help reach your goals. via udacity

What a mess, right? But it’s a good mess: there are lots of opportunities open to you to accomplish the goals you have in mind. This is encouraging, but it’s also a bit overwhelming. With so many options, how do you choose what to pursue?

Step 3: Identify Your Constraints

Fortunately, not all of the paths identified in Step 2 are really possible. Each of us have constraints that prevent some of these options from being plausible. This is the third step: write down your personal constraints.

Some of the constraints you might have are very pragmatic:

  • Money: many options, like bachelor’s and master’s degrees, cost lots of money.
  • Time: if you currently have a job, you might not be able to take an extended period off for full-time education.
  • Geography: you may not live somewhere with ample jobs in your desired field.

Pragmatic obstacles aren’t the only kind of constraints you need to note, though. It’s also important to set yourself up for success by focusing on the paths that fit you personally. For example, do you prefer to…

Learn under pressure, or learn at your leisure?

Learn at your own pace, or follow a prescribed curriculum and schedule?

Learn independently, or learn with others?

Teach yourself, or have someone else teach you?

Receive external rewards and achievements, or rely on internal motivation?

I thrive on external motivators, so I know to look for offerings like verified certificates and credentials rather than just freely available materials and open-source projects. Unlike paths, constraints are specific to you: while goals and paths exist in the world independently of your situation, constraints are specific to your needs, your background, and your abilities.

goals_education5

 

Before you move on to Step 4, revisit the list of constraints you just composed. Ask yourself earnestly, to what extent are these absolute? For example, you might have written down that you don’t have much time. That could very well be true, meaning you probably can’t go back to school full-time. But many of the paths you’ve laid out are likely flexible. Could you take classes at night, during your lunch hour, or on weekends? Many of us fall into the trap of ruling out opportunities because of vaguely defined excuses. In order to refine your list of constraints and ensure that they’re real and unavoidable, try defining them more explicitly, like “I can spend X hours a week” or “I have $X to spend on this.” You’ll often find you have more available resources than you realized.

Your Plan

So, at the end of this process, you should have a draft of a plan: what can you do, starting right now, to reach your goals? Of course, it’s possible that you might complete this exercise and discover a subgoal that isn’t covered by any of your present feasible plans. At this point, you can iterate on this goal chart, identifying other subgoals to compensate for the difficult goal or finding ways to piece together multiple paths to accomplish that subgoal. Ultimately, you should end up with an explicit, attainable path to your aspirations.

Step 4: Get Started

Of course, we’ve only scratched the surface of the range of goals and paths you might explore. Your own goals might be much more complex: there might be a range of jobs you’re interested in, and your goal in choosing your path might be then to keep as many goals open as possible. Or your ultimate goal might have more fundamentally different paths and subgoals available: in becoming a web developer, you might be looking to get hired, you might be looking to become a freelancer, or you might be looking to launch your own startup. These different aims are going to subtly change the way you lay out your goals and paths. If you want to found a startup, you’ll likely include some entrepreneurial training as a subgoal. If your goal is to freelance, you may emphasize portfolios and relationships above credentials and formal training.

Regardless of the complexity of your situation, the overall approach is the same: what are your goals, what are the paths available to those goals, and which of those paths are feasible for you? Once you’ve identified a path, there’s only one thing left to do: get started! Don’t hesitate. Look at the easiest steps to take and begin.

It’s natural to hesitate at this stage. You might ask yourself, ‘What if I can’t complete the paths I’ve chosen? What if I discover constraints that I didn’t anticipate? What if I find I don’t like my goal after all? What if I choose poorly?

Education is a journey

Don’t let hesitation paralyze you. If you start on your journey, you might never finish it; but if you never start that journey, you definitely will never finish it. You might find that after spending some time on the path you’ve chosen, you need to pause and revise your goals, your paths, or your constraints. But when you do, you’ll do so with new knowledge, new understanding, and new experiences to make your next plan even sharper. The sooner you start, the sooner you’ll learn, and the sooner you’ll reach your ultimate destination.

So, go for it. The first step is often the hardest, but there’s likely something you can do right now—even something small—to put yourself on the path. You can start the application to that school, register to be alerted when that course or credential opens up, or sign up for that free class at the local community college. You can update your LinkedIn profile, join a group that discusses the topic you’re interested in, or register to attend an orientation. Whatever it is, and no matter how small it is, take the first step today. There’s no looking back.