  This paper proposes two algorithms for solving stochastic control problems
with deep learning, with a focus on the utility maximisation problem. The first
algorithm solves Markovian problems via the Hamilton Jacobi Bellman (HJB)
equation. We solve this highly nonlinear partial differential equation (PDE)
with a second order backward stochastic differential equation (2BSDE)
formulation. The convex structure of the problem allows us to describe a dual
problem that can either verify the original primal approach or bypass some of
the complexity. The second algorithm utilises the full power of the duality
method to solve non-Markovian problems, which are often beyond the scope of
stochastic control solvers in the existing literature. We solve an adjoint BSDE
that satisfies the dual optimality conditions. We apply these algorithms to
problems with power, log and non-HARA utilities in the Black-Scholes, the
Heston stochastic volatility, and path dependent volatility models. Numerical
experiments show highly accurate results with low computational cost,
supporting our proposed algorithms.
