问题列表 - 第92105页

自由能源强化学习实施

我一直在尝试实现这里描述的算法,然后在同一篇论文中描述的"大动作任务"上测试它.

算法概述:

在此输入图像描述

简而言之,该算法使用下面所示形式的RBM通过改变其权重来解决强化学习问题,使得网络配置的自由能等于为该状态动作对给出的奖励信号.

为了选择动作,算法在保持状态变量固定的同时执行gibbs采样.有足够的时间,这会产生具有最低自由能的动作,因此是给定状态的最高奖励.

大型行动任务概述:

在此输入图像描述

作者的实施指南概述:

具有13个隐藏变量的受限Boltzmann机器在具有12位状态空间和40位动作空间的大动作任务的实例化上被训练.随机选择了13个关键状态.该网络运行了12000次,学习率从0.1到0.01,在整个培训过程中,温度从1.0到0.1呈指数级增长.每个迭代都以随机状态初始化.每个动作选择包括100次Gibbs采样迭代.

重要的遗漏细节:

  • 是否需要偏置单位?
  • 需要减肥吗?如果是这样,L1或L2?
  • 权重和/或激活需要稀疏性约束吗?
  • 是否有梯度下降的修改?(例如动量)
  • 这些额外机制需要哪些元参数?

我的实施:

我最初假设作者没有使用指南中描述的机制,所以我尝试在没有偏置单元的情况下训练网络.这导致了近乎机会的表现,这是我的第一个线索,即使用的某些机制必须被作者视为"显而易见",因此被省略.

我玩了上面提到的各种省略机制,并通过使用以下方式获得了我最好的结果:

  • softmax隐藏单位
  • 动量为.9(.5直到第5次迭代)
  • 隐藏和可见层的偏置单位
  • 学习率是作者列出的1/100.
  • l2重量衰减为.0002

但即使进行了所有这些修改,我在任务上的表现通常在12000次迭代后的平均奖励为28.

每次迭代的代码:

    %%%%%%%%% START POSITIVE PHASE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    data = [batchdata(:,:,(batch)) rand(1,numactiondims)>.5];
    poshidprobs = softmax(data*vishid + hidbiases);

    %%%%%%%%% END OF POSITIVE PHASE  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    hidstates = softmax_sample(poshidprobs);

    %%%%%%%%% START ACTION SELECTION PHASE  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    if test
        [negaction poshidprobs] = choose_factored_action(data(1:numdims),hidstates,vishid,hidbiases,visbiases,cdsteps,0);
    else
        [negaction poshidprobs] = choose_factored_action(data(1:numdims),hidstates,vishid,hidbiases,visbiases,cdsteps,temp);
    end


    data(numdims+1:end) = negaction > rand(numcases,numactiondims);


    if mod(batch,100) == 1
        disp(poshidprobs);
        disp(min(~xor(repmat(correct_action(:,(batch)),1,size(key_actions,2)), key_actions(:,:))));
    end

    posprods …
Run Code Online (Sandbox Code Playgroud)

matlab artificial-intelligence machine-learning bayesian-networks reinforcement-learning

8
推荐指数
1
解决办法
1283
查看次数

UITextView在粘贴文本时可视地改变内容位置

我有一个UITextView,它可以在需要时放大以适应contentView.但是,当我粘贴一段文本时,它会将内容的起点和终点垂直放在错误的位置.输入或删除字符会将其重置回正确的位置.

任何想法为什么会这样?

-(void)textViewDidChange:(UITextView *)textView {
    self.textView.frame = CGRectMake(
        self.textView.frame.origin.x,
        self.textView.frame.origin.y,
        self.textView.frame.size.width,
        self.textView.contentSize.height + HEADER_ADDITIONAL_HEIGHT);

    self.textView.contentOffset = CGPointMake(0, 0);

    self.previousContentSize = textView.contentSize;
}
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uitextview ios

5
推荐指数
1
解决办法
1259
查看次数

JVM与CLR的Clojure性能

CVM上的Clojure与CLR的性能比较是否存在?或者也许那些同时使用性能敏感代码的人可以给出一些轶事评论?

clojure clojureclr

12
推荐指数
2
解决办法
4376
查看次数

带有Spring MVC的AJAX

哪些AJAX库与Spring MVC配合得很好?

我是Spring和Spring MVC的新手.从http://www.springsource.org上的文档我还不了解Spring MVC内置的AJAX框架,或者建议使用哪些第三方API和工具,以及开发Spring MVC应用程序.

所有建议都表示赞赏.

我确实搜索了之前关于这个主题的SO讨论,但我没有得到任何明确的指示.

