Search This Blog

Friday, November 11, 2011

强化学习(Reinforcement learning)

在强化学习(Reinforcement learning)中,学习主体自身通过训练,误差和反馈,学习在环境中完成目标的最佳策略。我们并没有直接告诉主体要做什么或采取那个动作,而是主体通过看那个动作得到了最多的奖励来自己发现。
强化学习由四部分组成:策略 奖励函数 值映射 和一个环境模型。
设计强化学习算法是要考虑三方面问题。
       一,如何表示状态空间和动作空间。
       二,如何选择建立信号以及如何通过学习来修正不同状态-动作对的值。
       三,  如何根据这些值来选择适合的动作。
       用强化学习方法研究未知环境下的机器人导航,由于环境的复杂性和不确定性,这些问题变得更复杂。
所谓强化学习是指从环境状态到动作映射的学习,以使动作从环境中获得的累积奖赏值最大.该方法不同于监督学习技术那样通过正例、反例来告知采 取何种行为,而是通过试错(trial and error)来发现最优行为策略。常用的强化学习算法包括TD(Temporal Difference)算法、Q学习算法、Sarsa算法等
标准的强化学习,智能体作为学习系统,获取外部环境的当前状态信息s,对环境采取试探行为u,并获取环境反馈的对此动作的评价r和新的环境状 态。如果智能体的某动作u导致环境正的奖赏(立即报酬),那么智能体以后产生这个动作的趋势便会加强;反之,智能体产生这个动作的趋势将减弱。在学习系统 的控制行为与环境反馈的状态及评价的反复的交互作用中,以学习的方式不断修改从状态到动作的映射策略,以达到优化系统性能目的。
据此可得出强化学习的目标是:学习从环境状态到行为的映射,使得智能体选择的行为能够获得环境最大的奖赏,使得外部环境对学习系统在某种意义下的评价 (或整个系统的运行性能)最佳。

http://en.wikipedia.org/wiki/Reinforcement_learning

Sunday, October 30, 2011

矩形相交算法

假定矩形是用一对点表达的(minx,miny)(maxx, maxy)
那么两个矩形rect1{(minx1,miny1)(maxx1, maxy1)}, rect2{(minx2,miny2)(maxx2, maxy2)}

相交的结果一定是个矩形,构成这个相交矩形rect{(minx,miny)(maxx, maxy)}的点对坐标是:
minx = max(minx1, minx2)
miny = max(miny1, miny2)
maxx = min(maxx1, maxx2)
maxy = min(maxy1, maxy2)

如果两个矩形不相交,那么计算得到的点对坐标必然满足
minx > maxx
或者
miny > maxy

判定是否相交,以及相交矩形是什么都可以用这个方法一体计算完成

Tuesday, September 27, 2011

Scalable Link Interface

http://en.wikipedia.org/wiki/Scalable_Link_Interface

Monday, September 19, 2011

Friday, September 9, 2011

host thread context

http://forums.nvidia.com/index.php?showtopic=72089
http://forums.nvidia.com/index.php?showtopic=200169

Wednesday, September 7, 2011

cuda context

http://forums.nvidia.com/index.php?showtopic=43545

Thursday, August 11, 2011

-o 表示产生目标文件。
-c 表示只编译代码但不进行链接,加改参数生成的目标文件是不能执行的(我们常用的链接库就是这样得来的)。

通常在只有一个源文件的情况下不需要加-c。但实际上大多数情况下C程序远不止1个源文件,当main函数需要调用不在同一源文件下的函数时就需要链接到包含该函数的目标文件。
举个例子:
/*main.c*/
#include<stdio.h>
int main(){
      test();
}

/*test.c*/
#include<stdio.h>
extern void test(){
}
gcc -c test.c -o test
   gcc test main.c -o main 
-c只编译不链接,生成object文件
如果不加-c只使用-o选项,gcc会调用ld来链接生成可执行的二进制文件
与-c类似的选项有-E只预处理,-s生成汇编文件 
 
    if main function is in the same .c file:
gcc -c test.c -o test
   gcc test -o test 
 
gcc -c traverse.c
生成.o文件 
gcc -o traverse  traverse.o(注意.o在后面)
生成可执行文件