Blog Archive

Tuesday, May 29, 2018

7.14 — Ellipsis (and why to avoid them) | Learn C++

7.14 — Ellipsis (and why to avoid them) | Learn C++:



'via Blog this'

2018数博会:声纹身份认证云等项目完成签约,总投资达70亿元

https://mp.weixin.qq.com/s?__biz=MzA5NjA4MDYzNA==&mid=2650324396&idx=3&sn=bf12f620559fac3984e742a3133e929a&chksm=88b99a39bfce132fa7706571a5e90b143f6e0dddc6e41081ccd1fab644a48298bfad20ffc84e&mpshare=1&scene=1&srcid=0529vJmGpz9oH7ACkq4R2CWt#rd

"2018数博会:声纹身份认证云等项目完成签约,总投资达70亿元"

备受瞩目的2018中国国际大数据产业博览会(简称数博会)正在贵州如火如荼地举行。5月25日,由贵安新区主办的大数据+绿色立体出行论坛成为本届数博会的一大亮点。在该论坛上,得意音通声纹身份认证云项目与CMOS摄像模组基地、年产12GWh动力锂电池项目等24个项目与贵安新区完成集中签约,项目总投资达70亿元。



贵州省人大常委会副主任陈鸣明在论坛开幕式上介绍,贵安新区作为第八个国家级新区和全国首个国家级大数据综合试验区,自成立以来深入践行创新、协调、绿色、开放、共享的发展理念,近两年先后吸引了一批国内外知名企业落户贵安新区,奠定了大数据产业与一批新产业融合发展的新业态。

得意音通公司董事长郑方博士应邀出席本届论坛,与贵安综合保税区(电子信息产业园)管委会副主任王兵分别代表双方签署了《声纹身份认证云项目落地协议》。根据该协议,得意音通将在贵安新区建设全国首个声纹身份认证云,为各行业提供高安全、低隐私、低成本的“声纹+”身份认证服务。

在会后接受贵安新区报等媒体专访时,郑方博士表示,贵安新区大数据产业布局好,发展劲头足,应用成效高,非常值得投资。在贵安新区支持下,声纹识别身份认证云将打通领域限制,从移动金融、社保、汽车、门禁等做起,最终覆盖全行业;同时也将打通地域限制,从贵安新区起步,走向贵州、西南以及全国。

另据了解,除本届论坛外,今年的数博会上贵安新区还举行了苹果数据中心奠基仪式、国家电子政务云数据中心体系南方节点挂牌仪式、摩拜共享汽车与绿色立体出行体验等系列活动,这一系列落地项目,与声纹身份认证遥相呼应,共同构成了一个从认证到数据、从政务到出行的贵州大数据产业完整链条。


'via Blog this'

Saturday, May 26, 2018

中国90后的失控人生:越穷越忙,越拼越丧(组图) | www.wenxuecity.com

中国90后的失控人生:越穷越忙,越拼越丧(组图) | www.wenxuecity.com:



'via Blog this'

走路速度能预测寿命

走路速度能预测寿命|寿命|走路_新浪健康_新浪网: "走路速度能预测寿命"

Source: http://health.sina.com.cn/d/2018-05-26/doc-ihawmaua1245857.shtml



多项研究表明,久坐有害身体健康,适当运动有助于减轻这种伤害。最近,发表在美国肾脏病学会临床杂志上的一项研究表明,每坐1小时就站起来活动2分钟,能减少死亡风险33%,而对于那些患有慢性肾病的人,甚至能减少41%的死亡风险。



