Alfredo  Sipes

Alfredo Sipes

1618270200

Portfolio Optimization using Reinforcement Learning

Experimenting with RL for building optimal portfolio of 3 stocks and comparing it with portfolio theory based approaches
Reinforcement learning is arguably the coolest branch of artificial intelligence. It has already proven its prowess: stunning the world, beating the world champions in games of Chess, Go, and even DotA 2.
Using RL for stock trading has always been a holy grail among data scientists. Stock trading has drawn our imaginations because of its ease of access and to misquote Cardi B, we like diamond and we like dollars 😛.
There are several ways of using Machine Learning for stock trading. One approach is to use forecasting techniques to predict the movement of the stock and build some heuristic based bot that uses the prediction to make decisions. Another approach is to build a bot that can look at the stock movement and directly recommend the actions — buy/sell/hold. This is a perfect use-case for reinforcement learning as we will generally know the accumulated results of our actions only at the end of the trading episode.

#portfolio-management #machine-learning #reinforcement-learning #deep-learning #finance

What is GEEK

Buddha Community

Portfolio Optimization using Reinforcement Learning
Alfredo  Sipes

Alfredo Sipes

1618270200

Portfolio Optimization using Reinforcement Learning

Experimenting with RL for building optimal portfolio of 3 stocks and comparing it with portfolio theory based approaches
Reinforcement learning is arguably the coolest branch of artificial intelligence. It has already proven its prowess: stunning the world, beating the world champions in games of Chess, Go, and even DotA 2.
Using RL for stock trading has always been a holy grail among data scientists. Stock trading has drawn our imaginations because of its ease of access and to misquote Cardi B, we like diamond and we like dollars 😛.
There are several ways of using Machine Learning for stock trading. One approach is to use forecasting techniques to predict the movement of the stock and build some heuristic based bot that uses the prediction to make decisions. Another approach is to build a bot that can look at the stock movement and directly recommend the actions — buy/sell/hold. This is a perfect use-case for reinforcement learning as we will generally know the accumulated results of our actions only at the end of the trading episode.

#portfolio-management #machine-learning #reinforcement-learning #deep-learning #finance

Hollie  Ratke

Hollie Ratke

1603753200

ML Optimization pt.1 - Gradient Descent with Python

So far in our journey through the Machine Learning universe, we covered several big topics. We investigated some regression algorithms, classification algorithms and algorithms that can be used for both types of problems (SVM**, **Decision Trees and Random Forest). Apart from that, we dipped our toes in unsupervised learning, saw how we can use this type of learning for clustering and learned about several clustering techniques.

We also talked about how to quantify machine learning model performance and how to improve it with regularization. In all these articles, we used Python for “from the scratch” implementations and libraries like TensorFlowPytorch and SciKit Learn. The word optimization popped out more than once in these articles, so in this and next article, we focus on optimization techniques which are an important part of the machine learning process.

In general, every machine learning algorithm is composed of three integral parts:

  1. loss function.
  2. Optimization criteria based on the loss function, like a cost function.
  3. Optimization technique – this process leverages training data to find a solution for optimization criteria (cost function).

As you were able to see in previous articles, some algorithms were created intuitively and didn’t have optimization criteria in mind. In fact, mathematical explanations of why and how these algorithms work were done later. Some of these algorithms are Decision Trees and kNN. Other algorithms, which were developed later had this thing in mind beforehand. SVMis one example.

During the training, we change the parameters of our machine learning model to try and minimize the loss function. However, the question of how do you change those parameters arises. Also, by how much should we change them during training and when. To answer all these questions we use optimizers. They put all different parts of the machine learning algorithm together. So far we mentioned Gradient Decent as an optimization technique, but we haven’t explored it in more detail. In this article, we focus on that and we cover the grandfather of all optimization techniques and its variation. Note that these techniques are not machine learning algorithms. They are solvers of minimization problems in which the function to minimize has a gradient in most points of its domain.

