← Lex Fridman

Jeremy Howard: fast.ai Deep Learning Courses and Research

Episode 2019-08-272019-08-27English

Guests: Jeremy Howard

Listen to this episode00:00 / 1:44:17
Reading settings
Reading preferences
Text size
Download in-depth read
Read offline

In-depth read pending

Downloads are not available yet.

§01Transcript · 00:00–09:18

00:00The following is a conversation with Jeremy Howard.

00:03He's the founder of Fast AI, a research institute

00:06dedicated to making deep learning more accessible.

00:09He's also a distinguished research scientist

00:12at the University of San Francisco,

00:14a former president of Kegel,

00:16as well as a top-ranking competitor there.

00:18And in general, he's a successful entrepreneur,

00:21educator, researcher, and an inspiring personality

00:25in the AI community.

00:27When someone asks me, how do I get started with deep learning?

00:30Fast AI is one of the top places I point them to.

00:33It's free, it's easy to get started,

00:35it's insightful and accessible.

00:37And if I may say so, it has very little BS.

00:41They can sometimes dilute the value of educational content

00:44on popular topics like deep learning.

00:46Fast AI has a focus on practical application of deep learning

00:50and hands-on exploration of the cutting edge

00:52that is incredibly both accessible to beginners

00:56and useful to experts.

00:58This is the Artificial Intelligence Podcast.

01:01If you enjoy it, subscribe on YouTube,

01:03give it five stars on iTunes, support it on Patreon,

01:07or simply connect with me on Twitter,

01:09@LexFriedman, spelled F-R-I-D-M-A-N.

01:13And now, here's my conversation with Jeremy Howard.

01:17What's the first program you ever written?

01:20- First program I wrote that I remember

01:24would be at high school.

01:26I did an assignment where I decided to try to find out

01:33if there were some better musical scales

01:36than the normal 12-tone, 12-interval scale.

01:40So I wrote a program on my Commodore 64 in BASIC

01:43that searched through other scale sizes

01:46to see if it could find one where

01:48there were more accurate harmonies.

01:51- Like mid-tone?

01:53- Like you want an actual exactly three to two ratio,

01:56whereas with a 12-interval scale,

01:59it's not exactly three to two, for example.

02:01So that's well-tempered, as they say in the--

02:05- In BASIC on a Commodore 64.

02:07- Yeah.

02:08- Where was the interest in music from?

02:09Or is it just--

02:10- I did music all my life, so I played saxophone

02:14and clarinet and piano and guitar and drums and whatever, so.

02:18- How does that thread go through your life?

02:22Where's music today?

02:24- It's not where I wish it was.

02:26For various reasons, couldn't really keep it going,

02:30particularly 'cause I had a lot of problems with RSI,

02:32with my fingers, and so I had to kind of like

02:34cut back anything that used hands and fingers.

02:38I hope one day I'll be able to get back to it health-wise.

02:43- So there's a love for music underlying it all?

02:46- For sure, yeah.

02:46- What's your favorite instrument?

02:49- Saxophone.

02:50- Sax.

02:51- It's a baritone saxophone.

02:52Well, probably bass saxophone, but they're awkward.

02:55- Well, I always love it when music

03:00is coupled with programming.

03:01There's something about a brain that utilizes those

03:04that emerges with creative ideas.

03:07So you've used and studied quite a few programming languages.

03:11Can you give an overview of what you've used?

03:15What are the pros and cons of each?

03:17- Well, my favorite programming environment,

03:21almost certainly, was Microsoft Access

03:24back in the earliest days.

03:26So that was Visual Basic for Applications,

03:28which is not a good programming language,

03:30but the programming environment was fantastic.

03:33It's like the ability to create user interfaces

03:38and tie data and actions to them and create reports

03:42and all that, I've never seen anything as good.

03:46There's things nowadays like Airtable,

03:48which are like small subsets of that,

03:53which people love for good reason,

03:56but unfortunately nobody's ever achieved anything like that.

04:01- What is that?

04:01If you could pause on that for a second.

04:03- Oh, Access?

04:04- Access is a database.

04:06- It was a database program that Microsoft produced,

04:09part of Office, and it kind of withered, you know,

04:13but basically it lets you in a totally graphical way

04:16create tables and relationships and queries

04:18and tie them to forms and set up, you know,

04:21event handlers and calculations.

04:24And it was a very complete, powerful system

04:28designed for not massive scalable things,

04:31but for like useful little applications that I loved.

04:36- So what's the connection between Excel and Access?

04:40- So very close.

04:42So Access kind of was the relational database equivalent,

04:47if you like.

04:48So people still do a lot of that stuff

04:51that should be in Access in Excel,

04:52because they know it.

04:54Excel's great as well.

04:55So, but it's just not as rich a programming model

05:00as VBA combined with a relational database.

05:04And so I've always loved relational databases,

05:07but today programming on top of a relational database

05:11is just a lot more of a headache.

05:13You know, you generally either need to kind of,

05:16you know, you need something that connects,

05:17that runs some kind of database server,

05:19unless you use SQLite, which has its own issues.

05:23Then you kind of often,

05:25if you want to get a nice programming model,

05:27you'll need to like create an, add an ORM on top.

05:30And then, I don't know,

05:31there's all these pieces to tie together,

05:34and it's just a lot more awkward than it should be.

05:36There are people that are trying to make it easier.

05:39So in particular, I think of F#, you know, Don Syme,

05:42who him and his team have done a great job

05:45of making something like a database appear

05:50in the type system.

05:51So you actually get like tab completion for fields

05:54and tables and stuff like that.

05:56Anyway, so that was kind of, anyway,

05:59so like that whole VBA office thing,

06:01I guess was a starting point, which I still miss.

06:04And I got into standard Visual Basic, which-

06:07- That's interesting just to pause on that for a second.

06:09It's interesting that you're connecting programming languages

06:13to the ease of management of data.

06:17- Yeah.

06:18- So in your use of programming languages,

06:20you always had a love and a connection with data.

06:24- I've always been interested in doing useful things

06:27for myself and for others,

06:29which generally means getting some data

06:31and doing something with it and putting it out there again.

06:34So that's been my interest throughout.

06:38So I also did a lot of stuff with AppleScript

06:41back in the early days.

06:42So it's kind of nice being able to get the computer

06:47and computers to talk to each other

06:50and to do things for you.

06:51And then I think that one,

06:54the programming language I most loved

06:57then would have been Delphi, which was Object Pascal,

07:01created by Anders Helsberg,

07:04who previously did Turbo Pascal

07:07and then went on to create .NET

07:08and then went on to create TypeScript.

07:11Delphi was amazing 'cause it was like a compiled,

07:14fast language that was as easy to use as Visual Basic.

07:19- Delphi, what is it similar to in more modern languages?

07:25- Visual Basic.

07:28- Visual Basic.

07:29- Yeah, but a compiled fast version.

07:32So I'm not sure there's anything quite like it anymore.

07:37If you took like C# or Java

07:40and got rid of the virtual machine

07:42and replaced it with something,

07:43you could compile a small type binary.

07:46I feel like it's where Swift could get to

07:50with the new Swift UI

07:52and the cross-platform development going on.

07:56Like that's one of my dreams

07:59is that we'll hopefully get back to where Delphi was.

08:02There is actually a free Pascal project nowadays

08:07called Lazarus,

08:09which is also attempting to kind of recreate Delphi.

08:13So they're making good progress.

08:16- So, okay, Delphi,

08:18that's one of your favorite programming languages.

08:20- Or at least programming environments.

08:22Again, I'd say Pascal's not a nice language.

08:26If you wanted to know specifically

08:27about what languages I like,

08:29I would definitely pick J

08:31as being an amazingly wonderful language.

08:34- What's J?

08:37- J, are you aware of APL?

08:39- I am not.

08:40- Okay, so. - Except from doing

08:41a little research on the work you've done.

08:44- Okay, so not at all surprising

08:47you're not familiar with it

08:47'cause it's not well known,

08:49but it's actually one of the main

08:51families of programming languages

08:55going back to the late '50s, early '60s.

08:57So there was a couple of major directions.

09:01One was the kind of Lambda calculus,

09:04Alonzo Church direction,

09:06which I guess kind of Lisp and Scheme and whatever,

09:09which has a history going back

09:12to the early days of computing.

09:13The second was the kind of imperative slash OO,

09:18algo, similar, going under C, C++, so forth.

§02Transcript · 09:23–19:05

09:23There was a third,

09:23which are called array-oriented languages,

09:26which started with a paper by a guy called Ken Iverson,

09:31which was actually a math theory paper,

09:35not a programming paper.

09:37It was called "Notation as a Tool for Thought."

09:41And it was the development of a new type of math notation.

09:45And the idea is that this math notation

09:47was much more flexible, expressive,

09:51and also well-defined than traditional math notation,

09:55which is none of those things.

09:56Math notation is awful.

09:57And so he actually turned that into a programming language.

10:02'Cause this was the early '50s,

10:04or the, sorry, late '50s, all the names were available.

10:06So he called his language a programming language, or APL.

10:10- APL, wow.

10:11- So APL is a implementation of notation

10:15as a tool for thought, by which he means math notation.

10:18And Ken and his son went on to do many things,

10:22but eventually they actually produced

10:25a new language that was built

10:27on top of all the learnings of APL,

10:28and that was called J.

10:29And J is the most expressive, composable language of,

10:35beautifully designed language I've ever seen.

10:42- Does it have object-oriented components?

10:44Does it have that kind of thing, or is it more like--

10:45- Not really, it's an array-oriented language.

10:47It's a new, it's the third path.

10:51- Are you saying array?

10:52- Array-oriented, yeah.

10:53- What does it mean to be array-oriented?

10:55- So array-oriented means that you generally

10:57don't use any loops, but the whole thing is done

11:01with kind of a extreme version of broadcasting,

11:06if you're familiar with that NumPy/Python concept.

11:09So you do a lot with one line of code.

11:14It looks a lot like math notation.

11:18- So it's basically--

11:19- Highly compact.

11:20And the idea is that you can kind of,

11:22because you can do so much with one line of code,

11:24a single screen of code is very unlikely to,

11:27you very rarely need more than that to express your program.

11:31And so you can kind of keep it all in your head,

11:33and you can kind of clearly communicate it.

11:36It's interesting, APL created two main branches,

11:39K and J.

11:41J is this kind of like open-source niche community

11:46of crazy enthusiasts like me.

11:49And then the other path, K, is fascinating.

11:52It's an astonishingly expensive programming language,

11:56which many of the world's most

11:59ludicrously rich hedge funds use.

12:02So the entire K machine is so small,

12:06it sits inside level three cache on your CPU,

12:09and it easily wins every benchmark I've ever seen

12:14in terms of data processing speed.

12:16But you don't come across it very much,

12:17it's like $100,000 per CPU to run it.

12:22But it's like this path of programming languages

12:26is just so much, I don't know,

12:28so much more powerful in every way

12:30than the ones that almost anybody uses every day.

12:33- So it's all about computation.

12:37It's really focusing on computation.

12:38- It's pretty heavily focused on computation.

12:40I mean, so much of programming

12:43is data processing by definition.

12:45So there's a lot of things you can do with it.

12:48But yeah, there's not much work being done

12:51on making like user interface toolkits or whatever.

12:56I mean, there's some, but they're not great.

12:59- At the same time, you've done a lot of stuff

13:00with Perl and Python.

13:02- Yeah.

13:03- So where does that fit into the picture

13:04of J and K and APL and--

