【数据分析篇】thchs30(清华大学中文语料库)

简介

THCHS-30的特点

这部分我们介绍THCHS-30语音库。这个数据库是在2000-2001年记录的,第一个作者是Prof.Xiaoyan Zhu的一个研究生。这个语音库设计的目的是作为863数据库的补充,尽可能提高中文发音的涵盖率。这个新数据库叫TCMSD(清华大学连续普通话数据库),而且变得 更加开放。。我们15年前发布了这个数据库,其所有权为Prof.Zhu。后来又更名为THCHS-30,代表清华大学30小时中文语音库。THUYG-30也用了相同的命名规则,这个数据库将会在不就发布。

统计

这个数据集包含以下内容:

数据集 音频时长(h) 句子数 词数
train 25 10000 198252
dev 2:14 893 17743
test 6:15 2495 49085

还有训练好的语言模型word.3gram.lm和phone.3gram.lm以及相应的词典lexicon.txt。

概述

  • data_thchs30.tgz [6.4G] ( speech data and transcripts )
  • test-noise.tgz [1.9G] ( standard 0db noisy test data )
  • resource.tgz [24M] ( supplementary resources, incl. lexicon for training data, noise samples )

解压后:

1
2


thchs30数据量比较小,不需要GPU集群就可以快速完成训练

resource

resource/dict/lexicon.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SIL sil
<SPOKEN_NOISE> sil
啊 aa a1
啊 aa a2
啊 aa a4
啊 aa a5
啊啊啊 aa a2 aa a2 aa a2
啊啊啊 aa a5 aa a5 aa a5
阿 aa a1
阿 ee e1
阿尔 aa a1 ee er3
阿根廷 aa a1 g en1 t ing2
阿九 aa a1 j iu3
阿克 aa a1 k e4
阿拉伯数字 aa a1 l a1 b o2 sh u4 z iy4
阿拉法特 aa a1 l a1 f a3 t e4

resource/dict/lexiconp.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SIL 1.0 sil
<SPOKEN_NOISE> 1.0 sil
啊 1.0 aa a1
啊 1.0 aa a2
啊 1.0 aa a4
啊 1.0 aa a5
啊啊啊 1.0 aa a2 aa a2 aa a2
啊啊啊 1.0 aa a5 aa a5 aa a5
阿 1.0 aa a1
阿 1.0 ee e1
阿尔 1.0 aa a1 ee er3
阿根廷 1.0 aa a1 g en1 t ing2
阿九 1.0 aa a1 j iu3
阿克 1.0 aa a1 k e4
阿拉伯数字 1.0 aa a1 l a1 b o2 sh u4 z iy4
阿拉法特 1.0 aa a1 l a1 f a3 t e4

resource/dict/extra_questions.txt

1
2
3
4
5
6
7
sil
a1 ai1 an1 ang1 ao1 e1 ei1 en1 eng1 i1 ia1 ian1 iang1 iao1 ie1 in1 ing1 iong1 iu1 ix1 iy1 o1 ong1 ou1 u1 ua1 uai1 uan1 uang1 ueng1 ui1 un1 uo1 v1 van1 ve1 vn1
a2 ai2 an2 ang2 ao2 e2 ei2 en2 eng2 er2 i2 ia2 ian2 iang2 iao2 ie2 in2 ing2 iong2 iu2 ix2 iy2 o2 ong2 ou2 u2 ua2 uai2 uan2 uang2 ui2 un2 uo2 v2 van2 ve2 vn2
a3 ai3 an3 ang3 ao3 e3 ei3 en3 eng3 er3 i3 ia3 ian3 iang3 iao3 ie3 in3 ing3 iong3 iu3 ix3 iy3 o3 ong3 ou3 u3 ua3 uai3 uan3 uang3 ueng3 ui3 un3 uo3 v3 van3 ve3 vn3
a4 ai4 an4 ang4 ao4 e4 ei4 en4 eng4 er4 i4 ia4 ian4 iang4 iao4 ie4 in4 ing4 iong4 iu4 ix4 iy4 iz4 o4 ong4 ou4 u4 ua4 uai4 uan4 uang4 ueng4 ui4 un4 uo4 v4 van4 ve4 vn4
a5 ai5 an5 ang5 ao5 e5 ei5 en5 eng5 er5 i5 ia5 ian5 iang5 iao5 ie5 in5 ing5 iong5 iu5 ix5 iy5 iz5 o5 ong5 ou5 u5 ua5 uai5 uan5 uang5 ueng5 ui5 un5 uo5 v5 van5 ve5 vn5
aa b c ch d ee f g h ii j k l m n oo p q r s sh t uu vv x z zh