走路速度能预测寿命
  美国犹他大学的研究人员对3243名“健康与生活方式”研究参与者的相关数据进行了分析,这些人穿戴上运动感应装置以测量活动水平。研究人员利 用统计手段检查将久坐与其他活动搭配的效果。结果发现,每坐1小时站立2分钟,不会产生任何效果。而久坐后从事一些轻体力活动,如四处走动或做家务能产生 明显影响。
  首席研究人员、犹他大学肾病学家斯里尼瓦桑教授称,“久坐不动会引起肥胖、营养不良和 肾病等许多疾病。因此,根据研究结果,我们建议每小时内增加2分钟的走动,再加上一些正常的活动,每周应进行两个半小时的中等强度锻炼。中等强度锻炼能强 健心脏、肌肉和骨骼,并且带来仅靠散步无法获得的健康益处。”研究人员建议,人们不应只站起来活动,还应该远离办公桌,如走几步路,泡杯咖啡。
  走路快慢可预测寿命长短
  据美国“奥普拉网”报道,美国匹兹堡大学一项新研究发现,走路快慢可预测寿命长短。
  研究涉及3.5万名65岁以上老人,结果发现,走路速度每增加0.1米/秒,死亡危险就会下降12%。比如,在75—84岁的老年妇女中,走路 最快(速度大于等于1.4米/秒)的老人再活10年的几率为92%,而走路最慢(速度小于等于0.4米/秒)的老人再活10年的几率仅为35%。
  新研究负责人斯蒂芬妮·斯图登斯基博士表示,走路速度直接反映出一个人的活力,因为走路涉及到身体诸多器官和系统,如心脏、肺脏、肌肉、关节、 骨骼和大脑等。她认为,走路速度将成为医生在诊断过程中判断患者体质的重要依据之一,速度慢意味着患者可能存在更严重的健康问题,有必要采取措施改善血 压、饮食以及锻炼等健康因素。
  斯图登斯基博士建议,老人每年可自测一次走路速度。可以在地板上画一条4米线,以正常速度从起点走到终点,记录下所用时间,再除以4,就可得出走路速度。老人可将自测走路速度与上一年的数据进行比较,发现变化过大时,应该及时看医生。
  参考
  走路快慢能预测寿命 生命时报
  研究表明:坐1小时走2分钟,早亡几率小 生命时报
'via Blog this'

Friday, May 25, 2018

The fork() System Call

Link: http://www.csl.mtu.edu/cs4411.ck/www/NOTES/process/fork/create.html



System call fork() is used to create processes. It takes no arguments and returns a process ID. The purpose of fork() is to create a new process, which becomes the child process of the caller. After a new child process is created, both processes will execute the next instruction following the fork() system call. Therefore, we have to distinguish the parent from the child. This can be done by testing the returned value of fork():
  • If fork() returns a negative value, the creation of a child process was unsuccessful.
  • fork() returns a zero to the newly created child process.
  • fork() returns a positive value, the process ID of the child process, to the parent. The returned process ID is of type pid_t defined in sys/types.h. Normally, the process ID is an integer. Moreover, a process can use function getpid() to retrieve the process ID assigned to this process.
Therefore, after the system call to fork(), a simple test can tell which process is the child. Please note that Unix will make an exact copy of the parent's address space and give it to the child. Therefore, the parent and child processes have separate address spaces.

Let us take an example to make the above points clear. This example does not distinguish parent and the child processes. Click here to download this file fork-01.c.
#include  <stdio.h>
#include  <string.h>
//#include  <sys/types.h>
#include <unistd.h>


#define   MAX_COUNT  200
#define   BUF_SIZE   100

void  main(void)
{
     pid_t  pid;
     int    i;
     char   buf[BUF_SIZE];

     fork();
     pid = getpid();
     for (i = 1; i <= MAX_COUNT; i++) {
          sprintf(buf, "This line is from pid %d, value = %d\n", pid, i);
          write(1, buf, strlen(buf));
     } 
}
Suppose the above program executes up to the point of the call to fork() (marked in red color):

If the call to fork() is executed successfully, Unix will
  • make two identical copies of address spaces, one for the parent and the other for the child.
  • Both processes will start their execution at the next statement following the fork() call. In this case, both processes will start their execution at the assignment statement as shown below:
Both processes start their execution right after the system call fork(). Since both processes have identical but separate address spaces, those variables initialized before the fork() call have the same values in both address spaces. Since every process has its own address space, any modifications will be independent of the others. In other words, if the parent changes the value of its variable, the modification will only affect the variable in the parent process's address space. Other address spaces created by fork() calls will not be affected even though they have identical variable names.
What is the reason of using write rather than printf? It is because printf() is "buffered," meaning printf() will group the output of a process together. While buffering the output for the parent process, the child may also use printf to print out some information, which will also be buffered. As a result, since the output will not be send to screen immediately, you may not get the right order of the expected result. Worse, the output from the two processes may be mixed in strange ways. To overcome this problem, you may consider to use the "unbuffered" write.
If you run this program, you might see the following on the screen:
................
This line is from pid 3456, value 13
This line is from pid 3456, value 14
     ................