13:08- Well, it's just much more pragmatic.

13:10Like in the end, you kind of have to end up

13:13where the libraries are,

13:17'cause to me, my focus is on productivity.

13:21I just wanna get stuff done and solve problems.

13:23So Perl was great.

13:27I created an email company called Fastmail

13:29and Perl was great 'cause back in the late '90s,

13:32early 2000s, it just had a lot of stuff it could do.

13:37I still had to write my own monitoring system

13:41and my own web framework, my own whatever,

13:43'cause like none of that stuff existed,

13:45but it was a super flexible language to do that in.

13:50- And you used Perl for Fastmail, you used it as a backend?

13:54Like, so everything was written in Perl?

13:55- Yeah, yeah, everything was Perl.

13:58- Why do you think Perl hasn't succeeded

14:02or hasn't dominated the market

14:04where Python really takes over a lot of the same tasks?

14:07- Well, I mean, Perl did dominate.

14:09It was-- - Four times.

14:10- Everything, everywhere, but then the guy

14:14that ran Perl, Larry Wool,

14:17kind of just didn't put the time in anymore.

14:22And no project can be successful if there isn't,

14:27you know, particularly one that started

14:30with a strong leader that loses that strong leadership.

14:35So then Python has kind of replaced it.

14:37You know, Python is a lot less elegant language

14:42in nearly every way, but it has the data science libraries

14:48and a lot of them are pretty great.

14:51So I kind of use it 'cause it's the best we have,

14:56but it's definitely not good enough.

15:01- But what do you think the future of programming looks like?

15:04What do you hope the future of programming looks like

15:06if we zoom in on the computational fields,

15:08on data science, on machine learning?

15:11- I hope Swift is successful because the goal of Swift,

15:16the way Chris Latner describes it,

15:21is to be infinitely hackable, and that's what I want.

15:23I want something where me and the people I do research with

15:26and my students can look at and change everything

15:30from top to bottom.

15:32There's nothing mysterious and magical and inaccessible.

15:36Unfortunately with Python, it's the opposite of that

15:38because Python's so slow, it's extremely unhackable.

15:42You get to a point where it's like,

15:43okay, from here on down, it's C.

15:45So your debugger doesn't work in the same way,

15:47your profiler doesn't work in the same way,

15:48your build system doesn't work in the same way.

15:50It's really not very hackable at all.

15:53- What's the part you like to be hackable?

15:55Is it for the objective of optimizing training

16:00of neural networks, inference of neural networks?

16:02Is it performance of the system

16:04or is there some non-performance related just--

16:07- It's everything.

16:09I mean, in the end, I wanna be productive as a practitioner.

16:13So that means that, so like at the moment,

16:16our understanding of deep learning is incredibly primitive.

16:20There's very little we understand.

16:21Most things don't work very well,

16:23even though it works better than anything else out there.

16:26There's so many opportunities to make it better.

16:28So you look at any domain area, like, I don't know,

16:32speech recognition with deep learning

16:35or natural language processing classification

16:38with deep learning or whatever.

16:39Every time I look at an area with deep learning,

16:41I always see like, oh, it's terrible.

16:44There's lots and lots of obviously stupid ways to do things

16:48that need to be fixed.

16:50So then I wanna be able to jump in there

16:51and quickly experiment and make them better.

16:54- You think the programming language has a role in that?

16:59- Huge role, yeah.

17:00So currently Python has a big gap

17:05in terms of our ability to innovate,

17:09particularly around recurrent neural networks

17:11and natural language processing,

17:14because it's so slow.

17:16The actual loop where we actually loop through words,

17:20we have to do that whole thing in CUDA C.

17:23So we actually can't innovate with the kernel,

17:27the heart of that most important algorithm.

17:30And it's just a huge problem.

17:33And this happens all over the place.

17:36So we hit research limitations.

17:40Another example, convolutional neural networks,

17:42which are actually the most popular architecture

17:44for lots of things, maybe most things in deep learning.

17:48We almost certainly should be using

17:50sparse convolutional neural networks,

17:52but only like two people are,

17:55because to do it, you have to rewrite

17:57all of that CUDA C level stuff.

17:59And yeah, just researchers and practitioners don't.

18:04So like there's just big gaps

18:06in like what people actually research on,

18:09what people actually implement

18:10because of the programming language problem.

18:13- So you think it's just too difficult to write in CUDA C

18:18that a programming, like a higher level programming language

18:23like Swift should enable the easier,

18:28fooling around creative stuff with RNNs

18:33or with sparse convolutional neural networks?

18:34- Kind of.

18:35- Who's at fault?

18:37Who's at charge of making it easy

18:41for a researcher to play around?

18:42- I mean, no one's at fault.

18:43It's just nobody's got around to it yet.

18:45Or it's just, it's hard, right?

18:47And I mean, part of the fault

18:48is that we ignored that whole APL kind of direction,

18:52almost nearly everybody did for 60 years, 50 years.

18:56But recently people have been starting

18:59to reinvent pieces of that

19:03and kind of create some interesting new directions

19:05in the compiler technology.

§03Transcript · 19:07–29:14

19:07So the place where that's particularly happening right now

19:11is something called MLIR,

19:13which is something that again,

19:14Chris Latner, the Swift guy is leading.

19:18And yeah, 'cause it's actually not gonna be Swift

19:20on its own that solves this problem

19:22because the problem is that currently writing

19:24a acceptably fast GPU program

19:29is too complicated regardless of what language you use.

19:33And that's just because if you have to deal with the fact

19:38that I've got 10,000 threads

19:41and I have to synchronize between them all

19:43and I have to put my thing into grid blocks

19:45and think about warps and all this stuff,

19:47it's just so much boilerplate that to do that well,

19:50you have to be a specialist at that

19:52and it's gonna be a year's work to optimize

19:56that algorithm in that way.

19:59But with things like tensor comprehensions

20:03and tile and MLIR and TVM,

20:07there's all these various projects

20:08which are all about saying,

20:10let's let people create like domain specific languages

20:14for tensor computations.

20:16These are the kinds of things we do generally on the GPU

20:20for deep learning and then have a compiler

20:22which can optimize that tensor computation.

20:27A lot of this work is actually sitting on top

20:30of a project called Halide,

20:32which is a mind blowing project

20:35where they came up with such a domain specific language.

20:38In fact, two, one domain specific language for expressing

20:41this is what my tensor computation is.

20:43And another domain specific language for expressing

20:46this is the kind of the way I want you to structure

20:50the compilation of that and like do it block by block

20:53and do these bits in parallel.

20:54And they were able to show how you can compress

20:57the amount of code by 10X compared to optimized GPU code

21:02and get the same performance.

21:05So that's like, so these are the things

21:07that kind of sitting on top of that kind of research

21:10and MLIR is pulling a lot of those best practices together.

21:15And now we're starting to see work done on making

21:18all of that directly accessible through Swift

21:21so that I could use Swift to kind of write

21:23those domain specific languages.

21:25And hopefully we'll get then Swift CUDA kernels

21:29written in a very expressive and concise way

21:31that looks a bit like J in APL

21:34and then Swift layers on top of that

21:36and then a Swift UI on top of that.

21:38And, you know, that'll be so nice

21:41if we can get to that point.

21:42- Now, does it all eventually boil down

21:45to CUDA and NVIDIA GPUs?

21:48- Unfortunately at the moment it does,

21:50but one of the nice things about MLIR

21:52if AMD ever gets their act together,

21:55which they probably won't,

21:56is that they or others could write MLIR backends

22:01for other GPUs or other tensor computation devices

22:07of which today there are increasing number

22:11like Graph Core or Vertex AI or whatever.

22:16So yeah, being able to target lots of backends

22:22would be another benefit of this.

22:23And the market really needs competition

22:26'cause at the moment NVIDIA is massively overcharging

22:29for their kind of enterprise class cards

22:33because there is no serious competition

22:36'cause nobody else is doing the software properly.

22:39- In the cloud there is some competition, right?

22:41But-

22:42- Not really, other than TPUs perhaps.

22:45But TPUs are almost unprogrammable at the moment.

22:48- So you can't, the TPUs has the same problem that you can't-

22:51- It's even worse.

22:52So TPUs, Google actually made an explicit decision

22:54to make them almost entirely unprogrammable

22:57because they felt that there was too much IP in there.

23:00And if they gave people direct access to program them,

23:02people would learn their secrets.

23:04So you can't actually directly program the memory in a TPU.

23:09You can't even directly create code that runs on

23:13and that you look at on the machine that has the GPU.

23:16It all goes through a virtual machine.

23:18So all you can really do is this kind of cookie cutter thing

23:21of like plug-in high-level stuff together,

23:25which is just super tedious and annoying

23:29and totally unnecessary.

23:31- So what was the, tell me if you could,

23:34the origin story of fast AI?

23:36- Fast AI?

23:37- The origin story of fast AI.

23:39What is the motivation, its mission, its dream?

23:44- So I guess the founding story is heavily tied

23:50to my previous startup, which is a company called Analytic,

23:53which was the first company to focus on deep learning

23:56for medicine.

23:58And I created that because I saw there was a huge

24:02opportunity to, there's about a 10X shortage

24:06of the number of doctors in the world,

24:08in the developing world that we need.

24:10Expected it would take about 300 years

24:13to train enough doctors to meet that gap.

24:16But I guess that maybe if we used deep learning

24:21for some of the analytics, we could maybe make it

24:24so you don't need as highly trained doctors.

24:27- For diagnosis?

24:28- For diagnosis and treatment planning.

24:29- Where's the biggest benefit, just before we get

24:32to fast AI, where's the biggest benefit of AI in medicine

24:36that you see today?

24:37- Not much happening today in terms of like stuff

24:41that's actually out there, it's very early,

24:43but in terms of the opportunity, it's to take markets

24:47like India and China and Indonesia,

24:50which have big populations, Africa,

24:54small numbers of doctors, and provide diagnostic,

24:59particularly treatment planning and triage kind of on device

25:05so that if you do a test for malaria or tuberculosis

25:10or whatever, you immediately get something

25:12that even a healthcare worker that's had a month

25:15of training can get a very high quality assessment

25:20of whether the patient might be at risk and tell,

25:24okay, we'll send them off to a hospital.

25:27So for example, in Africa, outside of South Africa,

25:31there's only five pediatric radiologists

25:34for the entire continent, so most countries don't have any.

25:37So if your kid is sick and they need something diagnosed

25:39through medical imaging, the person, even if you're able

25:42to get medical imaging done, the person that looks at it

25:45will be a nurse at best, but actually in India, for example,

25:50and China, almost no x-rays are read by anybody,

25:54by any trained professional because they don't have enough.

25:59So if instead we had a algorithm that could take

26:03the most likely high risk 5% and say, triage basically,

26:08say, okay, someone needs to look at this,

26:13it would massively change the kind of way that

26:17what's possible with medicine in the developing world.

26:20And remember, increasingly, they have money.

26:23They're the developing world, they're not the poor world,

26:25they're the developing world, so they have the money,

26:26so they're building the hospitals,

26:28they're getting the diagnostic equipment,

26:32but there's no way for a very long time

26:34will they be able to have the expertise.

26:38- Shortage of expertise, okay, and that's where

26:41the deep learning systems can step in

26:43and magnify the expertise they do have, essentially.

26:46- Yeah.

26:47- So you do see, just to linger it a little bit longer,

26:52the interaction, do you still see the human experts

26:58still at the core of these systems?

26:59- Yeah, absolutely.

27:00- Or is there something in medicine that could be automated

