[原创]最优化/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)的实现Read More

[原创]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

➤ 在树莓派上使用腾达(Tenda)W311MI迷你无线USB网卡(RT5370芯片)/Using Tenda W311MI mini wireless USB adapter(base on RT5370 chipset) on Raspberry Pi
文章来源:https://www.codelast.com/
➤ 制作一个简单的树莓派亚克力机箱(盒子)/Make a simple acrylic case for Raspberry Pi

➤ 树莓派杂谈/Some casual thoughts about Raspberry Pi

➤ 让树莓派自动上报IP地址到邮箱/Let Raspberry Pi to report its IP address via Email

➤ 在Raspberry Pi(树莓派)上调用V4L2来操纵摄像头拍照/Use V4L2 on Raspberry Pi to Controll a Webcam to Grab Images

➤ 基于微信和Raspberry Pi的远程监控系统/A Remote Monitoring System Based on WeChat & Raspberry Pi

➤ 树莓派出现在科技美剧《Mr.Read More

[原创]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中文教程(进阶)Read More

[原创] tf.tile() 用法举例(TensorFlow)

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

tile 的含义:

n. 瓦 / 瓷砖 / 软木片 / 亚麻油地毡片
v. 用瓦盖 / 贴砖于 / 铺以瓦 / 铺以瓷砖

函数定义:

def tile(input, multiples, name=None):

函数功能:

Constructs a tensor by tiling a given tensor.

即:通过“平铺”一个给定的 tensor 来构造一个新的 tensor。用人话讲就是:把输入的 tensor,在指定的维度上复制N遍(就像铺瓷砖一样),来创建出一个新的 tensor。
3个参数:
input:输入的tensor
multiples:在指定的维度上复制原tensor的次数
name:operation的名字
Read More

[原创] 如何减少map-only的Pig job的输出文件数

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

如果一个Pig job是map-only的job,并且其输入文件数很多的话,那么输出的文件数也会同样多,此时,如果每个文件大小又比较小的话,长久下去就会对Haodoop NameNode造成很大压力。我们可以通过给Pig job添加一个reduce过程来减少输出文件数。… Read More

[原创] Apache Pig问题:Encountered IOException. org.apache.pig.tools.parameters.ParseException: Encountered ""

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

查看本系列文章合集,请点击这里

运行Pig脚本时报错:

Error before Pig is launched
----------------------------
ERROR 2997: Encountered IOException. org.apache.pig.tools.parameters.ParseException: Encountered "<EOF>" at line 1, column 8.
Was expecting one of:
    <IDENTIFIER> ...
    <OTHER> ...
    <LITERAL> ...
    <SHELLCMD> ...
Read More

[原创] 重要性采样/Importance Sampling

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

查看本系列文章合集,请点击这里

在前面的文章中,我们看到,随机采样是一个蒙特卡罗方法中很关键的步骤。而采样是需要技巧的,单纯地增加采样次数太没有效率了,比如说,如果随机采样一亿次,你可以把结果计算得特别精确,但是采样一亿次需要的时间非常长,长得远远超过了我们能接受的范围,这又有什么意义呢?
人们发现,有一些方法可以让随机采的样本“特别好”。那么什么算“特别好”呢?比如说,本来使用没有任何原则的采样方法,需要采样1万个点,才能让计算出来的结果很接近真实值;现在使用一个“特别好”的采样方法,可以让我们只需要采样100个点,就可以让计算出来的结果很接近真实值了,这样就极大地减少了计算量。… Read More

[原创] 蒙特卡罗算法 对比 拉斯维加斯算法

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

查看本系列文章合集,请点击这里

  • 区别

讲到这里,稍微提一下,随机算法可以分为两类:蒙特卡洛算法 & 拉斯维加斯算法。
对蒙特卡洛算法来说,采样越多,越近似最优解
对拉斯维加斯算法来说,它永远给出正确解的随机化算法,总是给出正确结果,或是返回失败。… Read More

[原创] 蒙特卡罗方法的实例2:计算定积分

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

查看本系列文章合集,请点击这里

为了对蒙特卡罗方法有一个直观的印象,本文再举一个实例(计算定积分),以说明蒙特卡罗方法的用途。

  • 什么是定积分

对于一个给定的正实值函数 f(x) ,它在一个实数区间 [a,b]上的定积分 \int_a^b {f(x)dx} 可以理解为在 OXY 坐标平面上,由曲线 (x,f(x))、直线 x=a,x=b以及x轴围成的曲边梯形的面积值。

Read More

[原创] 蒙特卡罗方法的定义、历史以及存在意义

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

查看本系列文章合集,请点击这里

  • 定义

来自维基百科:

蒙特卡罗(洛)方法(Monte Carlo method),也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数来解决很多计算问题的方法。

也就是说,蒙特卡罗方法并不是指一种特定的算法,而是一类算法的总称,这种算法主要利用了“随机”来实现。… Read More

[原创] 用人话解释蒙特卡罗方法/Monte Carlo method(文章合集)

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

蒙特卡罗(洛)方法(Monte Carlo method),也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数来解决很多计算问题的方法。… Read More

[原创] Flutter相关配置

转载请注明出处:https://www.codelast.com/
Flutter是什么?

Flutter是Google开源的移动应用程序SDK,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。
Flutter目标是使开发人员能够交付在不同平台上都感觉自然流畅的高性能应用程序。我们兼容滚动行为、排版、图标等方面的差异。

在Ubuntu系统下,从零开始运行起来第一个Flutter程序不是那么容易的事情,有一些tricky的配置可能会浪费你很多时间。… Read More

[原创] 如何把一块硬盘上的Ubuntu系统完整复制到另一块硬盘上?

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

最近我的Ubuntu台式机每隔两三天就会进入一种硬盘狂读+点击鼠标无反应的死机状态,由于SSD已经用了很多年,我非常担心它会随时挂掉,导致数据丢失的惨剧发生,于是我提前预防,买了块同品牌、同容量的SSD来替换它。但是从头开始重装系统+配置各种软件的过程实在太痛苦了,所以我决定做一次全盘复制,这样就能省去很多时间。… Read More

[原创] 如何用Jackson解析含有转义字符的JSON到Java对象?

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

如果一个JSON字符串里有一个字段,它的值又是一个完整的JSON字符串,那么这时候,它可能会含有转义字符。举个例子,我们有一个文件  codelast.json,它的内容为一行字符串:

{"aaa":"{\"ccc\":\"ccc\",\"ddd\":\"ddd\"}","bbb":{"ccc":"ccc","ddd":"ddd"}}

现在要用Jackson解析它为一个Java对象,怎么做?… Read More

[原创] MAC配置(杂)

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

(1)在MAC里安装Ubuntu虚拟机,使用共享文件夹
宿主机:MAC OS
虚拟机:Ubuntu 16.04
首先在Virtualbox软件里设置好永久性的共享文件夹,但你会发现Ubuntu里根本看不到设置的共享文件夹,原因是你需要在虚拟机中安装Virtual Guest Additions软件,方法:Devices->Insert Guest Additions CD Image...,然后Ubuntu就会自动开始安装Virtual Guest Additions软件,安装好之后重启Ubuntu虚拟机,你会看到在Ubuntu文件管理器的左栏中多了一个共享文件夹的链接,不要以为此时就大功告成了,事实上现在还不能用,只要你一点击它,就会提示没有权限,原因是你需要在Ubuntu虚拟机中把你的当前用户添加到vboxsf用户组中:

sudo adduser codelast vboxsf

然后重启Ubuntu虚拟机,再点击共享文件夹试试看,问题解决。… Read More