This line is from pid 3456, value 20
This line is from pid 4617, value 100
This line is from pid 4617, value 101
     ................
This line is from pid 3456, value 21
This line is from pid 3456, value 22
     ................
Process ID 3456 may be the one assigned to the parent or the child. Due to the fact that these processes are run concurrently, their output lines are intermixed in a rather unpredictable way. Moreover, the order of these lines are determined by the CPU scheduler. Hence, if you run this program again, you may get a totally different result.

Consider one more simple example, which distinguishes the parent from the child. Click here to download this file fork-02.c.
#include  <stdio.h>
#include  <sys/types.h>

#define   MAX_COUNT  200

void  ChildProcess(void);                /* child process prototype  */
void  ParentProcess(void);               /* parent process prototype */

void  main(void)
{
     pid_t  pid;

     pid = fork();
     if (pid == 0) 
          ChildProcess();
     else 
          ParentProcess();
}

void  ChildProcess(void)
{
     int   i;

     for (i = 1; i <= MAX_COUNT; i++)
          printf("   This line is from child, value = %d\n", i);
     printf("   *** Child process is done ***\n");
}

void  ParentProcess(void)
{
     int   i;

     for (i = 1; i <= MAX_COUNT; i++)
          printf("This line is from parent, value = %d\n", i);
     printf("*** Parent is done ***\n");
}
In this program, both processes print lines that indicate (1) whether the line is printed by the child or by the parent process, and (2) the value of variable i. For simplicity, printf() is used.

When the main program executes fork(), an identical copy of its address space, including the program and all data, is created. System call fork() returns the child process ID to the parent and returns 0 to the child process. The following figure shows that in both address spaces there is a variable pid. The one in the parent receives the child's process ID 3456 and the one in the child receives 0.
Now both programs (i.e., the parent and child) will execute independent of each other starting at the next statement:
In the parent, since pid is non-zero, it calls function ParentProcess(). On the other hand, the child has a zero pid and calls ChildProcess() as shown below:
Due to the fact that the CPU scheduler will assign a time quantum to each process, the parent or the child process will run for some time before the control is switched to the other and the running process will print some lines before you can see any line printed by the other process. Therefore, the value of MAX_COUNTshould be large enough so that both processes will run for at least two or more time quanta. If the value of MAX_COUNT is so small that a process can finish in one time quantum, you will see two groups of lines, each of which contains all lines printed by the same process.


'via Blog this'

Sensifai

Sensifai:

Video Recognition



'via Blog this'

Thursday, May 17, 2018

MCE 2018

http://www.mce2018.org/



MCE 2018:

The 1st Multi-target speaker detection and

identification Challenge Evaluation





Overview

The Multi-target Challenge aims to assess how well current machine learning approaches are able to determine whether or not a recorded utterance was spoken by one of a large number of "blacklisted" speakers [1]. It is a form of multi-target speaker detection based on real-world telephone conversations. Data recordings are generated from call center customer-agent conversations. Each conversation is represented by a single i-vector [2]. Given a pool of training and development data from non-Blacklist and Blacklist speakers, the task is to measure how accurately one can detect 1) whether a test recording is spoken by a Blacklist speaker, and 2) which specific Blacklist speaker was talking.

Task and Baseline

Although the original data is from the acoustic signal, no prior knowledge of speech processing is needed because each acoustic waveform is represented by a 600-dimensional vector which is called i-vector. We used a Kaldi recipe (egs/sre10/v1) to train the i-vector extractor. 13,000 hours of unlabeled speech are used to train the i-vector extractor. We provide i-vectors from 41,845 utterances for the challenge training set and 8,631 utterances for the development set. For evaluation, we will release test set i-vector from 16,017 utterances. The challenge will measure system's performance using this test set. The same blacklist speakers appear in all three sets, but the background speakers are different between train, dev and test sets.

