DEV Community

loading...
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
web developer - js, [s]css, node, php, python - intp, lifelong learner, father, skateboarder. a strange carbon-based lifeform.
・2 min read

It would be really great if someone could point me some resources, tips, "must know" things about AI development with Python (machine learning, neural networks, ai+data science etc).

Im a self taught developer (i'm used to self-taught learning). I have a good theoretical background, years of experience as full stack developer, also have been working as a front end developer for the past 3 years. Now i want to learn AI with Python BUT...

Guess im not going well in separate the good, the bad, and the ugly in this field, i feel im still needing some directions. Most of the contents i have seen tell me more about how python is good to AI and less about how and why. Sometimes the resources shows things like "oh look, an entire AI with just 50 lines of code! here we do this and that and voilà", sometimes its a really good text/video/class but makes me see i have a lot of knowledge lacks to fill in this field... So i would like to start from the really beginning, and would be great to have tips on:

  1. Good books about neuroscience and the human brain. But im not wanting to understand any medical or biological aspect of the brain in depth, only its neurological higher level logics, (struggling to find some)

  2. Good philosophical books about the AI and AI development (thats would be a plus).

  3. Mathematical content related to AI, the basics and foundations

  4. A road map would be GREAT (or something like) to follow in order to really achieve a practical capacity with Python and AI`s. Sorry if im asking to much S:

Those points are just an ideia, i dont know if its a right order or the right contents to know, so any direction will be really welcome.

Sorry if i may sound dumb or annoying, when you're researching alone, all those dense contents keep even more mixed and confuse; then we have data science, neural networks, machine learning (where do i start?), algorithms, math theory, neurological logics and flows, etc

So it is, any hint, tip, resource, book, classes are really really welcome, Thanks in advance!

:)

Discussion (23)

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 Author

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 Author • Edited

that will be great, try to build something cool so

Collapse
matluz profile image
matluz
Collapse
felipperegazio profile image
Felippe Regazio Author

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 Author

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
felipperegazio profile image
Felippe Regazio Author

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
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 Author

Surely will help! Tks!

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 Author

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
mferrier profile image
Maxime FERRIER

youtube.com/channel/UCWN3xxRkmTPmb...

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

Collapse
felipperegazio profile image
Felippe Regazio Author

Thanks Maxime!

Collapse
felipperegazio profile image
Felippe Regazio Author

haha kinda

Collapse
mmphego profile image
Mpho Mphego