4 ms·
> If I write a decision tree algorithm, is that AI? It depends how that decision tree is produced. If you wrote it all by yourself, it's not. I mean, you just
by sacado2 7y ago
> If I write a decision tree algorithm, is that AI?
It depends how that decision tree is produced. If you wrote it all by yourself, it's not. I mean, you just wrote a plain algorithm by yourself. A decision tree is a program, and vice versa.
If, OTOH, the tree is inferred from examples (good old CART for instance) or if it is generated on the fly (good old alpha-beta for instance), it definitely AI.
And actually, I'd say it's a good definition for AI. AI starts at the moment you don't write the decision trees / algorithms yourself but, instead, write a program that will produce the actual decision tree / algorithm.
Writing a program? Not AI. Writing a program that writes a program? Definitely AI.
- xamuel 7y ago>Writing a program that writes a program? Definitely AI. So do you think the following is AI? print("print('Hello World!')") It is a program which writes a program, so by what you've just said, it's AI... Aside: For people interested in programs that write programs (that write programs, that write programs, that write programs ...), the following repo might be interesting: https://github.com/semitrivial/ions https://github.com/semitrivial/ions
- sacado2 7y agoYou're taking my sentence a bit too literally there. Take it as a heuristic, not as a formal definition. Anyway nobody's able to give a compact definition of AI that cannot be destroyed by a ton of counter-examples.
- chaosite 7y agoCompilers are AI?
- sacado2 7y ago"Plain" compilers are just translating from one notation to another, so they aren't. But optimizing compilers that analyze your code and find that portion of your code can be rewritten to make the produced executable more efficient? I'd say it sound a lot like AI, yeah. I woulnd't be shocked if someone told me "gcc's -O3 option uses AI techniques".
- TuringTest 7y agoIf you have a compiler that can write a correct program from examples of the desired output, definitely yes.
- chaosite 7y agoThat's usually called program synthesis, and a lot of it uses formal methods. It isn't usually considered AI (but recently the field started incorporating a lot of ML, like pretty much anything in CS these days.)
- TuringTest 7y agoCorrect me if I'm wrong, but I think program synthesis works more from writing very general formal specifications, rather than learning from a sample of desired outputs. The latter is called Programming By Example, and the pattern-finding process needed to infer generalities from specific samples does benefit from machine learning techniques.
- chaosite 7y ago"programming by example" is a form of program synthesis, where the spec is provided by the examples. It is a formal specification, albeit incomplete. Program synthesis, as a concept, does not require the specification to be complete.
- fsdf123 7y agoI would disagree. What you're describing above is the difference between machine learning and AI. AI is a broader term that encompasses machine learning.
- sacado2 7y agoNope. Alpha-beta (which I'm talking about in my post) is definitely not mahine-learning, for instance, and yet it is definitely an AI technique.
- fsdf123 7y agoI would agree that it is. I would also say that handwritten decision trees are AI. The method of creating them wasn't AI but just Intelligence. The resulting program is a form of artificial intelligence. What do you think :)