DEV Community

Cover image for I want to learn AI with Python, but i dont know how to start

I want to learn AI with Python, but i dont know how to start

Felippe Regazio on July 05, 2019

It would be really great if someone could point me some resources, tips, "must know" things about AI development with Python (machine learning, neu...
Collapse
 
hamishdickson profile image
Hamish Dickson

So I don't have much material around 1&2, but here's some ideas for 3 and 4:

Maths etc

Pattern recognition and machine learning, Bishop

I guess you might consider this a slightly old book (2006), but there's a lot to machine learning than just neural networks. Think how you tell if a model works or not. This covers all of that and a host of other stuff you'll refer to over and over. It was recently made available for free online

users.isr.ist.utl.pt/~wurmd/Livros...

Deep learning, Goodfellow et al

This is my favourite book on neural networks, it goes into lots of detail about why we build neural networks the way we do and there's a healthy amount of maths in there too.

Again, free online

deeplearningbook.org/

Online courses

There are lots of these:

  • fast.ai (free and uses pytorch)
  • deep learning specialisation, coursera (you can audit this for free, but it uses and old version of tensorflow, so I'm not sure if I'd recommend this as much as maybe a year ago)
  • lots of universities now put up their lectures online, here's the one UCL and DeepMind did together youtube.com/watch?v=iOh7QUZGyiU&li...

Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

So this is a bit more on how to build things than maths, but it's a great book, it's worth waiting for the second edition to come out, the first one is starting to show it's age

amazon.co.uk/gp/product/1492032646...

your 4th point

So this is kind of hard, but I would recommend 2 things:

  • pick something non-trivial to build
  • enter a kaggle competition

build some stuff

The best way to learn AI at the moment is to build something. A lot of the top AI talent are actually just very good at understanding what a neural network is doing and how to improve it. A project should be hard enough that it takes you a while to understand and complete, but probably not so hard that you can't find help somewhere

some ideas might be

  • a hotdog/not-hotdog detector (youtube.com/watch?v=pqTntG1RXSY) you can actually build this pretty quickly
  • something which can categorise emotions from an image
  • if you're interested in reinforcement learning, I like the box2d environments here gym.openai.com/

kaggle

kaggle.com is a platform where AI competitions are hosted (there are other platforms too). Enter one. You don't have to do well, most of the magic of kaggle is trying out new ideas and learning. People share solutions and there's active discussion forums where you can ask questions. They also let you use a GPU for free (which will make a big difference)


The last thing I'd say is for most people there's a lot of material to learn, it will take time, don't be disheartened or intimidated and most importantly: make sure what you're doing is fun :)

Collapse
 
felipperegazio profile image
Felippe Regazio

Uow, that comment was pure gold. Thanks a lot Hamish!

"The best way to learn AI at the moment is to build something. A lot of the top AI talent are actually just very good at understanding what a neural network is doing and how to improve it."

Totally agree.

Ill start with the books while trying to build something. The hotdog idea, i liked that ;P

Collapse
 
hamishdickson profile image
Hamish Dickson

If you build something I'd love to see it

Thread Thread
 
felipperegazio profile image
Felippe Regazio • Edited

that will be great, try to build something cool so

Collapse
 
matluz profile image
Matheus Luz
Collapse
 
felipperegazio profile image
Felippe Regazio

hey thanks, i definitely study their content. and "Making neural nets uncool again" was the best part hahaha

Collapse
 
timclicks profile image
Tim McNamara

+1

This a really good resource, especially if you're looking to jump into deep learning.

Collapse
 
nestedsoftware profile image
Nested Software • Edited

If you're interested in learning more statistics in general, Think Stats, by Allen Downey, is a good resource. It's based around the idea of using python code to demonstrate the concepts in a practical way. It's not directly related to AI, but it might be useful to you. You can read pdf and html versions for free.

Collapse
 
lautarolobo profile image
Lautaro Lobo

Dude, I just posted here a comment recomending your posts about this topic! I still need to read the Primer again. For sure that post helps to get the basic knowledge about this topic (and not that basic as well).

Collapse
 
nestedsoftware profile image
Nested Software

Thanks so much!!

Collapse
 
timclicks profile image
Tim McNamara

It's quite old, but I really love "Programming Collective Intelligence" by Toby Segaran. It covers several techniques that are extremely practical, and significantly less computationally intensive as machine learning models.

Collapse
 
wincentbalin profile image
Wincent Balin

While the programming language in this book is Python 2, it really goes down to the basics and teaches you techniques/algorithms and not using frameworks. You can go over to the specialised frameworks later on.

Collapse
 
felipperegazio profile image
Felippe Regazio

i took a look in the synopsis for sure ill read this book. seems to perfectly fit in what i was looking for. thanks for that Tim!

Collapse
 
nestedsoftware profile image
Nested Software • Edited

I really liked 3Blue1Brown's YouTube series. Also, Neural Networks and Deep Learning, by Michael Nielsen, is a good start for learning about the basics of neural networks and convolutional neural networks. It's free and quite approachable. I've written a few articles recently on this topic that you're welcome to try out(neural networks, convolutional neural networks, tic-tac-toe with minimax).

This is mostly basic python with numpy/scipy, but without the use of frameworks like pytorch, tensorflow, etc. I think it's good to start with these kinds of simple foundations, and then you can move on to using frameworks. There are a number of popular online courses out there, but I have not tried one yet, so I can't recommend anything.

Collapse
 
felipperegazio profile image
Felippe Regazio

Ill read your articles for sure. Thanks for the recomendations Nested S.
Also the 3Blue1Browns seems to be very interesting, gonna keep watching/learning.

Collapse
 
lautarolobo profile image
Lautaro Lobo

Hm, hope this helps:

dev.to/nestedsoftware/neural-netwo...

I found that post really technical, really good stuff. I'm writing a post about Neural Networks, it will be uploaded soon, I'll post it here when it's ready, because will be really technical. I'm a Computer Scientist student so yes, math included!

If you can catch up with Spanish: docs.google.com/presentation/d/1SG...

That presentation is from a study group of students at my University, so it is technical (again, math is there if you can get it).

An advice would be: start with Neural Networks theory, then this amazing GUI, then Python. And try to reinforce concepts with math along the way. Doing projects on that playground will help you to conceptually understand Neural Networks.

Once you have read some theory about Neural Networks (I learned this at University hearing talks, sorry that I don't have any good books on the topic), and you get bored of the playground go here. Yep, those guys are really nice, right?

Cheers!

Collapse
 
felipperegazio profile image
Felippe Regazio

Surely will help! Tks!

Collapse
 
felipperegazio profile image
Felippe Regazio

Thanks a lot for everybody which commented here. Think i already have resources enough to a long study time. If came here for the same reason of this post title, heres a resume. One think i could to perceive on comments is a common order in the learning process:

  • math + concepts + algorithms (always)
  • 2 books to keep reading "on the road"
  • start trying with numpy, pytorch and other frameworkless ways (learn + BUILD something)
  • deeper concept
  • frameworks (tensor flow, Scikit-Learn, Keras ...) (learn + BUILD something)
  • ...

for all those topics already have good tips and resources on the comments.

REALLY THANKS YOU ALL!

Collapse
 
felipperegazio profile image
Felippe Regazio

haha kinda

Collapse
 
mferrier profile image
Maxime FERRIER

youtube.com/channel/UCWN3xxRkmTPmb...

This guy'll teach you how to master Tensorflow :)

Collapse
 
felipperegazio profile image
Felippe Regazio

Thanks Maxime!

Collapse
 
mmphego profile image
Mpho Mphego