
This book offers a highly accessible introduction to Natural Language Processing, the field that underpins a variety of language technologies ranging from predictive text and email filtering to automatic summarization and translation. You'll learn how to write Python programs to analyze the structure and meaning of texts, drawing on techniques from the fields of linguistics and artificial intelligence.
Transitioning from a full-stack engineer to the AI field can be a fulfilling and exciting journey. To make the most of this transition, you should focus on building a strong foundation in mathematics, programming, and machine learning concepts. Here's a detailed learning plan, broken down into four stages:
Stage 1: Building a Strong Foundation
Mathematics:
Linear Algebra: "Linear Algebra and Its Applications" by Gilbert Strang
Calculus: "Calculus: Early Transcendentals" by James Stewart
Probability & Statistics: "Probability and Statistics for Engineers and Scientists" by Ronald E. Walpole, Raymond H. Myers, Sharon L. Myers, and Keying E. Ye
Optimization: "Convex Optimization" by Stephen Boyd and Lieven Vandenberghe
Programming:
Python: "Python Crash Course" by Eric Matthes
Git: "Pro Git" by Scott Chacon and Ben Straub
Machine Learning & Data Science Basics:
"Introduction to Data Science" by Laura Igual and Santi Seguí "Python Data Science Handbook" by Jake VanderPlas
Stage 2: Learning Machine Learning and Deep Learning
Online Courses:
Coursera: "Machine Learning" by Andrew Ng
Coursera: "Deep Learning Specialization" by Andrew Ng
Fast.ai: "Practical Deep Learning for Coders"
Books:
"Pattern Recognition and Machine Learning" by Christopher M. Bishop "Deep Learning" by Ian Goodfellow, Yoshua Bengio, and Aaron Courville
Stage 3: Expanding Knowledge of AI Subfields
Natural Language Processing (NLP):
"Speech and Language Processing" by Daniel Jurafsky and James H. Martin
"Natural Language Processing with Python" by Steven Bird, Ewan Klein, and Edward Loper
Computer Vision:
"Computer Vision: Algorithms and Applications" by Richard Szeliski
"Deep Learning for Computer Vision" by Adrian Rosebrock Reinforcement Learning:
"Reinforcement Learning: An Introduction" by Richard S. Sutton and Andrew G. Barto
"Deep Reinforcement Learning Hands-On" by Maxim Lapan
Stage 4: Staying Current and Gaining Practical Experience
Read research papers:
Subscribe to the arXiv mailing list in your areas of interest Regularly read papers from conferences like NeurIPS, ICML, and ACL Participate in online competitions:
Kaggle: Participate in machine learning competitions to improve your skills and build your portfolio AIcrowd: Another platform for AI competitions Contribute to open-source projects:
TensorFlow, PyTorch, or other popular AI frameworks Look for projects on GitHub related to your interests and contribute by fixing bugs, implementing new features, or improving documentation Network with AI professionals:
Attend AI conferences, workshops, and local meetups Join AI-related forums, LinkedIn groups, or online communities like Reddit's r/MachineLearning Remember that the learning plan can be adjusted based on your pace and interests. The key is to stay consistent and always be curious to learn more. Good luck on your journey into the AI field!
- For deep learning specifically, a more applied text that is beautifully written and chock full of examples is Francois Chollet's Deep Learning with Python (there a new second edition out with up to date examples using modern versions of Tensorflow). The first 3 chapters I would give as required reading for anyone interested in understanding some deep learning fundamentals.
- Deep Learning - goodfellow and bengio - seems like it would be hard to get through without a reading group not exactly a APUE or K&R type reading experience but I haven't spent enough time with it.
If you haven't taken a Linear Algebra or Differential Equations class its useful stuff to know for ML/DL theory but not fully necessary to do applied work with modern high level libraries, but definitely having a strong understanding of basic matrix math is useful.
If you have interests in natural language processing theres a couple good books:
- Natural Language Processing with Python - Bird Klein, Loper, is a great intro to NLP concepts and working with NLTK which may be a bit dated to some but I would definitely recommend, and its online for free. Great examples.(https://www.nltk.org/book/)
- Speech and Language Processing - Dan Jurafsky and James H. Martin - is good, though I have only spent much time with the pre-print
And then theres a lot of papers that are good reads. Let me know if you have any questions or want a list of good papers.
If you just want to get off the ground and start playing with stuff and building things I'd recommend fast.ai's free online course - its pretty high level and a lot is abstracted away but its a great start and can enable you to build lots of cool things pretty rapidly. Andrew Ng's online course also is quite requitable and will probably give you a bit more background and fundamentals.
If I were to choose one book from the bunch it would be Chollet it gives you pretty much all the building blocks you need to be able to read some papers and try to implement things yourself and I find building things a much more satisfying way to learn than sitting down and writing proofs or just taking notes but thats just my preference.
But anyone looking to do serious work that skips the type of content covered in NLTK Book in favor of jumping in to DNNs is doing themself & their ambitions an extreme disservice.
You should probably also include the gensim package https://radimrehurek.com/gensim/, since it has the most popular python word2vec implementation. One of the links I clicked on mentions it and walks you through using it, but I think it would make sense to point people to it directly in case they don't have time for a tutorial.
* Oxford Deep NLP Lectures https://github.com/oxford-cs-deepnlp-2017/lectures
* Stanford Natural Language Processing with Deep Learning http://web.stanford.edu/class/cs224n/syllabus.html
* Georgia Tech Natural Language Understanding https://github.com/jacobeisenstein/gt-nlp-class
* Georgia Tech Deep Learning For NLP in PyTorch https://github.com/rguthrie3/DeepLearningForNLPInPytorch
And some books:
* Natural Language Processing with Python https://www.amazon.com/Natural-Language-Processing-Python-An...
* Foundations of Statistical Natural Language Processing https://www.amazon.com/Foundations-Statistical-Natural-Langu...