What is an algorithm
An algorithm is a clearly defined set of instructions used to solve a problem or perform a computational task. An algorithm should be expressed in limited space and time. It starts with an initial state and input, and after a series of limited and clearly defined instructions, finally produces an output and terminates in a final state.
The role of algorithms
An algorithm is a process involving a series of operations performed by a computer to ensure that a solution is found in a finite amount of time. Algorithms are hard-coded by designers to solve problems faster, easier and better. Algorithms have a wide range of applications. Conventional basic algorithms are closely related to data structures, and such algorithms are more used in deterministic fields, such as various search and sorting algorithms for linked lists, arrays, graphs and heaps, etc. Another category of algorithms is machine learning algorithm, which is mainly used in the field of uncertainty, mainly provides a framework algorithm to learn a certain human ability according to a mechanism or data, so as to achieve artificial intelligence.
Each industry and each field will produce different problems, these problems can generally be transformed into algorithm description, and through the computer to find solutions, or verify whether there are problems.
AI algorithms are more attractive
The development of conventional basic algorithms has been relatively stable and perfect, and it is more used for the solution or optimization of deterministic problems. For users, the sense of existence is very low, and users tend to take things they see more for granted. On the contrary, THE AI algorithm represented by machine learning has attracted more attention and research. It is indeed more attractive, because the uncertainty of the problem itself and the black box of the algorithm in this field make more people want to understand its internal operation mechanism, and new ideas and new algorithms are constantly emerging.
AI algorithms and complex problems
AI algorithms tend to deal with complex problems, such as recognition problems in video images, sound waveforms, natural language understanding, and so on. We know that all algorithms have to find the solution to the problem in a reasonable amount of time to be meaningful, otherwise the algorithm is useless no matter how good it is. AI algorithms tend to deal with complex problems that require human intelligence to solve. Usually these problems are also part of nP-complete problems, which are non-deterministic polynomial problems and are generally handled by humans through a combination of intuition and rationality.
Is data more important?
Most machine learning algorithms are data-driven, so to speak, data is a rule changer in AI, using machine learning to capture patterns in data. For some problems, the data is more important than the algorithm to some extent, and most algorithms perform very well when the amount of data reaches a certain level. For example, in language models, the difference between a few million words and a few billion words is so great that even a good algorithm can’t fill the gap.
No free lunch
At present, no model algorithm can be proved because of the other model algorithms, each algorithm only solves certain areas of the problem, there is no super good algorithm can be better than other model algorithms in all problems, this is the “no free lunch” theorem. But there are better algorithms for a particular problem, and you can look for the best algorithm from multiple algorithms.
Traditional algorithm programming
Since the birth of the computer algorithm programming method is the whole process of manual writing algorithm, algorithm logic is clear, when the data input algorithm will produce an output. This approach requires us to write clear execution logic or specify execution rules. Input + program logic = output.
Machine learning programming
Compared with traditional algorithms, machine learning is a more automated approach. This approach provides a logic learning framework, which determines the execution logic of the program according to the input and output. Input + output = program logic.
Author profile: Seaboat, good at artificial intelligence, computer science, mathematical principles, basic algorithms. Books: Anatomy of Tomcat kernel Design, Graphic Data Structure and Algorithm, Popular Science of Artificial Intelligence principles, Graphic Java Concurrency Principles.
Recommend a book by the author!
Focus on artificial Intelligence, reading and feeling, talk about mathematics, computer Science, distributed, machine learning, deep learning, natural language processing, Algorithms and Data Structures, Java depth, Tomcat kernel, etc.