Reinforcement Learning
Py, Robot: Python And Reinforcement Learning
Reinforcement learning is all about making robots adapt and learn about their environment on their own given only a simple reward function. It allows computers to learn how to excel at Atari and Pacman games and how to walk like we humans do. This article provides a well written implementation of Reinforcement Learning through Q learning, one of the most popular reinforcement learning methods in Python.
Inverse Reinforcement Learning with Simultaneous Estimation of Rewards and Dynamics
Herman, Michael, Gindele, Tobias, Wagner, Jörg, Schmitt, Felix, Burgard, Wolfram
Inverse Reinforcement Learning (IRL) describes the problem of learning an unknown reward function of a Markov Decision Process (MDP) from observed behavior of an agent. Since the agent's behavior originates in its policy and MDP policies depend on both the stochastic system dynamics as well as the reward function, the solution of the inverse problem is significantly influenced by both. Current IRL approaches assume that if the transition model is unknown, additional samples from the system's dynamics are accessible, or the observed behavior provides enough samples of the system's dynamics to solve the inverse problem accurately. These assumptions are often not satisfied. To overcome this, we present a gradient-based IRL approach that simultaneously estimates the system's dynamics. By solving the combined optimization problem, our approach takes into account the bias of the demonstrations, which stems from the generating policy. The evaluation on a synthetic MDP and a transfer learning task shows improvements regarding the sample efficiency as well as the accuracy of the estimated reward functions and transition models.
Deep Q-Learning (Space Invaders)
Ever since I learned about neural networks playing Atari games I wanted to reimplemnted it and learn how it works. Below you can see an AI playing Space Invaders. I trained it during my batch at Recurse Center on little over 50M frames. It is more awesome if you realize that the AI was trained in a similar way a human would learn: the only inputs are screen and number of gained (or lost) points after each action taken by the AI. DQN does much better then a best-action strategy (do nothing but shoot) and random strategy.
Reinforcement Learning as a Framework for Ethical Decision Making
Abel, David (Brown University) | MacGlashan, James (Brown University) | Littman, Michael L. (Brown University)
Emerging AI systems will be making more and more decisions that impact the lives of humans in a significant way. It is essential, then, that these AI systems make decisions that take into account the desires, goals, and preferences of other people, while simultaneously learning about what those preferences are. In this work, we argue that the reinforcement-learning framework achieves the appropriate generality required to theorize about an idealized ethical artificial agent, and offers the proper foundations for grounding specific questions about ethical learning and decision making that can promote further scientific investigation. We define an idealized formalism for an ethical learner, and conduct experiments on two toy ethical dilemmas, demonstrating the soundness and flexibility of our approach. Lastly, we identify several critical challenges for future advancement in the area that can leverage our proposed framework.
Defining Human Values for Value Learners
Sotala, Kaj (Machine Intelligence Research Institute)
Hypothetical “value learning” AIs learn human values and then try to act according to those values. The design of such AIs, however, is hampered by the fact that there exists no satisfactory definition of what exactly human values are. After arguing that the standard concept of preference is insufficient as a definition, I draw on reinforcement learning theory, emotion research, and moral psychology to offer an alternative definition. In this definition, human values are conceptualized as mental representations that encode the brain’s value function (in the reinforcement learning sense) by being imbued with a context-sensitive affective gloss. I finish with a discussion of the implications that this hypothesis has on the design of value learners.
Using Stories to Teach Human Values to Artificial Agents
Riedl, Mark O. (Georgia Institute of Technology) | Harrison, Brent (Georgia Institute of Technology)
Value alignment is a property of an intelligent agent indicating that it can only pursue goals that are beneficial to humans. Successful value alignment should ensure that an artificial general intelligence cannot intentionally or unintentionally perform behaviors that adversely affect humans. This is problematic in practice since it is difficult to exhaustively enumerated by human programmers. In order for successful value alignment, we argue that values should be learned. In this paper, we hypothesize that an artificial intelligence that can read and understand stories can learn the values tacitly held by the culture from which the stories originate.We describe preliminary work on using stories to generate a value-aligned reward signal for reinforcement learning agents that prevents psychotic-appearing behavior.
Towards Learning From Stories: An Approach to Interactive Machine Learning
Harrison, Brent (Georgia Institute of Technology) | Riedl, Mark O. (Georgia Institute of Technology)
In this work, we introduce a technique that uses stories totrain virtual agents to exhibit believable behavior. This technique uses a compact representation of a story to define the space of acceptable behaviors and then uses this space to assign rewards to certain world states. We show the effectiveness of our technique with a case study in a modified gridworld environment called Pharmacy World. The results show that a reinforcement learning agent using Q-learning was able to learn a policy that results in believable behavior.
Scaling of Cloud Applications Using Machine Learning - VMware Technical Journal
Today's Internet applications are required to be highly scalable and available in the face of rapidly changing, unpredictable workloads. Multi-tier architecture is commonly used to build Internet applications, with different tiers providing load balancing, application logic, and persistence. The advent of cloud computing has given rise to rapid horizontal scaling of applications hosted in virtual machines (VMs) in each of the tiers. Currently, this scaling is done by monitoring system-level metrics (e.g., CPU utilization) and determining whether to scale out or in based on a threshold. These threshold-based algorithms, however, do not capture the complex interaction among multiple tiers, and determining the right set of thresholds for multiple resources to achieve a particular service level objective (SLO) is difficult. In this paper, we present vScale, a horizontal scaling system that can automatically scale the number of VMs in a tier to meet end-to-end application SLOs.
A statistical learning strategy for closed-loop control of fluid flows
Guéniat, Florimond, Mathelin, Lionel, Hussaini, M. Yousuff
This work discusses a closed-loop control strategy for complex systems utilizing scarce and streaming data. A discrete embedding space is first built using hash functions applied to the sensor measurements from which a Markov process model is derived, approximating the complex system's dynamics. A control strategy is then learned using reinforcement learning once rewards relevant with respect to the control objective are identified. This method is designed for experimental configurations, requiring no computations nor prior knowledge of the system, and enjoys intrinsic robustness. It is illustrated on two systems: the control of the transitions of a Lorenz 63 dynamical system, and the control of the drag of a cylinder flow. The method is shown to perform well.
Reinforcement learning programming implementations • /r/MachineLearning
It's a cool opener on the concepts, but leaves the actual implementations very hazy. For instance, I would love to understand how to create my own environment (or task, for that matter). Instead, this tutorial just throws ready-made stuff at you which, I reckon, isn't very helpful in actually understanding. If there exists good explanations involving programming I would be very keen in looking into them.