java ajax spring web-applications spring-mvc

5
推荐指数
1
解决办法
4842
查看次数

PHP来自孩子的私有变量访问

所以我正在尝试解决我在设计PHP类时遇到的问题.我已经创建了一个基类,并分配了私有变量.我有扩展这个基类的子类,它通过基类的函数对这些私有变量进行引用和更改.下面是一个例子,记住我仍然感到困惑之间的区别privateprotected方法/变量(让我知道如果我做错了!):

base.class.php

<?php
class Base {
    private $test;
    public function __construct(){
        require('sub.class.php');
        $sub = new Sub;
        echo($this->getTest());
    }
    public function getTest(){
        return $this->test;
    }
    protected function setTest($value){
        $this->test = $value;
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

sub.class.php

<?php
class Sub extends Base {
    public function __construct(){
        parent::setTest('hello!');
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

所以我希望将结果hello!打印在屏幕上 - 而不是什么都没有.我可能会对课程产生根本性的误解,或者我可能只是做错了什么.非常感谢任何指导!谢谢.

编辑:

感谢所有提供答案的人 - 我认为,尽管有很好的解决方案,但是这些子类实际上并不是我需要的 - 似乎委托类在这一点上可能更有用,因为我真的不需要引用Base其他类中的函数.

php oop private class protected

6
推荐指数
1
解决办法
1万
查看次数

NSManagedObject的objectID:它是否一致?

我需要为索引数据提供一些唯一且一致的ID,我尝试使用NSManagedObject的objectID,但看起来对于同一个实体,它的objectID不断变化,是否有人知道这是不一致的?

core-data nsmanagedobject

7
推荐指数
1
解决办法
5061
查看次数

猫鼬:检查对象是否是猫鼬对象

有谁知道检查对象是否是猫鼬对象的最简单方法是什么?我只是最好检查是否定义了toObject()或是否有更有效的方法.非常感谢

mongoose

26
推荐指数
3
解决办法
1万
查看次数

使用Fabric处理故障

我正试图处理面料上的失败,但我在文档上看到的例子太过本地化,不符合我的口味.如果许多操作中的任何一个失败,我需要执行回滚操作.然后,我尝试使用上下文来处理它,如下所示:

@_contextmanager
def failwrapper():
    with settings(warn_only=True):
        result = yield
    if result.failed:
        rollback()
        abort("********* Failed to execute deploy! *********")
Run Code Online (Sandbox Code Playgroud)

然后

@task
def deploy():
    with failwrapper():
        updateCode()
        migrateDb()
        restartServer()
Run Code Online (Sandbox Code Playgroud)

不幸的是,当其中一个任务失败时,我什么都搞定了result.

有没有办法实现这个?或者还有另一种处理这种情况的方法吗?

python deployment fabric

5
推荐指数
1
解决办法
2019
查看次数

正则表达式中的MySQL和单词边界

如何在MySQL查询中使用正则表达式单词边界?

例如,我要匹配“产品”或“新闻稿”,

它工作正常OR

IF(? = 'product' OR ? = 'newsletter', ... , ...)
Run Code Online (Sandbox Code Playgroud)

但是正则表达式呢?我认为下面会是这样?

IF(? REGEXP '^('product'||'newsletter')+$', ..., ... ) 
Run Code Online (Sandbox Code Playgroud)

regex mysql sql

2
推荐指数
1
解决办法
3475
查看次数

如何使用另一个表中的列添加唯一约束?

我在 SQL Server 2008 R2 中有 3 个表,如下所示:

数据库模型

一个公司可能有许多 LSP。一个 LSP 可能有许多 SERVICE。

而且我需要确保 SERVICE_CODE 唯一标识公司内的服务记录。换句话说,COMPANY_ID + SERVICE_CODE 应该在整个系统中唯一标识一条SERVICE 记录。

例如:COMPANY-A 可能没有具有相同 SERVICE_CODE 的 2 个服务(具有 2 个不同的 SERVICE_ID)。但是 COMPANY-A 和 COMPANY-B 可能都有 2 个独立的 SERVICES(同样,具有不同的 SERVICE_ID),SERVICE_CODE = "PREMIUM"。

我需要这样的东西:

alter table "SERVICE" 
add constraint "SERVICE_Index01" 
unique ("COMPANY_ID", "SERVICE_CODE") 
Run Code Online (Sandbox Code Playgroud)

但是(显然)这会失败,因为 COMPANY_ID 列不在 SERVICE 表中。

在此先感谢您的帮助。

sql sql-server unique-constraint sql-server-2008-r2

4
推荐指数
1
解决办法
2584
查看次数