Dataset & Prerequisites

Data that we use in this article is the famous Boston Housing Dataset . This dataset is composed 14 features and contains information collected by the U.S Census Service concerning housing in the area of Boston Mass. It is a small dataset  with only 506 samples.

For the purpose of this article, make sure that you have installed the following _Python _libraries:

  • **NumPy **– Follow this guide if you need help with installation.
  • **SciKit Learn **– Follow this guide if you need help with installation.
  • Pandas – Follow this guide if you need help with installation.

Once installed make sure that you have imported all the necessary modules that are used in this tutorial.

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import SGDRegressor

Apart from that, it would be good to be at least familiar with the basics of linear algebracalculus and probability.

Why do we use Optimizers?

Note that we also use simple Linear Regression in all examples. Due to the fact that we explore optimizationtechniques, we picked the easiest machine learning algorithm. You can see more details about Linear regression here. As a quick reminder the formula for linear regression goes like this:

where w and b are parameters of the machine learning algorithm. The entire point of the training process is to set the correct values to the w and b, so we get the desired output from the machine learning model. This means that we are trying to make the value of our error vector as small as possible, i.e. to find a global minimum of the cost function.

One way of solving this problem is to use calculus. We could compute derivatives and then use them to find places where is an extrema of the cost function. However, the cost function is not a function of one or a few variables; it is a function of all parameters of a machine learning algorithm, so these calculations will quickly grow into a monster. That is why we use these optimizers.

#ai #machine learning #python #artificaial inteligance #artificial intelligence #batch gradient descent #data science #datascience #deep learning #from scratch #gradient descent #machine learning #machine learning optimizers #ml optimization #optimizers #scikit learn #software #software craft #software craftsmanship #software development #stochastic gradient descent

Larry  Kessler

Larry Kessler

1617355640

Attend The Full Day Hands-On Workshop On Reinforcement Learning

The Association of Data Scientists (AdaSci), a global professional body of data science and ML practitioners, is holding a full-day workshop on building games using reinforcement learning on Saturday, February 20.

Artificial intelligence systems are outperforming humans at many tasks, starting from driving cars, recognising images and objects, generating voices to imitating art, predicting weather, playing chess etc. AlphaGo, DOTA2, StarCraft II etc are a study in reinforcement learning.

Reinforcement learning enables the agent to learn and perform a task under uncertainty in a complex environment. The machine learning paradigm is currently applied to various fields like robotics, pattern recognition, personalised medical treatment, drug discovery, speech recognition, and more.

With an increase in the exciting applications of reinforcement learning across the industries, the demand for RL experts has soared. Taking the cue, the Association of Data Scientists, in collaboration with Analytics India Magazine, is bringing an extensive workshop on reinforcement learning aimed at developers and machine learning practitioners.

#ai workshops #deep reinforcement learning workshop #future of deep reinforcement learning #reinforcement learning #workshop on a saturday #workshop on deep reinforcement learning

Kennith  Kuhic

Kennith Kuhic

1625945940

Reinforcement Learning vs Bayesian Optimization: when to use what

Note from Towards Data Science’s editors:_ While we allow independent authors to publish articles in accordance with our rules and guidelines, we do not endorse each author’s contribution. You should not rely on an author’s works without seeking professional advice. See our Reader Terms for details._

Optimization is the key of most of the Machine Learning problems. Somewhere, in some sense we always have to optimize an expression. That may be a small part of a bigger problem. But, optimization will be there. In general mathematical sense, by optimization we mean, finding the minimum or maximum (if that exists) of a function. Nature of the function may have a wide variety. In this article, we will discuss about difference between two approaches of optimization: Reinforcement Learning & Bayesian approach. Rather going into deep details of implementation, our discussion will focus on applicability & the type of use cases where two methods can be applied.

Bayesian Optimization — a stateless approach

Consider any random function like below:

