Long-living autonomous agents must be able to learn to perform competently in novel environments. One important aspect of competence is the ability to plan, which entails the ability to learn models of the agent’s own actions and their effects on the environment. In this paper we describe an approach to learn action models of environments with continuous-valued spatial states and realistic physics consisting of multiple interacting rigid objects. In such environments, we hypothesize that objects exhibit multiple qualitatively distinct behaviors we call modes, conditioned on their spatial relationships to each other. We argue that action models that explicitly represent these modes using a combination of symbolic spatial relationships and continuous metric information learn faster, generalize better, and make more accurate predictions than models that only use metric information. We present a method to learn action models with piecewise linear modes conditioned on a combination of first order Horn clauses that test symbolic spatial predicates and continuous classifiers. We empirically demonstrate that our method learns more accurate and more general models of a physics simulation than a method that learns a single function (locally weighted regression).
Gain the techniques and tools that enable a smooth and efficient software development process in this quick and practical guide on Python continuous integration (CI) and continuous delivery (CD). Based on example applications, this book introduces various kinds of testing and shows you how to set up automated systems that run these tests, and install applications in different environments in controlled ways. Python Continuous Integration and Delivery tackles the technical problems related to software development that are typically glossed over in pure programming texts. After reading this book, you'll see that in today's fast-moving world, no software project can afford to go through development, then an integration phase of unpredictable length and complexity, and finally be shipped to the customer -- just to find out that the resulting application didn't quite fill their need. Instead, you'll discover that practicing continuous integration and continuous delivery reduces the risks by keeping changes small and automating otherwise painful processes.
Once upon a time we received new software'builds' every year. For major releases at least, this annual cycle was the standard (or 6-month cycles at the most) and software firms would usually name the new iteration after the year it had appeared. Somewhere around the turn of the millennium this annual trend started to erode. A faster tempo for software occurred partly due to the arrival of the Internet and partly due to other factors including the growth of mobile, the speed of information inside social collaborative platforms and ultimately the popularisation of the cloud model. Suddenly users wanted updates far more frequently than once per year and if they couldn't get them they would look elsewhere at different applications, cloud services or data channels.
In this paper, we propose a novel 3D object detector that can exploit both LIDAR as well as cameras to perform very accurate localization. Towards this goal, we design an end-to-end learnable architecture that exploits continuous convolutions to fuse image and LIDAR feature maps at different levels of resolution. Our proposed continuous fusion layer encode both discrete-state image features as well as continuous geometric information. This enables us to design a novel, reliable and efficient end-to-end learnable 3D object detector based on multiple sensors. Our experimental evaluation on both KITTI as well as a large scale 3D object detection benchmark shows significant improvements over the state of the art.
Continuous delivery is a set of principles, patterns, and practices designed to make deployments--whether of a large-scale distributed system, a complex production environment, an embedded system, or a mobile app--predictable, routine affairs that can be performed on demand at any time. This article introduces continuous delivery, presents both common objections and actual obstacles to implementing it, and describes how to overcome them using real-life examples. The object of continuous delivery is to be able to get changes of all types--including new features, configuration changes, bug fixes, and experiments--into production, or into the hands of users, safely and quickly in a sustainable way.