resource/dict/nonsilence_phones.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
a1
a2
a3
a4
a5
aa
ai1
ai2
ai3
ai4
ai5
an1
an2

resource/dict/optional_silence.txt

1
sil

resource/dict/silence_phones.txt

1
sil

数据

ss

2.1 语音信号

THCHS-30是在安静的办公室环境下,通过单个碳粒麦克风录取的,总时长超过30个小时。大部分参与录音的人员是会说流利普通话的大学生。采样频率16kHz,采样大小16bits。

THCHS-30的文本选取自大容量的新闻,目的是为了扩充863语音库。我们选取1000句来录音。表1展示了双音素和三音素的涵盖率,从表中可以看出来THCHS-30的确提高了863数据库的发音涵盖率。

这些录音根据其文本内容分成了四部分,A(句子的ID是1~250),B(句子的ID是251~500),C(501~750),D(751~1000)。ABC三组包括30个人的10893句发音,用来做训练,D包括10个人的2496句发音,用来做测试。详细信息如下表:

2.2 附加资源

为了帮助构建一个实用的中文ASR系统,一些附加的资源也随着THCHS-30发布了。这些资源包括发音词典,语言模型,训练方法和一些其他有用的工具。另外还有一些噪声条件下的语音可供使用。

2.2.1 Lexicon 和 LM(发声词典和语言模型)

我们发布了两个语言模型和配套的发声词典。基于词汇的LM包括48k个词汇,而且是基于三音素的。词汇LM的训练用的是一个从中文Gigaword语料库中随机选取的文本集合,训练内容包括772000个句子,总计一千八百万个词汇,一亿一千五百万个汉字。phone LM用了一个比较小的、包括两百万字符的数据集做训练。用一个小的文本数据做训练是因为我们想尽可能少的保留语言信息,这样结果的性能就直接与声学模型的质量有关了。这两种LM用SRILM来训练。

A星寻路算法

很多游戏特别是rts,rpg类游戏,都需要用到寻路。寻路算法有深度优先搜索(DFS),广度优先搜索(BFS),A星算法等,而A星算法是一种具备启发性策略的算法,效率是几种算法中最高的,因此也成为游戏中最常用的寻路算法。

冒泡排序

简介

冒泡排序是一种流行但低效的排序算法,它的作用是反复交换相邻的未按次序排列的元素。

BUBBLESORT(A)

1
2
3
4
for i = 1 to A.length -1
for j = A.length downto i + 1
if A[j] < A[j - 1]
exchange A[j] with A[j - 1]

#

假设$ A^{‘}$表示BUBBLESORT(A)的输出。为了证明BUBBLESORT正确,我们必须证明它将终止并且有:
$ A^{‘}[1] $

其中n=A.length。

#

冒泡排序的最坏情况运行时间是多少?与插入排序的运行时间相比,其性能如何?

参考

  • 《算法导论 - 第三版》 P23

Dropbox差异同步算法rsync及其改进算法原理

打个比方,你一共在两台电脑上(A,B)用同一个帐号的Dropbox,一共有三个文件(C,D,E),你在A电脑上删了(或者任意操作后保存)C,只要同步,B上面的C就会执行自行同步你在A上对C 的操作。至于Ipad上的同步,原理是一样。

yskin说

eDonkey2000(好吧,就是大家说的电驴)是这样实现的:把文件按固定大小分成几段,然后每段生成一个Hash码,然后再把所有Hash码合并成一个Hash码表,再对其生成一个Hash码,于是就成为了ed2k链接。下载的时候,先拿ed2k链接找人要到Hash码表,然后再根据码表分别下载每个片段。

Dropbox的增量同步也一样,每4M生成一个Hash码,然后更新的时候把码表和隐藏目录里存储的原码表做一下比较,发现1-10、12-20段都没有改变,只有11段不一样了,于是就只上传了第11段的数据。

dunning说

dropbox最初是采用了类似rsync的技术,但后来好像还是采用了Fix Sized Chunk进行。一个10MB的文档我曾经试过,修改1个字基本也有50%~70%左右的部分会被重新上传。