Looks pretty simple, right ? Now, if you are asked to find maximum (or minimum) value of f, then you would take simple derivative and solve the equation. It is a traditional technique. But, what if you don’t know the body or algebraic form of it, i.e., f is black box ? Then also, solution is there. You would initiate a set of random parameter combination of (x1, x2, …, xn) and call f to get different y values and get the maximum (or minimum) among them. It is feasible if f is easy to invoke. But, what if it is black box and very costly to call. Each invocation would incur a cost to the total process. Random search like above is not feasible there. We have to do some sort of intelligent search to keep a check on the number of calls, but still we should be able to find the maximum (or minimum). Bayesian approach can do it. There are few terms in it.

Surrogate Model

Bayesian approach builds a surrogate model iteratively around the original function. Surrogate model is nothing but a Gaussian Regression Processor. It is used to get approximated output (y values) for a given set of x values as if the original function is called although it is not. This model is utilized in searching the parameters space and get the value of x for which y is maximum (or minimum).

Acquisition Function

It is a metric that helps in choosing the next x value that is most probable in giving a better y-value. Off course, the entire process is iterative in nature. Acquisition function is evaluated over a random array of x-values and the the one that gives maximum value for this metric is chosen as next x-value. While computing this metric Surrogate model is utilized for random search of x-values. It cuts off the need of calling the actual f function.

You might have a question, “what do we understand by next x value or y-value ?” Actually, Bayesian is a full iterative approach. It uses Bayesian concept of “Prior/Posterior” combo. From each iteration, best x-value is obtained from Acquisition function & corresponding y value is obtained from a the actual f function (posteriors). And they are added to the “Surrogate” model (as prior) resulting a model “update”. So, current iteration’s _posterior _gets added to the next iteration’s list of priors.

At the end, we the maximum (or minimum) value from prior list and that is returned as optimal value (maximum or minimum).

Now, question is why are we calling it “stateless” approach ? Just note that, each individual invocation of function f is independent of each other. It does not depend on some state values of the previous invocations. Off course, it is Prior/Posterior dependent, but they are not the “state” of the function. They are just input/output values.

Finding hyper-parameters of complex Deep Neural Network

Consider a very deep neural network having an array of hyper-parameters. It could be size of each different hidden layer, number of hidden layers, number of drop-out layers etc. Off course, training such a complex model takes lot of time & resources. How can we find out optimal set of hyper-parameters that can give optimal (maximum) accuracy (classification or regression) from the model ? We can think of it as a hypothetical costly black-box function that takes the array of hyper-parameters and returns accuracy (percentage accuracy for classification or R2 metric for regression). This function involves training of the model with cross-validation sets. We cannot afford to use random search here as it will incur lot of time & resources. Bayesian Optimization is the answer there.

#machine-learning #deep-learning #bayesian optimization #reinforcement learning

Tia  Gottlieb

Tia Gottlieb

1598106300

Penalizing the Discount Factor in Reinforcement Learning

This post deals with the key parameter I found as a high influence: the discount factor. It discusses the time-based penalization to achieve better performances, where discount factor is modified accordingly.

I assume that if you land on this post, you are already familiar with the RL terminology. If it is not the case, then I highly recommend these blogs which provide a great background, before you continue: Intro1 and Intro2.

What is the role of the discount factor in RL?

The discount factor, **𝛾, **is a real value ∈ [0, 1], cares for the rewards agent achieved in the past, present, and future. In different words, it relates the rewards to the time domain. Let’s explore the two following cases:

  1. If **𝛾 **= 0, the agent cares for his first reward only.
  2. If **𝛾 **= 1, the agent cares for all future rewards.

Generally, the designer should predefine the discount factor for the scenario episode. This might raise many stability problems and can be ended without achieving the desired goal. However, by exploring some parameters many problems can be solved with converged solutions. For further reading on the discount factor and the rule of thumb for selecting it for robotics applications, I recommend reading: resource3.

#artificial-intelligence #optimization #deep-learning #machine-learning #reinforcement-learning #deep learning