Results for ""
A system is an end-to-end solution to a problem. It takes the available inputs and gives the final output. The design of a system should incorporate mechanisms to counter the limitations of each components that make up the system. It should also take into account the operating conditions and provide different flavors to cater to a wide range of people, situations, etc. A system can be a human body, a car, a fan, a laptop, a software application, etc. It is something that an end user experiences or uses.
A system can be dumb or smart. If a system contains smart components and can decide their own, it can be considered an AI system. A normal car is a system, while a self-driving car is an intelligent system. A system can also have multiple sub-systems. A normal car can have an automatic climate control system which is an intelligent sub-system inside a normal car.
An algorithm is a set of rules to process the input. An algorithm becomes artificially intelligent when such rules are self-learned by the machine and are not explicitly programmed by a human.
A person who understands the problem and has some experience should do the system design. A system, once designed, will remain so for a long time. So, we must be careful to think through the operating conditions, possible failure cases, adaptability, etc.
An algorithm is generally a small component of a system. With advancements in technology and research, algorithms can keep changing. Newer versions can be faster, more efficient, more accurate, etc., but a system once designed, should not keep changing with any such changes in any of its components. With advancements in any of its components, the performance of the system should also improve accordingly.
A lot of times an algorithm is confused with a system. Every time some SOTA algorithm is released, people jump around, get excited and create a lot of hype that it would solve the end user problem like never before. One has to remember that when the algorithm is published, it is usually tested on a limited set of use cases, and the real world can be a different ball game. In the real world, it can encounter infinite many different scenarios, and the algorithm and the system can be unpredictable. It's like teaching your child to walk. You will only hold their hand till they learn to balance well on their feet. You don't take them to every place and every kind of surface that they might walk in the future.
Consider a simple cascaded system with two components.
In case (a), component 1 has an accuracy of 70% and component 2 has an accuracy of 50%. Because the components are in a cascade, the accuracy of the overall system will be 0.7 * 0.5 = 0.35 or 35%.
In case (b), suppose there is a new SOTA that increases the accuracy of component 1 to 90%, but component 2 still has the same accuracy of 50%, the total accuracy of the system will be 0.9 * 0.5 = 0.45 or 45%. The user might be looking at a system that is at least 90% accurate, and just component 1 meeting this requirement will not be sufficient/satisfactory for the end user.
The Creator group, who is responsible for each of these components, does not care about the entire system. The Solver group who designs the system is also happy if one of the components improves because it improves the performance of the overall system. But the User group will only be satisfied if the system performance is above a certain threshold and meets their requirement. They do not care about incremental improvements or the SOTA. They are more interested in real-world performance.
Let's take object detection as an example of an algorithm and a self-driving car as an example of a system. Object detection in images has existed for decades (https://arxiv.org/pdf/1905.05055), and so are self-driving cars (https://en.wikipedia.org/wiki/History_of_self-driving_cars). A self-driving car as a system is not just about object detection. There are lot more subsystems for maneuverability, safety, navigation, control, planning, etc. For a self-driving car to be a success, we want all of the systems to have good accuracy to meet the regulatory/user requirements.
It is the responsibility of the solvers to never create hype that is not realistic or sustainable. It is one of the reasons why AI also went through a couple of winters earlier. The real test of an algorithm comes when it is used in a system and solves a problem.
Whenever a new SOTA algorithm gets published, I see many people posting output videos from that algorithm on social media and showing it off as an achievement. Running an algorithm from its GitHub repo is such an elementary thing today. The authors would have put enough information in the Readme to train or use the model on the input of your choice. There is absolutely no value addition in repeating the same thing. The usual trend is also to take a sample dataset, train it for some epochs, show some output and hypothesize that if there was more data and if it was trained for more epochs, it would give a better output.
To bring real value out of an algorithm, you need to put it in a system that solves a real-world problem. Never be in a hurry to post the output from the algorithm. That is something that a teenager with python knowledge can easily do (All python developers are not Data Scientists). Instead, use the algorithm to solve a real-world problem. Have someone facing this problem use and get value out of it. That is exactly what the world needs out of Solvers. The only group with the right to rejoice over the output video are the Creators. Solvers should not piggyback their popularity over the effort of the Creators.
If you really want to create content out of the algorithm, you can do it in a way that is different from what the paper already does or give different kinds of representation. I have also seen people repeating the existing content in other languages. An AI system can already automate that for you now !!!. It is why they probably say AI will take away our job. If you are not creative enough, you better lose it to AI.
To know more about Users, Solvers, and Creators, see my earlier post: https://www.linkedin.com/pulse/where-y-ai-landscape-puneeth-b-c