by CyberMacGyver on 10/28/22, 10:54 AM with 45 comments
Where would you start if you want to practically work with AI?
I have some programming and high school level math background.
by imranq on 10/28/22, 4:27 PM
* AI Foundations: https://stanford-cs221.github.io/autumn2022/
* Meta Learning: https://cs330.stanford.edu/
* Theoretical ML: https://cs229.stanford.edu/
* NLP: https://web.stanford.edu/class/cs224n/
* Computer vision: http://cs231n.stanford.edu/
* Reinforcement Learning: https://web.stanford.edu/class/cs234/
Read Blogs:
* DeepMind: https://www.deepmind.com/blog
* Google Research: https://ai.googleblog.com/
Replicate papers that you are interested in with a twist specific to your use cases
* RL Spinning UP:https://spinningup.openai.com/en/latest/
by constantcrying on 10/28/22, 1:45 PM
The best thing you can do, in my oppinion, is actually start using AI libraries. TensorFlow has quite a bit of tutorials, which guide you through simple tasks. You have to understand a bit of mathematics and python to do them. You know how to programm, so you know how to assemble the pieces, there isn't really anything stopping you. For me there has never been a faster way to learn anything than trying something, failing, trying to understand why I am failing and repeating that process.
If you really want to understand what a NN is you need linear algebra and calculus, then you can implement your own basic NN library. After that the mathematics gets more involved.
by izuchukwu on 10/28/22, 6:52 PM
You can then try running Stable Diffusion and using that in your apps too.
These other answers, while well meaning, are for building models and not for practically working with AI. They're like being given resources on how compilers work when someone asked how to write "Hello World."
Once you get that magic feeling of having something working, you can always dig into all of the research, like https://course.fast.ai, later.
by f0e4c2f7 on 10/28/22, 12:03 PM
by machiaweliczny on 10/28/22, 1:28 PM
Try running stable diffusion locally, tag your images with YOLO, learn how to use transformers library from hugging face or langchain lib
One you get hang of it then Kaggle is probably good next step
by danwee on 10/28/22, 1:35 PM
by taneq on 10/28/22, 2:04 PM
2) Set a goal. Start by figuring out what you want to do. You want to make an algorithm which achieves X, solve for X.
3) Lit review. Find out what work has been done in this particular direction. Don't just skim, understand the work. Re-implement and reproduce the most promising studies just to see if you can get them working. If you can't, that's publishable in and of itself! If no-one's done anything in this direction then this should be easy.
4) Proof of concept. You've determined that a thing is possible and you have a good idea how to do it. Start working on an implementation of the thing.
...this is where business, science and engineering part ways.
Science:
5) Once you have a proof of concept that exceeds state of the art in some measurable way, write a paper and publish it. Get funding. Repeat.
Engineering:
5) Apply for a job at a company doing similar research using your proof of concept as your resume. No-one cares what grades you got in year 10 geography if you can show them something awesome that you built just now.
Business:
5) Either build a minimum viable product yourself, break into a viable market, and then iterate on that while also working yourself to death learning to do all the business stuff you never realised even existed, or use your proof of concept as a pitch deck to get financial backing from some incubator, angel, VC etc. then build your dream for them as well as you.
by mrtedbear on 10/28/22, 10:04 PM
by phlipski on 10/28/22, 1:54 PM
Their approach to hands on learning with code samples you can download and run proved very effective (for me) at demystifying the current AI fields of image classification and object detection. It's all python based and leans heavily on existing libraries. But he does cover the basic math and references various books and research papers that are influential in the field.
I ultimately signed up for their paid courses but you could learn quite a bit from the free stuff.
After a few months of learning from pyimagesearch.com I ultimately decided to enroll in the GT OMSCS program to really dig into the field. @Pinegulf is right - AI is just code. There is no "one AI program to rule them all" and there never will be. Better to think of AI as a collection of various tools (really cool tools!) that have been invented to solve various problems - image classification, or voice processing to name two of the more recent hot AI tools.
by melling on 10/28/22, 1:03 PM
There’s a community so you can learn from others.
Small tutorials:
Hands on Machine Learning is a great book:
Version 3 ships in the middle of November so wait a couple weeks.
by graypegg on 10/28/22, 6:04 PM
by nazka on 10/29/22, 8:53 AM
I love its simplicity yet it is so effective. So many project in AI turn to a bunch of complex stuff that just add some questionable value. And sometimes a project where we wonder “is the different part of the logic acting against each other and get the AI to some half idle state compare to what it’s supposed to do?”. You can even see how you can add different behavior very easily like here for some character to prefer different guns.
by ultrasounder on 10/28/22, 9:40 PM
by antcas on 10/28/22, 2:29 PM
If you're trying to ship projects and you don't care how things work under the hood, then check out repos that look interesting and start pulling levers.
A lot of projects you can play around with now on Google Colab without really knowing how they work.
If you want to go deeper, really understand what's happening with Machine Learning and neural-nets, then the most-recommended course is still Andrew Ng's Coursera course.
https://www.coursera.org/collections/machine-learning
And if you just want to keep up with the headlines/fight FOMO I'm writing a 20% jokes 80% informative newsletter at https://boteatbrain.com/
by orzig on 10/28/22, 12:22 PM
It might not be possible to overlap the sexiest new techniques with the things that you can practice during your job, but there is a lot of fundamentals you will be learning regardless, and when you are ready to jump more squarely into cutting edge applications you will find them essential.
by Emigre_ on 10/28/22, 5:55 PM
There are three books in the series: Fundamental Algorithms, Nature-Based Algorithms, and Deep Learning and Neural Networks.
by omeysalvi on 10/28/22, 1:37 PM
by pharmakom on 10/28/22, 4:49 PM
It’s a great language in terms of libraries but I find other aspects of it quite painful to work with.
by drabadur on 10/28/22, 3:15 PM
by sanatgersappa on 10/29/22, 1:09 AM
by cyberdata on 10/28/22, 12:34 PM
To get into the theory side of things : Deep Learning Specialization from Coursera taught by Andrew NG.
by kurtreed on 10/28/22, 11:41 PM
by whoevercares on 10/28/22, 2:17 PM
by ece on 10/28/22, 7:21 PM
by modinfo on 10/28/22, 7:23 PM
by browningstreet on 10/28/22, 7:10 PM
by anotheryou on 10/28/22, 2:04 PM
by cgearhart on 10/28/22, 2:56 PM
The interview panel is basically a phone screen with some coding (a math-centric generic problem), then an on-site that involves an hour deep dive discussion on ML fundamentals, an hour discussion on NLP, an hour on ML system design, an hour discussion on deep learning, and an hour coding up a neural network from scratch (you can import numpy), a behavioral interview, and time for the candidate to ask questions. Notice how much of the interview is discussion/theoretical; it doesn’t scale to do practical tests on all these domains during and onsite, so we fall back on these discussions. If you have only used ML libraries or only used ML services then you will likely struggle in these interviews.
From that perspective you should look for training and experience that prepares you for both theoretical and practical interviews. As basic courses, I like Andrew Ng’s ML course on Coursera and the fast.ai course is pretty useful early on too; I also like this book https://d2l.ai/ However, none of these resources is really sufficient—there’s a lot of stuff you will need to learn on the job.
Getting a first job coding is the hardest. Be willing to take lower pay if the experience will help you open doors. Take jobs that let you work with tools and tech that cover gaps in your skill set. If you have previous experience coding and you want to switch to AI/ML then you may need to take a pay cut at some point (and briefly). For some reason it’s rare that companies will value software experience in ML engineers or researchers, so they’ll downlevel when you’re hired and then scramble to promote you in six months if you’re successful on the team.
An undergrad degree in CS is very good; and a graduate degree in CS/math/stats/similar is even better. Do you need degrees? No, but your odds without them are kinda like the odds of making it into the NFL as a walk-on — low. If you already have an undergrad degree, you can check out Georgia Tech, UT Austin, UIUC and other schools that have online MSCS programs (all pretty fast and cheaper than resident programs).
Overall, if you’re serious about this then your plan should be to get to that level in like 10 years. I’m not saying you can’t even start until then—there’s lots you can do along the way. But I’m trying to create an expectation that other people who are also really smart, motivated, and interested in these problems—just like you—take about 10 years to get where they are. There’s no good shortcuts, otherwise we’d all be using them already.
by RandomWorker on 10/28/22, 1:39 PM
by Pinegulf on 10/28/22, 11:02 AM
Ignore those who swear to the name of a specific language. The skills are largely transferable. Python has great resources and is pretty popular. It also host lates AI tools. Win-win in my books.