[原创]最优化/Optimization文章合集

转载请注明出处:https://www.codelast.com/

最优化(Optimization)是应用数学的一个分支,它是研究在给定约束之下如何寻求某些因素(的量),以使某一(或某些)指标达到最优的一些学科的总称。我一直对最优化比较感兴趣,所以写过一些相关的笔记,可能有不正确的地方,但请学术派、技术流们多多包涵。

➤ 拟牛顿法/Quasi-Newton,DFP算法/Davidon-Fletcher-Powell,及BFGS算法/Broyden-Fletcher-Goldfarb-Shanno

➤ 最速下降法/steepest descent,牛顿法/newton,共轭方向法/conjugate direction,共轭梯度法/conjugate gradient 及其他

➤ Ridders求导算法

➤ 选主元的高斯-约当(Gauss-Jordan)消元法解线性方程组/求逆矩阵
文章来源:http://www.codelast.com/
➤ 关于 最优化/Optimization 的一些概念解释

➤ 最小二乘的理论依据

➤ Powell共轭方向集方法(Powell's Conjugate Direction Method)的实现
阅读更多

[原创]Raspberry Pi/树莓派 文章合集

转载请注明出处:https://www.codelast.com/

注:带有 ♬♬♬♬♬ 标志的是文章合集。

Raspberry Pi是什么?
引用维基百科的一句话:

The Raspberry Pi is a credit card sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of stimulating the teaching of basic computer science in schools.

简单地说,它就是一个基于ARM CPU的、信用卡那么大的迷你计算机。
下面是我在折腾Pi的过程中的一些记录,仅供参考。

➤ 树莓派视频教程

➤ Raspberry Pi(树莓派)配置记录/Configure the Arch Linux ARM on Raspberry Pi

➤ 在Raspberry Pi(树莓派)上用OpenCV来操纵摄像头拍照/Use OpenCV on Raspberry Pi to Controll a Webcam to Take Photos

➤ 通过Raspberry Pi(树莓派)的GPIO接口控制发光二极管/Control LED through the GPIO on Raspberry Pi

➤ 通过Raspberry Pi(树莓派)的GPIO接口控制步进电机/Control stepper motor through the GPIO on Raspberry Pi
阅读更多

[原创]Apache Pig中文教程合集

转载必须注明出处:http://www.codelast.com/

Apache Pig是用来处理大规模数据的高级查询语言,配合Hadoop使用,可以在处理海量数据时达到事半功倍的效果,比使用Java,C++等语言编写大规模数据处理程序的难度要小N倍,实现同样的效果的代码量也小N倍。

我根据自己在工作中的学习和总结,写了如下一些Apache Pig中文教程,供大家参考。
文章来源:http://www.codelast.com/
➤  Apache Pig的一些基础概念及用法总结(1)

➤  Apache Pig的一些基础概念及用法总结(2)

➤  Apache Pig中文教程(进阶)
阅读更多

[原创] 来自丹麦的妹子Leila,修机械玩摩托写代码,酷就一个字

转载需注明出处:https://www.codelast.com/

点开这篇文章的各位,你们一定会觉得很奇怪:这是什么奇怪的标题?你不是一般只发技术文章的吗?
并不是。和学习相关的文章我也会发。作为一个最近几年来都在顽强地每天坚持背英语单词,并且自掏腰包和老外练口语也坚持了一年多的人,我可以算是在英语学习上也没有退步,所以我想和大家分享一下英语口语学习中的一些事。

今天我要向大家推荐Cambly上的一个丹麦妹子,Leila老师。昨天已经是我第二次和她交流了。
等等,Cambly是什么奇怪的东西?
Cambly是一个和老外(native English speakers)视频聊天练习英语口语的平台——当然不是免费的,但是如果你用推荐码 DZZZ 注册一个账号,能免费得到15分钟的使用时间,反正不要钱,不妨尝试一下。
阅读更多

[原创] 配置iTerm2(MacOS)的"站点管理器"

转载请注明出处:https://www.codelast.com/

很多terminal client都有“站点管理器”功能,也就是说把服务器连接参数保存在配置里,用户可以通过在图形界面上点击的方式就能连接上指定的服务器,不再需要手工输入服务器IP、用户名、密码。
SecureCTR,Xshell,ZOC等都有这种功能,但它们都不是免费软件。
在MacOS上,ZOC算是一个功能很强大的terminal,但其价格也是贵得离谱(2019年的价格是将近80美元/单用户授权),而免费又最流行的terminal——iTerm2,其对“站点管理器”的支持却不那么直接,需要经过一定的配置才能用起来,不过,就算是为了省那80美元,也值得我们花一些时间来配置一番,下面就走起来。
阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(10) 基于CPU的并行采样器CpuSampler,worker的实现

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 本文是上一篇文章的续文,继续分析CpuSampler的源码。
本文将分析 CPU并行模式下的 ParallelSamplerBase 类的worker实现。

▶▶ worker的代码在哪
rlpyt/samplers/parallel/worker.py
阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(9) 基于CPU的并行采样器CpuSampler

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 本文是上一篇文章的续文,继续分析CpuSampler的源码。
我们已经知道了CpuSampler有两个父类:BaseSampler 和 ParallelSamplerBase。其中,BaseSampler主要是定义了一堆接口,没什么好说的,因此本文接着分析另一个父类 ParallelSamplerBase。在 ParallelSamplerBase 中,初始化函数 initialize() 做了很多重要的工作,已经够写一篇长长的文章来分析了,这正是本文的主要内容。
阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(8) 基于CPU的并行采样器CpuSampler

转载需注明出处:https://www.codelast.com/

写这篇文章的过程中,我改稿改到怀疑人生,因为有些我自己下的结论在看了很多次源码之后又自我否定了多次,所以这篇文章花了我很长时间才完工。虽然完稿之后我仍然不敢保证绝对正确,但这至少是在我当前认知情况下我“自以为”正确的版本了,写长稿不易,望理解。

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 

在单机上支持丰富的并行(Parallelism)模式是 rlpyt 有别于很多其他强化学习框架的一个显著特征。rlpyt可以使用纯CPU,或CPU、GPU混合的方式来并行执行训练过程。
阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(7) 模型参数是在哪更新的

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。
本文简要分析一下在rlpyt中,强化学习模型的参数是在什么地方被更新、怎么被更新的。
阅读更多

[原创] 强化学习框架 rlpyt 并行(parallelism)原理初探

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 

在单机上全面的并行(Parallelism)特性是 rlpyt 有别于很多其他强化学习框架的一个显著特征。在前面的简介文章中,已经介绍了 rlpyt 支持多种场景下的并行训练。而这种“武功”是怎么修炼出来的呢?它是站在了巨人的肩膀上——通过PyTorch的多进程(multiprocessing)机制来实现的。
所以你知道为什么 rlpyt 不使用TensorFlow这样的框架来作为后端了吧,因为TensorFlow根本就没有这种功能。TensorFlow只能靠类似于Ray这样的并行计算框架的帮助,才能支撑起全方位的并行特性。
阅读更多

[原创] 强化学习框架 rlpyt:如何使用预训练(pre-trained)的model

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
本文描述了在 rlpyt 框架下,如何使用一个预训练过的(pre-trained)model作为起点,来训练自己的RL模型的过程。
阅读更多

[原创] 强化学习框架 rlpyt:如何保存训练过程中的所有model

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
本文描述了如何保存迭代训练过程的所有model,以及背后的逻辑。
阅读更多

[原创] 强化学习框架 rlpyt:如何同时输出gaussian(高斯)和categorical(类别)的action

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
本文记录 rlpyt 的一些issue提及的问题以及解决方案。
阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(6) 模型指标什么时候从 nan 变成有意义的值

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ 观察训练日志引出的问题
以 example_1 为例,在训练的过程中,程序会不断打印出类似于下面的日志(部分内容):
阅读更多

[原创] 强化学习框架 rlpyt 的数据可视化工具:viskit

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 
在训练强化学习模型的过程中,rlpyt 产生的大量训练日志看起来无比枯燥,本文展示了如何利用 viskit 把这些日志数据可视化。
阅读更多

[原创] 强化学习框架 rlpyt 源码分析:(5) 提供额外参数的Mixin类

转载需注明出处:https://www.codelast.com/

查看关于 rlpyt 的更多文章请点击这里

rlpyt 是BAIR(Berkeley Artificial Intelligence Research,伯克利人工智能研究所)开源的一个强化学习(RL)框架。我之前写了一篇它的简介。 如果你想用这个框架来开发自己的强化学习程序(尤其是那些不属于Atari游戏领域的强化学习程序),那么需要对它的源码有一定的了解。本文尝试从 rlpyt 自带的一个实例来分析它的部分源码,希望能帮助到一小部分人。

▶▶ Mixin类简介
rlpyt 里面有大量的 *Mixin 类,例如 AtariMixin,MujocoMixin,RecurrentAgentMixin 等,作者并没有为这些名字很怪的class写任何注释,仅从使用的地方来看,很多Mixin类都与agent类有关联。
阅读更多