27:02almost completely?

27:03- I don't see the point of even thinking about that,

27:06because we have such a shortage of people,

27:08why would we want to find a way not to use them?

27:12Like, we have people, so the idea of,

27:15even from an economic point of view,

27:17if you can make them 10x more productive,

27:19getting rid of the person doesn't impact

27:21your unit economics at all, and it totally ignores the fact

27:25that there are things people do better than machines.

27:28So it's just, to me, that's not a useful way

27:33of framing the problem.

27:34- I guess, just to clarify, I guess I meant

27:36there may be some problems where you can avoid

27:40even going to the expert ever, sort of maybe preventative

27:43care or some basic stuff, allowing the expert to focus

27:48on the things that are really that, you know.

27:51- Well, that's what the triage would do, right?

27:53So the triage would say, okay, this 99% triage,

27:58sure, there's nothing here.

28:00So, you know, that can be done on device,

28:04and they can just say, okay, go home.

28:05So the experts are being used to look at the stuff

28:09which has some chance it's worth looking at,

28:12which most things is not, you know, it's fine.

28:16- Why do you think we haven't quite made progress

28:19on that yet, in terms of the scale of how much AI

28:24is applied in the method?

28:27- There's a lot of reasons.

28:28I mean, one is it's pretty new.

28:29I only started in Lytic in like 2014, and before that,

28:33like, it's hard to express to what degree

28:36the medical world was not aware of the opportunities here.

28:40So I went to RSNA, which is the world's largest

28:44radiology conference, and I told everybody I could,

28:49you know, like, I'm doing this thing with deep learning,

28:51please come and check it out.

28:53And no one had any idea what I was talking about,

28:56and no one had any interest in it.

28:58So like, we've come from absolute zero, which is hard,

29:04and then the whole regulatory framework, education system,

29:09everything is just set up to think of doctoring

29:13in a very different way.

29:14So today, there is a small number of people

§04Transcript · 29:17–39:15

29:17who are deep learning practitioners and doctors

29:22at the same time, and we're starting to see

29:24the first ones come out of their PhD programs,

29:26so Zach Kahan over in Boston, Cambridge,

29:31has a number of students now who are data science experts,

29:38deep learning experts, and actual medical doctors.

29:46Quite a few doctors have completed our fast AI course now

29:50and are publishing papers and creating journal reading

29:54groups in the American Council of Radiology,

29:58and like, it's just starting to happen.

30:00But it's gonna be a long process.

30:02The regulators have to learn how to regulate this,

30:04they have to build, you know, guidelines,

30:08and then the lawyers at hospitals have to develop

30:13a new way of understanding that sometimes it makes sense

30:18for data to be, you know, looked at in raw form

30:23in large quantities in order to create

30:25world-changing results.

30:26- Yeah, so regulation around data, all that,

30:30it sounds, well, it's probably the hardest problem,

30:33but sounds reminiscent of autonomous vehicles as well.

30:36Many of the same regulatory challenges,

30:38many of the same data challenges.

30:40- Yeah, I mean, funnily enough,

30:41the problem is less the regulation

30:43and more the interpretation of that regulation

30:45by lawyers in hospitals.

30:48So HIPAA is actually, was designed to,

30:52the P in HIPAA is not standing,

30:55does not stand for privacy, it stands for portability.

30:57It's actually meant to be a way that data can be used.

31:00And it was created with lots of gray areas

31:04because the idea is that would be more practical

31:06and it would help people to use this legislation

31:10to actually share data in a more thoughtful way.

31:13Unfortunately, it's done the opposite

31:15because when a lawyer sees a gray area,

31:17they say, oh, if we don't know, we won't get sued,

31:20then we can't do it.

31:22So HIPAA is not exactly the problem.

31:26The problem is more that there's,

31:29hospital lawyers are not incented to make bold decisions

31:34about data portability.

31:36- Or even to embrace technology that saves lives.

31:40They more wanna not get in trouble

31:42for embracing that technology.

31:44- Also, it is also, saves lives in a very abstract way,

31:47which is like, oh, we've been able to release

31:49these 100,000 anonymized records.

31:52I can't point at the specific person

31:54whose life that saved.

31:55I can say like, oh, we ended up with this paper,

31:57which found this result, which diagnosed a thousand

32:01more people than we would have otherwise,

32:03but it's like, which ones were helped?

32:05It's very abstract.

32:07- Yeah, and on the counter side of that,

32:09you may be able to point to a life that was taken

32:13because of something that was--

32:14- Yeah, or a person whose privacy was violated.

32:18It's like, oh, this specific person,

32:20you know, was de-identified.

32:24- So-- - Identified.

32:26- Just a fascinating topic.

32:27We're jumping around.

32:28We'll get back to fast AI, but on the question of privacy,

32:32data is the fuel for so much innovation in deep learning.

32:37What's your sense on privacy,

32:39whether we're talking about Twitter, Facebook, YouTube,

32:44just the technologies like in the medical field

32:48that rely on people's data in order to create impact.

32:53How do we get that right, respecting people's privacy

32:58and yet creating technology that is learned from data?

33:03- One of my areas of focus is on doing more with less data,

33:08which, so most vendors, unfortunately,

33:14are strongly incented to find ways

33:17to require more data and more computation.

33:20So Google and IBM being the most obvious--

33:23- IBM.

33:25- Yeah, so Watson. - Watson.

33:27- So Google and IBM both strongly push the idea

33:31that you have to be, you know,

33:33that they have more data and more computation

33:35and more intelligent people than anybody else.

33:37And so you have to trust them to do things

33:39'cause nobody else can do it.

33:41And Google's very upfront about this.

33:45Like Jeff Dean has gone out there and given talks

33:48and said, "Our goal is to require

33:50"a thousand times more computation, but less people."

33:55Our goal is to use the people that you have better

34:00and the data you have better

34:01and the computation you have better.

34:03So one of the things that we've discovered is,

34:06or at least highlighted, is that you very, very,

34:10very often don't need much data at all.

34:13And so the data you already have in your organization

34:16will be enough to get state-of-the-art results.

34:19So like my starting point would be to kind of say

34:21around privacy is a lot of people are looking for ways

34:25to share data and aggregate data,

34:28but I think often that's unnecessary.

34:29They assume that they need more data than they do

34:32'cause they're not familiar with the basics

34:34of transfer learning, which is this critical technique

34:38for needing orders of magnitude less data.

34:42- Is your sense, one reason you might wanna collect data

34:44from everyone is like in the recommender system context,

34:49where your individual, Jeremy Howard's individual data

34:54is the most useful for providing a product

34:58that's impactful for you.

34:59So for giving you advertisements,

35:02for recommending to you movies,

35:04for doing medical diagnosis.

35:06Is your sense we can build with a small amount of data,

35:11general models that will have a huge impact for most people

35:16that we don't need to have data from each individual?

35:19- On the whole, I'd say yes.

35:20I mean, there are things like,

35:23you know, recommender systems have this cold start problem

35:28where, you know, Jeremy is a new customer.

35:30We haven't seen him before.

35:31So we can't recommend him things based on what else

35:33he's bought and liked with us.

35:36And there's various workarounds to that.

35:38Like in a lot of music programs,

35:40we'll start out by saying,

35:42which of these artists do you like?

35:44Which of these albums do you like?

35:46Which of these songs do you like?

35:48Netflix used to do that.

35:50Nowadays, they tend not to.

35:53People kind of don't like that

35:54'cause they think, oh, we don't wanna bother the user.

35:57So you could work around that

35:58by having some kind of data sharing

36:00where you get my marketing record from Axiom or whatever

36:04and try to guestion that.

36:06To me, the benefit to me and to society

36:11of saving me five minutes on answering some questions

36:16versus the negative externalities

36:18of the privacy issue doesn't add up.

36:23So I think like a lot of the time,

36:26the places where people are invading our privacy

36:30in order to provide convenience

36:32is really about just trying to make them more money

36:36and they move these negative externalities

36:41to places that they don't have to pay for them.

36:44So when you actually see regulations appear

36:48that actually cause the companies

36:50that create these negative externalities

36:52to have to pay for it themselves,

36:53they say, well, we can't do it anymore.

36:56So the cost is actually too high.

36:58But for something like medicine,

37:00yeah, I mean, the hospital has my medical imaging,

37:05my pathology studies, my medical records.

37:07And also I own my medical data.

37:11So I help a startup called DocAI.

37:16One of the things DocAI does is that it has an app

37:19you can connect to Sutter Health and LabCorp and Walgreens

37:24and download your medical data to your phone

37:29and then upload it again at your discretion

37:33to share it as you wish.

37:35So with that kind of approach,

37:38we can share our medical information

37:41with the people we want to.

37:44- Yeah, so control.

37:45I mean, really being able to control

37:47who you share it with and so on.

37:49So that has a beautiful, interesting tangent,

37:53but to return back to the origin story of Fast.ai.

37:59All right, so before I started Fast.ai,

38:02I spent a year researching

38:06where are the biggest opportunities for deep learning?

38:10'Cause I knew from my time at Kaggle in particular

38:14that deep learning had kind of hit this threshold point

38:16where it was rapidly becoming the state-of-the-art approach

38:19in every area that looked at it.

38:21And I'd been working with neural nets for over 20 years.

38:25I knew that from a theoretical point of view,

38:27once it hit that point, it would do that

38:29in kind of just about every domain.

38:31And so I kind of spent a year researching

38:34what are the domains that's gonna have

38:36the biggest low-hanging fruit in the shortest time period.

38:39I picked medicine, but there were so many I could have picked

38:43and so there was a kind of level of frustration for me

38:46of like, okay, I'm really glad we've opened up

38:50the medical deep learning world

38:51and today it's huge, as you know,

38:53but we can't do, I can't do everything.

38:58I don't even know, like in medicine,

39:00it took me a really long time to even get a sense

39:02of like what kind of problems do medical practitioners solve?

39:05What kind of data do they have?

39:06Who has that data?

39:07So I kind of felt like I need to approach this differently

39:12if I wanna maximize the positive impact of deep learning.

39:15Rather than me picking an area

§05Transcript · 39:19–48:17

39:19and trying to become good at it and building something,

39:21I should let people who are already domain experts

39:24in those areas and who already have the data

39:26do it themselves.

39:29So that was the reason for Fast.ai

39:33is to basically try and figure out

39:36how to get deep learning into the hands of people

39:40who could benefit from it and help them to do so

39:43in as quick and easy and effective a way as possible.

39:47- Got it, so sort of empower the domain experts.

39:50- Yeah, and like partly it's 'cause like,

39:53unlike most people in this field,

39:56my background is very applied and industrial.

40:00Like my first job was at McKinsey and Company.

40:02I spent 10 years in management consulting.

40:04I spend a lot of time with domain experts,

40:10so I kind of respect them and appreciate them

40:12and I know that's where the value generation in society is.

40:16And so I also know how most of them can't code

40:21and most of them don't have the time to invest,

40:26you know, three years in a graduate degree or whatever.

40:29So it's like, how do I upskill those domain experts?

40:33I think that would be a super powerful thing,

40:36you know, biggest societal impact I could have.

40:39So yeah, that was the thinking.

40:41- So, so much of Fast.ai students and researchers

40:45and the things you teach are pragmatically minded,

40:50practically minded, figuring out ways

40:52how to solve real problems and fast.

40:55So from your experience, what's the difference

40:58between theory and practice of deep learning?

41:01- Well, most of the research in the deep mining world

41:07is a total waste of time.

41:09- Right, that's what I was getting at.

