Understanding Docker Compose [Docker Compose理解]
Docker 提供了一种全新的软件运行和发布机制: (1) 以 docker 镜像作为软件的载体。(2) 以 docker 容器[基于镜像的运行实例]来提供独立的软件运行上下文环境。 (3)通过 docker hub 等提供镜像的集中管理。(4) 使用 Dockerfile 定义容器的内部行为和关键属性来支持软件运行。
Docker 提供了一种全新的软件运行和发布机制: (1) 以 docker 镜像作为软件的载体。(2) 以 docker 容器[基于镜像的运行实例]来提供独立的软件运行上下文环境。 (3)通过 docker hub 等提供镜像的集中管理。(4) 使用 Dockerfile 定义容器的内部行为和关键属性来支持软件运行。
Docker是目前最流行的轻量级虚拟化解决方案,其核心思想在于最小化容器,容器可以理解成最大程度复用宿主机的硬件资源但是保留需要的部分来运行对应程序的“虚拟机”。更直观但是不那么准确的理解是想象成货轮拉着集装箱[就像docker的logo]。在一艘货轮上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。货轮可以理解成宿主机器,集装箱就是容器,那虚拟机就有点类似专门运送水果的货轮和专门运送石油的货轮。
Maven是广泛使用在Java项目的自动构建工具,其本身也是有Java写成,所以算是相辅相成。之前虽然用过Maven,但是从来没有细致的了解过,这次写点东西也为了更好的了解。
JIT[Just-In-Time],也就是即时编译,边运行边编译[动态编译]。AOT[Ahead-Of-Time],指运行前编译,是两种程序的编译方式。比较这两种编译方式之前,先比较编译器[Compiler]和解释器[Interpreter]。
A3C模型[Asynchronous Advantage Actor-Critic,异步的优势演员-评论家模型],这也是深度强化学习中非常著名的模型。
基于价值函数的方法就是通过计算每一个状态动作的价值[基于$V(s)$或者$Q(s,a)$],然后选择价值最大的策略执行。其实,这是一种比较间接的做法,因为我们最终要的是最优的策略。
DQN的全称是Deep Q Network,其中的Q就是指Q-Learning。从名字上就能看出,这是一种把Q-Learning和DNN[Deep Neural Network]结合起来的模型构架。
与MC一样,时序差分学习[Temporal-Difference Learning,TD]也从Episode学习,不需要了解模型本身,而是主动的是对环境做试验来得到相应”经验”。与MC不同的是,它通过学习不完整的Episode和自身的引导[bootstrapping],猜测Episode的结果,同时持续更新这个猜测。也就是说,TD方法不要求$不完整的Episode$,所以可以走一步就估算一次,也就是进行Step-Based的强化学习。因为可以克服诸多限制,TD方法是强化学习理论中最核心的内容,是强化学习领域最重要的成果。