Small knowledge, big challenge! This article is participating in the creation activity of “Essential Tips for Programmers”.
The problem
About artificial intelligence, how to quickly start, how to learn?
answer
I have no successful experience, only failure experience
First of all, my main goal in blogging is to force input against output. Since I write, I have to learn in order to be able to write, at least I have to know what is going on before I can describe it in my own words. I am a lazy person, but want to progress, came up with such a forced way. It is not because I have become famous and knowledgeable that I have opened an altar to preach and impart knowledge.
Because I didn’t succeed, I had no success experience.
However, I have been studying machine learning for three years, and I have been paying attention to it since it was named “Top 10 Buzzwords of 2017”.
In April 2018, I began to record my study content in Qzone, just for myself.
So far, I haven’t achieved anything. I haven’t made a name, I haven’t won a Nobel Prize.
Although unknown, but I have not wasted these three years, I am day and night to waste, at least I know where to waste, these failure experience, I can tell you.
Kill a pig poke ass, each have their own trick
Let me show you an introduction to artificial intelligence that is circulating on the Internet.
This map is packed with hundreds of different ways you can learn — machine learning.
The first term is the most basic “matrix, linear algebra”. Others include DataFrames, Extract, Transform, RegEx, PDFS…
My foundation is very poor, education is not high. But machine learning requires a high level of basic discipline, at least a master’s degree.
I have no advantage, so I want to learn according to this route, determined to be steadfast step by step, even if it is as difficult as the West to learn buddhist scriptures, I also want to insist, although there is no three years of graduate students, but I want to use six years of time to study related knowledge.
So, I started learning about matrices. There are matrix courses in Khan Academy of netease Open courses, and I began to learn one class without touching the ground.
Off and on to learn 2 months, I think, such a boring course what use, where can be used?
So, I got upset, and I started looking directly at the code for the AI project.
I first read the book “TensorFlow Practical Google Deep Learning Framework”, opened a look, holy shit is still matrix:
Do not understand, very frustrated, reflection or foundation did not play well, I went back to study matrix.
And learned for a period of time, I went downstairs with the big brother selling donkey meat fire (mathematics undergraduate course entrepreneurship) consulted once, feel oneself in the matrix of the catering industry has been invincible.
Open the book, beyond the matrix calculation, it talks about probability, especially when it involves various formulas, and I can’t understand it.
I went back to probability, because code has to be written according to formulas. In order to lay a solid foundation, I studied probability distribution for another month.
I’m thinking, if I keep learning at this pace, I won’t be able to touch an AI hand for another 30 years.
Talk about things first, then talk about heart, pull the hand, can kiss, doctor master culture people can do so, I still forget it, I don’t talk, directly down, finish again.
Don’t think too much, dry is over
I began to look for projects, starting from the actual combat, mainly to run the code, run the code to see the effect, improve interest. That’s when I found my second book, 21 Projects Playing With Deep Learning: A Practical Explanation based on TensorFlow. I started to build on the examples in the book.
Sometimes, I don’t even know what the code means, and that’s okay, you just think, you know, 20 years later, now run the example, feel the magic of it. If you want to know more, go to TensorFlow Practical Google Deep Learning Framework to see the corresponding theoretical explanation.
In fact, running towards this goal, but no psychological pressure. Originally because do not understand and angry, now do not understand is according to the plan.
But the road is still bumpy. It’s so hard to get a project up and running, all the environmental issues, all the configuration issues, sometimes it takes a week or even a month. But when you run it, you get the illusion that you wrote the code and the project is your work!
Maybe it’s not an illusion, but in a way, it’s the result of your labor. It’s like building a computer yourself. You don’t care if you made the CPU.
You will learn a lot in the process of solving problems. This knowledge, it’s not systematic, it’s not as complete as a 29-set matrix course, it’s scattered, it’s relevant to this one project.
Run through these examples, although you still don’t know the details of how to implement these features. However, you will have a level of understanding of deep learning. For example, when you talk about GAN, you know it’s against generative network, you work with yourself, you make your own fake, and then you identify the fake. You ran an example of automatic generation of animation avatars, and you know that in order to do this, you need some animation avatars as a training set.
Running through these examples gives you an idea of the applications of deep learning: natural language, images, audio and video. When you see automatic game playing, you say it’s done through reinforcement learning, what the experience pool is, what the rewards are for playing right.
Why do you suddenly know this? Because you spent more than a week running an example on reinforcement learning, that’s why you stuck it in your head.
So far, deep learning is equivalent to having an outline in our mind. Although we don’t know its face, we know it is a person.
No way, things have to be looked at in the long run
At this point, you think you’re invincible.
Well, neither are you: you’re running code written by someone else, and it only does the same thing.
I ask you, you have successfully run an example of automatic generation of Shakespeare’s opera, if you are asked to make an automatic generation of Zeng Guofan’s letter, you can?
You proudly think you can just replace the data set, because you tried to replace Shakespeare’s data with Franklin’s data, and it works.
But change zeng guofan’s data is doomed. The reason is that English and Chinese word segmentation methods are different, but their principles are language independent. You only need to change something, but you just don’t know where to change it.
When you try to reinvent yourself, you realize that the sense of accomplishment that you felt when you were able to run through the example was an illusion that you had no control over.
Okay, well, then try to understand how it works, and only when you know how it works, will you know where to cut and close.
This brings us back to the beginning of learning basic subjects. Again, you see these annoying formulas that you can’t get around, like this:
Although we still face the same problem, seemingly back to the starting point, but in fact, very different. For example, if you go to the college entrance examination now, although you still can’t do it, you know what the college entrance examination means, and how to focus on learning and socializing in college.
At this time, really calm down to research, research do not distract, do not expand, understand this point on the line, because energy is limited.
This might be the hard part, but you give up, and there will be more difficult things after you make it.
At this point, deep learning is like an organ in our mind. We know exactly where our ears and eyes are and what shape they are.
Not just you confused, everyone has questions
When you look at the above stuff and finally understand what it means, suddenly you realize that the framework version has been upgraded to 2.0 and you don’t care anymore. I’m in a bad mood.
In 1.0, you had to worry about the principles, you had to design the matrix structure, but in 2.0, you don’t have to.
At this point, the new version 2.0 arrives before you fully understand the old version 1.0.
Should I learn?
- Stick with 1.0: but 2.0 is really efficient. You developed with 1.0 in 2 months and had all kinds of problems, while others developed with 2.0 in 3 days and were stable.
- Try 2.0: No theoretical foundation, become a mindless API caller who doesn’t understand the principles and always feels like the last link in the chain of contempt.
- Learn 2.0 after 1.0: What happens when another 3.0 comes out?
Official steps, mostly trend
I started with TensorFlow 1.x tensors, graphs, and sessions, and with my clumsy qualifications, the 1.x ecology was as opaque as those formulas.
But when TensorFlow 2.x was released, advanced apis for beginners, especially keras, made programming extremely easy, requiring only a few dozen lines of code to train and use a neural network.
After a while, I finally chose the new version and gave the new version to others.
There are several reasons, which are also the reasons for the official push for the new version:
- The new version is simple and easy to get started with. The simpler it is, the bigger the mass base will be and the stronger the ecology will be. If only a few old men in the world can master it, then it is not far from extinction, whether it is technology or old men.
- The new version is packaged for high productivity. You learn it to solve problems and create value. Since the new version produces results faster and more reliably, it should be used.
- The so-called principle of contempt, in fact, is the generation gap. When you use version 3.0, version 4.0 looks like a mindless call. In fact, 3.0 was despised by 2.0 when it first came out. Just like the car drivers in the 1980s despised the current drivers for not being able to repair cars, the job of repairing cars did not disappear, but was replaced by someone else.
7. Communication area
To sum up:
-
If you are poor in basic subjects (programming, math), want to get started early, and your goal is not to be an AI scientist, but to use it as a tool to solve problems. So, I suggest you go directly to the actual small project, first run, develop interest, gain experience. It’s like working out of high school to experience what it’s like to make money first. Wait until everyone else gets their master’s degree in seven years and starts working, then go back to class.
-
Actively face new technology, new language, new version, if it can make more people with less input to produce more value, then it is worth learning, is the direction of the future. Don’t worry about the threshold, from KFC burger making, to flour production, to wheat cultivation, every level of people do, and can do well.
-
You can learn it in rounds. Don’t be in a rush to figure things out. Allow yourself to be confused. The first round is to draw an outline, the second round is to distinguish the layout, the third round is to refine, and the fourth round is to polish. As the ancient saying goes: Reading a book for a hundred times, you will see what it means.
At present, I am still a beginner, looking at English documents to learn, just a porter, do not have the ability to be your teacher, can only be involved in the scope of my blog content, to give you some details. Because if I write it down, it must be something THAT I already understand.
I plan to set up a communication area, one is to better exchange people’s doubts about my blog, and also let people communicate with each other.
For example, “CNN Basic Identification — Want to batch homework for daughter” this post, github uploaded the code.
Hwangato was up and running.
But YuZhiBo did not run.
If these two can communicate, one guide others to run through the code to deepen the impression, grasp more solid; The other gets help from others to learn things and improve their skills.
That way I don’t have to do anything.
Follow my wechat official account ITNanTaiNan as our contact station.