Есть ли библиотека Python, куда я могу импортировать функцию / метод градиентного спуска? - PullRequest
0 голосов
/ 08 мая 2018

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

Я проверил NumPy и SciPy, но ничего не смог найти. У меня нет опыта работы с TensorFlow, но я просмотрел их онлайн API. Я обнаружил tf.train.GradientDescentOptimizer, но нет параметра, который позволял бы мне выбирать размер пакета, поэтому я не совсем уверен, что это на самом деле.

Извините, если я звучу наивно. Я самообучаюсь многим этим вещам.

1 Ответ

0 голосов
/ 09 мая 2018

Чтобы сформулировать очевидное, градиентный спуск оптимизирует функцию. Когда вы используете некоторую реализацию градиентного спуска из некоторой библиотеки, вам нужно указать функцию, используя конструкции этой библиотеки. Например, функции представлены в виде графов вычислений в TensorFlow. Вы не можете просто взять некоторую чистую функцию Python и попросить оптимизатор градиентного спуска TensorFlow оптимизировать ее.

Если ваш вариант использования позволяет использовать графы вычислений TensorFlow (и все связанные механизмы - как запустить функцию, вычислить ее градиент), tf.train.*Optimizer будет очевидным выбором. Иначе это непригодно для использования.

Если вам нужно что-то легкое, https://github.com/HIPS/autograd, вероятно, лучший вариант из всех популярных библиотек. Его оптимизаторы можно найти здесь: https://github.com/HIPS/autograd/blob/master/autograd/misc/optimizers.py

...