Статьи

Как начать работу с машинным обучением на Java

Каковы лучшие инструменты для начала машинного обучения Java?

Они были здесь какое-то время, но сейчас кажется, что все говорят об искусственном интеллекте и машинном обучении. Это больше не секрет, зарезервированный для ученых и исследователей, благодаря внедрению практически любой новой технологии.

В следующем посте мы сделаем краткий обзор основных структур машинного обучения Java и покажем, как легко начать работу — не изобретая велосипед и не создавая собственные алгоритмы с нуля.

ИИ для людей

ИИ — это широкая и крутая область, которая существует уже некоторое время, но всегда чувствуется немного вне досягаемости и сделана специально для ученых. Если вы хотели создать систему искусственного интеллекта, вам нужно было самостоятельно реализовать основные алгоритмы и научить их определять шаблоны, понимать образы и обрабатывать естественный язык.

Недавний шум и развитие вокруг этой области сделали ее более доступной для не исследователей. Теперь у вас есть легкий доступ к соответствующим алгоритмам и инструментам. Вам действительно нужно знать, что вы делаете, но гораздо проще улучшить ваши приложения с помощью возможностей машинного обучения.

Начало работы машины

Чтобы упростить задачу, мы решили выделить 3 проекта, которые помогут вам начать:

  1. Deeplearning4J (DL4J) — открытая, распределенная и коммерческая библиотека глубокого обучения для JVM
  2. BID Data Project — набор шаблонов, которые обеспечивают быстрое, крупномасштабное машинное обучение и анализ данных.
  3. Нейроф — Объектно-ориентированная нейронная сеть

Кстати, недавно мы опубликовали еще один список интересных библиотек GitHub с открытым исходным кодом, которые привлекли наше внимание. Проверьте это .

1. DL4J — глубокое обучение

DL4J — это инструмент, который поможет вам в процессе настройки глубоких нейронных сетей, которые состоят из нескольких слоев. Это приносит глубокое изучение JVM наряду с быстрым прототипированием и настройкой в ​​масштабе, сосредотачиваясь больше на соглашении, чем на конфигурации.

Это инструмент для тех, кто уже имеет теорию, необходимую для создания и использования глубоких нейронных сетей, но не хочет реализовывать сами алгоритмы. Вы можете использовать его для решения конкретных проблем, связанных с огромными объемами данных, и для настройки свойств нейронной сети.

DL4J написан на Java, что делает его совместимым с любым языком JVM, таким как Clojure, Scala или Kotlin, и интегрируется с Hadoop и Spark.

Возможные варианты использования включают системы оценки или рекомендации (CRM, adtech, предотвращение оттока), прогнозную аналитику или даже обнаружение мошенничества. Если вы ищете пример из реальной жизни, вы можете проверить Rapidminer . Это платформа данных с открытым исходным кодом, которая использует DL4J для оптимизации процессов прогнозной аналитики для своих пользователей.

Настроить новую нейронную сеть так же просто, как создать новый объект:

1
2
3
4
5
6
7
8
9
ultiLayerConfiguration conf = new NeuralNetConfiguration.Builder()
     .iterations(1)
     .weightInit(WeightInit.XAVIER)
     .activation("relu")
     .optimizationAlgo(OptimizationAlgorithm.STOCHASTIC_GRADIENT_DESCENT)
     .learningRate(0.05)
     // ... other hyperparameters
     .backprop(true)
     .build();

2. Проект BID Data

Проект BID Data Project предназначен для тех из вас, кто имеет дело с большим количеством данных и чувствителен к производительности. Этот проект UC Berkeley представляет собой набор аппаратных, программных и конструктивных шаблонов, которые обеспечивают быстрый и крупномасштабный анализ данных.

Первая библиотека — BIDMach , в которой хранятся записи о многих типичных проблемах машинного обучения на отдельных узлах или кластерах. Вы можете использовать его для управления источниками данных, оптимизации и распределения данных по процессорам или графическим процессорам.

Он включает в себя множество популярных алгоритмов машинного обучения, и команда работает над созданием распределенных сетей глубокого обучения, графовых алгоритмов и других моделей.

Две другие библиотеки — это BIDMat , библиотека быстрой матричной алгебры, которая фокусируется на интеллектуальном анализе данных, и BIDParse , анализатор естественного языка с GPU-ускорением. Другие библиотеки в этом проекте включают инструменты визуализации, а также библиотеки, которые позволят вам работать на Spark или даже на Android.

Тесты BIDMach многократно показывают лучшие результаты, чем другие решения, даже на одном компьютере по сравнению с альтернативами, работающими на более крупных кластерах. Полный список тестов можно найти прямо здесь.

3. Нейроф

Neuroph — это облегченная среда Java, используемая для разработки общих архитектур нейронных сетей. Фреймворк предоставляет библиотеку Java вместе с инструментом GUI (называемым easyNeurons), и вы можете использовать его для создания и обучения ваших собственных нейронных сетей в программах Java.

Он содержит библиотеку Java с открытым исходным кодом, с небольшим количеством базовых классов, которые соответствуют основным понятиям нейронной сети. Это отличный шаг, если вы только начинаете работать с нейронными сетями или хотите узнать, как они работают.

Вы можете попробовать онлайн демоверсию Neuroph и посмотреть, как она на самом деле работает. Оповещение о спойлере: интерфейс выглядит старым и устаревшим, но с ним можно создавать приятные вещи. Кроме того, он получил награду Duke’s Choice Award за 2013 год .

сети 768x522

Сетевой график

А как насчет других?

Если эти 3 проекта не ваша чашка чая, и вы ищете что-то немного другое для вашего проекта, не беспокойтесь. Если вы ищете в «GitHub» « Машинное обучение », вы найдете 1,506 репозиториев Java, которые могут дать вам правильный инструмент.

Например, интересный проект от Airbnb — аэрозоль ; Библиотека машинного обучения, созданная для дружелюбного отношения к человеку.

Начало работы с новой технологией всегда является источником неприятностей. Если вам понадобится помощь с вашими исключениями, обязательно воспользуйтесь инструментом анализа ошибок Takipi .

Последние мысли

Каждые несколько лет вокруг AI появляется новый шум. На этот раз он получил подкрепление в виде машинного обучения, интеллектуального анализа данных, нейронных сетей и т. Д., И мы все за это. Тот факт, что эти библиотеки с открытым исходным кодом, означает, что информация и возможности доступны, и все, что вам нужно сделать, это подумать, что можно сделать с помощью этой возможности.

Если вы знаете другие интересные проекты или думаете, что мы что-то упустили, мы будем рады услышать об этом в комментариях ниже.

Ссылка: Как начать работать с Java Машинное обучение от нашего партнера JCG Хенна Идана в блоге Takipi .