疑问

是否有版本记录功能?跟git什么区别?

是否是增量同步?

如何解决冲突问题?

参考

MD5

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 中被加以规范。

将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理。

1996年后被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

要解决的问题

有多个不同的源串经过MD5签名后结果相同的情况。但这不影响MD5的使用。MD5的作用并不是加密而是“签名”(Signature)

MD5的核心

  • 不易破解。运算不可逆,根据结果串非常难反推源串
  • 减少碰撞。签名后的结果分布比较均匀,发生重复的几率最小
  • 特别微小改动的两个数据,一定不要碰撞。Key值只有轻微变化,Value值也会发生很大地变化
  • “试探法”来破解MD5,付出的代价要特别高
  • 不考虑还原 (有别于压缩算法)

算法

MD5的容量,128-bits,

java对string的哈希,

碰撞概率

如果是两个随机的值,碰撞率大概在2的-128次方。

md5的组成为32位十六进制数字,共有16^32 = 3.4 * 10^38种可能

将26个英文字母组合成32位字符串将有 26^32 = 1.9 * 10^45 种可能,很显然用英文字母组合的32位字符串的可能性要远多于md5的可能性

https://stackoverflow.com/questions/8852668/what-is-the-clash-rate-for-md5

破解

文件校验

在文件大小、属性不变的前提下伪造一份MD5值一样的文件

现在MD5也不是很安全了,早几年的碰撞算法已经可以伪造一份第三方修改过的资料,当然代价还是颇高的

在网上可以下到一个叫fastcoll的小工具,这个工具可以轻松创建两个md5相同的文件,所以md5重复的概率是很大的,大到你随手就可以这样造出来一个。

加密

伪造一份MD5值一样的字符串

因为密码一般位数比较短,可以采用逆向法破解。

md5的设计思想

MD5是一种散列值,就好比你手中有一把砂子,面前有一排瓶子,你要把砂子放到瓶子里,如何才能既随机又均匀

其设计思想是使Key集合中的任意关键字能够尽可能均匀的变换到Value空间中,不同的Key对应不同的Value。通过建立Hash的方式我们能够得到O(1)的查找时间性能,其中关键在于选取一个hash function(md5就是一致hash function)。

md5这种hash函数通常情况下,Key值只有轻微变化,Value值也会发生很大地变化。 LSH正好相反,

参考

手机通信原理

寻呼

广播

由于基站空闲的话音信道是有限的, 有多少部收发信机就有多少空闲的话音信道。 当同
时呼叫的用户数超出话音信道数时, 会因信道占满而接续不上, 这时用户会得到“ 请稍候再挂”
的提示音, 这种情况相当于电话占线。

移动通信系统的多址接入技术

频分多址 FDMA 频分多路复用

依靠不同的频率来区分信道,一个信道容纳一个用户。

在频分多址方式中, 由于多个移动台进行通信时占用数量众多的频点, 浪费频率资源, 频带利用率不高。 为
了在有限的频段中增加信道数量, 希望系统中的信道间隔越窄越好。 目前, 模拟手机TACS制
采用FDMA方式。 其信道带宽25kHz ,频段带宽 25MHz,整个频段可容纳 25M/25k=1000 个用户 。

由于信道带宽的压缩是有限度的, 而用户数却不断增加, 因此FDMA 无力解决有限频段
和众多用户的矛盾。 随着移动通信的迅猛发展, 很快就显示出容量不足的缺点。 而且由于信
道频带窄,语音失真大,通话质量差。这也正是模拟制TACS 被淘汰的一个重要原因。

时分多址 TDMA 时分多路复用

不同的移动台共用一个频率。 但是各个移动台占用的时间不同, 即各
移动台占用不同的“时隙” , 分时通信。 因此一个信道可供多个用户同时通信使用而不会造成
“混台”。在信道数相同的情况下,用TDMA 技术的系统比FDMA 系统的容量高几倍。

数字移动通信GSM 制广泛采用时分多址TDMA 和频分多址FDMA 相结合的方式。
这是在一个宽带的无线载波上,按时间 ( 称为时隙)划分为若干个时分信道,每个用户占用不同的
时隙,在指定时隙内收、发信号。

码分多址 CDMA - 3G 码分多路复用

