Easy-to-understand way to explain deep learning and machine learning algorithms

Good at explaining deep learning and machine learning algorithms in an easy-to-understand manner, familiar with Tensorflow, PaddlePaddle and other deep learning frameworks, responsible for multiple machine learning landing projects, such as automatic spam comment filtering, user-level accurate marketing, and distributed deep learning platform And so on, have taken good results.

This article was written on October 26, 2017

Yesterday saw a "Daniu" wrote an article on the home page recommendation, called "study with the string brother to learn artificial intelligence", see the title quite surprise, after all, in the blog park this.net article-based technology forum Actually there are still Daxie who are willing to write articles on AI, so I clicked to look closely and found that the style was exaggerated. Well, it doesn't matter. There are dry goods on the line. The result was not found until the end. The reference list was very interesting. . Put a picture here:

At that time, when I saw this reference list as being very intriguing, mathematics classes recommended high-profile "Introduction to Algorithms" and theoretically strong "Data Mining: Concepts" from mathematics analysis of high school mathematics recommendation to mathematics students. "Technology" thinks that such entry is not appropriate. Reading books should be ladder-like, and they can't be eaten as a big fat person. Based on the fact that they don't want to be misled, they give me the following suggestions:

My reply was very peaceful. I also gave some suggestions that are friendly to novices. There are 6 people who support me and think about it. However, today, I saw this "big cow" in the homepage again. It is spray:

I don't agree with this and can't stand it. For any person, whether you are a big cow or a small white, my principle is that you can refute my proposal and justify it. If I'm wrong, then change it. There's nothing wrong with it. Discuss with each other and communicate with each other. Gas occasions may also become friends. But is it sincere for others to recommend that you “backwards” be an educated person? Do you think that you are a "big cow"? And, the reason why I give this proposal, there are the following three points:

1. As a student of mathematics, I studied mathematics for four years and I disagree very strongly with your reference books. One is not ladder-style, not friendly to the novice, your title and the purpose of writing this series is probably prepared to look for the white, then ask, a small white need to look at the principle of mathematical analysis? ? Is it necessary to look at the principle of Princeton calculus to learn artificial intelligence? ? With the shallow understanding of the monks, the biggest difference between mathematics analysis and higher mathematics is the same theorem. The high numbers only require that they be used. Mathematical analysis is based on rigorousness and will be given proof. However, for most mathematics needed in artificial intelligence, you need to prove the correctness and completeness of this theorem in your work? ? Waiting for you to prove it out, I am afraid that the project will end soon. You responded to me saying that this is only a reference list but it is not a recommended list, but most of the comments below are decided to give up when you see the list. When you put these books out, you have some guidance on the people who read your articles. I think you are misunderstood. The second is that I roughly deduced you by the number of your references that you may not have a framework for sorting the entire AI mathematics, otherwise there will not be such irresponsible recommendations. But out of respect for you, I didn't question your ability. I just gave a brief recommendation in the comments for a novice mathematics book.

2. As a programmer who has been engaged in machine learning for more than two years, I think that the computer series that you recommend is also considered to be very incomprehensible. Most of the books you have recommended have been read. In particular, it is not recommended for beginners to read “Introduction to Algorithms” and “Data Mining: Concepts and Techniques”. These two books are thick and heavy. Although the content is comprehensive, it is not bad, but when you finish reading, you don’t know the year of the monkey. What do newcomers need? It is started! Second, did you really read the "Python Core Programming"? This book is not for newcomers to Python. It is very thick and difficult. It is very unfriendly to novices. And if you just want to do AI, then this book does not need to be used in many places, web development, Django framework is really necessary for our AI engineers? No. Xiaobai has spent a lot of time learning the unneeded knowledge for a book without distinction between key and non-key points. Guided, targeted recommendations are responsible recommendations.

3. I wouldn’t tell you about the recommendations for deep learning. Too many slots, unable to Tucao. Save energy and recommend books that are suitable for beginners to read at different stages.

Summary: This big cow, I think you may have a very deep accumulation of .Net, do a good job, and attracted a big wave of fans, I admire this point. However, you may not know much about deep learning. For an area that you don't know very well, here is not humble, and you don't listen to anyone else's advice. You're still very proud of “spraying”. I am afraid you still have to be more modest and learn more. Judging from the age of employment, I am your younger generation, but from the perspective of deep learning, you may still be a new person. What do you say? And so far, you have made two articles on the front page, and there are no dry goods. , I hope you quickly get dry goods to hit my face ^ _ ^

Below, start exporting dry goods.

AI is at the current air outlet, so many people want to fish in troubled waters and get a share, but many people may not even know what AI is. The links and differences between AI, deep learning, machine learning, data mining, and data analysis are also unclear.

I think that there are several levels of deep learning: (His own name, ignore it - -)

The demo man ---> pascal man ---> understand principle man ---> understand the principle + can change the model details of man ---> large data manipulation man ---> model / framework architect

