Новые применения machine learning сыплются одно за другим: теперь с его помощью прогнозируют время поиска парковки, диагностируют рак кожи лучше живых дерматологов и повышают разрешение изображениям. Но пока Python используют для ML повсеместно, есть ли что делать на этом празднике жизни с Java?
Оказывается, да. Сейчас подряд появились две новости об известнейшей опенсорсной библиотеке TensorFlow, и одна из них имеет прямое отношение к джавистам. Во-первых, Yahoo выпустили в опенсорс свою разработку TensorFlowOnSpark (по названию уже понятна суть), а во-вторых и в-главных, сам TensorFlow тем временем дошёл до версии 1.0. И одно из нововведений релизной версии — Java API.
В данный момент это нововведение заявлено как экспериментальная фича, на которую не распространяются гарантии стабильности, и основным остаётся Python API. Однако спрос на эту фичу явно высок (когда её не было, люди пользовались обходными путями), так что лиха беда начало.
А на какие связанные с машинным обучением проекты, помимо TensorFlow, стоит обратить внимание? На JAXenter недавно опубликовали соответствующий список, что-то из которого может пригодиться — например, библиотека Apache Spark MLlib. В отличие от TensorFlow, она предназначена просто для машинного обучения, а не для его подвида «глубинное обучение», вокруг которого сейчас стоит основной хайп. Но недавно как раз появилась колонка о том, что зря все хайпят только глубинное обучение: к впечатляющим результатам может приводить и, кхм, неглубокое.