文章 "神经网络变得轻松(第三十四部分):全部参数化的分位数函数"

 

新文章 神经网络变得轻松(第三十四部分):全部参数化的分位数函数已发布:

我们继续研究分布式 Q-学习算法。 在之前的文章中,我们研究了分布式和分位数 Q-学习算法。 在第一种算法当中,我们训练了给定数值范围的概率。 在第二种算法中,我们用给定的概率训练了范围。 在这两个发行版中,我们采用了一个先验分布知识,并训练了另一个。 在本文中,我们将研究一种算法,其允许模型针对两种分布进行训练。

这种方式可以训练对“分位数”超参数不太敏感的模型。 它们的随机分布允许将近似函数的范围扩展到非均匀分布的函数。

在将数据输入到模型之前,会根据以下公式创建随机生成的分位数的嵌入。

将嵌入的成果与原始数据的张量相结合会有不同的选择。 这可以是两个张量的简单串联,也可以是两个矩阵的 Hadamard(逐元素)相乘。

以下是它与本文作者提议研究架构的比较。


模型的有效性经由 57 次 Atari 游戏测试得到确认。 以下是与原文章的比较表格 [8]  


假设,给定模型的大小不受限制,这种方法允许学习预测奖励的任何分布。

作者:Dmitriy Gizlyk

 

谢谢。

我正在尝试这样做,并成功编译了所有内容,没有出错。

但在eurusd 上测试时却出现了下面的错误。

有什么办法吗?


2022.11.30 11:51:46.689 Core 08 genetic pass (0, 286) tested with error "OnInit returned non-zero code 1" at 0:00:00.000


谢谢


 
Arjang Aghlara #:

谢谢。

我试了一下,编译成功,没有出错。

在 eurusd 上测试时,出现了以下错误。

有什么办法吗?


2022.11.30 11:51:46.689 Core 08 genetic pass (0, 286) tested with error "OnInit returned non-zero code 1" at 0:00:00.000


谢谢


您好,要在测试器中运行 EA,您需要将 nnw 文件复制到 "MetaQuotes\Terminal\Common\Files "目录下。

 

谢谢!

你的 "生产力 "令人震惊。不要停下来!

是你们这样的人让一切得以继续!

附带一提。

我一直在阅读神经网络新闻....

"Нейросети тоже нуждаются в состояниях, напоминающих сны.

这是洛斯阿拉莫斯国家实验室的研究人员得出的结论......"

 

您好。

我使用您的代码对 NeuroNetwork 进行了类似的 "睡眠"。

预测 "的百分比增加了 3%。对于我的 "超级计算机 "来说,这是一次太空飞行!

//+------------------------------------------------------------------+
//| 梦|
//+------------------------------------------------------------------+
int  Dream(int dream = 0)
{
   Comment("!!! Dream !!! ");
   int sleep = (dream==0 ? 7 : dream);

   for(int j=0;j<sleep;j++)
     {
         TempData.Clear();
         for(int b=0; b<(int)HistoryBars; b++) 
           {
            if(
               !TempData.Add(0.0) || !TempData.Add(0.0) || !TempData.Add(0.0) || 
               !TempData.Add(0)   || !TempData.Add(0)   || !TempData.Add(0)   ||
               !TempData.Add(0.0) || !TempData.Add(0.0) ||
               !TempData.Add(0.0) || !TempData.Add(0.0) || 
               !TempData.Add(0.0) || !TempData.Add(0.0)
              )
               break;
           }
         if(TempData.Total()<(int)HistoryBars*12)
            return(0);
         Net.feedForward(TempData);
         Net.getResults(TempData);
               //-- 你可以看看 NeuroNet 的 "梦想"。
                  switch(TempData.Maximum(0,3))
                    {
                     case 0:
                        dPrevSignal=TempData[0];  
                        break;
                     case 1:
                        dPrevSignal=-TempData[1];
                        break;
                     default:
                        dPrevSignal=0;
                        break;
                    }
               //-- ...但这并不是必须的。
        //--???
         TempData.Clear();
         TempData.Add(0.0);
         TempData.Add(0.0);
         TempData.Add(0.0);
         Net.backProp(TempData);
        //--???
      }
   return(0);
}

我在每个训练周期结束时都应用了这一功能:

      if(add_loop)
         count++;
      if(!stop)
        {
         dError=Net.getRecentAverageError();
         if(add_loop)
           {
            Net.Save(FileName+".nnw",dError,dUndefine,dForecast,dtStudied,true);
            printf("Era %d -> error %.2f %% forecast %.2f",count,dError,dForecast);
           }
         ChartScreenShot(0,(string)FileName+(string)IntegerToString(count)+".png",750,400);
        }
      Dream(SleepPeriod); //-- Sleep.
      printf("梦想周期 = %.2f !",SleepPeriod);
     }

你能测试一下,然后评论一下你是怎么做的吗?突然的 "梦想 "能帮助人工智能吗?

附注

SleepPerriod=1;

我在

SleepPeriod
SleepPeriod  + (Delta++)

其中 Delta=0。但我的电脑非常非常弱....。:-(

Обсуждение статьи "Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция"
Обсуждение статьи "Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция"
  • 2022.11.29
  • www.mql5.com
Опубликована статья Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция : Автор: Dmitriy Gizlyk...
 
我们是否将 FQF 层作为神经网络 的最后一层?
 
除了最后一层,nn 架构是否与前一篇文章中的架构相似?
 
happy side #:
除了最后一层之外,nn 架构是否与前一篇文章中的架构相似?

是的