FDMA和TDMA为了扩大通信用户容量, 都尽力压缩信道带宽, 但这种压缩是有限度的, 因为这将导致通话质量下降。
而CDMA却独辟另一途径,大幅度地增加信道带宽,这就是扩频通信技术

在CDMA移动通信中,将话音频号转换为数字信号,给每组数据话音分组增加一个地址,进行扰码处理,然后将它发射到空中。CDMA最大的优点就是相同的带宽下可以容纳更多的呼叫,而且它还可以随话音传送数据信息。

有点类似计算机网络中的数据包分组(分帧),这样信息流的传输就不会混乱了。要携带分组信息,序列标号信息

采用扩频通信, 如何解决通信用户容量问题呢? 办法是不同的移动台都分配一个独特的、 随机的码序列来实现多址方式。
对于不同用户的信号, 用相互正交的不同扩频码序列( 或称为伪随机码) 来填充。
这样的信号可在同一载波上发射, 接收时只要采用与发端相同的码序列进行相关接收, 即可恢复信号。 也就是说, 数量众多的用户可以共用一个频率, 使
系统的通信容量增加。 这时, 可将CDMA看成一个蜂窝系统,整个系统使用一个频率,即各蜂窝同频, 而根据扩频码来区分用户。
这样的信号可在同CDMA中,可用带宽为12.5MHz 的整个频带去发射,亦可以12.5MHz的整个频带去接收。

CDMA的关键是所用扩频码有多少个不同的互相正交的码序列, 就有多少个不同的地址码, 也就有多少个码分信道。 为了扩大系统容量, 人们正在致力于这种正交码序列的编码研究。

细节见 https://zh.wikipedia.org/wiki/%E5%88%86%E7%A2%BC%E5%A4%9A%E9%87%8D%E9%80%B2%E6%8E%A5

CDMA是3G技术,电信用的多。

波分多路复用(WDM)

移动是没有3G牌照?搞的G3是什么鬼?

CDMA出现之前,使用模拟信号传输的?CDMA之后都改用数字信号传输了?是吗?

长期演进技术 LTE - 4G

TDD

FDD

疑问

单cpu计算要实现并行,一般采用时分复用TDMA,这里是否有频段的说法? 貌似不是一个东西。

这里讲的是模拟信号的信息流传输,瓶颈是带宽。
对于数字信号的信息流传输

3G

第三代手机显然具备这样几个特点:

  • 采用码分多址 技术, 扩展了通信频带, 不但能传送语言信号, 也为传递图像信号奠定了基础。
  • 手机中可加装微型摄像头,可实时地拍摄景物,使可视通信成为可能,可随意拨打可视电话。
  • 由于通频带拓宽,通过无线电网络技术,能轻松地上网,能浏览网页,接收电子邮件,能下载网上文件和图片, 实现多媒体通信。 因此具有掌上电脑之称。
  • 手机与商务通混然一体,能以手写体录入文字。

第三代手机有超大显示屏,触摸式键盘,具有摄像头,备有微机接口

4G

第四代手机的蓝图

美国AT&T 实验室正在研究第四代移动通信技术, 其研究的目标是提高移动手机访问互联网的速率。 目前, 手机上网的连接速率
大约为调制解调器的1/4 ,而采用4G 技术的连接速率一开始就达到拨号调制解调器的十几倍。

RRC(Radio Resource Control)无线资源控制

光光 做这个,通信里的L3。

移动通信中的无线资源管理

无线资源管理(Radio Resource Management,RRM)是通信基站结构里非常重要,也是最庞大的一个子系统。

目标是在有限带宽的条件下,为网络内无线用户终端提供业务质量保障,其基本出发点是在网络话务量分布不均匀、信道特性因信道衰弱和干扰而起伏变化等情况下,灵活分配和动态调整无线传输部分和网络的可用资源,最大程度地提高无线频谱利用率,防止网络拥塞和保持尽可能小的信令负荷。无线资源管理(RRM)的研究内容主要包括以下几个部分:功率控制、信道分配、调度、切换、接入控制、负载控制、端到端的QoS和自适应编码调制等。

简单的来说,RRM的功能就像是政府一样,负责把硬件软件整合在一起形成的处理能力进行分割,然后分配给每一个用户,用户成功接入取决于有没有被RRM接纳并且分配了资源。RRM在通信协议模型里对应着庞大的层2,也就是MAC和RLC层,MAC层在物理层之上以2层的传输间隔(如果是3G,这个间隔一般是10ms或者2ms)为单位进行调度, RLC在MAC层之上进行错误校验。