Baseline multi-target detector system for MCE 2018
The concept of baseline system is from the multi-target detector in [1]. For each input, we rank the multi-target detector scores and accept the top-k hypotheses if the rank-1 score is above a detection threshold. If k is the size of our blacklist (S), the system only cares if input is from anyone in the blacklist or not (top-S detector). If k is 1, the system further needs to detemine who on the blacklist is speaking (top-1 detector). Additionally, multi-target score normalization (M-Norm) is applied to reduce the variability of decision score on multi-target. The purpose of M-Norm is shift and scale of score distribution between multi-target speakers and multi-target utterance to standard normal distribution. The performance will be measured in terms of Equal Error Rate (EER) for both top-S and top-1 detector cases. For more detailed information and how to measure performance, you can find at MCE 2018 Plan
An implementation of the baseline can be found here: https://github.com/swshon/multi-speakerID
In the baseline, we use the train set for training detectors and test on the development set. The result shows Top-S detector EER is 2.00% and Top-1 detector EER is 13.41% (Total confusion error is 492).


'via Blog this'

1000亿建达摩院对于阿里来说真不多,亚马逊研发投入才是世界第一_IT新闻_博客园

1000亿建达摩院对于阿里来说真不多,亚马逊研发投入才是世界第一_IT新闻_博客园:



'via Blog this'

Tuesday, May 8, 2018

Arcules

Arcules:



'via Blog this'

高盛、瑞银交易员的下岗,只是全球金融业转型的一个缩影 - 未名空间(mitbbs.com)

高盛、瑞银交易员的下岗,只是全球金融业转型的一个缩影 - 未名空间(mitbbs.com): "高盛、瑞银交易员的下岗,只是全球金融业转型的一个缩影"





一、这个时代抛弃你时,连一声再见都不会说。
  说到交易员或者银行员工,大家首先想到的是什么?高大上?分分钟就是百万级的
交易?薪水不但是行业最高、年终还能领取一大笔奖金!
  据Coalition的统计,全球最大的12家投行里(包括高盛),最普通的交易和研究
人员的平均年薪都有50万美元!据悉一位老兄在高盛工作了3年后,就在北京三环内全
款买了房。然而最近两年情况就大变天了!
  据MIT Tech Review 报道称,2000年顶峰时期,高盛在纽约总部的美国现金股票交
易柜台就雇佣了600名交易员,但时至如今,这里只剩下两名股票交易员“留守空房”!
  高盛、瑞银的交易员被替代的经历,只是全球金融公司的一个缩影。
  ➀ 2015年12月,摩根士丹利表示将在第四季度全球裁员1200人;
  ➁ 2016年1月,外媒报道瑞信对在伦敦的最多1800名员工发出裁员警告;
  ➂ 2016年3月,日本最大投行野村证券称将在北美裁员20%;
  ➃ 同月还有美银美林传出将裁逾5%交易员的消息……
  交易员为什么纷纷失业?
  活久见!连交易员、银行员工这个“金饭碗”都能失业,并且这一切还发生在全球
最高大上的投资银行高盛?

二、为什么有400多年历史的交易员会逐渐走向消失?
  追溯到世界上第一个证券交易所,1609年在荷兰阿姆斯特丹诞生。从那个年代开始
,交易员就开始逐步兴起。
  从资本市场和证券市场发展的历程来看,可以分三个重要的阶段。初级阶段由原始
的“小黑板”报价,人力喊单报价。
  第二个阶段,电脑的产生以及互联网的诞生,让资本市场产生了第二个飞跃,这个
阶段消灭了券商营业厅里的散户大厅,以往人声鼎沸的券商营业部变得门可罗雀。
  券商的营业部就是这样被干掉的,投资者对股票投资的需求没有变,但是投资场景
变了。
  直到第三个阶段,人工智能的诞生干掉的就是传统的交易员们。

三、人工智能比传统交易员强在哪里?
  说到这里,不得不把AlphaGo和李世石的人机大战拿来比喻了,4:1为结局的比赛
对整个围棋界冲击巨大的,今天他们用人工智能帮助棋手重新认识围棋,重新理解为什
么人工智能赢了他们。
  为什么?其实非常简单:人脑算力非常有限,因此在这种情况下,我们把大量人生
