AI 与机器学习技术正在蓬勃发展中,你能想像人工智慧曾被认为是一个毫无出路的领域吗? 从人工智慧的时间轴来看可以分为三个热潮。第一次热潮(1950~1960年),由於早期的电脑硬体资源的不足导致复杂的问题无法轻易的解决。第二次热潮(1980~1990年)将带有知是本体的代理人放入机器人中使具有智慧,也就是所谓的专家系统。但人类资源有限不可能把所有的知识都逐一地输入到电脑。因此大家开始思考机器是否能够让他自己去学习?而不是人类一昧的喂入这些知识。第三次热潮(2000年~现在)由於 CPU、GPU 以及云端运算资源普及,早期复杂难解的演算法陆续可以透过超级电脑来解决。当手边有了大量的数据就能拿来机器学习,因此大家踏入了大数据以及深度学习的时代。时间不断的往前走,你能想像未来的 AI 在世界上是扮演什麽样的角色吗?
现今人工智慧与我们生活无所不在,例如我们只要对着手机喊一声「Hey Siri !」苹果手机的语音助理就能帮你打理好大小事。或者正在超市购物的你正在为购买哪一项商品烦恼时,推荐系统机器人能够即时地为你做商品推荐。看似着简单的动作,但人工智慧的情景在你我日常生活中息息相关。人工智慧依照机器能够处理与判断的能力区分为四个分级,分别为自动控制、探索推论、机器学习、深度学习:
机器含有自动控制的功能,并且经由感测器侦测环境的资讯。例如透过温度感测器来侦测产线的马达是否过热,并达到停止运转效果。或是冷气低於20度时就进入待机模式……等。因此程序设计师必须先把所有可能的情况都考虑进去才能写出控制程序。这就衍伸出一些问题,像是灵活度不高,且需要有经验的专家介入才能完成。
第二级逐渐开始强调逻辑推理,可以说是补足第一级的问题。透过将知识组织成知识本体并让机器从现有的资讯中去推理。典型的例子就是专家系统,它是透过特定领域的专家订定出一套知识库与规则库,并产生大量输入与输出资料的排列组合来解决日常生活中的问题。当然所谓的专家系统就必须邀请领域的专家为系统量身打造一套独一无二的规则。然而每个人的观点可能都不同,因此不同专家间所制定的规则可能都不太一样。
机器可以根据资料学习如何将输入与输出资料产生关联。机器学习是一种学习的演算法,并从资料中去学习并找出问题的解决方法。其应用包括搜寻引擎、大数据分析等。我们依据资料与学习方式可大致分为监督式学习、非监督式学习、增强式学习,此外自监督学习这个名词最近也热烈的讨论中。
深度学习是一种机器学习的方法。它藉由模仿人类大脑神经元的结构,定义解决问题的函式。所谓深度学习是一种具有深度多层的神经网路。机器可以自行学习并且理解机器学习时用以表示资料的「特徵」,因此又称为「特徵表达学习」,其应用包括:影像分类、机器翻译...等。
所谓的监督式学习是给许多资料并给与答案,透过损失函数计算来找出一个最佳解。举一个简单的例子,比如给机器各看了 1000 张猫和狗的照片後再询问机器新的一张照片中是猫还是狗。一直不断的迭代训练并从错误中去学习,最终机器能成功的分类了。
非监督式学习只给定特徵,机器会想办法会从中找出规律。非监督式学习最常见的方法就是集群分析(Cluster Analysis),目标是根据特徵将资料样本分为几群。简单来说非监督式学习就是给许多资料但不给予答案,模型会从资料中自己去找出关系。透过分群演算法来计算资料与资料间的相似程度与距离。
介於监督式学习与非监督式学习之间。在现实生活中,未标记样本多、有标记样本少是一个比价普遍现象,如何利用好未标记样本来提升模型泛化能力,就是半监式督学习研究的重点。半监式督学习的应用主要在於收集资料很简单,但标记的资料太少了,我们希望可以自动标记资料。
在强化式学习中机器会进行一系列的动作,而每做一个动作、环境都会跟着发生变化。若环境的变化是离目标更接近,我们就会给予一个正向反馈。若离目标更远,则给予负向反馈。机器透过不断的从错误中去学习,最终学到了如何去解决一件事情。
自监督学习是由卷积神经之父 Yann LeCun 於 2019 年所提出来的一种学习机制。此学习机制模仿模仿人类的学习行为,透过当前任务观察所得到的特徵,并训练一个目标任务的模型。而且学习过程中并不仰赖人类给定的标签。简单来说训练过程是拿一个训练好的模型透过非监督式技巧 pre-text task 训练好模型,训练完成後再接到下游任务做最後的模型微调 (fine tune)。
Python 是近年来高速成长并且逐渐普及的程序语言,也可以说是最容易上手的程序语言之一。主要在於它的语法是简化而不复杂的,同时强调程序码的可读性因此更能贴近程序设计者的思维。当然也些人使用 R 语言进行统计分析、绘图以及资料探勘甚至建模。如果你正在犹豫要入坑哪一类程序语言,笔者这里推荐 Python 程序语言。因为 Python 不仅可以进行资料分析、机器学习也能进行前/後端开发。另外 Python 有丰富的讨论社群以及许多开源套件支援,大幅的降低学习门槛。
说了这麽多!大家准备好了吗?快准备好电脑与笔记本,好好的为自己进行三十天的充电吧~ Let's Go!
本系列教学内容都可以从我的 GitHub 取得!
<<: .NET Core第12天_服务依赖注入_IoC容器生命周期_ConfigureServices
在之前的文章或是你在使用 git 的时候相信你一定有看过 branch 这个单字,但 branch ...
在很多情况下,有些错误是我们可以预知的,就比如前面计算两个数相加的代码,在有些情况下,我们可以预知到...
上一篇说到了,AR宠物的部分,如果我们真的能用程序模拟出动物的习性、动作,那是不是代表说我们也能模拟...
网址:https://tryhackme.com/room/cyborgt8 IP : 10.10...
Model 资料层 在开发应用程序的过程里,我们通常会定义 Model 的类别用来处理资料结构或是资...