The demo man: Download all the current popular frameworks, run around the examples in different boxes, look at the results, feel good on the line, and then I think, Well, deep learning is just that way, not much harder. This kind of person, I met a lot during the interview. Many students or just switched to a demo, hand-written digital recognition, image classification of cifar10 data, etc. However, you asked him how this specific process of hand-written recognition Realized? Now the effect is not good at present, can you optimize it? Why should the activation function choose this, can you choose another one? Can the principle of CNN be simple to talk about? I was forced.

Tunzhan Xia: Such people may not be limited to running several demos, and some adjustments have been made to the parameters in the model. Regardless of whether the tune is good or not, try it out beforehand. Each one will try something and the learning rate will increase. The accuracy rate has dropped, then turn it down. The parameter doesn't know what it means. Just change the value and measure the accuracy rate. This is the status quo for most junior deep learning engineers. Of course, this is not so bad. For demo man, it has improved a lot, at least thinking. However, if you ask, why did you adjust this parameter to bring about these effects on the accuracy of the model? What will be the impact of this parameter?

Understand the principle of Man: I'm sorry I got such a stupid name. However, advanced to this step can already be regarded as an entry, and you can find a job that can support yourself. CNN, RNN, and LSTM come in handy, but the principle of flying is also a reasonable argument for the influence of different parameters on the model. However, if you want to ask, can you manually write a CNN? Do not use tuneup to achieve a most basic network structure, but also gg.

Understand the principle + can change the model details Xia: If you are to this point, congratulations, you get started. For anyone who is doing machine learning/deep learning, knowing only the principle is far from enough, because the company does not recruit you to be a researcher. If you come to work, you have to work and you have to work. Since it is going to land, then for every familiar model, you can manually write the code and run it out. In this way, for some business of the company, you can make appropriate adjustments and changes to the model to adapt to different business scenarios. This is also the status quo of most first-tier and second-tier companies' engineers. However, for the overall architectural capacity of the model, the distributed operation capability of the huge data, and the design of the solution may still be lacking. I have also worked hard at this stage and I hope to go further.

Oversized data manipulation man: At this stage, basically began to consider the distributed operation plan of large data, have a macro understanding of the overall architecture, can also point to two different frameworks. How to avoid the delay of network communication in the distributed operation of massive data, and how to have a more efficient and rapid training has some experience. This kind of person is generally the leader of my shrimp.

Model/framework architect: In front of that there was a lot of experience dealing with existing frameworks/models. At this stage of the heroes, oh, no, the masters can independently design and develop a new framework/algorithm to deal with the existing Business scenarios, or solve historical problems that have not been resolved. Nothing to say, worship!

Having said so much, I hope that everyone will find a clean and accurate position for themselves so that we can focus on learning. Here are some recommendations for learners of different stages based on my personal experience:

The demo man + tune the hero: These two put together say, after all, fifty steps laugh hundred paces, no one is stronger than anyone. Of course, don't be fooled. Everyone is coming from this stage. This stage of programming is not good to practice programming, the principle does not understand it, read the principle of understanding. Hands-on is the first, and then continue to change some of the parameters of the model to see the effect of change, look at the mathematical derivation behind, understand the reason, this is more than a look at a lot of mathematical formula derivation, reeling around their own It's much better to start writing code.

Recommended bibliography:

Mathematics:

Advanced Mathematics (Tongji Seventh Edition): Yes, what I said is the reference book of the postgraduate entrance examination. It is really good and it is moderately difficult. With the corresponding videos or some basic video lessons from foreign countries, the high number understands the limits and derivatives. Differentiation, the points are almost

Higher Mathematics (Beijing University Third Edition): I don't think much about the books of linear algebra. When I went to school, I studied advanced mathematics, but it doesn't matter. Look at the first five chapters. With the corresponding video, master the matrix, determinant related knowledge can be.

Probability theory: This is not particularly recommended, because the learning is not very good, so do not recommend mistaken children. No matter what books you read, you only need to master key knowledge. Can't ask Bayes you don't know how to push it = =!

Information Theory: Forgotten what kind of publishing house was a very thin one, and it was very good. Inside the measurement of information, the understanding of entropy, the Markov process is good (now the company does not, I go back and look for and make up). To master this knowledge, it is good for you to understand cross entropy. At least you know why many machine learning algorithms like to use cross entropy to do cost function~

Programming class:

The book "Learn Python the Hard Way" is ideal for people who have no contact with Python at all or who have not been exposed to programming at all. Although many people say that Python is so simple to learn in one day/week/month, everyone's foundation is not the same, so don’t think that if you don’t learn one day, you think you are stupid. You should think that people are bad. ! Anyway, this is a real book to learn Python from scratch

Data analysis using Python: This book is a detailed description of Python's pandas package. Learn this to master some pandas basic commands. However, this is not an important point, because the pandas's large amount of data is too slow, and it may crash (I wonder if there is any improvement - -!) The key point is that by learning this book, I feel a little bit of data manipulation, and I am familiar with basic data. The operation flow, where all operations can be replaced with native python, do not need to use the pandas package. Finding a feeling is very important.