41:11- Yeah, it's a problem in science in general.

41:16Scientists need to be published,

41:19which means they need to work on things

41:21that their peers are extremely familiar with

41:24and can recognize and advance in that area.

41:26So that means that they all need to work on the same thing.

41:29And so it really, and the thing they work on,

41:33there's nothing to encourage them to work on things

41:35that are practically useful.

41:38So you get just a whole lot of research,

41:41which is minor advances in stuff

41:43that's been very highly studied

41:44and has no significant practical impact.

41:49Whereas the things that really make a difference,

41:50like I mentioned transfer learning,

41:52like if we can do better at transfer learning,

41:55then it's this like world-changing thing

41:58where suddenly like lots more people

41:59can do world-class work with less resources and less data.

42:04But almost nobody works on that.

42:08Or another example, active learning,

42:10which is the study of like,

42:11how do we get more out of the human beings in the loop?

42:15- That's my favorite topic.

42:17- Yeah, so active learning is great,

42:18but it's almost nobody working on it

42:21because it's just not a trendy thing right now.

42:23- You know what, somebody started to interrupt.

42:27He was saying that nobody is publishing on active learning,

42:31but there's people inside companies,

42:33anybody who actually has to solve a problem,

42:36they're going to innovate on active learning.

42:39- Yeah, everybody kind of reinvents active learning

42:42when they actually have to work in practice

42:43because they start labeling things and they think,

42:46gosh, this is taking a long time and it's very expensive.

42:49And then they start thinking,

42:51well, why am I labeling everything?

42:52I'm only, the machine's only making mistakes

42:54on those two classes, they're the hard ones.

42:56Maybe I'll just start labeling those two classes.

42:58And then you start thinking,

43:00well, why did I do that manually?

43:01Why can't I just get the system to tell me

43:03which things are gonna be hardest?

43:04It's an obvious thing to do,

43:06but yeah, it's just like transfer learning,

43:11it's understudied and the academic world

43:14just has no reason to care about practical results.

43:17The funny thing is, I've only really ever written one paper.

43:20I hate writing papers and I didn't even write it.

43:22It was my colleague, Sebastian Ruder, who actually wrote it.

43:25I just did the research for it,

43:27but it was basically introducing transfer learning,

43:30successful transfer learning to NLP for the first time.

43:34The algorithm is called ULMfit.

43:36And I actually wrote it for the course,

43:41for the first AI course.

43:43I wanted to teach people NLP

43:45and I thought I only wanna teach people practical stuff.

43:47And I think the only practical stuff is transfer learning.

43:50And I couldn't find any examples of transfer learning in NLP,

43:53so I just did it.

43:54And I was shocked to find that as soon as I did it,

43:57which the basic prototype took a couple of days,

44:01smashed the state of the art

44:02on one of the most important data sets

44:04in a field that I knew nothing about.

44:06And I just thought, well, this is ridiculous.

44:10And so I spoke to Sebastian about it

44:13and he kindly offered to write it up, the results.

44:17And so it ended up being published in ACL,

44:21which is the top computational linguistics conference.

44:25So like people do actually care once you do it,

44:28but I guess it's difficult for maybe like junior researchers

44:32or like, I don't care whether I get citations

44:36or papers or whatever.

44:37There's nothing in my life that makes that important,

44:39which is why I've never actually bothered

44:41to write a paper myself.

44:43But for people who do,

44:43I guess they have to pick the kind of safe option,

44:48which is like, yeah, make a slight improvement

44:52on something that everybody's already working on.

44:54- Yeah, nobody does anything interesting

44:58or succeeds in life with the safe option.

45:01- Although, I mean, the nice thing is nowadays,

45:02everybody is now working on NLP transfer learning

45:05because since that time we've had GPT and GPT-2 and BERT

45:09and it's like, it's so, yeah,

45:12once you show that something's possible,

45:15everybody jumps in, I guess.

45:17- I hope to be a part of,

45:19and I hope to see more innovation

45:20in active learning in the same way.

45:22I think transfer learning and active learning

45:24are fascinating public open work.

45:27- I actually helped start a startup called Platform AI,

45:29which is really all about active learning.

45:31And yeah, it's been interesting trying to kind of

45:34see what research is out there and make the most of it.

45:37And there's basically none.

45:39So we've had to do all our own research.

45:41- Once again, and just as you described.

45:43Can you tell the story of the Stanford competition,

45:47DawnBench and Fast.ai's achievement on it?

45:51- Sure, so something which I really enjoy

45:54is that I basically teach two courses a year,

45:57the practical deep learning for coders,

45:59which is kind of the introductory course

46:02and then cutting edge deep learning for coders,

46:04which is the kind of research level course.

46:06And while I teach those courses,

46:10I basically have a big office

46:15at the University of San Francisco,

46:18it'd be enough for like 30 people.

46:19And I invite anybody, any student who wants to come

46:22and hang out with me while I build the course.

46:25And so generally it's full.

46:26And so we have 20 or 30 people in a big office

46:30with nothing to do, but study deep learning.

46:33So it was during one of these times

46:35that somebody in the group said,

46:37"Oh, there's a thing called DawnBench,

46:40it looks interesting."

46:41And I was like, "What the hell is that?"

46:42And they set out some competition

46:44to see how quickly you can train a model.

46:46Seems kind of not exactly relevant to what we're doing,

46:50but it sounds like the kind of thing

46:51which you might be interested in.

46:52I checked it out and I was like,

46:53"Oh crap, there's only 10 days till it's over.

46:55It's pretty much too late."

46:58And we're kind of busy trying to teach this course.

47:00But we're like, "Oh, it would make an interesting

47:03case study for the course.

47:06Like it's all the stuff we're already doing.

47:08Why don't we just put together

47:09our current best practices and ideas?"

47:12So me and I guess about four students

47:16just decided to give it a go.

47:17And we focused on this small one called Cypher 10,

47:20which is little 32 by 32 pixel images.

47:24- Can you say what DawnBench is?

47:26- Yeah, so it's a competition

47:27to train a model as fast as possible.

47:29It was run by Stanford.

47:30- And as cheap as possible too.

47:32- That's also another one for as cheap as possible.

47:34And there's a couple of categories, ImageNet and Cypher 10.

47:38So ImageNet is this big 1.3 million image thing

47:42that took a couple of days to train.

47:44Remember a friend of mine, Pete Warden,

47:47who's now at Google.

47:50I remember he told me how he trained ImageNet

47:53a few years ago, and he basically like had this

47:55little granny flat out the back

47:59that he turned into his ImageNet training center.

48:01And he figured, you know, after like a year of work,

48:03he figured out how to train it in like 10 days or something.

48:07It's like, that was a big job.

48:08Well, Cypher 10 at that time, you could train in a few hours.

48:12You know, it was much smaller and easier.

48:14So we thought we'd try Cypher 10.

48:17And yeah, I'd really never done that before.

§06Transcript · 48:22–56:56

48:22Like I'd never really, like things like using more

48:25than one GPU at a time was something I tried to avoid.

48:29'Cause to me, it's like very against the whole idea

48:32of accessibility is you should be able to do things

48:34with one GPU.

48:34- I mean, have you asked in the past before,

48:37after having accomplished something,

48:39how do I do this faster, much faster?

48:42- Oh, always, but it's always, for me, it's always,

48:44how do I make it much faster on a single GPU

48:47that a normal person could afford in their day-to-day life?

48:50It's not, how could I do it faster by, you know,

48:53having a huge data center?

48:55'Cause to me, it's all about like,

48:57as many people should be able to use something as possible

48:59without fussing around with infrastructure.

49:03So anyways, in this case, it's like, well,

49:06we can use eight GPUs just by renting a AWS machine.

49:10So we thought we'd try that.

49:11And yeah, basically using the stuff we were already doing,

49:16we were able to get, you know, the speed,

49:20you know, within a few days, we had the speed down to,

49:22I don't know, a very small number of minutes.

49:26I can't remember exactly how many minutes it was,

49:28but it might've been like 10 minutes or something.

49:31And so, yeah, we found ourselves at the top

49:33of the leaderboard easily for both time and money,

49:38which really shocked me

49:39'cause the other people competing in this

49:40were like Google and Intel and stuff

49:41were like, know a lot more about this stuff

49:43than I think we do.

49:45So then we were emboldened.

49:46We thought, let's try the ImageNet one too.

49:50I mean, it seemed way out of our league,

49:53but our goal was to get under 12 hours.

49:55And we did, which was really exciting.

49:59And, but we didn't put anything up on the leaderboard,

50:01but we were down to like 10 hours,

50:03but then Google put in some,

50:07like five hours or something,

50:10we're just like, oh, we're so screwed.

50:13But we kind of thought we'll keep trying,

50:16if Google can do it in five,

50:17I mean, Google did on five hours on some,

50:19on like a TPU pod or something,

50:21like a lot of hardware.

50:23But we kind of like had a bunch of ideas to try,

50:26like a really simple thing was,

50:28why are we using these big images?

50:30They're like 224 or 256 by 256 pixels.

50:34Why don't we try smaller ones?

50:37- And just to elaborate,

50:39there's a constraint on the accuracy

50:41that your train model is supposed to achieve.

50:43- Yeah, you gotta achieve 93%,

50:45I think it was for ImageNet, exactly.

50:49- Which is very tough, so you have to-

50:51- Yeah, 93%, like they picked a good threshold.

50:54It was a little bit higher

50:56than what the most commonly used ResNet-50 model

51:00could achieve at that time.

51:03So yeah, so it's quite a difficult problem to solve.

51:08But yeah, we realized if we actually

51:09just use 64 by 64 images,

51:12it trained a pretty good model.

51:16And then we could take that same model

51:18and just give it a couple of epochs

51:19to learn 224 by 224 images.

51:21And it was basically already trained,

51:24which makes a lot of sense.

51:25Like if you teach somebody,

51:26like here's what a dog looks like

51:28and you show them low res versions,

51:30and then you say, here's a really clear picture of a dog,

51:33they already know what a dog looks like.

51:35So that like, just, we jumped to the front

51:39and we ended up winning parts of that competition.

51:44We actually ended up doing a distributed version

51:49over multiple machines a couple of months later

51:51and ended up at the top of the leaderboard.

51:53We had 18 minutes.

51:54- (laughs) ImageNet.

51:56- Yeah, and it was,

51:57and people have just kept on blasting through

52:00again and again since then, so.

52:02- So what's your view on multi GPU

52:05or multiple machine training in general

52:08as a way to speed code up?

52:11- I think it's largely a waste of time.

52:13- Both multi GPU on a single machine and?

52:15- Yeah, particularly multi machines

52:17'cause it's just clunky.

52:19Multi GPUs is less clunky than it used to be.

52:25But to me, anything that slows down your iteration speed

52:28is a waste of time.

52:30So you could maybe do your very last,

52:33you know, perfecting of the model on multi GPUs

52:37if you need to.

52:38But, so for example,

52:41I think doing stuff on ImageNet is generally a waste of time.

52:46Why test things on 1.3 million images?

52:48Most of us don't use 1.3 million images.

52:51And we've also done research that shows that

52:53doing things on a smaller subset of images

52:56gives you the same relative answers anyway.

52:59So from a research point of view, why waste that time?

53:02So actually I released a couple of new datasets recently.

53:06One is called ImageNet,

53:07the French ImageNet, which is a small subset of ImageNet,

53:12which is designed to be easy to classify.

53:15- What's, how do you spell ImageNet?

53:17- It's got an extra T and E at the end