RRC处理UE(User Equipment)和eNodeB(Evolved Node-B)之间控制平面的第三层信息。

https://baike.baidu.com/item/RRC/1560254

https://www.zhihu.com/question/30293207

python编码

文档

ddd

Python获取系统编码参数的几个函数

1
2
3
4
5
6
7
系统的缺省编码(一般就是ascii): sys.getdefaultencoding()    (系统自动解码会采用这种类型)
系统当前的编码: locale.getdefaultlocale()
系统代码中临时被更改的编码(通过locale.setlocale(locale.LC_ALL,“zh_CN.UTF-8″)): locale.getlocale()
文件系统的编码: sys.getfilesystemencoding()
终端的输入编码: sys.stdin.encoding (这个类似文件系统的编码)
终端的输出编码: sys.stdout.encoding
代码的缺省编码: 文件头上# -*- coding: utf-8 –*-

头部编码

文件头部编码声明决定了python解析源码中的str的编码选择方式,比如头部声明的是utf-8编码,则代码中s="中文"python就会按照utf-8编码格式来解析,通过repr(s)可以看到字符编码是\xe4\xb8\xad\xe6\x96\x87,如果头部声明的编码是gbk编码,则python会对s采用gbk编码解析,结果是\xd6\xd0\xce\xc4

需要注意的是,文件本身的编码要跟文件头部声明编码一致,不然就会出现问题。文件本身的编码在Linux下面可以在vim下用命令set fenc来查看。如果文件本身编码是gbk,而源码文件头部声明的编码是utf-8,这样如果源码中有中文就会有问题了,因为本身中文str存储是按照gbk编码来的,而python在解析str的时候又以为是utf-8编码,这样就会报SyntaxError: (unicode error) 'utf8' codec can't decode byte错误。

###文件编码 text file encoding

  • eclipse中设置: project /resouce / text file encoding

###默认编码问题

###读写文件编码

string byte

由一系列不可改变的Unicode字符组成的叫string。而一系列不可改变的介于0-255之间的数字被称为bytes对象。

###编码示例

1
2
3
>>> a=u'中国 abc'    #  u'\u4e2d\u56fd abc'        type: unicode    len(a)=6  空格也占一个长度,一个汉字占1个长度
>>> a='中国 abc' # '\xd6\xd0\xb9\xfa abc' type: str len(a)=8 空格也占一个长度,一个汉字占2个长度
>>> a=u'中国abc'.encode('utf8') #'\xe4\xb8\xad\xe5\x9b\xbdabc' type: str len(a)=9 一个汉字占3个长度(URL中就是采用的这种编码)

###问题

###windows

对str按照文件编码或者终端的输入编码进行解码

###Linux中

我的Ubuntu中的默认编码

对str按照文件编码或者终端的输入编码进行解码

因为a是str,自动的先将 s 解码为 unicode ,然后再编码成 gb18030。
因为解码是python自动进行的,我们没有指明解码方式,python 就会使用 sys.defaultencoding 指明的方式来解码。
实际应该按照文件编码或者终端的输入编码进行解码,因此会出现错误。

系统无关

  • python安装时,默认编码是ascii, sys.getdefaultencoding() 。当程序中出现非ascii编码时,python的处理常常会报这样的错UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置将python的默认编码,一般设置为utf8的编码格式。

靠尼玛, cmd和eclipse中都是 sys.getdefaultencoding() = ascii, 为什么

转码 实例

BERT实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# https://github.com/google-research/bert/blob/master/tokenization.py#L27
import six
def convert_to_unicode(text):
"""Converts `text` to Unicode (if it's not already), assuming utf-8 input."""
if six.PY3:
if isinstance(text, str):
return text
elif isinstance(text, bytes):
return text.decode("utf-8", "ignore")
else:
raise ValueError("Unsupported string type: %s" % (type(text)))
elif six.PY2:
if isinstance(text, str):
return text.decode("utf-8", "ignore")
elif isinstance(text, unicode):
return text
else:
raise ValueError("Unsupported string type: %s" % (type(text)))
else:
raise ValueError("Not running on Python2 or Python 3?")

def printable_text(text):
"""Returns text encoded in a way suitable for print or `tf.logging`."""

