A. RPR,ACA,TORCH,HCY是什么意思
RPR的简称Resilient Packet Ring弹性分组环
ACA是The Associate Chartered Accountant英国特许会计师的简称
TORCH是指可导致先天性宫内感染及围产期感染而引起围产儿畸形的病原体
HCY是指同型半胱氨酸(homocysteine, hCY)
具体看下面都是贴过来的,不过出处太多就不一一说明了
RPR的简称Resilient Packet Ring弹性分组环, 从字眼我们可以看出这个技术的三个特点,
首先是弹性的,这个比价复杂我们后面慢慢谈谈这些弹性的优点。
再次是Packet,这个技术基于包的传送。
最后是Ring,包的传送要建立在Ring这种拓扑结构上。而且是一种双环结构,每个环上最大的带宽1.25Gbit/s, 双环最大带宽2.5Gbit/s. 外环携带内环数据包的管理字节,内环携带外环的管理字节。这样,双环互为保护和备份。
我们来谈谈“弹性”带来的优点:
1 业务分级,将业务分为3级A,B,C. 其中A细分为两级,B细分为两级。数据类型实际上被分为5级,每一级有不同的QoS,保证业务的区分度,分别对应实时业务,非实时业务和尽力传送。
2拓扑自动发现,保证了对环上新增和移去的节点,动态实现拓扑结构更新。如果要增加或者减少RPR上的总带宽,则可以结合LCAS功能来实现。使用LCAS可以动态的调整带宽,而不影响原有业务。
3空间重用,RPR单播帧在目的节点剥离的机制,实现了环上带宽的空间重用。环上带宽可以几个点的业务共用,带宽利用率提高。
4公平算法,RPR内环和外环都支持独立的公平算法。公平算法保证了低优先级的B_EIR和C类业务在RPR环上的公平接入。通过设置公平算法的权重,可以使不同的结点具有不同的接入速率。节点可以分别在外环和内环上设置不同的权重。
5保护:wrapping+string, wrapping相当于断纤处环回,倒换时间快,但是路径不是最优。String保护模式倒换时间慢,但选择最优路径。
ACA是The Associate Chartered Accountant(英国特许会计师)的简称
ACA 专业资格在国际上享有极高声誉, 它将使你在同行中脱颖而出:在英国担任高级职务的会计师中,具有ACA 资格的人数多于具有其他任何会计师资格的人数。据2006 年4 月的一项统计, 在英国前一百家最大的上市公司中,具有会计师资格的首席财务官,财务总监及公司秘书有101 人,具有ACA 资格的人数占70%,是具有其他会计师资格人数的5 倍。
ACA 专业资格可以帮助你加速到达事业的顶峰,而且在职场上极具竞争力:在英国,由于ACA 挑选最优秀的人才参加培训,绝大多数学员都能一次考试合格。2004 年,78% 的ACA 学员一次考试合格,高于任何其他会计师资格考试。大部分ACA学员在取得资格后很快晋升为事务所的合伙人或公司的财务总监,还有一些人拥有自己的公司,供职于政府部门或被公司派到海外工作。
ACA 专业资格获得全世界的认可:英国特许会计师协会与下列国家的会计师协会签有会员互认协议:加拿大,澳大利亚,新西兰,欧共体成员国,香港和南非;允许其会员申请成为这些协会的会员(在满足某些特定条件的前提下)。世界上140 个国家都有ACA 在那里工作。作为世界上唯一一家设有专家小组的协会,这些专家在会员终生的事业发展过程中提供技术上,经验上和政策更新方面的帮助。协会的网站为会员提供大量的信息资源。国际会员小组在世界上许多国家都非常活跃,定期组织活动,为会员提供交流和联谊的机会。
TORCH是指可导致先天性宫内感染及围产期感染而引起围产儿畸形的病原体,它是一组病原微生物的英文名称缩写,其中T(Toxopasma)是弓形虫,R(Rubella.Virus)是风疹病毒,C(Cytomegalo.Virus)是巨细胞,H(Herpes.Virus)即是单纯疱疹I/II型。
这组微生物感染有着共同的特征,即可造成母婴感染。孕妇由于内分泌改变和免疫力下降易发生原发感染,既往感染的孕妇体内潜在的病毒也容易被激活而发生复发感染。孕妇发生病毒血症时,病毒可通过胎盘或产道传播感染胎儿,引起早产、流产、死胎或畸胎等,以及引起新生儿多个系统、多个器官的损害,造成不同程度的智力障碍等症状。特别在怀孕初的三个月胚胎处于器官形成期,此时受病毒感染,可破坏细胞或抑制细胞的分裂和增值。器官形成期以后感染病毒,可破坏组织和器官结构,并可形成持续感染,出生后继续排毒,能引起相应的病变。固TORCH的感染影响者人口素质,与优生优育有重要关系。
【TORCH的感染】
风疹(RV)感染:RV主要通过呼吸道传播,孕妇感染后能使胎儿致畸,主要围先天性白内障、先天性心脏病和神经性耳聋,20周后感染者几乎无影响。
巨细胞(CMV):感染后能引起宫内胎儿生长迟缓、小头形、脑炎、视网膜脉膜炎、黄疸、肝脾肿大、溶血性贫血等,新生儿死亡率较高,围产期母乳排毒所致的CMV感染率为63%。单纯疱疹(HSV I、II型)感染:HSV通常潜伏在神经节。妊娠时母体的生理变化使HSV活化,孕早期感染能破坏胚芽面导致流产,孕中晚期虽少发畸胎,但可引起胎儿和新生儿发病。
【TORCH检测意义】
TORCH综合症患者造成孕妇流产、死胎,出生后有严重的智力障碍,生活不能自理,造成极大的精神及经济负担。我国每年约有26000个TORCH患儿出生,平均每小时就有3人,对优生优育与人口素质构成极大的威胁,因此它的感染诊治工作引起普遍关注。
【TORCH检测的方法】
目前,国际上公认的最方便、最先进的早期筛查方法是采用ELISA酶免诊断技术。ELISA酶免检测方法是检测人体血清中的特异性IgM、IgG抗体,由于IgM为早期感染指标,对胎儿影响巨大,所以IgM的检测备受关注,胎盘中特异性IgM的检测是诊断胎儿宫内感染的可靠依据。ELISA试剂因其稳定、灵敏度高、特异性强、成本低等优点而在普通实验室中广泛采用。
hcy 同型半胱氨酸是人体内含硫氨基酸的一个重要的代谢中间产物,可能是动脉粥样硬化等心血管疾病发病的一个独立危险因子。血浆中同型半胱氨酸含量与遗传因素、营养因素、雌激素水平、年龄因素等有关,与同型半胱氨酸代谢有关的N5N10-亚甲基四氢叶酸还原酶和胱硫醚-β-合成酶的基因突变,酶活性下降,也可引起高同型半胱氨酸血症。
B. ubuntu下怎么安装torch
Torch简介
Torch是一个广泛支持机器学习算法的科学计算框架,由于采用简单而快速的脚本语言LuaJIT和一个底层的C/CUDA实现,Torch易于使用且高效。
Torch安装
首先,值得注意的是,最新版的Torch支持Ubuntu,Fedora20,Fedora22,Centos7。但不支持Fedora21,Centos6。
参考官网安装流程安装,如下所示,
# in a terminal, run the commands
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh12341234
在执行bash install-deps安装依赖时并未出错,但执行./install.sh时会出一些错误,见下面。
Torch安装问题汇总
错误1
错误类似于:
nvcc error : '***' died e to signal 2
解决方案:sudo ./install.sh
错误2
Error: Build error: Failed building.
Updating manifest for /root/torch/install/lib/luarocks/rocks
fftw3 scm-1 is now built and installed in /root/torch/install/ (license: BSD)123123
错误3
Error: Failed installing dependency: https://raw.githubusercontent.com/rocks-moonscript-org/moonrocks-mirror/master/luacrypto-0.3.2-1.src.rock - Could not find header file for OPENSSL
No file openssl/evp.h in /usr/local/include
No file openssl/evp.h in /usr/include
You may have to install OPENSSL in your system and/or pass OPENSSL_DIR or OPENSSL_INCDIR to the luarocks command.
Example: luarocks install luacrypto OPENSSL_DIR=/usr/local1234512345
参照Problem with Torch #86,执行sudo apt-get install -y libssl-dev安装libssl-dev,之后重新安装Torch即可。
错误4
提示缺少依赖lbase64 ,luacrypto,uuid 等,可直接执行luarocks install missed-package解决。
C. 优就业大数据好还是尚观好
一,题记
要说当下IT行业什么最火?ABC无出其右。所谓ABC者,AI + Big Data + Cloud也,即人工智能、大数据和云计算(云平台)。每个领域目前都有行业领袖在引领前行,今天我们来讨论下大数据Big Data这个方向。如果您感觉阅读文字太累,可以点击下面音频!
二,大数据里面的角色
角色一:大数据工程
大数据工程需要解决数据的定义、收集、计算与保存的工作,因此大数据工程师们在设计和部署这样的系统时首要考虑的是数据高可用的问题,即大数据工程系统需要实时地为下游业务系统或分析系统提供数据服务;
角色二:大数据分析
大数据分析角色定位于如何利用数据——即从大数据工程系统中接收到数据之后如何为企业或组织提供有产出的数据分析,并且确实能够帮助到公司进行业务改善或提升服务水平,所以对于大数据分析师来说,他们首要解决的问题是发现并利用数据的价值,具体可能包括:趋势分析、模型建立以及预测分析等。
这两类角色相互依存但又独立运作,何意?没有大数据工程,大数据分析便无从谈起;但倘若没有大数据分析,我也实在想不出大数据工程存在的理由。这就类似于结婚和谈恋爱——恋爱的目的是为了结婚,且不以结婚为目的的谈恋爱都是耍流氓。
简单总结一下,大数据工程角色需要考虑数据的收集、计算(或是处理)和保存;大数据分析角色则是执行数据的高级计算。
三,大数据工程师
针对角色一:大数据工程说,对应的工作岗位就叫大数据工程师,对于大数据工程师而言,您至少要掌握以下技能:
linux基础
因为大数据体系,基本都是开源软件,这些开源软件都是在开源的linux系统上运行的,所以你必须会基本的linux操作,比如用户管理,权限,shell编程之类的
一门JVM系语言:
当前大数据生态JVM系语言类的比重极大,某种程度上说是垄断也不为过。这里我推荐大家学习Java或Scala,至于Clojure这样的语言上手不易,其实并不推荐大家使用。另外,如今是“母以子贵”的年代,某个大数据框架会带火它的编程语言的流行,比如Docker之于Go、Kafka之于Scala。
因此这里建议您至少要精通一门JVM系的语言。值得一提的,一定要弄懂这门语言的多线程模型和内存模型,很多大数据框架的处理模式其实在语言层面和多线程处理模型是类似的,只是大数据框架把它们引申到了多机分布式这个层面。
建议:学习Java或Scala
计算处理框架:
严格来说,这分为离线批处理和流式处理。流式处理是未来的趋势,建议大家一定要去学习;而离线批处理其实已经快过时了,它的分批处理思想无法处理无穷数据集,因此其适用范围日益缩小。事实上,Google已经在公司内部正式废弃了以MapRece为代表的离线处理。
因此如果要学习大数据工程,掌握一门实时流式处理框架是必须的。当下主流的框架包括:Apache Samza, Apache Storm, Apache Spark Streaming以及最近一年风头正劲的Apache Flink。当然Apache Kafka也推出了它自己的流式处理框架:Kafka Streams
建议:学习Flink、Spark Streaming或Kafka Streams中的一个。
分布式存储框架:
虽说MapRece有些过时了,但Hadoop的另一个基石HDFS依然坚挺,并且是开源社区最受欢迎的分布式存储,绝对您花时间去学习。
资源调度框架:
Docker可是整整火了最近一两年。各个公司都在发力基于Docker的容器解决方案,最有名的开源容器调度框架就是K8S了,但同样着名的还有Hadoop的YARN和Apache Mesos。后两者不仅可以调度容器集群,还可以调度非容器集群,非常值得我们学习。
分布式协调框架:
有一些通用的功能在所有主流大数据分布式框架中都需要实现,比如服务发现、领导者选举、分布式锁、KV存储等。这些功能也就催生了分布式协调框架的发展。最古老也是最有名的当属Apache Zookeeper了,新一些的包括Consul,etcd等。学习大数据工程,分布式协调框架是不能不了解的, 某种程度上还要深入了解。
列式存储数据库:
曾经花了很长的时间学习Oracle,但不得不承认当下关系型数据库已经慢慢地淡出了人们的视野,有太多的方案可以替代rdbms了。人们针对行式存储不适用于大数据ad-hoc查询这种弊端开发出了列式存储,典型的列式存储数据库就是开源社区的HBASE。
消息队列:
大数据工程处理中消息队列作为“削峰填谷”的主力系统是必不可少的,当前该领域内的解决方案有很多,包括ActiveMQ,Kafka等。国内阿里也开源了RocketMQ。这其中的翘楚当属Apache Kafka了。Kafka的很多设计思想都特别契合分布流式数据处理的设计理念。这也难怪,Kafka的原作者Jay Kreps可是当今实时流式处理方面的顶级大神。
建议:学习Kafka,不仅仅好找工作(几乎所有大数据招聘简历都要求会Kafka:-) ),还能触类旁通进一步理解基于备份日志方式的数据处理范型
四,大数据分析师Or数据科学家
针对角色二:大数据分析,对应的工作岗位就叫大数据分析师或者数据科学家,作为数据科学家的我们必须要掌握以下技能:
数学功底:
微积分是严格要掌握的。不一定要掌握多元微积分,但一元微积分是必须要熟练掌握并使用的。另外线性代数一定要精通,特别是矩阵的运算、向量空间、秩等概念。当前机器学习框架中很多计算都需要用到矩阵的乘法、转置或是求逆。虽然很多框架都直接提供了这样的工具,但我们至少要了解内部的原型原理,比如如何高效判断一个矩阵是否存在逆矩阵并如何计算等。
重温同济版《高等数学》,有条件可以去Coursea学习宾夕法尼亚大学的微积分课程
推荐学习Strang的线性代数:《Introction to Linear Algebra》——这是最经典的教材,没有之一!
数理统计:
概率和各种统计学方法要做到基本掌握,比如贝叶斯概率如何计算?概率分布是怎么回事?虽不要求精通,但对相关背景和术语一定要了解
找一本《概率论》重新学习下
交互式数据分析框架:
这里并不是指SQL或数据库查询,而是像Apache Hive或Apache Kylin这样的分析交互框架。开源社区中有很多这样类似的框架,可以使用传统的数据分析方式对大数据进行数据分析或数据挖掘。
有过使用经验的是Hive和Kylin。不过Hive特别是Hive1是基于MapRece的,性能并非特别出色,而Kylin采用数据立方体的概念结合星型模型,可以做到很低延时的分析速度,况且Kylin是第一个研发团队主力是中国人的Apache孵化项目,因此日益受到广泛的关注。
首先学习Hive,有时间的话了解一下Kylin以及背后的数据挖掘思想。
机器学习框架:
机器学习当前真是火爆宇宙了,人人都提机器学习和AI,但笔者一直认为机器学习恰似几年前的云计算一样,目前虽然火爆,但没有实际的落地项目,可能还需要几年的时间才能逐渐成熟。
不过在现在就开始储备机器学习的知识总是没有坏处的。说到机器学习的框架,大家耳熟能详的有很多种, 信手拈来的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow领衔。
当前建议大家选取其中的一个框架进行学习,但以我对这些框架的了解,这些框架大多很方便地封装了各种机器学习算法提供给用户使用,但对于底层算法的了解其实并没有太多可学习之处。因此还是建议可以从机器学习算法的原理来进行学习
D. torch中的7*7的矩阵怎么写
这个简单
1
2
3
4
5
6
7
8
9
10
a=[1,2,3,4;2,3,4,1;3,4,1,2;4,1,2,3];
b=[3,4,4,1];%小矩阵
N=size(a);
M=size(b);
for i=1:N(1)-M(1)+1
for j=1:N(2)-M(2)+1
if(a(i:i+M(1)-1,j:j+M(2)-1)==b)
fprintf('位置在大矩阵的%d行%d列到%d行%d列',i,j,i+M(1)-1,j+M(2)-1))
end
end
E. 如何选择深度学习框架 TensorFlow/Torch/Mxnet/Theano
符号计算构架(如 CNTK,MXNET,TensorFlow,Theano)被定义为一个向量运算符的符号图,例如矩阵的加法/乘法或卷积。一个层仅是这些运算符的组合。构造块(运算符)良好的粒度允许用户在不需要在低级语言(如在 Caffe 中)中实现的情况下,开发新的复杂层类型。
F. torch比numpy慢
torch比numpy慢。
numpy是python中处理数据的模块,可以处理各种的矩阵(matrix)。
Torch自称为神经网络中的numpy。它会将torch产生的tensor放在GPU中加速运算,就像numpy会把array放在CPU中加速运算。
G. 普通程序员如何向人工智能方向转型
当下,人工智能已经成为越来越火的一个方向。普通程序员,如何转向人工智能方向,是知乎上的一个问题。
这个学习路线是这样设计的:首先了解这个领域,建立起全面的视野,培养起充足的兴趣,然后开始学习机器学习的基础,这里选择一门由浅入深的课程来学习,课程最好有足够的实验能够进行实战。基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题。
这时还是可以把机器学习方法当作一个黑盒子来处理的。实战经验积累以后,可以考虑继续进行学习。这时候有两个选择,深度学习或者继续机器学习。深度学习是目前最火热的机器学习方向,其中一些方法已经跟传统的机器学习不太一样,因此可以单独学习。除了深度学习以外,机器学习还包括统计学习,集成学习等实用方法。
如果条件足够,可以同时学习两者,一些规律对两者是共通的。学习完后,你已经具备了较强的知识储备,可以进入较难的实战。这时候有两个选择,工业界的可以选择看开源项目,以改代码为目的来读代码;学术界的可以看特定领域的论文,为解决问题而想发论文。
无论哪者,都需要知识过硬,以及较强的编码能力,因此很能考察和锻炼水平。经过这个阶段以后,可以说是踏入AI领域的门了。“师傅领进门,修行在个人”。之后的路就要自己走了。
下面是关于每个阶段的具体介绍:
0.领域了解
在学习任何一门知识之前,首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?如果不理解这些的话,那么学习本身就是一个没有方向的舟,不知道驶向何处,也极易有沉船的风险。了解这些问题后,你才能培养出兴趣,兴趣是最好的引路人,学习的动力与持久力才能让你应付接下来的若干个阶段。关于机器学习是什么,能做什么,它与深度学习以及人工智能的关系,可以看我写的博客从机器学习谈起。
1.知识准备
如果你离校过久,或者觉得基础不牢,最好事先做一下准备复习工作。“工欲善其事,必先利其器”。以下的准备工作不多,但足以应付后面阶段的学习。
数学:复习以下基本知识。线性代数:矩阵乘法;高数:求导;概率论:条件与后验概率。其他的一些知识可以在后面的学习的过程中按需再补;
英文:常备一个在线英文词典,例如爱词霸,能够不吃力的看一些英文的资料网页;
FQ:可以随时随地上Google,这是一个很重要的工具。不是说网络查的不能看,而是很多情况下Google搜出来的资料比网络搜的几十页的资料还管用,尤其是在查英文关键字时。节省时间可是很重要的学习效率提升;
2.机器学习
机器学习的第一门课程首推Andrew Ng的机器学习。这门课程有以下特点:难度适中,同时有足够的实战例子,非常适合第一次学习的人。cs229这门课程我这里不推荐,为什么,原因有以下:
时间:cs229的时间太早,一些知识已经跟不上当今的发展,目前最为火热的神经网络一笔带过。而Cousera上神经网络可是用了两个课时去讲的!而且非常详细;教学:Ng在cs229时候的教学稍显青涩,可能是面对网络教学的原因。有很多问题其实他都没有讲清楚,而且下面的人的提问其实也很烦躁,你往往不关心那些人的问题。这点在Coursera上就明显得到了改善,你会发现Ng的教学水平大幅度改善了,他会对你循循善诱,推心置腹,由浅入深的教学,在碰到你不明白的单词术语时也会叫你不要担心,更重要的,推导与图表不要太完善,非常细致清晰,这点真是强力推荐;字幕:cs229的字幕质量比Coursera上的差了一截。Coursera上中文字幕翻译经过了多人把关,质量很有保证;作业:cs229没有作业,虽然你可以做一些,但不会有人看。这点远不如Coursera上每周有deadline的那种作业,而且每期作业提交上去都有打分。更重要的是,每期作业都有实际的例子,让你手把手练习,而且能看到自己的成果,成就感满满!
3.实践做项目
学习完了基础课程,你对机器学习就有了初步了解。现在使用它们是没有问题的,你可以把机器学习算法当作黑盒子,放进去数据,就会有结果。在实战中你更需要去关心如何获取数据,以及怎么调参等。如果有时间,自己动手做一个简单的实践项目是最好的。
这里需要选择一个应用方向,是图像(计算机视觉),音频(语音识别),还是文本(自然语言处理)。这里推荐选择图像领域,这里面的开源项目较多,入门也较简单,可以使用OpenCV做开发,里面已经实现好了神经网络,SVM等机器学习算法。项目做好后,可以开源到到 Github 上面,然后不断完善它。实战项目做完后,你可以继续进一步深入学习,这时候有两个选择,深度学习和继续机器学习;
4.深度学习
深度学习:深度学习是目前最火热的研究方向。有以下特点:知识更新快,较为零碎,没有系统讲解的书。因此学习的资源也相对零散,下面是一些资源介绍。其中不推荐的部分并不代表不好,而是在这个初学阶段不合适:
推荐,UFLDL:非常好的DL基础教程,也是Andrew Ng写的。有很详尽的推导,有翻译,且翻译质量很高;推荐,Deep learning (paper):2015年Nature上的论文,由三位深度学习界的大牛所写,读完全篇论文,给人高屋建瓴,一览众山小的感觉,强烈推荐。如果只能读一篇论文了解深度学习,我推荐此篇。这篇论文有同名的中文翻译;推荐,Neural networks and deep learning:这本书的作者非常擅长以浅显的语言表达深刻的道理,虽然没有翻译,但是阅读并不困难;推荐,Recurrent Neural Networks:结合一个实际案例告诉你RNN是什么,整篇教程学完以后,会让你对RNN如何产生作用的有很清晰的认识,而这个效果,甚至是读几篇相关论文所没有的;不推荐,Neural Networks for Machine Learning University of Toronto Coursera:深度学习创始人教的课,最大的问题是太难,而且老先生的吐字有时不是很标准;不推荐,Deep Learning (book):同样也是由深度学习大牛所写的书,但感觉就像是第二作者,也就是他的学生所写的。很多内容都讲了,但是感觉也没讲出什么内容来,只是告诉你来自那篇论文,这样的话可能直接阅读论文更合适。不推荐,cs231n:李菲菲的课程,很有名,专门讲CNN。但是这门课程有一个最大的问题,就是没有字幕,虽然有youtube的自动翻译字幕,但有还不如没有。
5.继续机器学习
深度学习未必就是未来的一定主流,至少一些大牛是这么认为的。传统的机器学习有如下特点,知识系统化,有相对经典的书。其中统计学习(代表SVM)与集成学习(代表adaboost)是在实践中使用非常多的技术。下面是相关资源:
推荐,机器学习(周志华):如果是在以前,机器学习方面的经典教材首推PRML,但现在周老师的书出来以后,就不再是这样了。首先推荐读周老师的书。这本书有一个特点,那就是再难的道理也能用浅显精炼的语言表达出来。正如周老师的名言:“体现你水平的地方是把难的东西讲容易了,而不是把容易的东西讲难,想把一个东西讲难实在太简单”;
不推荐,Pattern Recognition And Machine Learning:当前阶段不推荐。PRML是以贝叶斯的观点看待很多机器学习方法,这也是它的一大特色。但对于初学者来说,这种观点其实并无必要。而且此书没有中文翻译,当前阶段硬啃很容易放弃;
6.开源项目
当知识储备较为充足时,学习可以再次转入实践阶段。这时候的实践仍然可以分两步走,学习经典的开源项目或者发表高质量的论文。开源项目的学习应该以尽量以优化为目的,单纯为读代码而学习效果往往不太好。好的开源项目都可以在Github 里搜索。这里以深度学习为例。深度学习的开源优秀库有很多,例如torch,theano等等,这里列举其中的两个:
推荐,DeepLearnToolbox:较早的一个深度学习库,用matlab语言撰写,较为适合从刚学习的课程转入学习。遗憾的是作者不再维护它了;
推荐,tensorflow:Google的开源库,时至今日,已经有40000多个star,非常惊人,支持移动设备;
7.会议论文
较好的课程都会推荐你一些论文。一些着名的技术与方法往往诞生于一些重要的会议。因此,看往年的会议论文是深入学习的方法。在这时,一些论文中的内容会驱使你学习数学中你不擅长的部分。有时候你会觉得数学知识储备不够,因此往往需要学习一些辅助课程。
当你看完足够的论文以后,在这个阶段,如果是在校学生,可以选择某个课题,以发论文为目的来学习研究。一般来说,论文是工作的产物。有时候一篇基于实验的论文往往需要你写代码或者基于开源项目。因此开源项目的学习与会议论文的工作两者之间是有相关的。
两者可以同时进行学习。关于在哪里看论文,可以看一下CCF推荐排名,了解一下这个领域里有哪些优秀的会议。
下面介绍两个图像与机器学习领域的着名顶级会议:
CVPR:与另两个会议ICCV和ECCV合称计算机视觉领域的三大会,注意会议每年的主页是变动的,因此搜索需要加上年份;Conference on Neural Information Processing Systems:简称NIPS,许多重要的工作发表在这上面,例如关于CNN的一篇重要论文就是发表在上面;
8.自由学习
到这里了,可以说是进入这个门了。下面可以依据兴趣来自由学习。前阶段不推荐的学习资源也可随意学习,下面是点评:
cs229:Ng写的讲义很不错,其中关于SVM的推导部分很清晰,想学习SVM推荐;Neural Networks for Machine Learning:大牛的视角跟人就是不一样,看看Hinton对神经网络是怎么看的,往往会让你有种原来如此的感悟。其实看这门课程也等同于读论文,因为几乎每节课的参考资料里都有论文要你读;CS231n: Convolutional Neural Networks for Visual Recognition:最新的知识,还有详细的作业。国内应该有团队对字幕进行了翻译,可以找找;PRML:作为一门经典的机器学习书籍,是很有阅读必要的,会让你对机器学习拥有一个其他的观察视角;
五.总结
本文的目的是帮助对AI领域了解不深,但又想进入的同学踏入这个门。这里只说踏入,是因为这个领域的专精实在非常困难,需要数年的积累与努力。在进行领域学习前,充分认识自己的特点,制定合适的学习方法是十分重要的。
首先得对这个领域进行充分了解,培养兴趣。在学习时,保持着循序渐进的学习方针,不要猛进的学习过难资源;结合着学习与实践相辅的策略,不要只读只看,实际动手才有成就感。学习某个资源时要有充分的目的,不是为了学开源项目而看代码,而是为了写开源项目而看;不是为了发论文而写论文,而是为了做事情而写论文。
本文来自公众号:“大技术技术汇”,guanzhu了解大数据行业学习大数据技术和学习路线,还有免费学习资料放送。
如果一个学习资源对你过难,并不代表一定是你的问题,可能是学习资源的演讲或撰写人的问题。能把难的问题讲简单的人才是真正有水平的人。所以,一定要学习优质资源,而不是不分青红皂白的学习。最后,牢记以兴趣来学习。学习的时间很长,过程也很艰难,而只有兴趣才是让你持之以恒,攻克难关的最佳助力。
H. 数据科学家要具备哪些能力
数学功底:微积分是严格要掌握的。不一定要掌握多元微积分,但一元微积分是必须要熟练掌握并使用的。另外线性代数一定要精通,特别是矩阵的运算、向量空间、秩等概念。当前机器学习框架中很多计算都需要用到矩阵的乘法、转置或是求逆。虽然很多框架都直接提供了这样的工具,但我们至少要了解内部的原型原理,比如如何高效判断一个矩阵是否存在逆矩阵并如何计算等。
数理统计:概率论和各种统计学方法要做到基本掌握,比如贝叶斯概率如何计算,概率分布是怎么回事,虽不要求精通,但对相关背景和术语一定要了解。
交互式数据分析框架:这里并不是指SQL或数据库查询,而是像Apache Hive或Apache Kylin这样的分析交互框架。开源社区中有很多这样类似的框架,可以使用传统的数据分析方式对大数据进行数据分析或数据挖掘。笔者有过使用经验的是Hive和Kylin。不过Hive特别是Hive1是基于MapRece的,性能并非特别出色,而Kylin采用数据立方体的概念结合星型模型,可以做到很低延时的分析速度,况且Kylin是第一个研发团队主力是中国人的Apache孵化项目,因此日益受到广泛的关注。
机器学习框架:机器学习当前真是火爆宇宙了,人人都提机器学习和AI,但笔者一直认为机器学习恰似几年前的云计算一样,目前虽然火爆,但没有实际的落地项目,可能还需要几年的时间才能逐渐成熟。不过在现在就开始储备机器学习的知识总是没有坏处的。说到机器学习的框架,大家耳熟能详的有很多种, 信手拈来的就包括TensorFlow、Caffe8、Keras9、CNTK10、Torch711等,其中又以TensorFlow领衔。笔者当前建议大家选取其中的一个框架进行学习,但以我对这些框架的了解,这些框架大多很方便地封装了各种机器学习算法提供给用户使用,但对于底层算法的了解其实并没有太多可学习之处。因此笔者还是建议可以从机器学习算法的原理来进行学习。
I. Pytorch损失函数问题X输入8*n的矩阵,y输入8*1的矩阵,损失函数如何计算是计算每一个数
摘要 这个比较简单,没有太多好说的,就是两者做差取绝对值,然后求和取平均。
J. TensorFlow的优势和缺点有哪些
很多神经网络框架已开源多年,支持机器学习和人工智能的专有解决方案也有很多。多年以来,开发人员在Github上发布了一系列的可以支持图像、手写字、视频、语音识别、自然语言处理、物体检测的机器学习框架,但并没有一种框架可以完美地解决你所有的需求。那么该如何选择最适合你的开源框架呢?希望下面带有描述的图表以及分析可以带给你以启发,以此来选择最适合你的业务需求的框架。
下图总结了绝大多数Github上的开源深度学习框架项目,根据项目在Github的Star数量来评级,数据采集于2017年5月初。
图片描述
TensorFlow
TensorFlow框架的前身是Google的DistBelief V2,是谷歌大脑项目的深度网络工具库,一些人认为TensorFlow是借鉴Theano重构的。
Tensorflow一经开源,马上引起了大量开发者的跟进。Tensorflow广泛支持包括图像、手写字、语音识别、预测和自然语言处理等大量功能。TensorFlow遵循Apache 2.0开源协议。
TensorFlow在2017年2月15号发布了其1.0版本,这个版本是对先前八个不完善版本的整合。以下是TensorFlow取得成功的一些列原因:
TensorFLow提供这些工具:
TensorBroad是一个设计优良的可视化网络构建和展示工具;
TensorFlow Serving通过保持相同的服务器架构和API,可以方便地配置新算法和环境。TensorFlow Serving 还提供开箱即用的模型,并且可以轻松扩展以支持其他的模型和数据。
TensorFlow编程接口包括Python和C++,Java,Go,R和Haskell语言的接口也在alpha版中支持。另外,TensorFlow还支持谷歌和亚马逊的云环境。
TensorFlow的0.12版本支持Windows 7, 8, Server 2016系统。由于采用C++ Eigen库,TensorFlow类库可以在ARM架构平台上编译和优化。这意味着你可以不需要额外实现模型解码器或者Python解释器就可以在多种服务器和移动设备上部署训练好的模型。
TensorFlow提供细致的网络层使用户可以构建新的复杂的层结构而不需要自己从底层实现它们。子图允许用户查看和恢复图的任意边的数据。这对复杂计算的Debug非常有用。
分布式TensorFlow在0.8版本推出,提供了并行计算支持,可以让模型的不同 部分在不同设备上并行训练。
TensorFlow在斯坦福大学,伯克利学院,多伦多大学和Udacity(2016年3月成立的在线学校)均有教学。
TensorFlow的缺点有:
每个计算流必须构建成图,没有符号循环,这样使得一些计算变得困难;
没有三维卷积,因此无法做视频识别;
即便已经比原有版本(0.5)快了58倍,但执行性能仍然不及它的竞争者。
Caffe
Caffe是贾扬清的作品,目前,贾扬清是Facebook AI平台的Lead。始于2013年末,Caffe可能是第一个主流的工业级的深度学习工具包。Caffe具有卓越的卷积模型,是计算机视觉领域最受欢迎的工具之一,且2014年ImageNet 大赛的获奖作品使用的就是Caffe框架。Caffe遵循BSD 2-Clasuse 协议。
Caffe的高速使得它非常适合于科研和商业领域。利用一个NVIDIA K40 GPU,Caffe可以每天处理60M张图片,即推断1毫秒一张,训练4毫秒一张。使用最新的版本,甚至可以更快。
Caffe底层是用C++实现的,可以在各种设备上编译。Caffe是跨平台的并且提供Windows接口,它提供C++,Python和Matlab语言接口。Caffe拥有着庞大的用户社区,并且有大量深度网络模型在社区上贡献,被称为“Model Zoo”。其中,AlexNet和GoogleNet是最着名的两个。
Caffe是视觉识别的流行框架,然而Caffe不提供像TensorFlow,CNTK或Theano一样细粒度的层结构。你必须编写底层代码来构建复杂的层结构。由于它的固有架构,Caffe对循环网络和语言模型的支持不力。
Caffe2
贾扬清和他的团队目前在Facebook致力于Caffe2的研发。2017年4月18号,Facebook基于BSD协议开源了Caffe2。Caffe2聚焦于模块化,在移动设备和大规模部署均表现出色。和TensorFlow一样,Caffe2页使用C++ Eigen以支持ARM架构。
Caffe的模型可以通过脚本轻松转化成Caffe2模型。Caffe在设计上的倾向使得它特别适合视觉相关的问题,Caffe2沿袭了它对视觉问题的强大支持,同时还加入了RNN和LSTM以更好地支持自然语言处理,手写字识别和时间序列预测。
可以预见在不远的将来Caffe2将会替代Caffe在深度学习社区的地位。
Microsoft Cognitive Toolkit
Microsoft Cognitive Toolkit(CNTK)设计的初衷是用于语音识别领域。CNTK支持RNN(循环神经网络)和CNN(卷积神经网络),因此他有能力胜任图像、手写字和语音识别问题。CNTK支持64位Linux和Windows系统,提供Python和C++语言接口,遵循MIT协议。
CNTK与TensorFlow和Theano有着类似的设计理念——把网络定义成向量操作的语义图,向量操作例如矩阵加法、矩阵乘法以及卷积。同时,CNTK也提供细粒度的网络层设计,允许用户使用它们设计新的复杂网络。
和Caffe一样,CNTK底层也是C++实现并具有跨平台CPU/GPU支持。搭载在Azure GPU Lab上,CNTK能发挥出最高的分布式计算性能。目前,CNTK由于不支持ARM架构,限制了其在移动端的应用。
MXNet
MXNet源自于卡内基梅隆大学和华盛顿大学。MXNet是一个极具特色,可编程,可扩展的深度学习框架。MXNet可以混合多种语言的模型和代码,包括Python, C++, R, Scala, Julia, Matlab, JavaScript。2017年1月30号,MXNet被纳为Apache基金会孵化项目。
MXNet支持CNN、RNN、LSTM, 提供对图像,手写字,语音识别,预测和自然语言问题的强大支持。有人认为,MXNet是世界上最好的图像分类器。
MXNet具有出色的可扩展性,例如GPU并行计算,存储映像,高速开发和可移植性。另外,MXNet可以和Apache Hadoop YARN结合,YARN是一个通用分布式应用管理框架,这一特性使得MXNet成为TensorFlow的竞争者。
MXNet的一个独特之处是它是少有的几个支持对抗生成网络(GAN)的框架之一。这个模型被用于实验经济学方法中的“纳什均衡”。
另一个特殊之处是,亚马逊的CTO Werner Vogels宣布了对MXNet的支持:“今天,我们宣布MXNet将成为亚马逊的深度学习框架选择。我们将在现有和未来将出现的服务中使用MXNet。”苹果公司的部分传闻也表示该公司将会使用MXNet作为其深度学习框架。
Torch
Torch由Facebook的Royan Collobert、Soumith Chintala、曾任于Twitter现任于Nvidia的Clement Farabet和Google Deep Mind 的Koray Kavukcuoglu共同开发。其主要贡献者是Facebook、Twitter和Nvidia。 Torch遵守BSD 3 clause 开源协议。然而,Facebook近期宣布将转向Caffe2作为其首选深度学习框架因为它支持移动设备开发。
Torch由Lua语言实现,Lua是一种小众语言,因此若你不熟悉这门语言,会影响到整个工作的效率。
Torch缺少像TensorFlow、MXNet on YARN和Deeplearning4J那样的的分布式支持,缺少多种语言接口同样限制了它的受众。
DeepLearning4J
DeepLearning4J(DL4J)是基于Apache 2.0协议的分布式开源神经网络类库,它由Java和Scala实现。DL4J是SkyMind的Adam Gibson开发的,它是唯一的商品级深度学习网络,可以和Hadoop、Spark结合构建多用户多线程服务。DL4J是唯一使用Map-Rece训练网络而使用其他类库进行大规模矩阵操作的框架。
DL4J拥有内建的GPU支持,这一重要特性能够支持YARN上的训练过程。DL4J拥有丰富的深度神经网络架构支持,包括RBM,DBN,CNN,RNN,RNTN和LSTM。DL4J还支持一个向量计算库——Canova。
由于是由Java实现,DL4J先天比Python块,它使用多GPU执行图像识别任务和Caffe一样快。该框架可以出色完成图像识别,欺诈检测和自然语言处理任务。
Theano
Theano主要由蒙特利尔大学学习算法研究所(MILA)创立。Yoshua Bengio是Theano的开创者,同时领导这个实验室,该实验室在深度学习研究领域做出巨大的贡献,培养出约100名相关学生和从业者。Theano支持高效机器学习算法的快速开发,遵守BSD开源协议。
Theano不像TensorFlow那样优雅,但它提供了支持循环控制(被称为scan)的API,可以轻松实现RNN。
Theano提供多种支持手写字识别、图像分类(包括医学图像)的卷积模型。Theano还提供三维卷积和池化用于视频分类。在语言方面,Theano能胜任例如理解、翻译和生成等自然语言处理任务。Theano还支持生成对抗网络(GAN),GAN即是由MILA的一位学生提出的。
Theano支持多GPU并行计算并且自带分布式框架。Theano只支持一种开发语言,比TensorFlow速度快很多,是一种学术研究的有力工具。然而,其不支持移动平台以及没有多种语言接口的缺陷限制了它在企业的广泛应用。
开源与专利软件之争
随着深度学习逐渐成熟,可以预知到我们将见证TensorFlow,Caffe2和MXNet的竞赛。同时,软件供应商也在提供先进的AI产品使你从数据中获取更多价值。问题是:你会购买带有专利的AI产品还是使用开源框架。如果使用开源框架,你将会面临哪种框架最适合你的问题的选择困难。而选择专利软件,你又将怎样制定退出策略?任何一种选择都需要长远考虑。