53:19'cause it's very French.

53:20- Image, okay.

53:21- Yeah, and then another one called ImageWolf,

53:24which is a subset of ImageNet that only contains dog breeds.

53:29- And that's a hard one, right?

53:30- That's a hard one.

53:32And I've discovered that if you just look

53:33at these two subsets,

53:34you can train things on a single GPU in 10 minutes

53:39and the results you get directly transferable

53:42to ImageNet nearly all the time.

53:44And so now I'm starting to see some researchers

53:46start to use these much smaller datasets.

53:49- So deeply love the way you think

53:51because I think you might've written a blog post saying

53:55that sort of going to these big datasets

54:00is encouraging people to not think creatively.

54:03- Absolutely.

54:04- So you're too, it sort of constrains you

54:08to train on large resources.

54:09And because you have these resources,

54:11you think more resources will be better.

54:14And then you start, so like somehow you kill the creativity.

54:17- Yeah, and even worse than that, Lex,

54:19I keep hearing from people who say,

54:21"I decided not to get into deep learning

54:23because I don't believe it's accessible

54:25to people outside of Google to do useful work."

54:28So like I see a lot of people make an explicit decision

54:31to not learn this incredibly valuable tool

54:35because they've drunk the Google Kool-Aid,

54:39which is that only Google's big enough

54:40and smart enough to do it.

54:42And I just find that so disappointing and it's so wrong.

54:45- And I think all of the major breakthroughs in AI

54:49in the next 20 years will be doable on a single GPU.

54:53Like I would say my sense is all the big sort of-

54:56- Well, let's put it this way.

54:58None of the big breakthroughs of the last 20 years

55:00have required multiple GPUs.

55:01So like batch norm, value, dropout.

55:05- To demonstrate that there's something to that.

55:08- Every one of them, none of them has required multiple GPUs.

55:11- GANs, the original GANs didn't require multiple GPUs.

55:15- Well, and we've actually recently shown

55:18that you don't even need GANs.

55:19So we've developed GAN level outcomes without needing GANs.

55:24And we can now do it with, again,

55:26by using transfer learning,

55:27we can do it in a couple of hours on a single GPU.

55:30- Just using a generated model,

55:31like without the adversarial part?

55:32- Yeah, so we've found loss functions

55:35that work super well without the adversarial part.

55:38And then one of our students, a guy called Jason Antich,

55:41has created a system called DeOldify,

55:44which uses this technique to colorize

55:47old black and white movies.

55:48You can do it on a single GPU,

55:50colorize a whole movie in a couple of hours.

55:52And one of the things that Jason and I did together

55:56was we figured out how to add a little bit of GAN

56:00at the very end, which it turns out for colorization

56:02makes it just a bit brighter and nicer.

56:05And then Jason did masses of experiments

56:07to figure out exactly how much to do,

56:09but it's still all done on his home machine

56:12on a single GPU in his lounge room.

56:15And like, if you think about like

56:17colorizing Hollywood movies,

56:19that sounds like something a huge studio would have to do,

56:21but he has the world's best results on this.

56:25- There's this problem of microphones.

56:27We're just talking to microphones now.

56:29It's such a pain in the ass to have these microphones

56:32to get good quality audio.

56:34And I tried to see if it's possible to plop down

56:36a bunch of cheap sensors and reconstruct

56:39higher quality audio from multiple sources.

56:41'Cause right now I haven't seen work from,

56:45okay, we can save inexpensive mics,

56:47automatically combining audio from multiple sources

56:50to improve the combined audio.

56:52People haven't done that.

56:53And that feels like a learning problem.

56:55So hopefully somebody can.

56:56- Well, I mean, it's eminently doable

§07Transcript · 56:58–1:05:02

56:58and it should have been done by now.

57:01I felt the same way about computational photography

57:03four years ago.

57:05Why are we investing in big lenses

57:07when three cheap lenses,

57:09plus actually a little bit of intentional movement?

57:13So like take a few frames,

57:16gives you enough information to get excellent sub-pixel

57:19resolution, which particularly with deep learning,

57:22you would know exactly what you're meant to be looking at.

57:25We can totally do the same thing with audio.

57:28I think it's madness that it hasn't been done yet.

57:30- Is there been progress on the photography company?

57:33- Yeah, photography is basically a standard now.

57:36So the Google Pixel Night Light,

57:40I don't know if you've ever tried it,

57:42but it's astonishing.

57:43You take a picture in almost pitch black

57:45and you get back a very high quality image.

57:49And it's not because of the lens.

57:51Same stuff with like adding the bokeh

57:53to the background blurring done computationally.

57:57- This is the pixel right here.

57:58- Yeah, basically everybody now is doing most

58:03of the fanciest stuff on their phones

58:05with computational photography.

58:07And also increasingly people are putting more than one lens

58:10on the back of the camera.

58:11So the same will happen for audio for sure.

58:14- And there's applications in the audio side.

58:16If you look at an Alexa type device,

58:18most people I've seen, especially I worked at Google before,

58:22when you look at noise background removal,

58:25you don't think of multiple sources of audio.

58:28You don't play with that as much as I would hope people would.

58:31- But I mean, you can still do it even with one.

58:33Like again, it's not much work's been done in this area.

58:36So we're actually gonna be releasing an audio library soon,

58:38which hopefully will encourage development of this

58:41'cause it's so underused.

58:43The basic approach we used for our super resolution

58:46in which Jason uses for DeOldify

58:48of generating high quality images,

58:50the exact same approach would work for audio.

58:53No one's done it yet,

58:54but it would be a couple of months work.

58:57- Okay, also learning rate in terms of DawnBench.

59:00There's some magic on learning rate

59:03that you played around with.

59:04That's kind of interesting.

59:05- Yeah, so this is all work that came

59:06from a guy called Leslie Smith.

59:09Leslie's a researcher who like us cares a lot

59:13about just the practicalities of training neural networks

59:18quickly and accurately,

59:20which you would think is what everybody should care about,

59:22but almost nobody does.

59:23And he discovered something very interesting,

59:28which he calls super convergence,

59:29which is there are certain networks

59:31that with certain settings of high parameters

59:33could suddenly be trained 10 times faster

59:37by using a 10 times higher learning rate.

59:39Now, no one published that paper

59:43because it's not an area of kind of active research

59:49in the academic world.

59:50No academics recognize this is important.

59:52And also deep learning in academia

59:56is not considered a experimental science.

59:59So unlike in physics where you could say like,

60:02I just saw a subatomic particle do something

60:05which the theory doesn't explain,

60:07you could publish that without an explanation.

60:10And then in the next 60 years,

60:11people can try to work out how to explain it.

60:14We don't allow this in the deep learning world.

60:16So it's literally impossible for Leslie

60:19to publish a paper that says,

60:21I've just seen something amazing happen.

60:23This thing trained 10 times faster than it should have.

60:25I don't know why.

60:27And so the reviewers were like,

60:28well, you can't publish that 'cause you don't know why.

60:30So anyway.

60:31- That's important to pause on

60:32because there's so many discoveries

60:34that would need to start like that.

60:36- Every other scientific field I know of works that way.

60:39I don't know why ours is uniquely disinterested

60:43in publishing unexplained experimental results,

60:47but there it is.

60:48So it wasn't published.

60:49Having said that,

60:52I read a lot more unpublished papers than published papers

60:56'cause that's where you find the interesting insights.

61:00So I absolutely read this paper.

61:02And I was just like,

61:04this is astonishingly mind-blowing and weird and awesome.

61:09And like, why isn't everybody only talking about this?

61:12Because like, if you can train these things 10 times faster,

61:15they also generalize better

61:16because you're doing less epochs,

61:18which means you look at the data less,

61:20you get better accuracy.

61:21So I've been kind of studying that ever since.

61:24And eventually Leslie kind of figured out

61:28a lot of how to get this done.

61:30And we added minor tweaks

61:32and a big part of the trick

61:33is starting at a very low learning rate,

61:36very gradually increasing it.

61:37So as you're training your model,

61:39you would take very small steps at the start

61:42and you gradually make them bigger and bigger

61:44until eventually you're taking much bigger steps

61:46than anybody thought was possible.

61:48There's a few other little tricks to make it work,

61:51but basically we can reliably get super convergence.

61:55And so for the DawnBench thing,

61:56we were using just much higher learning rates

61:59than people expected to work.

62:02- What do you think the future of,

62:03I mean, it makes so much sense for that

62:05to be a critical hyperparameter learning rate that you vary.

62:08What do you think the future

62:09of learning rate magic looks like?

62:13- Well, there's been a lot of great work

62:14in the last 12 months in this area.

62:17And people are increasingly realizing that,

62:20like we just have no idea really how optimizers work.

62:23And the combination of weight decay,

62:25which is how we regularize optimizers

62:27and the learning rate,

62:29and then other things like the epsilon we use

62:31in the atom optimizer,

62:32they all work together in weird ways.

62:36And different parts of the model,

62:38this is another thing we've done a lot of work on

62:40is research into how different parts of the model

62:43should be trained at different rates in different ways.

62:46So we do something we call discriminative learning rates,

62:49which is really important,

62:50particularly for transfer learning.

62:51So really I think in the last 12 months,

62:54a lot of people have realized

62:55that all this stuff is important,

62:57there's been a lot of great work coming out,

62:59and we're starting to see algorithms appear,

63:03which have very, very few dials,

63:06if any, that you have to touch.

63:07So I think what's gonna happen

63:09is the idea of a learning rate,

63:10it almost already has disappeared in the latest research.

63:14And instead it's just like,

63:15we know enough about how to interpret the gradients

63:21and the change of gradients we see

63:23to know how to set every parameter.

63:25- That you can automate it.

63:26So you see the future of deep learning,

63:30where really, where's the input of a human expert needed?

63:34- Well, hopefully the input of a human expert

63:36will be almost entirely unneeded

63:38from the deep learning point of view.

63:40So again, like Google's approach to this

63:43is to try and use thousands of times more compute

63:45to run lots and lots of models at the same time

63:49and hope that one of them is good.

63:51- AutoML kind of?

63:51- Yeah, AutoML kind of stuff, which I think is insane.

63:54(laughing)

63:56When you better understand the mechanics

63:59of how models learn,

64:01you don't have to try a thousand different models

64:03to find which one happens to work the best.

64:05You can just jump straight to the best one,

64:08which means that it's more accessible

64:09in terms of compute, cheaper,

64:12and also with less hyperparameters to set,

64:14it means you don't need deep learning experts

64:16to train your deep learning model for you,

64:19which means that domain experts can do more of the work,

64:22which means that now you can focus the human time

64:24on the kind of interpretation, the data gathering,

64:28identifying model errors and stuff like that.

64:31- Yeah, the data side.

64:32How often do you work with data these days

64:34in terms of the cleaning, looking at it?

64:37Like Darwin looked at different species

64:41while traveling about.

64:42Do you look at data?

64:44Have you in your roots in Kaggle?

64:48- Always, yeah. - Just look at data?

64:49- Yeah, I mean, it's a key part of our course

64:51is like before we train a model in the course,

64:53we see how to look at the data.

64:55And then after, the first thing we do

64:56after we train our first model,

64:57which we fine tune an ImageNet model for five minutes.

65:00And then the thing we immediately do after that

65:02is we learn how to analyze the results of the model

§08Transcript · 1:05:05–1:13:52

65:05by looking at examples of misclassified images

65:08and looking at a classification matrix

65:10and then doing like research on Google

65:15to learn about the kinds of things that it's misclassifying.

