☕ Tesla releases Full Self Driving

A Google Interview Question. Tesla begins the roll out of their Full Self Driving Software. Andrej Karpathy, director of Tesla AI and his interesting ideas about Software 2.0

Hey Guys,

Hope you’re all having an awesome day!

Interview Problem

You’re given an integer N as input.

Write a function that determines the smallest number of perfect squares that sum up to N.

Examples

Input - 16

Output - 1 (16 is a perfect square)

Input - 21

Output - 3 (1 + 4 + 16 = 21)

We’ll send a detailed solution with test cases tomorrow, so make sure you move our emails to primary, so you don’t miss them!

Gmail users—move us to your primary inbox

  • On your phone? Hit the 3 dots at top right corner, click "Move to" then "Primary"

  • On desktop? Back out of this email then drag and drop this email into the "Primary" tab near the top left of your screen

Apple mail users—tap on our email address at the top of this email (next to "From:" on mobile) and click “Add to VIPs”

Industry News

Bio on Andrej Karpathy, Director of Tesla AI

Massive congratulations to Elon Musk, Andrej Karpathy and the Tesla AI team for starting their roll out of Full Self Driving!

Andrej is the Director of AI at Tesla, and is responsible for leading the Full Self Driving effort. Previously, he was a research scientist at OpenAI and he completed his PhD in Computer Science at Stanford, graduating in 2015.

One of Andrej’s most interesting ideas is around “Software 2.0”. Software 1.0 is what we’d consider traditional software design today. We identify a complex problem, and break it down into smaller subproblems. We then design algorithms for each subproblem and bundle together all these microservices to create our solution.

On the other hand, Software 2.0 is code that is the result of some type of an optimization process. A deep neural network is an example of Software 2.0. We have a loss function that we want to minimize, and we use compute (usually from GPUs) to “write the code that solves our problem”. The code in this case is the parameters of the Neural Network that will solve our problem. Andrej believes that more and more of the code in the future will be written by this Software 2.0 stack.

Gradient Descent can write code better than you. I’m sorry.

~ Andrej Karpathy

Tesla begins roll out of Full Self Driving software

Tesla has been using the Software 2.0 Stack to build a Full Self Driving System and now it’s finally being rolled out!

The company began their pilot for Full Self Driving yesterday night, rolling the system out to a select few number of users. These users were encouraged to demo the system, report back on any bugs and to also share footage of the system in action with the public! This is quite encouraging, as Tesla’s previous pilots (for features such as Smart Summon), required beta testers to sign a Non-Disclosure Agreement.

We’ve already seen some videos posted on Twitter of the software, with autopilot making turns at intersections, navigating stop lights and doing other complex maneuvers.

Most self-driving car companies (like GM’s Cruise or Waymo) rely on LIDAR and High Definition Maps (extremely accurate mapping data that has centimeter-level precision). The HD Maps will tell the car about the environment and then LIDAR will help the car figure out where exactly it is in the environment. LIDAR also indicates potential obstacles in conjunction with data from cameras placed around the car. The HD maps requirement forces Waymo, Cruise and other self-driving car companies to “geofence”. Their self-driving software can only be used in certain areas.

Tesla is unique in that they rely on a Vision-based approach. Tesla’s vehicles are surrounded by cameras and they use that as the main input for their self-driving system. Tesla vehicles do not contain LIDAR sensors and do not have extremely detailed mapping data. They use the Software 2.0 Stack (Convolutional Neural Networks and other Deep Neural Networks) for understanding the environment, localization, and determining how other cars will act.

This gives Tesla a massive advantage in terms of the number of users who can utilize their full-self driving software. They are not limited to certain geographies. However, it does make the software much harder to build and test. It also increases the probability that something can go wrong.

Andrej Karpathy goes through how Tesla is approaching and solving these problems in this amazing talk here. I’d highly recommend you check it out!