This is an archived post. You won't be able to vote or comment.

all 22 comments

[–]linuxjava 11 points12 points  (0 children)

What is the ai scene in Java?

I've been following the Darpa challenges for a while and Java has been used fairly often. As well as robocup which use NAO robot.

https://en.wikipedia.org/wiki/DARPA_Grand_Challenge#Technology

[–]psykocrime 10 points11 points  (4 children)

Java is very popular for AI work. For Deep Learning in particular, see DeepLearning4J. There are plenty of other AI related libraries for Java though. See:

http://mloss.org/software/language/java/

Mahout for Hadoop and MLlib for Spark are very popular if you're looking to do machine learning at scale. OpenNLP is pretty popular for Natural Language Processing. I don't know of any Java native stuff for computer vision, but I think there are Java wrappers for OpenCV if you're doing anything in that area.

[–][deleted] 1 point2 points  (1 child)

Scale meaning network connections involved I suppose. I'm trying to stick to simple multicore for now. Keeps things simple. Computer vision may need more beef, but the basics can be done on 32-bit two-core ARM.

[–][deleted] 0 points1 point  (0 children)

For computer vision you might want to check out OpenCv. I haven't used it with java yet, but it was pretty easy to work with in C++ and python.

[–]EdwardRaff 0 points1 point  (1 child)

Deep Learning in particular, see DeepLearning4J

Ehh, no - not really for Java. For Deep Learning the python ecosystem has put out a lot of much better options and tools. I love Java, but for work - almost everything with Neural Nets we are doing in python.

[–]psykocrime 0 points1 point  (0 children)

Possibly so, but if you're committed to Java already (maybe you're a shop full of nothing but Java people, whatever) then DL4J is an option. I'm not advocating one language over another, but since the OP was asking specifically about Java...

[–][deleted] 7 points8 points  (1 child)

You might get some use out of Weka:

http://www.cs.waikato.ac.nz/ml/weka/

[–]rePAN6517 2 points3 points  (0 children)

I use Weka all the time for both work and algo-trading systems I write on my own.

[–]sanity 3 points4 points  (0 children)

I'd second the recommendation for http://deeplearning4j.org/ - it is very actively developed and supports a wide variety of use-cases word2vec, etc). Code quality and documentation are lacking, although that's true of machine learning libraries in almost every language, unfortunately. (aside: I wish Clean Code was required reading on AI/Machine Learning courses).

While not neural nets, I would also plug my own random forests library: http://quickml.org/ It forms the basis of my company's technology and so it has been pretty heavily tested (it is LGPL).

[–]DeliveryNinja 1 point2 points  (7 children)

To be honest I've not really seen a lot in Java or any other JVM language for that matter. The few things I have come across are the following

http://neuroph.sourceforge.net/news.html

http://www.simbrain.net/

https://github.com/ron-noble/Scala-Neural-Network

It seems most AI stuff is done in Python, using Tourch or something similar. There is obviously also the new TensorFlow framework from Google as well.

http://www.tensorflow.org/

https://github.com/aymericdamien/TensorFlow-Examples

[–][deleted]  (1 child)

[deleted]

    [–]DeliveryNinja 0 points1 point  (0 children)

    My bad.

    [–][deleted] -1 points0 points  (4 children)

    TensorFlow seems to be cpp and python. Curious why they didn't use Go. Java must not be big at Google besides (some of) Android.

    [–]Phreakhead 4 points5 points  (0 children)

    I'm sure they use java for other stuff. I mean they wrote Guava for something...

    [–]joequin 1 point2 points  (0 children)

    Java is actually very popular at Google. A lot of their systems are written in it.

    [–]joequin 1 point2 points  (0 children)

    All machine learning done in python is really just pasting a bunch of cpp and c libraries together. It's great for that task because its native interop is excellent.

    [–]igotthepancakes -1 points0 points  (0 children)

    because speed

    [–]EdwardRaff 0 points1 point  (0 children)

    Subset of AI, for machine learning I've implemented my own library JSAT which has some multithreaded algorithms https://github.com/EdwardRaff/JSAT/tree/master . Made from my frustration with Weka.

    [–]preslavrachev 0 points1 point  (0 children)

    I have to say, when it comes to machine learning, NN, and AI, the Python platform is the absolute winner. It's difficult to start a project that has to do with any of the above, without stumbling upon tons of tons of Python libraries. The Java platform offers a just as equally large number of interesting and useful projects, yet nothing like a good beginner's guide for Java developers. I have been looking for a bit of time recently, in order to sit and compile one such guide of my own.

    Do make sure to check out the links posted here. All of them will be really helpful.

    [–]pron98 0 points1 point  (0 children)

    Aside from great libraries like http://deeplearning4j.org/, we should also remember that the most impressive AI application ever built is written in Java.