65:18So to me, one of the really cool things

65:19about machine learning models in general

65:21is that when you interpret them,

65:24they tell you about things like,

65:25what are the most important features?

65:27Which groups you're misclassifying?

65:29And they help you become a domain expert more quickly

65:32because you can focus your time on the bits

65:34that the model is telling you is important.

65:38So it lets you deal with things like data leakage,

65:40for example, if it says,

65:41"Oh, the main feature I'm looking at is customer ID."

65:45You know, when you're like,

65:46"Oh, customer ID shouldn't be predictive."

65:47And then you can talk to the people

65:50that manage customer IDs and they'll tell you like,

65:53"Oh yes, as soon as a customer's application is accepted,

65:57we add a one on the end of their customer ID or something."

66:01So yeah, model, looking at data,

66:03particularly from the lens of which parts of the data

66:06the model says is important is super important.

66:09- Yeah, and using the model to almost debug the data

66:12to learn more about the data.

66:14- Exactly.

66:16- What are the different cloud options

66:18for training your networks?

66:20Last question related to DawnBench.

66:21Well, it's part of a lot of the work you do,

66:24but from a perspective of performance,

66:27I think you've written this in a blog post.

66:29There's AWS, there's a TPU from Google.

66:32What's your sense, what the future holds?

66:34What would you recommend now in terms of-

66:37- So from a hardware point of view,

66:39Google's TPUs and the best Nvidia GPUs are similar.

66:45I mean, maybe the TPUs are like 30% faster,

66:47but they're also much harder to program.

66:49There isn't a clear leader in terms of hardware right now,

66:54although much more importantly,

66:56the Nvidia GPUs are much more programmable.

66:59They've got much more written for all of them.

67:00So like that's the clear leader for me

67:03and where I would spend my time

67:04as a researcher and practitioner.

67:06But then in terms of the platform,

67:10I mean, we're super lucky now

67:13with stuff like Google GCP, Google Cloud,

67:17and AWS that you can access a GPU pretty quickly and easily.

67:22But I mean, for AWS, it's still too hard.

67:28Like you have to find an AMI and get the instance running

67:33and then install the software you want and blah, blah, blah.

67:37GCP is still, is currently the best way to get started

67:40on a full server environment

67:42because they have a fantastic fast AI

67:44and PyTorch ready to go instance,

67:47which has all the courses pre-installed.

67:51It has Jupyter Notebook pre-running.

67:53Jupyter Notebook is this wonderful

67:55interactive computing system,

67:57which everybody basically should be using

68:00for any kind of data-driven research.

68:02But then even better than that,

68:04there are platforms like Salamander,

68:08which we own and Paperspace,

68:11where literally you click a single button

68:13and it pops up a Jupyter Notebook straight away

68:17without any kind of installation or anything.

68:22And all the course notebooks are all pre-installed.

68:25So like for me, this is one of the things

68:28we spent a lot of time kind of curating and working on.

68:32'Cause when we first started our courses,

68:35the biggest problem was people dropped out of lesson one

68:39'cause they couldn't get an AWS instance running.

68:42So things are so much better now.

68:44And like we actually have, if you go to course.fast.ai,

68:47the first thing it says is,

68:48"Here's how to get started with your GPU."

68:50And there's like, you just click on the link

68:52and you click start and you're going.

68:55- You will go GCP.

68:56I have to confess, I've never used the Google GCP.

68:58- Yeah, GCP gives you $300 of compute for free,

69:01which is really nice.

69:03But as I say, Salamander and Paperspace

69:07are even easier still.

69:09- Okay.

69:10So from the perspective of deep learning frameworks,

69:15you work with Fast.ai, if you go to this framework,

69:18and PyTorch and TensorFlow.

69:21What are the strengths of each platform?

69:24- Sure. - Your perspective.

69:25- So in terms of what we've done our research on

69:28and taught in our course,

69:30we started with Theano and Keras.

69:34And then we switched to TensorFlow and Keras.

69:38And then we switched to PyTorch

69:40and then we switched to PyTorch and Fast.ai.

69:42And that kind of reflects a growth and development

69:47of the ecosystem of deep learning libraries.

69:50Theano and TensorFlow were great,

69:57but were much harder to teach

69:59and to do research and development on

70:01because they define what's called a computational graph

70:04up front, a static graph,

70:06where you basically have to say,

70:07here are all the things that I'm going to eventually do

70:10in my model.

70:12And then later on you say,

70:13okay, do those things with this data.

70:15And you can't like debug them,

70:17you can't do them step-by-step,

70:18you can't program them interactively

70:20in a Jupyter notebook and so forth.

70:22PyTorch was not the first,

70:23but PyTorch was certainly the strongest entrant

70:26to come along and say,

70:27let's not do it that way,

70:28let's just use normal Python.

70:30And everything you know about in Python

70:32is just gonna work.

70:34And we'll figure out how to make that run on the GPU

70:37as and when necessary.

70:39That turned out to be a huge leap

70:44in terms of what we could do with our research

70:46and what we could do with our teaching.

70:48- 'Cause it wasn't limiting.

70:51- Yeah, I mean, it was critical for us

70:52for something like DawnBench

70:53to be able to rapidly try things.

70:55It's just so much harder to be a researcher

70:57and practitioner when you have to do everything up front

71:00and you can't inspect it.

71:03The problem with PyTorch is

71:05it's not at all accessible to newcomers

71:08because you have to write your own training loop

71:11and manage the gradients and all this stuff.

71:14And it's also not great for researchers

71:17because you're spending your time

71:19dealing with all this boilerplate and overhead

71:21rather than thinking about your algorithm.

71:23So we ended up writing this very multi-layered API

71:27that at the top level,

71:29you can train a state-of-the-art neural network

71:31in three lines of code.

71:33And which kind of talks to an API,

71:35which talks to an API, which talks to an API,

71:36which like you can dive into at any level

71:38and get progressively closer to the machine

71:42kind of levels of control.

71:44And this is the Fast.ai library.

71:47That's been critical for us and for our students

71:51and for lots of people that have won

71:53big learning competitions with it

71:55and written academic papers with it.

71:57It's made a big difference.

72:00We're still limited though by Python

72:02and particularly this problem with things like

72:06recurrent neural nets say where you just can't change things

72:11unless you accept it going so slowly that it's impractical.

72:15So in the latest incarnation of the course

72:18and with some of the research we're now starting to do,

72:20we're starting to do some stuff in Swift.

72:24I think we're three years away

72:27from that being super practical,

72:29but I'm in no hurry.

72:31I'm very happy to invest the time to get there.

72:34But with that, we actually already have a nascent version

72:39of the Fast.ai library for vision

72:41running on Swift for TensorFlow.

72:44'Cause Python for TensorFlow is not gonna cut it.

72:48It's just a disaster.

72:49What they did was they tried to replicate

72:52the bits that people were saying they like about PyTorch,

72:57this kind of interactive computation,

72:59but they didn't actually change

73:00their foundational runtime components.

73:03So they kind of added this like syntax sugar

73:06they call TF eager, TensorFlow eager,

73:08which makes it look a lot like PyTorch,

73:10but it's 10 times slower than PyTorch to actually do a step.

73:15So because they didn't invest the time

73:19in like retooling the foundations

73:21'cause their code base is so horribly complex.

73:23- Yeah, I think it's probably very difficult

73:25to do that kind of retooling.

73:26- Yeah, well, particularly the way TensorFlow was written,

73:28it was written by a lot of people very quickly

73:31in a very disorganized way.

73:33So like when you actually look in the code, as I do often,

73:35I'm always just like, oh God, what were they thinking?

73:38It's just, it's pretty awful.

73:41So I'm really extremely negative

73:45about the potential future for Python.

73:47- TensorFlow, Python for TensorFlow.

73:50- But Swift for TensorFlow

73:52can be a different beast altogether.

§09Transcript · 1:13:53–1:23:18

73:53It can be like, it can basically be a layer on top of MLIR

73:57that takes advantage of all the great compiler stuff

74:02that Swift builds on with LLVM.

74:04And yeah, it could be,

74:07I think it will be absolutely fantastic.

74:09- Well, you're inspiring me to try.

74:11I haven't truly felt the pain of TensorFlow 2.0 Python.

74:16It's fine by me, but-

74:19- Yeah, I mean, it does the job

74:22if you're using like predefined things

74:25that somebody's already written.

74:27But if you actually compare, you know,

74:29like I've had to do,

74:31'cause I've been having to do a lot of stuff

74:32with TensorFlow recently,

74:33you actually compare like,

74:34okay, I want to write something from scratch.

74:37And you're like, I just keep finding it's like,

74:38oh, it's running 10 times slower than PyTorch.

74:41- So is the biggest cost,

74:43let's throw running time out the window,

74:47how long it takes you to program?

74:49- That's not too different now.

74:50Thanks to TensorFlow Eager, that's not too different.

74:54But because so many things take so long to run,

74:58you wouldn't run it at 10 times slower.

75:00Like you just go like, oh, this is taking too long.

75:03And also there's a lot of things

75:04which are just less programmable,

75:05like tf.data, which is the way data processing works

75:08in TensorFlow is just this big mess.

75:11It's incredibly inefficient.

75:13And I kind of had to write it that way

75:14because of the TPU problems I described earlier.

75:19So I just, you know,

75:22I just feel like they've got this huge technical debt,

75:24which they're not going to solve

75:26without starting from scratch.

75:27- So here's an interesting question then.

75:29If there's a new student starting today,

75:33what would you recommend they use?

75:37- Well, I mean, we obviously recommend Fast.ai and PyTorch

75:40because we teach new students

75:42and that's what we teach with.

75:43So we would very strongly recommend that

75:46because it will let you get on top of the concepts

75:49much more quickly.

75:51So then you'll become an actual,

75:53and you'll also learn the actual state of the art techniques,

75:56you know, so you actually get world-class results.

75:59Honestly, it doesn't much matter what library you learn

76:03because switching from Chainer to MXNet

76:08to TensorFlow to PyTorch is gonna be a couple of days work

76:11as long as you understand the foundation as well.

76:15- But you think we'll swift creep in there

76:19as a thing that people start using?

76:22- Not for a few years,

76:24particularly because like Swift has no data science community,

76:29libraries, tooling. - So code bases are out there.

76:33- And the Swift community has a total lack of appreciation

76:38and understanding of numeric computing.

76:40So like they keep on making stupid decisions,

76:43you know, for years they've just done dumb things

76:45around performance and prioritization.

76:49That's clearly changing now

76:53because the developer of Swift, Chris Latner,

76:58is working at Google on Swift for TensorFlow.

77:00So like that's a priority.

77:04It'll be interesting to see what happens with Apple

77:05because like Apple hasn't shown any sign of caring

77:10about numeric programming in Swift.

77:13So I mean, hopefully they'll get off their ass

77:17and start appreciating this

77:18'cause currently all of their low level libraries

77:22are not written in Swift.

77:25They're not particularly Swifty at all,

77:27stuff like core ML, they're really pretty rubbish.

77:30So yeah, so there's a long way to go,

77:33but at least one nice thing is that Swift for TensorFlow

77:36can actually directly use Python code and Python libraries

77:40in literally the entire lesson one notebook of fast AI

77:45runs in Swift right now in Python mode.

77:48So that's a nice intermediate thing.

77:51- How long does it take,

77:53if you look at the two fast AI courses,

77:57how long does it take to get from point zero

78:00to completing both courses?

78:02- It varies a lot.

78:04Somewhere between two months and two years generally.

