程序员们,AI来了,机会来了,危机也来了
1.人工智能真的来了
纵观古今,很少有计算机技术能有较长的发展寿命,大部分昙花一现,比如:昔日的DOS、windows3.2、foxpro、delphi、80x86汇编,还有很多技术也在艰难地挣扎,比如:VB、PB、Sqlserver,甚至连微软的.NET也被来自全球强大的开源力量逼到了死角, 以至于不得不开放源码,向Linux投出橄榄枝,才得以继续发展壮大。
2013年深秋,一个秋高气爽的日子,此时的大数据在中国已经开始蠢蠢欲动,Hadoop作为离线计算的大数据平台开始悄然风靡,机器学习开始在中国播下种子,但这些仅局限于大公司和高校内部,中国的大地上并没有充满人工智能的气息, 我应机械工业出版社的邀请,写了《机器学习实践指南》(该书已于2014年出版,目前是第二版)。写完这本书后,我有一种强烈的预感:人工智能与机器学习未来肯定必火,而且它肯定会成为计算机技术发展史上最长寿的技术,可能长达几百年甚至几千年,以至于人类移民到了其它星球,人工智能仍会繁荣昌盛~,但是,我万万没想到,出书不到3年,人工智能已经在中国四处开花,硕果累累,其发展速度,超出我的想象,吴恩达公开的辞职信已经说明了人工智能在中国的发展现状。
“正如百年前电电能改变的了很多行业一样,人工智能也正在改变着医疗、交通、娱乐、制造业等主要行业,丰富充实着无数人的生活。对于人工智能将带领我们前往何方,我比以往都要兴奋和期待。我很荣幸能够从两大人工智能强国,中国、美国的人工智能界都学习过。美国擅长创造新的技术和理念,而中国擅于将人工智能技术用于开发出好的产品。我很高兴自己能够有机会既为中国也为美国的人工智能发展崛起作出努力和贡献”
--前百度首席科学家吴恩达
注意上述信件内容“中国是人工智能大国”,作为程序员们,机会来了,为中国的AI技术发展作出自己的贡献,同时开辟自己新的职业生涯。
机器学习技术在国外得到了海量应用和深入发展。2015年11月,谷歌开源了全新的TensorFlow机器学习系统,该系统更快、更智能,也更具有弹性。2015年1月,机器学习平台 GraphLab改名为Dato,并获得了 1850 万美元的新融资(投资方为 Vulcan Capital 、Opus Capital 、New Enterprise Associates、Madrona Venture Group),此前他们曾获得 680 万美元的融资。2015年8月,Facebook推出了“M”,Facebook认为人类不仅会回答人工智能所不能回答的问题,而且从长远来看,人类也会帮助改善人工智能技术,“M”除了能做到回答问题、查阅信息等基本功能外,还可以帮助用户完成如购买商品、餐厅定位、安排旅行计划等操作。在2015年12月召开的“2015年神经信息处理系统”(NIPS)会议上,微软研究人员和工程师公开了20多篇机器学习新研究成果的论文。此外,微软还宣布,机器学习正在成为Windows 10的一部分:Skype翻译可以将口语几乎实时地翻译成其他语言,就像《星际迷航》中的通用翻译器那样,可以做到面对面的交流。Cortana个人数字助理在与用户的互动中不断学习与改进,从而帮助用户管理日历、跟踪快递,甚至能与用户聊天和讲笑话,实现真正的个性化互动体验。Clutter是微软Office 2016的成员,通过学习它可以识别出哪些电子邮件对用户来说重要,并自动将不重要的邮件重定向到一个单独的文件夹中,从而保持用户收件箱的整洁。2015年9月,美军军队医疗中心指挥官少将Steve Jones在美军陆军的一次会议上发言表示,未来可以让智能机器人代替人类上战场运送伤员,美国军方甚至高调宣布:未来战场上机器人救起的可能不是人,而是机器人,因为智能机器人军团将代替人类出征。
在本节的结束,我也展望一下人工智能的未来:
不久的将来,人类也许该思考:在未来的世界里,机器人将充当什么样的角色,会不会代替人类呢?人类与智能机器之间应如何相处?
人类开始着手研究,如何才能更好地实现下面三大定律:
第一,机器人不可伤害人;
第二,机器人必须服从人的命令;
第三,机器人可以在不违背上述原则的情况下保护自己。
2. 人工智能与大数据
大数据时代已经到来,这个已经成为事实。但随着hadoop、Spark、storm的高度普及,大数据技术成为软件开发和编程的普通领域,技术门槛越来越低,越来越多的人涌入这个行业,历史证明没有一个长久发展的技术领域必定是昙花一现,大数据技术也会这样吗?答案是:不!因为有人工智能的参与,大数据是基于数据分析与挖掘技术的应用,是机器学习算法和数据存取技术的结合,利用机器学习提供的统计分析、知识发现等手段分析海量数据,同时利用数据存取机制实现数据的高效读写。
提示:在此普及一下两个概念:
1. 数据挖掘是识别出巨量数据中有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程。
2. 数据分析是指用适当的统计方法对收集来的大量第一手资料和第二手资料进行分析,以求最大化地开发数据资料的功能,发挥数据的作用,它是为了提取有用信息和形成结论而对数据加以详细研究和概括总结的过程”无论是数据分析还是数据挖掘,都是帮助人们收集、分析数据,使之成为信息,并作出判断。
3. 人工智能与模式识别
程序员们,人工智能不是一门编程技术,也不是数据结构与算法,人工智能是编程、数据结构、算法与数学的结合 。
我们开始来谈模式识别,它是起源于工程领域,而机器学习起源于计算机科学,这两个不同学科的结合带来了模式识别领域的调整和发展。模式识别研究主要集中在两个方面:一是研究生物体(包括人)是如何感知对象的,属于认识科学的范畴;二是在给定的任务下,如何用计算机实现模式识别的理论和方法,这些是机器学习的长项,也是机器学习研究的内容之一。
模式识别的应用领域广泛,包括计算机视觉、医学图像分析、光学文字识别、自然语言处理、语音识别、手写识别、生物特征识别、文件分类、搜索引擎等,而这些领域也正是机器学习的大展身手的舞台。
4 . 数学来了!危机来了
1) 微积分
微积分的诞生是继欧几里得几何体系建立之后的一项重要理论,它的产生和发展被誉为“近代技术文明产生的关键之一,它引入了若干极其成功的、对以后许多数学的发展起决定性作用的思想”。微积分学在科学、经济学和工程学领域有广泛的应用,解决了仅依靠代数学不能有效解决的问题。微积分学建立在代数学、三角学和解析几何学的基础上,包括微分学、积分学两大分支,包括连续、极限、多元函数的微积分、高斯定理等内容。
微积分在天文学、力学、化学、生物学、工程学、经济学、计算机科学等领域有着越来越广泛的应用,比如:在医疗领域,微积分能计算血管最优支角,将血流最大化;在经济学中,微积分可以通过计算边际成本和边际利润来确定最大收益;微积分可用于寻找方程的近似值;通过微积分解微分方程,计算相关的应用,比如,宇宙飞船利用欧拉方法来求得零重力环境下的近似曲线等。
在机器学习和数据分析领域,微积分是很多算法的理论基础,如:多层感知器神经网络算法。多层感知器是一种前馈人工神经网络模型,算法分为两个阶段:正向传播信号、反向传播误差。
正向传播信号阶段是对样本的学习阶段,输入的信息从输入层传入,经各个隐层计算后传至输出层,计算每个单元的实际值,向各层各单元分摊产生的误差;反向传播误差阶段通过网络输出与目标输出的误差对网络进行修改审查,将正向输出的误差再传播回各层进行权重值调整,直到误差最小化或达到规定的计算次数。微积分理论在多层感知器模型中运用较多。
2)线性代数
线性代数是高等数学中的一门成熟的基础学科,它内容广泛,不但包含行列式、矩阵、线性方程组等初等部分,而且包括线性空间、欧式空间、酉空间、线性变换和线性函数、λ-矩阵、矩阵特征值等更深入的理论,线性代数在数学、物理学、社会科学、工程学等领域也有广泛的应用。
线性代数理论是计算技术的基础,在机器学习、数据分析、数学建模领域有着重要的地位,这些领域往往需要应用线性方程组、矩阵、行列式等理论,并通过计算机完成计算。
3) 概率论
概率论是研究随机性或不确定性现象的数学,用来模拟实验在同一环境下会产生不同结果的情况。下面这些概率理论是概率论的基础。
(1)古典概率
(2)条件概率
(3)概率公理
公理1:0≤P(A)≤1(A∈S)
公理2:P(S)=1
公理3:P(A∪B)=P(A)+P(B),如果A∩B=0
(4)概率分布
包括二项分布、几何分布、伯努利分布、泊松分布、均匀分布、正态分布、指数分布等。样本空间随机变量的概率分布可用累积分布函数和概率密度函数进行分析。
概率论在机器学习和数据分析领域有举足轻重的地位,比如马尔可夫链理论。马尔可夫链对于现实世界的很多现象都给出了解释,泊松过程是连续时间离散状态的马尔可夫链,布朗运动是连续时间连续状态的马尔可夫链等。
马尔可夫链在计算数学、金融经济、机器学习、数据分析等领域都有重要的应用,马尔可夫链是数学中具有马尔可夫性质的离散时间随机过程,在给定当前知识或信息的情况下,仅使用当前的状态预测将来,在马尔可夫链的每一步,系统根据概率分布,从一个状态变到另一个状态或保持当前状态。
4)统计学
统计学是收集、分析、表述和解释数据的科学,作为数据分析的一种有效工具,统计方法已广泛应用于社会科学和自然科学的各个领域。统计学与概率论联系紧密,前者以后者为理论基础。统计学主要分为描述统计学和推断统计学。描述统计学描绘或总结观察量的集中和离散情形,基础的数学描述包括了平均数和标准差等;推断统计学将资料中的数据模型化,计算它的机率并且做出对于母群体的推论,主要包括假设检定、对于数字特征量的估计、对于未来观察的预测、相关性预测、回归、变异数分析、时间序列、数据挖掘等。
无论是描述统计学还是推断统计学都是数据分析技术的基础。通过描述统计学方法,数据分析专家能对数据资料进行图像化处理,将资料摘要变为图表,分析数据分布特征。此外,还可以分析数据资料,以了解各变量内的观察值集中与分散的情况等。通过推断统计学方法,对数据未知特征做出以概率形式表述的推断,在随机抽样的基础上推论有关总体数量特征。
5) 离散数学
离散数学是数学的几个分支的总称,研究基于离散空间而不是连续的数学结构,其研究内容非常广泛,主要包括数理逻辑、集合论、信息论、数论、组合数学、图论、抽象代数、理论计算机科学、拓扑学、运筹学、博弈论、决策论等。
离散数学广泛应用于机器学习、算法设计、信息安全、数据分析等领域,比如:数理逻辑和集合论是专家系统的基础,专家系统是一类具有专门知识和经验的计算机智能程序系统,一般采用人工智能中的知识表示和知识推理技术,模拟通常由领域专家才能解决的复杂问题;信息论、数论、抽象代数用于信息安全领域;与信息论密切相关的编码理论可用来设计高效可靠的数据传输和数据储存方法;数论在密码学和密码分析中有广泛应用,现代密码学的DES、RSA等算法技术(包括因子分解、离散对数、素数测试等)依赖于数论、抽象代数理论基础;运筹学、博弈论、决策论为解决很多经济、金融和其他数据分析领域的问题提供了实用方法,这些问题包括资源合理分配、风险防控、决策评估、商品供求分析等。
以上是机器学习需要的核心数学知识,但不是全部知识。随着今后人类对机器学习的深入研究,将有更多的数学分支进入机器学习领域。因此,仅掌握大学数学知识是不够的,还需要向更高层次进军,对于非数学专业毕业的朋友来说,还应该学习其他数学分支理论,比如说泛函分析、复变函数、偏微分方程、抽象代数、约束优化、模糊数学、数值计算等。
建议各位购买以下数学书籍,随时翻阅参考。
Finney,Weir,Giordano.《托马斯微积分》.叶其孝,王耀东,唐兢译.第10版. 北京:高等教育出版社 2003-1
Steven J.Leon.《线性代数》.张文博,张丽静译.第8版.北京:机械工业出版社
William Mendenhall等.《统计学》. 梁冯珍,关静译.第5版.北京:机械工业出版社
Dimitri P. Bertsekas等.《概率导论》.郑忠国,童行伟译.第2版.北京:人民邮电出版社
Kenneth H.Rosen等.《离散数学及其应用》.袁崇义,屈婉玲,张桂芸译.第6版.北京:机械工业出版社
Eberhard Zeidler等.《数学指南:实用数学手册》.李文林译.北京:科学出版社
它们都是机器学习所涉及的经典数学书,可以考虑将它们和《设计模式》、《算法导论》、《深入理解计算机系统》等经典算法书放在一起,作为案头必备书。
历数这么多,只是人工智能需要懂得的数学的冰山一角。危机是来了,可是程序员们,为了AI,还是拼一把,好好学习数学吧~一位MIT的牛人在BLOG中曾提到,数学似乎总是不够的,为了解决和研究工程中的一些问题,不得不在工作后,重新回到图书馆捧起了数学教科书。他深深感到,从大学到工作,课堂上学的和自学的数学其实不算少了,可是在机器学习领域总是发现需要补充新的数学知识。看来,要精通机器学习知识,必须在数学领域学习、学习、再学习,这一切都是很艰苦的。要学好机器学习必须做好艰苦奋斗的准备,坚持对数学知识的追求。
5.程序员的看家本领出场了
(1)TensorFlow QueueRunners:TensorFlowOnSpark利用TensorFlow的file readers和QueueRunners直接从HDFS文件中读取数据。Spark不涉及访问数据。
(2)Spark Feeding :Spark RDD数据被传输到每个Spark执行器里,随后的数据将通过feed_dict传入TensorFlow图。
5、caffe on spark:CaffeOnSpark被设计成为一个Spark深度学习包,CaffeOnSpark API支持dataframes,以便易于连接准备使用Spark应用程序的训练数据集,以及提取模型的预测或中间层的特征,用于MLLib或SQL数据分析。
6.AI的核心
7.结束语
8.最后的甜点
第二,优化特征提取
第三,调整参数
每一个不曾起舞的日子,都是对生命的辜负。
But it is the same with man as with the tree. The more he seeks to rise into the height and light, the more vigorously do his roots struggle earthward, downward, into the dark, the deep - into evil.
其实人跟树是一样的,越是向往高处的阳光,它的根就越要伸向黑暗的地底。----尼采
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话