1# FAQ
2Here you will find answers to the most frequently asked questions.
3
4## Is Machine Learning the same thing as AI?
5Machine Learning is a subset of Artificial Intelligence (AI) that focuses on using data to train a computer to perform tasks. While machine learning (ML) has contributed substantially to the field of AI, other non-learning techniques such as rule-based systems are also considered to be forms of artificial intelligence.
6
7## What environment (SAPI) should I run Rubix ML in?
8All Rubix ML projects are designed to run from the PHP command line interface ([CLI](http://php.net/manual/en/features.commandline.php)). The reason almost always boils down to performance and memory consumption.
9
10If you would like to serve your models in production, the preferred method is to use the [Server](https://github.com/RubixML/Server) library to spin up a high-performance standalone model server from the command line. If you plan to implement your own model server, we recommend using an asynchronous event loop such as [React PHP](https://reactphp.org/) or [Swoole](https://www.swoole.co.uk/) to prevent the model from having to be loaded into memory on each request.
11
12To run a PHP script using the command line interface (CLI), open a terminal window and enter:
13```sh
14$ php example.php
15```
16
17!!! note
18    The PHP interpreter must be installed and in your default PATH for the above syntax to work correctly.
19
20## I'm getting out of memory errors.
21Try adjusting the `memory_limit` option in your php.ini file to something more reasonable. We recommend setting this to `-1` (no limit) or slightly below your device's memory supply for best results.
22
23You can temporarily set the `memory_limit` in your script by using the `ini_set()` function.
24
25```php
26ini_set('memory_limit', '-1');
27```
28
29!!! note
30    Training can require a lot of memory. The amount necessary will depend on the amount of training data and the size of your model. If you have more data than you can hold in memory, some learners allow you to train in batches. See the Online Learning section of the [Training](training.md) docs for more information.
31
32## Training is slower than usual.
33Training time depends on a number of factors including size of the dataset and complexity of the model. If you believe that training is taking unusually long then check the following factors.
34
35- [Xdebug](https://xdebug.org/) or other debuggers are not enabled.
36- You have enough RAM to hold the dataset and model in memory without swapping to disk.
37
38## What is a Tuple?
39A *tuple* is a way to denote an immutable sequential heterogeneous list with a predefined length. An *n-tuple* is a tuple with the length of n. In some languages, tuples are a separate data type and their properties such as immutability are enforced by the compiler/interpreter. In PHP, tuples are denoted by sequential arrays which are mutable as a side effect.
40
41```php
42$tuple = ['first', 'second', 0.001]; // a 3-tuple
43```
44
45## Does Rubix ML support multiprocessing/multithreading?
46Yes, learners that support parallel processing (multiprocessing or multithreading) do so by utilizing a pluggable parallel computing backend such as [Amp](https://docs.rubixml.com/latest/backends/amp.html) or extension such as [Tensor](https://github.com/RubixML/Tensor) under the hood.
47
48## Does Rubix ML support Deep Learning?
49Yes, a number of learners in the library support Deep Learning including the [Multilayer Perceptron](classifiers/multilayer-perceptron.md) classifier and [MLP Regressor](regressors/mlp-regressor.md).
50
51## Does Rubix ML support Reinforcement Learning?
52Not currently, but we may in the future.
53
54## Does Rubix ML support time series data?
55Yes and no. Currently, the library treats time series data like any other continuous feature. In the future, we may add algorithms that work specifically with a separate time component.
56
57## How can I contribute to the project?
58Anyone is welcome to contribute to Rubix ML. See the [CONTRIBUTING](https://github.com/RubixML/ML/blob/master/CONTRIBUTING.md) guide in the project root for more info.
59
60## How can I become a sponsor?
61Check out our funding sources [here](index.md#funding) and consider donating to the cause.
62