78:13- So for two months, how many hours a day?

78:15- So like somebody who is a very competent coder

78:20can do 70 hours per course and-

78:26- 70, seven zero, that's it?

78:30Okay.

78:30- But a lot of people I know take a year off

78:35to study fast AI full time and say at the end of the year,

78:40they feel pretty competent.

78:43'Cause generally there's a lot of other things you do.

78:45Like generally they'll be entering Kaggle competitions.

78:48They might be reading Ian Goodfellow's book.

78:51They might, you know, they'll be doing a bunch of stuff.

78:54And often, you know, particularly if they

78:56are a domain expert, their coding skills

78:59might be a little on the pedestrian side.

79:01So part of it's just like doing a lot more writing.

79:04- What do you find is the bottleneck for people usually,

79:08except getting started and setting stuff up?

79:11- I would say coding.

79:13- Just-

79:14- Yeah, I would say the best,

79:14the people who are strong coders pick it up the best.

79:17Although another bottleneck is people who have a lot

79:21of experience of classic statistics can really struggle

79:26because the intuition is so the opposite

79:30of what they're used to.

79:30They're very used to like trying to reduce the number

79:33of parameters in their model and looking

79:36at individual coefficients and stuff like that.

79:39So I find people who have a lot of coding background

79:42and know nothing about statistics are generally

79:45gonna be the best off.

79:47- So you taught several courses on deep learning

79:51and as Feynman says,

79:52"The best way to understand something is to teach it."

79:55What have you learned about deep learning from teaching it?

79:59- A lot.

80:00It's a key reason for me to teach the courses.

80:03I mean, obviously it's gonna be necessary

80:04to achieve our goal of getting domain experts

80:07to be familiar with deep learning,

80:09but it was also necessary for me to achieve my goal

80:12of being really familiar with deep learning.

80:14I mean, to see so many domain experts

80:23from so many different backgrounds,

80:25it's definitely, I wouldn't say taught me,

80:28but convinced me something that I liked to believe

80:31was true, which was anyone can do it.

80:34So there's a lot of kind of snobbishness out there

80:37about only certain people can learn to code,

80:40only certain people are gonna be smart enough to do AI.

80:43That's definitely bullshit.

80:45I've seen so many people

80:47from so many different backgrounds get state-of-the-art

80:50results in their domain areas now.

80:52It's definitely taught me that the key differentiator

80:57between people that succeed and people that fail

80:59is tenacity.

81:00That seems to be basically the only thing that matters.

81:03The people, a lot of people give up.

81:06And, but of the ones who don't give up,

81:11pretty much everybody succeeds.

81:15Even if at first I'm just kind of like thinking like,

81:17wow, they really aren't quite getting it yet, are they?

81:20But eventually people get it and they succeed.

81:24So I think that's been,

81:26I think they're both things I've liked to believe was true,

81:28but I don't feel like I really had strong evidence

81:30for them to be true,

81:31but now I can say I've seen it again and again.

81:34- So what advice do you have for someone

81:38who wants to get started in deep learning?

81:42- Train lots of models.

81:44That's how you learn it.

81:47So like, so I would, you know, I think, it's not just me.

81:51I think our course is very good,

81:53but also lots of people independently have said

81:54it's very good.

81:55It recently won the COGx award for AI courses

81:58as being the best in the world.

82:00I'd say come to our course, course.fast.ai.

82:02And the thing I keep on hopping on in my lessons

82:05is train models, print out the inputs to the models,

82:09print out to the outputs to the models,

82:11like study, you know, change the inputs a bit,

82:15look at how the outputs vary,

82:17just run lots of experiments to get a, you know,

82:20an intuitive understanding of what's going on.

82:24- To get hooked, do you think, you mentioned training,

82:29do you think just running the models inference?

82:32Like if we talk about getting started.

82:35- No, you've got to fine tune the models.

82:37So that's the critical thing,

82:39'cause at that point you now have a model

82:41that's in your domain area.

82:43So there's no point running somebody else's model

82:46'cause it's not your model.

82:47Like, so it only takes five minutes to fine tune a model

82:50for the data you care about.

82:52And in lesson two of the course,

82:53we teach you how to create your own dataset from scratch

82:56by scripting Google image search.

82:58So, and we show you how to actually create

83:01a web application running online.

83:02So I create one in the course that differentiates

83:05between a teddy bear, a grizzly bear, and a brown bear.

83:08And it does it with basically a hundred percent accuracy.

83:11Took me about four minutes to scrape the images

83:13from Google search in the script.

83:15There's a little graphical widgets we have in the notebook

83:18that help you clean up the dataset.

§10Transcript · 1:23:21–1:32:05

83:21There's other widgets that help you study the results

83:24to see where the errors are happening.

83:26And so now we've got over a thousand replies

83:29in our share your work here thread of students saying,

83:32here's the thing I built.

83:34And so there's people who like,

83:35and a lot of them are state of the art.

83:37Like somebody said, oh, I tried looking

83:39at Devan Garey characters and I couldn't believe it.

83:41The thing that came out was more accurate

83:43than the best academic paper after lesson one.

83:46And then there's others which are just more kind of fun.

83:48Like somebody who's doing Trinidad and Tobago hummingbirds.

83:53She said, that's kind of their national bird.

83:54And she's got something that can now classify a Trinidad

83:57and Tobago hummingbirds.

83:58So yeah, train models, fine tune models with your dataset

84:02and then study their inputs and outputs.

84:05- How much is Fast.ai courses?

84:07- Free.

84:08Everything we do is free.

84:10We have no revenue sources of any kind.

84:12It's just a service to the community.

84:15- You're a saint.

84:16Okay.

84:17Once a person understands the basics,

84:20trains a bunch of models.

84:22If we look at the scale of years,

84:25what advice do you have for someone wanting

84:27to eventually become an expert?

84:29- Train lots of models.

84:31(laughing)

84:33Specifically train lots of models in your domain area.

84:35So an expert what, right?

84:37We don't need more expert,

84:39like create slightly evolutionary research

84:44in areas that everybody's studying.

84:46We need experts at using deep learning

84:50to diagnose malaria.

84:52Or we need experts at using deep learning

84:55to analyze language to study media bias.

85:00So we need experts in analyzing fisheries

85:04to identify problem areas in the ocean.

85:11That's what we need.

85:13So like become the expert in your passion area.

85:17And this is a tool which you can use

85:20for just about anything.

85:21And you'll be able to do that thing better

85:22than other people, particularly by combining it

85:25with your passion and domain expertise.

85:27- So that's really interesting.

85:28Even if you do wanna innovate on transfer learning

85:30or active learning, your thought is,

85:34I mean, it's one I certainly share,

85:36is you also need to find a domain or a dataset

85:40that you actually really care for.

85:41- Right.

85:42If you're not working on a real problem that you understand,

85:45how do you know if you're doing it any good?

85:48How do you know if your results are good?

85:49How do you know if you're getting bad results?

85:50Why are you getting bad results?

85:52Is it a problem with the data?

85:53How do you know you're doing anything useful?

85:57Yeah, to me, the only really interesting research

86:00is not the only, but the vast majority

86:02of interesting research is like try

86:04and solve an actual problem and solve it really well.

86:06- So both understanding sufficient tools

86:09on the deep learning side and becoming a domain expert

86:13in a particular domain are really things within reach

86:17for anybody.

86:18- Yeah, I mean, to me, I would compare it

86:20to like studying self-driving cars,

86:23having never looked at a car or been in a car

86:26or turned a car on, which is like the way it is

86:29for a lot of people.

86:30They'll study some academic dataset

86:32where they literally have no idea about that.

86:36- By the way, I'm not sure how familiar

86:37with autonomous vehicles, but that is literally,

86:40you describe a large percentage of robotics folks

86:43working in self-driving cars

86:45is they actually haven't considered driving.

86:48They haven't actually looked at what driving looks like.

86:50They haven't driven.

86:51- Right, and it's a problem because you know,

86:53when you've actually driven, you know,

86:54like these are the things that happened to me

86:56when I was driving.

86:57- There's nothing that beats the real world examples

86:59of just experiencing them.

87:01You've created many successful startups.

87:04What does it take to create a successful startup?

87:07- Same thing as becoming a successful

87:11deep learning practitioner, which is not giving up.

87:15So you can run out of money or run out of time

87:20or run out of something, you know,

87:24but if you keep costs super low

87:28and try and save up some money beforehand

87:29so you can afford to have some time,

87:34then just sticking with it is one important thing.

87:38Doing something you understand and care about is important.

87:42By something, I don't mean,

87:44the biggest problem I see with deep learning people

87:46is they do a PhD in deep learning

87:50and then they try and commercialize their PhD,

87:52which is a waste of time

87:53'cause that doesn't solve an actual problem.

87:55You picked your PhD topic 'cause it was an interesting

87:59kind of engineering or math or research exercise.

88:02But yeah, if you've actually spent time as a recruiter

88:06and you know that most of your time

88:08was spent sifting through resumes

88:10and you know that most of the time

88:12you're just looking for certain kinds of things

88:14and you can try doing that with a model for a few minutes

88:19and see whether that's something which the model

88:21seems to be able to do as well as you could,

88:23then you're on the right track to creating a startup.

88:27And then I think just, yeah, being,

88:29just be pragmatic and try and stay away

88:35from venture capital money as long as possible,

88:37preferably forever.

88:39- So yeah, on that point, do you,

88:41venture capital, so did you,

88:44were you able to successfully run startups

88:46with self-funded for quite a while?

88:48- Yeah, so my first two were self-funded

88:50and that was the right way to do it.

88:52- Is that scary?

88:53- No, VC startups are much more scary

88:57because you have these people on your back

89:00who do this all the time and who have done it for years

89:03telling you, "Grow, grow, grow, grow."

89:05And they don't care if you fail,

89:07they only care if you don't grow fast enough.

89:09So that's scary, whereas doing the ones myself,

89:13well, with partners who were friends,

89:17it's nice 'cause we just went along at a pace

89:21that made sense and we were able to build it to something

89:23which was big enough that we never had to work again,

89:27but it was not big enough that any VC

89:29would think it was impressive.

89:31And that was enough for us to be excited.

89:35So I thought that's a much better way

89:38to do things than most people.

89:40- In generally speaking, not for yourself,

89:41but how do you make money during that process?

89:44Do you cut into savings?

89:47- So yeah, so I started Fastmail and Optimal Decisions

89:50at the same time in 1999 with two different friends.

89:54And for Fastmail, I guess I spent $70 a month on the server.

90:04And when the server ran out of space,

90:06I put a payments button on the front page

90:09and said, "If you want more than 10 megs of space,

90:11you have to pay $10 a year."

90:15And- - So run low,

90:17like keep your cost down.

90:18- Yeah, so I kept my cost down.

90:19And once I needed to spend more money,

90:22I asked people to spend the money for me.

90:25And that was that basically from then on,

90:29we were making money and I was profitable from then.

90:34For Optimal Decisions, it was a bit harder

90:37'cause we were trying to sell something

90:40that was more like a $1 million sale.

90:42But what we did was we would sell scoping projects.

90:46So kind of like prototype-y projects,

90:50but rather than doing it for free,

90:51we would sell them for 50 to $100,000.

90:54So again, we were covering our costs

90:56and also making the client feel

90:58like we were doing something valuable.

91:00So in both cases, we were profitable

91:01from six months in.

91:04- Ah, nevertheless, it's scary.

91:08- I mean, yeah, sure.

91:10I mean, it's scary before you jump in.

