C++ and Artificial Intelligence
-
I have recently been teaching myself C++, is it possible to go down the machine learning and artificial intelligence route effectively using this language? Or is C++ only good for game development in 2018 and onwards? If that's the case what is a good language to go down the machine learning and artificial intelligence route?
-
I have recently been teaching myself C++, is it possible to go down the machine learning and artificial intelligence route effectively using this language? Or is C++ only good for game development in 2018 and onwards? If that's the case what is a good language to go down the machine learning and artificial intelligence route?
As far as I know most of the ML libraries are available in R, Python, Spark etc. not sure if C++ is the correct route for ML.
-
As far as I know most of the ML libraries are available in R, Python, Spark etc. not sure if C++ is the correct route for ML.
-
I have recently been teaching myself C++, is it possible to go down the machine learning and artificial intelligence route effectively using this language? Or is C++ only good for game development in 2018 and onwards? If that's the case what is a good language to go down the machine learning and artificial intelligence route?
C++ has been used (and is being used) for everything from low-level system APIs to ML. About the only thing I have not seen C++ used for is writing the kernel of an O/S (probably because it requires too much runtime library support). Regarding Machine Learning libraries, what counts is not whether the library is written in C++, but whether it has an interface ("bindings") that is callable from C++. AFAIK, most low-level libraries (Android's NNAPI, Apple's Core ML, etc.) all have C++ bindings. Many higher-level libraries (e.g. TensorFlow) call the lower-level libraries, and not all of these higher-level libraries have C++ bindings. Perhaps that is the cause of your confusion.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
I have recently been teaching myself C++, is it possible to go down the machine learning and artificial intelligence route effectively using this language? Or is C++ only good for game development in 2018 and onwards? If that's the case what is a good language to go down the machine learning and artificial intelligence route?
Miles UE wrote:
Or is C++ only good for game development in 2018 and onwards
LOL no. You can do whatever you want with C++. The effort depends on what you want to do. If there are C++ Machine Learning SDK, then you are ready to use them. If there are no ML SDK, then you will need to develop them yourself; it is what people have been doing with other language, it didn't just sprouted out of the ground.
I'd rather be phishing!
-
I have recently been teaching myself C++, is it possible to go down the machine learning and artificial intelligence route effectively using this language? Or is C++ only good for game development in 2018 and onwards? If that's the case what is a good language to go down the machine learning and artificial intelligence route?
There are a few rule-based programming languages that were developed with artificial intelligence in mind, specifically expert systems, starting with Lisp and Prolog. But, other than that, any general purpose language is suitable. C++ is a specifically good choice for applications that involve heavy computing, and that is certainly an ostentatious property of most ML algorithms. There's one particular problem you should watch out for however: memory management. Unlike many newer languages, C++ requires you to manage your memory yourself, and this is a constant source of problems, specifically in complex programs that require a lot of memory - and this definitely includes ML. You should therefore learn about the use of smart pointers and always use those, rather than raw pointers. The sooner you get used to using them, the better: it will save you a ton of headaches in the long run! As an introduction, check the descriptions and articles on C++ sites (e. g. Dynamic memory management - cppreference.com[^]) , or you could find some articles right here, e. g. C++11 Smart Pointers[^]
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)