经验凝结成不需要从头算一遍的状态。但计算机不是,计算机永远在从头算,每一步都
算概率,每次都往最大的概率下注。
  每次从头算一遍,后面都是庞大的计算资源。所以算出了超出你的经验和定式的东
西,算出了全新的逻辑。
  而更为恐怖的是,AlphaGo的下一代Alphazero,以100:0碾压AlphaGo。
  四、人工智能目前也渗透到了股市
  Alpha H 选股工具是目前市场上第一个,把人工智能的运用在选股上的。可以根据
行业、成长性、技术指标、估值、市值、盈利、财务七大指标,一键筛选符合条件的股
票。
  如果你是价值投资者,你可以设计成长性、盈利、财务这些指标来设定你平时的选
股策略;
  如果你是技术短线投资者,你可以根据技术指标等设定策略,最后来回测选股策略
的有效性。
  如果回测的历史业绩为正,那说明你的选股策略在这几年是有效的,能够赚钱的,
如果回测历史业绩为负,那说明你的选股策略是亏损的,需要优化调整。

总 结
  工欲善其事必先利其器,跟紧科技进步的步伐,拥抱新技术,利用科学技术来辅助
投资,才能达到事半功倍的效果。 
--



'via Blog this'

转发:一篇来自宾大18届华裔学生妈妈的肺腑之言-心碎的妈妈 - Chats&&华人闲话 - Chinese In North America(北美华人e网) 北美华人e网|海外华人网上家园 - Powered by Huaren.us

转发:一篇来自宾大18届华裔学生妈妈的肺腑之言-心碎的妈妈 - Chats&&华人闲话 - Chinese In North America(北美华人e网) 北美华人e网|海外华人网上家园 - Powered by Huaren.us:



转发:一篇来自宾大18届华裔学生妈妈的肺腑之言-心碎的妈妈

转发:一篇来自宾大18届华裔学生妈妈的肺腑之言。         “心碎的妈妈——
我这两天担心得快要睡不着觉了。我家大儿子Michael,申请到了克林顿基金,很快要去西非的塞拉里昂(Sierra Leone, 也译为狮山共和国),做4个月义工——就是那个爆发伊波拉病毒、前两年刚刚结束内战、医疗条件差到去年才进口了全国第一台CT扫描仪、疟疾横生、死亡率超高……的国家。

我咬紧牙关表示支持,其实心里很害怕,我怕他不能平安回来。我先生个性极其温和,从不干涉孩子的决定,但这一次他也问儿子,能不能换个国家?因为这个国家医疗条件太差了!儿子回答:就是因为医疗条件太差,他才要去做义工,帮助那个国家改善医疗环境。

当地没有电讯条件。4个月内,孩子和父母基本失联,父母无法知道孩子的消息。只有患上重病时,国际组织救援组织会把孩子送回美国来。

我起初对大儿子说:你能不能不去?结果我小儿子Richard回答:妈妈,你认为应该谁家的儿子去?

我不得不说, 因为这件事,我平生第一次,真正开始关心世界的贫困和不幸的人,而不是像往常一样,仅仅是跟着教会捐款。

我给儿子发短信说,这件事让我反省自己两点:

1,我过去并未真正关心贫困的人,我只愿意付出自己多余的去帮助他们,并没有准备好牺牲自己。

2,我目送你进藤校的时候,是希望你将来有更好的生活(you have a better life),最后却变成,你想要一个更好的世界(you want a better world)。是我没有跟上你的成长。

是的,当我们这些家长送孩子进入美国最好的学校、希望他们受最好的教育的时候,我们并未真正明白那意味着什么。所谓的精英教育,不仅让孩子成绩更优秀、将来找到更好的工作、赚更多的钱,更将“以世界为己任“的价值观,放在了孩子心中,包括:牺牲自我、付出代价,去帮助不幸的人。这会成为他们终身的价值观,指导他们一生的生活方式。

我们这些家长,做好这样的心理准备了吗?

愿上帝保守Michael平安回来。愿他在西非的经历,成为他一生的财富。”



'via Blog this'

Monday, May 7, 2018

More Effective C++ 2ed Reading notes

Note 21: Use const whenever possible

const_cast conversion - cppreference.com:

Syntax

const_cast < new_type > ( expression )
Returns a value of type new_type.



'via Blog this'