我过去3个月一直在研究模糊逻辑SDK,它已经到了我需要开始大量优化引擎的地步.
与大多数基于"实用"或"需要"的AI系统一样,我的代码通过在世界各地放置各种广告,将所述广告与各种代理的属性进行比较,并相应地"基于每个代理"对广告进行"评分"来工作.
反过来,这会为大多数单一代理模拟生成高度重复的图形.但是,如果考虑到各种代理,则系统变得非常复杂并且使我的计算机难以模拟(因为代理可以在彼此之间广播广告,创建NP算法).
下图:针对单个代理的3个属性计算的系统重复性示例:
上:根据3个属性和8个代理计算的系统示例:
(在开始时折叠,并在之后不久恢复.这是我能够生成的最适合图像的示例,因为恢复通常非常慢)
从两个示例中可以看出,即使代理计数增加,系统仍然是高度重复的,因此浪费了宝贵的计算时间.
我一直在尝试重新构建程序,以便在高重复性期间,更新功能仅连续重复线图.
虽然我的模糊逻辑代码当然可以提前预测计算系统的崩溃和/或稳定性,但它对我的CPU极为不利.我正在考虑机器学习是最好的选择,因为似乎一旦系统初始设置被创建,不稳定时期总是看起来大致相同(但它们出现在"半")随机时间.我说半,因为它通常很容易通过图表上显示的不同模式注意到;但是,就像不稳定的长度一样,这些模式从设置到设置都有很大差异).
显然,如果不稳定期间的时间长度相同,一旦我知道系统何时崩溃,它很容易弄明白何时会达到平衡.
在关于该系统的附注中,并非所有配置在重复期间都是100%稳定的.
图中非常清楚地显示:
因此,机器学习解决方案需要一种方法来区分"伪"折叠和完全折叠.
使用ML解决方案的可行性如何?任何人都可以推荐任何最适合的算法或实现方法吗?
至于可用资源,评分代码根本不能很好地映射到并行体系结构(由于代理之间的纯粹互连),所以如果我需要专门用一个或两个CPU线程来进行这些计算,那就这样吧.(我不想使用GPU,因为GPU正在与我的程序中不相关的非AI部分征税).
虽然这很可能没有什么区别,但代码运行的系统在执行期间还剩下18GB的RAM.因此,使用可能高度依赖数据的解决方案肯定是可行的.(虽然除非必要,我宁愿避免它)