# These functions want `str` for both Python2 and Python3, but in one case
# it's a Unicode string and in the other it's a byte string.
if six.PY3:
"""
python3分string类型和bytes类型?
python2呢?string类型,unicode类型,,,,?
"""
if isinstance(text, str):
return text
elif isinstance(text, bytes):
return text.decode("utf-8", "ignore")
else:
raise ValueError("Unsupported string type: %s" % (type(text)))
elif six.PY2:
if isinstance(text, str):
return text
elif isinstance(text, unicode):
return text.encode("utf-8") # 这里只支持utf-8解码,太弱了
else:
raise ValueError("Unsupported string type: %s" % (type(text)))
else:
raise ValueError("Not running on Python2 or Python 3?")

tensor2tensor实例

语种判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# https://github.com/google-research/bert/blob/master/tokenization.py#L201
def _is_chinese_char(self, cp):
"""Checks whether CP is the codepoint of a CJK character."""
# This defines a "chinese character" as anything in the CJK Unicode block:
# https://en.wikipedia.org/wiki/CJK_Unified_Ideographs_(Unicode_block)
#
# Note that the CJK Unicode block is NOT all Japanese and Korean characters,
# despite its name. The modern Korean Hangul alphabet is a different block,
# as is Japanese Hiragana and Katakana. Those alphabets are used to write
# space-separated words, so they are not treated specially and handled
# like the all of the other languages.
if ((cp >= 0x4E00 and cp <= 0x9FFF) or #
(cp >= 0x3400 and cp <= 0x4DBF) or #
(cp >= 0x20000 and cp <= 0x2A6DF) or #
(cp >= 0x2A700 and cp <= 0x2B73F) or #
(cp >= 0x2B740 and cp <= 0x2B81F) or #
(cp >= 0x2B820 and cp <= 0x2CEAF) or
(cp >= 0xF900 and cp <= 0xFAFF) or #
(cp >= 0x2F800 and cp <= 0x2FA1F)): #
return True

return False

【北大人工智能讲座系列】人工智能与量子计算 - 施尧耘

主讲老师简介

施尧耘 - 阿里巴巴接触的工程师和量子技术首席科学家/架构师。阿里云量子实验室(AQL)创始董事。

1997年在北大获得计算机科学学士学位 雷鸣大学同学。貌似不是北大毕业的
2001年在普林斯顿大学获得计算机科学博士学位

2017年9月,辞去密西根大学终身教授,加入阿里,任阿里云首席量子技术科学家/架构师

导师-姚期智

AI基础设施 - 雷鸣

硬件和平台技术

  • 硬件
    • GPU、TPU
    • FPGA
    • ASIC芯片 (目前大部分的AI芯片属于ASIC,算法固化,大部分创业公司的方向)
    • 神经网络芯片 (仍在研究阶段)
    • 光计算 (MIT等,用光学方法加速AI计算速度,比GPU上百倍提升)
    • 量子计算 (一旦在通用计算突破,将会很厉害)
  • 平台
    • TensorFlow、Caffe等
    • Amazon、Google等AI云计算平台
    • 商汤也有独立的AI平台

AUTOML,给定数据,自动选算法。牛逼牛逼啊

硬件的应用发展

  • 通用AI计算芯片的发展
    • NVIDIA引领
    • 谷歌、Intel、amazon等不断发起挑战 (google-TPU、Intel收购mobieye)
  • ASIC的发展
    • 针对高频场推出
    • 要求及时反馈的场景、端计算
    • 手机、摄像头、自动驾驶汽车等
  • 未来的发展:光计算和量子计算

ARM是端上高性能芯片

AI计算软基础设施发展

  • 开源AI计算平台,竞争激烈
  • AI云端化正在推进
  • AI工具型创业公司
    • 提供多种AI工具(和AI云会有竞争)
  • AI服务型创业公司
    • 主要ToB,帮助企业AI解决实际问题

AI+云。一体化还是两种方案并存?
因为云自身提供云存储、云计算,如果独立的AI则不易融合。一般性需求走云通道,而不用定制化。

量子计算 - 施尧耘

什么是量子计算

利用量子物理 非..性质的计算,有别于经典计算。

发展史

  • vacuum tube
  • transistor

图灵机

我勒个去,这块视频听不清啊

来自

雷鸣 & 施尧耘的报告