渗漏问题算法

点击量:124

给定由随机分布的绝缘材料和金属材料构成的组合系统:金属材料占多大比例才能使组合系统成为电导体?给定一个表面有水的多孔景观(或下面有油),水将在什么条件下能够通过底部排出(或油渗透到表面)?科学家们已经定义了一个称为渗透(percolation)的抽象过程来模拟这种情况。

继续阅读“渗漏问题算法”

机器学习:数据集的划分

点击量:358

我们都知道,机器学习需要大量的数据来训练模型,尤其是训练神经网络。在进行机器学习时,数据集一般会被划分为训练集和测试集,很多时候还会划分出验证集(个别人称之为开发集)。但是很多新手,尤其是刚刚接触到机器学习的人,往往对数据集的划分没有概念,甚至有的人把训练后得到的模型在训练数据上取得的正确率当做是实际正确率来说了,然后各种被怼。有人在答辩时说自己训练的模型正确率100%,在座的老师面面相觑,最后结果可想而知。所以我们需要搞清楚数据集的划分,以及训练集、验证集和测试集的区别和作用。

继续阅读“机器学习:数据集的划分”

当数据灾难降临时——论数据备份的一些方法和策略

点击量:71

最近有联系过我的朋友应该知道,我的电脑在最近出现了硬盘损坏的情况,这直接导致了我的一些项目的进度和写博客文章的进度被推迟,同样也影响了我一些其他方面的使用。我们都知道,一旦硬盘损坏,数据很可能会丢失,所以,我们应当定期备份数据,而且,不能抱着侥幸心理,认为这样的事情不会发生在自己的身上。我曾经也是这样认为的,当硬盘损坏的事情真的发生在自己的身上时,想哭都来不及。对于我们做机器学习的人来说,硬盘损坏,就很可能意味着,我们之前大量的研究工作会付之东流,或者我们辛辛苦苦写的即将发表的论文丢失,导致一些很严重的后果。

继续阅读“当数据灾难降临时——论数据备份的一些方法和策略”

C语言基于MPI并行计算矩阵的乘法

点击量:205

矩阵的计算是并行计算里的一个很重要的问题。矩阵是一种网格化的数据,是一组同类型数值的集合,矩阵的出现,使得代数系统更完善,对各种实际问题的求解产生了巨大的作用。但是其庞大的计算量往往令人生畏,稍微大一点的矩阵,计算就变得非常繁琐,不仅仅是人,而且串行计算的程序,也同样会变得非常缓慢。这时我们就需要并行计算来解决这些问题了。

本文使用分治思想,利用主从节点方式,实现了一个并行计算的矩阵相乘程序,并将结果跟串行程序做了对比,计算了其加速比。

继续阅读“C语言基于MPI并行计算矩阵的乘法”

几种排序算法的实现和性能比较

点击量:222

在各种各样的排序任务中,不同的算法有着不同的效果和性能,比如稳定性、时间开销、空间开销等。本文中实现了5种排序算法:
插入排序(Insertion Sort,IS)、
自顶向下归并排序(Top-down Mergesort,TDM)、
自底向上归并排序(Bottom-up Mergesort,BUM)、
随机快速排序(Random Quicksort,RQ)和
Dijktra 3路划分快速排序(Quicksortwith Dijkstra 3-way Partition,QD3P),
并且在同一台普通计算机上,针对不同输入规模的数据进行了测试,对比了上述排序算法的时间性能。

继续阅读“几种排序算法的实现和性能比较”

组合数学实现关于购票问题的求解以及多种算法实现的性能比较

点击量:134

  】程序设计中有一类问题是购票问题,在整钱找零钱时怎样的队伍排列可以使得售票处不会出现找不开零钱的局面。本文将采用五种算法分析这道题目,并对各种算法的效率加以比较。从中可以看出组合数学理论在算法优化方面起到的显著作用。

继续阅读“组合数学实现关于购票问题的求解以及多种算法实现的性能比较”

深度学习:基于keras的mnist手写数字识别

点击量:1252

在深度学习方面,Keras提供了这样一个能够非常方便地搭建神经网络的工具,而且很容易快速上手。mnist手写数字识别是神经网络入门后的一个非常容易上手做的一个程序,尤其是在使用了深度学习框架后,不论是DNN还是CNN,都很简单。这篇文章里,我将介绍一下,使用keras实现mnist手写数字识别的程序。通过这篇文章,你应该就能够学会如何通过keras搭建自己的神经网络了。

继续阅读“深度学习:基于keras的mnist手写数字识别”

使用C语言和Python基于MPI并行计算PI的值

点击量:384

圆周率PI是一个很神奇的数字,自古以来,包括数学家在内的很多人都曾使用过各种各样的算法去估算PI的真实值,并且都取得了一定的成就。古巴比伦人使用3.125作为PI的近似值,约公元前1700年的古埃及人则提出PI=3.1604,中国的祖冲之(430-501)则使用355/113作为近似值,使得PI值精确到了7位数。随着计算机的问世,以及科学技术发展的需要,PI的近似值目前精确位数早已突破万亿位。PI值除了有其每一位、每两位、每三位都符合均匀分布的统计规律特性之外,还可以用来检测计算机硬件的可靠性,而且,也可以用来入门并行计算。

继续阅读“使用C语言和Python基于MPI并行计算PI的值”

深度学习:欠拟合问题的几种解决方案

点击量:2316

我最近做深度学习在连续中文语音识别方向的应用的时候,根据一些论文和网上一些公开代码和模型结构,设计了一个神经网络的模型。但是在训练的时候,就首先遇到了很让人头疼的欠拟合问题。神经网络欠拟合的特征是,训练了很长时间,但是在训练集上,loss值仍然很大甚至与初始值没有太大区别,而且精确度也很低,几乎接近于0,在测试集上亦如此。且先不管模型结构配置的优劣,就欠拟合问题来说,需要从如下方面来着手。

继续阅读“深度学习:欠拟合问题的几种解决方案”