91:13And I guess I was comparing it to the scarediness of VC.

91:18I felt like with VC stuff, it was more scary,

91:20kind of much more in somebody else's hands,

91:24will they fund you or not?

91:26And what do they think of what you're doing?

91:27I also found it very difficult with VC-backed startups

91:30to actually do the thing which I thought was important

91:34for the company rather than doing the thing

91:35which I thought would make the VC happy.

91:38Now, VCs always tell you not to do the thing

91:40that makes them happy.

91:42But then if you don't do the thing that makes them happy,

91:44they get sad, so.

91:45- And do you think optimizing for the,

91:48whatever they call it, the exit,

91:50is a good thing to optimize for?

91:53- I mean, it can be, but not at the VC level,

91:54'cause the VC exit needs to be, you know, a thousand X.

91:59So, where else the lifestyle exit,

92:03if you can sell something for $10 million,

92:05you've made it, right?

§11Transcript · 1:32:06–1:40:48

92:06So, I don't, it depends.

92:09If you wanna build something that's gonna,

92:11you're kind of happy to do forever, then fine.

92:13If you wanna build something you wanna sell

92:15in three years time, that's fine too.

92:18I mean, they're both perfectly good outcomes.

92:21- So, you're learning Swift now, in a way.

92:24I mean, you already-- - Trying to.

92:26- And I read that you use, at least in some cases,

92:31spaced repetition as a mechanism for learning new things.

92:34I use Anki quite a lot myself.

92:36- Yeah, me too.

92:37- I actually never talked to anybody about it.

92:41Don't know how many people do it,

92:44but it works incredibly well for me.

92:46Can you talk through your experience?

92:47Like, how did you, what do you,

92:51first of all, okay, let's back it up.

92:53What is spaced repetition?

92:55- So, spaced repetition is an idea created

93:00by a psychologist named Ebbinghaus.

93:03I don't know, must be a couple of hundred years ago

93:06or something, 150 years ago.

93:08He did something which sounds pretty damn tedious.

93:10He wrote down random sequences of letters on cards

93:15and tested how well he would remember

93:18those random sequences a day later,

93:21a week later, whatever.

93:23He discovered that there was this kind of a curve

93:26where his probability of remembering one of them

93:28would be dramatically smaller the next day

93:30and then a little bit smaller the next day

93:31and a little bit smaller the next day.

93:33What he discovered is that if he revised those cards

93:36after a day, the probabilities would decrease

93:41at a smaller rate.

93:42And then if he revised them again a week later,

93:44they would decrease at a smaller rate again.

93:47And so he basically figured out a roughly optimal equation

93:51for when you should revise something you wanna remember.

93:54So spaced repetition learning is using

93:58this simple algorithm, just something like

94:02revise something after a day and then three days

94:04and then a week and then three weeks and so forth.

94:07And so if you use a program like Anki, as you know,

94:10it will just do that for you.

94:12And it will say, did you remember this?

94:14And if you say no, it will reschedule it back

94:17to appear again like 10 times faster

94:20than it otherwise would have.

94:21It's a kind of a way of being guaranteed to learn something

94:27because by definition, if you're not learning it,

94:30it will be rescheduled to be revised more quickly.

94:32Unfortunately though, it's also like,

94:36it doesn't let you fool yourself.

94:37If you're not learning something,

94:39you know like your revisions will just get more and more.

94:44So you have to find ways to learn things productively

94:48and effectively like treat your brain well.

94:50So using like mnemonics and stories

94:52and context and stuff like that.

94:56So yeah, it's a super great technique.

94:59It's like learning how to learn is something which

95:02everybody should learn before they actually learn anything,

95:05but almost nobody does.

95:07- So what have you, so it certainly works well

95:10for learning new languages, for, I mean,

95:13for learning like small projects almost,

95:16but do you, you know, I started using it for,

95:19I forget who wrote a blog post about this inspired me.

95:22It might've been you, I'm not sure.

95:25Is, I started when I read papers,

95:28I'll concepts and ideas, I'll put them.

95:31- Was it Michael Nielsen?

95:32- It was Michael Nielsen.

95:33- Yeah, so Michael started doing this recently

95:36and has been writing about it.

95:37I, so the kind of today's Ebbinghaus

95:43is a guy called Peter Wozniak

95:45who developed a system called SuperMemo.

95:47And he's been basically trying to become like

95:50the world's greatest Renaissance man

95:54over the last few decades.

95:55He's basically lived his life with space repetition,

96:00learning for everything.

96:02I, and sort of like,

96:05Michael's only very recently got into this,

96:07but he started really getting excited about doing it

96:09for a lot of different things.

96:11For me personally, I actually don't use it

96:14for anything except Chinese.

96:16And the reason for that is that Chinese

96:20is specifically a thing I made a conscious decision

96:23that I want to continue to remember,

96:26even if I don't get much of a chance to exercise it,

96:30'cause like I'm not often in China, so I don't.

96:33Or else something like programming languages or papers,

96:38I have a very different approach,

96:39which is I try not to learn anything from them,

96:43but instead I try to identify the important concepts

96:47and like actually ingest them.

96:49So like really understand that concept deeply

96:53and study it carefully.

96:54I will decide if it really is important,

96:56if it is like incorporated into our library,

97:01incorporated into how I do things

97:04or decide it's not worth it.

97:06So I find I then remember the things that I care about

97:12because I'm using it all the time.

97:15So for the last 25 years,

97:20I've committed to spending at least half of every day

97:23learning or practicing something new,

97:25which is all my colleagues have always hated

97:28because it always looks like I'm not working on

97:31what I'm meant to be working on,

97:32but it always means I do everything faster

97:34because I've been practicing a lot of stuff.

97:36So I kind of give myself a lot of opportunity

97:39to practice new things.

97:41And so I find now I don't,

97:43yeah, I don't often kind of find myself

97:47wishing I could remember something

97:50'cause if it's something that's useful,

97:51then I've been using it a lot.

97:53It's easy enough to look it up on Google,

97:56but speaking Chinese, you can't look it up on Google.

97:59- Do you have advice for people learning new things?

98:01So if you, what have you learned as a process?

98:04I mean, it all starts with just making the hours

98:07and the day available.

98:08- Yeah, you gotta stick with it,

98:10which is, again, the number one thing

98:12that 99% of people don't do.

98:13So the people I started learning Chinese with,

98:15none of them were still doing it 12 months later.

98:18I'm still doing it 10 years later.

98:20I tried to stay in touch with them,

98:21but they just, no one did it.

98:23For something like Chinese,

98:26like study how human learning works.

98:28So every one of my Chinese flashcards

98:31is associated with a story,

98:33and that story is specifically designed to be memorable.

98:36And we find things memorable,

98:37which are like funny or disgusting or sexy

98:41or related to people that we know or care about.

98:44So I try to make sure all the stories that are in my head

98:47have those characteristics.

98:49Yeah, so you have to, you know,

98:52you won't remember things well

98:53if they don't have some context.

98:56And yeah, you won't remember them well

98:57if you don't regularly practice them,

99:00whether it be just part of your day-to-day life

99:02or the Chinese, I mean, flashcards.

99:06I mean, the other thing is,

99:07let yourself fail sometimes.

99:09So like I've had various medical problems

99:11over the last few years,

99:13and basically my flashcards just stopped

99:17for about three years.

99:18And then there've been other times

99:21I've stopped for a few months,

99:22and it's so hard because you get back to it,

99:24and it's like, you have 18,000 cards due.

99:27It's like, and so you just have to go,

99:30all right, well, I can either stop and give up everything

99:34or just decide to do this every day

99:36for the next two years until I get back to it.

99:39The amazing thing has been that even after three years,

99:41you know, the Chinese was still in there.

99:45Like it was so much faster to relearn

99:48than it was to learn the first time.

99:50- Yeah, absolutely.

99:52It's in there.

99:53I have the same with guitar, with music and so on.

99:56It's sad because the work sometimes takes away,

99:59and then you won't play for a year.

100:01But really, if you then just get back to it every day,

100:03you're right there again.

100:06What do you think is the next big breakthrough

100:08in artificial intelligence?

100:09What are your hopes in deep learning or beyond

100:12that people should be working on,

100:14or you hope there'll be breakthroughs?

100:16- I don't think it's possible to predict.

100:17I think what we already have

100:20is an incredibly powerful platform

100:23to solve lots of societally important problems

100:26that are currently unsolved.

100:27So I just hope that lots of people

100:30will learn this toolkit and try to use it.

100:33I don't think we need a lot of new technological breakthroughs

100:36to do a lot of great work right now.

100:38- And when do you think we're going to create

100:42a human level intelligence system?

100:45Do you think- - Don't know.

100:46- How hard is it?

100:47How far away are we?

100:48- Don't know.

§12Transcript · 1:40:49–1:44:03

100:49- Don't know. - I have no way to know.

100:50I don't know.

100:51I don't know why people make predictions about this

100:53'cause there's no data and nothing to go on.

100:57And it's just like,

101:00there's so many societally important problems

101:03to solve right now.

101:04I just don't find it a really interesting question

101:08to even answer.

101:10- So in terms of societally important problems,

101:13what's the problem that is within reach?

101:16- Well, I mean, for example,

101:17there are problems that AI creates, right?

101:19So more specifically,

101:21labor force displacement is going to be huge

101:26and people keep making this frivolous econometric argument

101:30of being like, oh, there's been other things that aren't AI

101:33that have come along before

101:34and haven't created massive labor force displacement,

101:37therefore AI won't.

101:39- So that's a serious concern for you?

101:41- Oh, yeah. - Andrew Yang is running on it.

101:43- Yeah, I'm desperately concerned.

101:47And you see already that the changing workplace

101:52has led to a hollowing out of the middle class.

101:55You're seeing that students coming out of school today

101:59have a less rosy financial future ahead of them

102:03than their parents did,

102:04which has never happened in the last few hundred years.

102:09We've always had progress before.

102:10And you see this turning into anxiety and despair

102:16and even violence.

102:19So I very much worry about that.

102:23- You've written quite a bit about ethics too.

102:25- I do think that every data scientist

102:29working with deep learning needs to recognize

102:33they have an incredibly high leverage tool

102:35that they're using that can influence society

102:38in lots of ways.

102:39And if they're doing research,

102:40that that research is gonna be used by people

102:42doing this kind of work.

102:44And they have a responsibility to consider the consequences

102:48and to think about things like

102:51how will humans be in the loop here?

102:53How do we avoid runaway feedback loops?

102:56How do we ensure an appeals process for humans

102:59that are impacted by my algorithm?

103:01How do I ensure that the constraints of my algorithm

103:04are adequately explained to the people

103:06that end up using them?

103:09There's all kinds of human issues

103:11which only data scientists are actually in the right place

103:16to educate people about.

103:17But data scientists tend to think of themselves

103:20as just engineers and that they don't need

103:23to be part of that process.

103:24- For now.

103:25- Yeah, which is wrong.

103:26- Well, you're in a perfect position to educate them better,

103:30to read literature, to read history, to learn from history.

103:33Well, Jeremy, thank you so much for everything you do,

103:39for inspiring a huge amount of people,

103:41getting them into deep learning

103:42and having the ripple effects,

103:45the flap of a butterfly's wings

103:47that will probably change the world.

103:48So thank you very much.

103:50- Cheers.

103:50(upbeat music)

103:53(upbeat music)

103:56(upbeat music)

103:58(upbeat music)

104:01(upbeat music)

104:03(upbeat music)

— A LITTLE MORE TO THINK ABOUT. —