In fact, there are many ways to learn about machine learning and many resources such as books and open classes. Some related competitions and tools are also a good helper for you to understand this field. This article will focus on this topic, give some summative understanding, and provide some learning guidance for the transformation from programmers to machine learning masters.
Four Layers of machine learning
The learning process can be divided into four stages based on the ability. This is also a good way to classify all learning resources.
- Beginner stage
- Beginner stage
- Intermediate stage
- Advanced Stage
The reason why I separate the beginner and novice stages is that I want all beginners (programmers interested in this field) to have a general understanding of machine learning at the beginner stage, in order to determine whether or not to proceed further.
We will discuss these four phases separately and recommend resources that help us better understand machine learning and improve related skills. This classification is my personal suggestion for the learning stage. Maybe there are some resources suitable for the current stage before and after each classification.
I think it is very helpful to have a holistic understanding of machine learning. I also hope to hear your thoughts and let me know through the following comments!
Beginner stage
Beginners are programmers interested in machine learning. They may have been familiar with related books, Wiki pages, or machine learning courses, but they have not really understood machine learning. They are frustrated in the learning process because they often get advice for intermediate or advanced stages.
What beginners need is a perceptual understanding rather than pure code, textbooks, and courses. First, they need to have an understanding of what machine learning is, why, and how to do it to lay the foundation for the next stage of learning.
- Getting started books: read some introductory books on Data Mining and machine learning for programmers, such as machine learning: practical case analysis, collective smart programming, and data mining: practical machine learning tools and technologies. These are good introductory books. We recommend an article to further discuss this topic: "The best entry-level learning resources for machine learning".
- Related overview video: You can also watch some popular machine learning speeches. Example: Interview with Tom Angel El and Peter norvig's big data speech on Facebook
- Talking to people: communicate with veterans in the machine learning field and ask them how to get started, what resources are worth recommending, and what makes them so enthusiastic about machine learning.
- Machine Learning Course 101: I have summarized some ideas about getting started, "Machine Learning Course 101 For Beginners". If you like, you can take a look.
Beginner stage
New users refer to those who have some knowledge about machine learning. They have read some professional books or have completed the course preparation, I am also very interested in this topic and want to learn more about it. I want to solve the problems they face through further study.
Below are some information or suggestions for beginners:
- Complete a course: complete a machine learning course, such as a machine learning course at Stanford University. Take more course notes, complete course assignments as much as possible, and ask more questions.
- Read some books: This refers not to textbooks, but to the books listed above for beginners of programmers.
- Master a tool: Learn to use an analysis tool or class library, such as the python Machine Learning Package scikit-learn, Java Machine Learning Package WEKA, r language, or other similar. Specifically, you can learn how to use the algorithms you 've learned in your courses or books to see how they actually work.
- Write a code: implement some simple algorithms, such as the sensor machine, K-nearest neighbor, and linear regression. Try to write some small programs to explain your understanding of these algorithms.
- Learn related Tutorials: complete this tutorial to create a folder for your small projects, including datasets and script code, so that you can review and gain some benefits at any time.
Intermediate stage
I have read some professional books and completed some professional courses at the beginner stage. These people have learned how to use machine learning tools, I have also written a lot of code to implement machine learning algorithms and complete some tutorials. The intermediate stage is actually a process of self-breakthrough. you can build your own projects to explore new skills and acquire more knowledge in community interactions.
The intermediate stage aims to learn how to implement and use accurate, suitable, and robust machine learning algorithms. They also spent a lot of time on data preprocessing, data cleansing, and summary, and thought about what problems the data can solve.
Below are some materials or suggestions for Intermediate learners:
- Build your own small projects: Design small programming projects or use machine learning algorithms to solve problems. This is like designing some tutorials to explore the technologies you are interested in. You can implement an algorithm by yourself or provide links to implement these algorithm libraries.
- Data analysis: Used to explore and summarize data in a centralized manner. Know when to use tools to obtain data for exploring and learning related technologies.
- Read textbooks: read and digest machine learning textbooks. This may have certain requirements on understanding the ability to describe related technologies in a mathematical way, and you need to know how to describe problems and algorithms using formulas.
- Compile your own tools: Compile plug-ins and related packages for open-source machine learning platforms or class libraries. This is a great opportunity to learn how to implement robust algorithms that can be used in the production environment. Apply your package to a project and submit the code to the community for code review. If possible, try to release your program to an open-source platform, learn more from your feedback.
- Competition: participate in competitions related to machine learning, such as machine learning meetings, or provide competitions on platforms like kaggle. Participate in discussions, ask questions, and learn how other contestants solve the problems. Add these projects, methods, and code to your project library.
Advanced Stage
Senior players in machine learning are those who have organized a large number of machine learning algorithms or independently implemented algorithms. They may have participated in the Machine Learning competition or written machine learning program packages. They have read many books, learned many related courses, have a good understanding of this field, and have a deep understanding of several key technologies they have studied.
These advanced users are responsible for the establishment, deployment, and maintenance of machine learning systems in the production environment. They can keep up with the latest developments in this industry and discover and understand the nuances of each machine learning technology through their own or others' first-line development experience.
Below are some materials for advanced learners:
- Custom development algorithms: customizes development algorithms based on business needs to implement algorithms for a similar issue in meetings and journal papers.
- Self-design algorithms: design new algorithms to solve problems encountered at work. This aims to find the best solution for the difficulties faced by the work, instead of conducting cutting-edge research in this field.
- Case study: Read and even redesign the machine learning competition or the actual cases provided by other contestants. These papers or articles that have been talking about "how I do it" are always filled with subtle techniques about data preparation, engineering practices, and technology use.
- Methodology: Summarize the process of solving the problem and systematize it. It can be formally shared or simply used as a personal summary. They always have their own ideas for solving the problem and constantly refine and improve the handling process, trying to use better technology or best practices.
- Academic Research: participate in academic conferences, read research papers and academic monographs, and exchange and learn with experts in the machine learning field. They will record the accumulated experience in their work and publish it to relevant journals or their own blogs, and then return to their job for further research.
Knowledge is constantly gaining, but learning is endless. When you encounter problems in the journey of machine learning, you can stop at any time and study and solve the problems on your own, or bypass and access the information to borrow the wisdom of the group. In fact, I want to bypass the road to become a normal situation.
This learning phase is planned from the programmer's perspective, which can be used as a technician to implement a linear learning route from entry to mastery. I am very happy to receive criticism and suggestions for this article, which can make the article better. You can get more learning resources at a specific learning stage, because the learning resources recommended for each stage are only my personal suggestions.