Python Reference Manual: This book is only intended as a reference book. When you encounter it, you will read the book and consolidate it. (Of course, the fact may be direct to google). Such books do not need to be completely brushed from beginning to end. Missing missing can (ebook on the line)

Algorithm class:

Deep Learning with Python: Do not look at this is another English book, but it is actually very easy to read. This book is actually a collection of demo examples. Using keras to write, there is no depth, mainly to eliminate your fear of deep learning, you can start to do, and do some macro display of what can be done as a whole. It can be said that this book is the favorite of demo man!

Deep Learning: There is a Chinese translation, but I don't really want to put it here, because this book is actually very theoretical. Some chapters are really good, and in some places you will think that this is what? This stuff is useful? Will go around the novice. Everybody buys a town field first, does not understand to look through, does not understand google, directly sees the paper, looks at the good blog that others sum up, and so on. In short, as long as you can understand it without understanding.

Understand the principle of man: very good, your experience has been improved a lot. However, Daguai cannot be started yet. After all, no monster can be directly sprayed. You lack tools. At this stage, we need to increase our programming capabilities. First find a framework down, read the source code, what? You said that you will not read the source code, it does not matter, a lot of online experience to read the source code. Of course, the basis of these experiences is, without exception: reading more and writing more. On this basis, look for trick. After a good framework of the source code, change some code to run, debug, and then continue to find the reasons to see how each api is written, try to write a write. Thank you for practicing. If you have been coding for 30 years, you will certainly gain something.

Understand the principle + can change the model details Xia: Look at the paper to see the paper to see the paper! Read source code read source read source code! Reading source code here is not limited to reading the source code of a framework. You can look at other excellent frameworks. For the same layer, the same function implementation mechanism, many more thoughts and more summary and write. For a long time, there will certainly be gains. Look at the paper is to directly obtain the original author's thoughts, to avoid access to second-hand ideas from the blog interpretation of the paper, after all, each person's understanding is not the same, and not necessarily right, they first read it again, and then look at other understanding, and more After discussing with the big cow, the idea was broadened.

Oversized Data Manipulator: At this stage I was still trying to figure out how to give too much advice. I can only give a little bit of experience at the moment: Maximize your data and see how it can be processed faster and better. Faster - How to train with a distributed mechanism? Is the model parallel or data parallel? How to reduce the network delay and IO time between machines, etc. is a question to be considered. Better - How to ensure that the loss of accuracy is minimized while increasing speed? How to change can improve the accuracy of the model, mAP, etc., are also worth considering.

Model / Frame Architect: Sorry, I don't understand, don't write.

to sum up:

In fact, from the above recommendations, it is very important for you to lay a good foundation. Follow-up is to continuously read more excellent papers/frameworks, and more comparisons/practices and debugs will make a little progress. The stage of playing the foundation must not be impetuous. Putting the foundation on solid ground will lead to a lot of detours. Do not follow the blind worship, the classic will never be out of date, their own reading more books/videos/outstanding blogs are much stronger than having no brains. Finally, the reason why I am so angry today is because this industry is too impulsive. Many people are too pompous and misunderstood. Some people who have spoken the truth have been spurned by others. It's really mad at me! Everyone must polish their eyes and work hard on their own.

I'm sorry to force a chicken soup. Originally intended to write a machine learning series last year, but it was no better to write three articles for work and physical reasons. In the first half of this year, a big project was too tired to die. In the second half of the year, it was only a relief, so the follow-up owed before will definitely continue. In order not to blindly admire everyone, I decided to write a deep learning series that will be fixed once a week for about three months. Teach white how to get started. And finished! all! Free! fee! ! It is not simply to write and test demos and arguments on the Internet. Reject demo hero from me! I don't understand, I would like to leave a message in my article. I see it will try to reply. This series will mainly adopt PaddlaPaddle this deep learning framework, and will compare the advantages and disadvantages of the three frameworks of keras, tensorflow and mxnet (because I only used these four, too many people write tensorflow, paddlepaddle I still use Well, we decided to start with this.) All code will be placed on github (link: https://github.com/huxiaoman7/PaddlePaddle_code). Welcome to issue and star. At present, only the first one is written ([Deep Learning Series] PaddlePaddle's Handwriting Digital Recognition). There will be more in-depth explanation and code later. At present, we have done a simple outline, if you have any interest in the direction you can give me a message, I will refer to the added ~

The last sentence, a low-key man, study hard, everyone will next ^ _ ^!

Data Cable

Hidden design
One second stretch, free storage

Strong and durable
Aluminum alloy plug, TPE cover

Ultrasonic welding pressure
Close fitting, firm resistance to fall

Strong and durable
Priority TPE
It's hard to break even if you stretch multiple times

Stretching or shrinking only one end can easily to damage the components and cause jamming

No winding
Stretch when used, shrink when not used

Five lengths
Each pause is a length, suitable for multiple occasions

Notice
Both cables are stretched at the same time
Do not stretch unilaterally

Cable Data,Best Data Cable,Data Cable Charger,Data Transfer Cable

Guangzhou HangDeng Tech Co. Ltd , http://www.hangdengtech.com