人类具备智能,可以学习、思考以及创新,能够做到很多机器做不到的事情。
在计算机(Computer)被研发出来不久后,为降低人类工作负担,一些专家早在1950年提出了人工智能(Artificial Intelligent,AI)的概念,希望找到方法能够使机器和人类一样具备智能。
为达到人工智能的目标,专家们提出多种方法均未奏效,直到1980年机器学习被提出。
人类(生物)的智能来源于两方面,一方面是先天的本能。例如,刚出生的河狸在听到流水声后就会自发地筑水坝,直到听不到流水声为止。
类比到机器中,一些人希望通过提前人工设立规则(hand-crafted rules)使机器表现得具备智能。 例如, 设计一个能通过声音帮你关掉音乐的机器人,可以在程序中写代码:当听到 "turn off" 的词汇时就把音乐关掉。但这种方法的问题是:①无法考虑到所有的可能性,非常僵化,无法超越规则的书写者;②智能的背后是大量的IF规则撰写工作,人力成本高,不适合小型企业。
1980年提出的机器学习方法基于人类(生物)后天学习的思想,要做的其实是让机器他有自己学习的能力(而不是写程序让他做到某件事)。当机器具备学习能力后,我们就可以告诉它一系列的问题和答案,使其能够举一反三学到解决该类问题的能力,例如图像识别任务。
我们希望学习后的机器具有图像识别的能力,能够认识它之前没有看过的猫。
机器学习的实现必须依赖计算机程序,而计算机程序的运行需要有明确的变量和运行逻辑。因此,我们需要将机器学习的思想用计算机可实施的数学语言去表述。
机器学习的实质是,寻找一个合适函数,能够基于输入,输出人类想要的结果,如下:
重点在于寻找函数的过程(学习),区别于人工设立规则去建立函数。
机器学习的过程可以转化为一个“大海捞针”的选择过程。第一步,我们要先准备一个 function set(函数集合),这些函数有好有坏,而我们的目标函数应该在里面,只是不知道是哪一个。
为了筛选出我们的目标函数,首先要确定什么是“好”。“好”的定义不同,目标函数自然也不同。
对于不同的任务,“好”的定义是不同的,需要针对具体任务去建立评价方法(需量化)。
例如,对于有监督的分类任务,我们希望目标函数的对应输出和实际一致,如下所示:
如果一个函数,看到猴子图输出猴子,看到猫的图输出猫,那就是好的。如果一个函数看到狗却输出猴子或猫,那才是坏的。通过在训练样本中的识别正误记录,可以计算出函数的好坏程度。
只是有一个能够决定 function 好坏是评价方法是不够的。因为 function set 有成千上万个候选的 function,所以我们需要一个有效率的演算法,可以快速从function set中挑出最好的。最好的function 一般被记为 f*,这个函数应当具备举一反三的能力(测试集性能也较高)
深度学习是一种实现机器学习的技术。
最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。
为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。其实有不少想法早年间也曾有过,但由于当时训练数据量不足、计算能力落后,因此最终的效果不尽如人意。后来数据量和计算能力充足后,深度学习摧枯拉朽般地实现了各种任务,使得似乎所有的机器辅助功能都变为可能。
通常学习的情景(scenario)是你没有办法控制的。比如,因为我们没有data做监督学习,所以我们才做reinforcement learning。任务(task)是指我们要解决的问题类型。
不同的 model 就是不同的 function set。Model有很多种,最简单的就是线性模型,但我们会花很多时间在非线性的模型上。在非线性的模型中最耳熟能详的就是Deep learning。
有监督学习从训练数据集中训练模型,再对测试数据进行预测,训练数据由输入和输出对组成。
输出变量为数值(scalar)的预测任务称为回归问题。
输出变量为有限个离散变量的预测问题称为分类问题。
例如,二分类可以鉴别垃圾邮件,将其放到垃圾箱。多分类可以自动将新闻分到不同的版块。
输出是结构性对象的预测问题称为结构学习问题,比如输入输出均为序列的任务。
监督学习与无监督学习相结合的一种学习方法,使用大量的未标记数据,以及同时使用标记数据。半监督学习希望使用较少的标注数据达到还不错的学习效果。
在半监督学习的技术中,这些没有label的data可能也是对学习有帮助的。
将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中。主要思想是从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。
训练样本的标记信息未知, 目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。 此类学习任务中研究最多、应用最广的是"聚类" (clustering),其目的在于把相似的东西聚在一起,主要通过计算样本间和群体间距离得到。现在流行的词嵌入等表征学习方法也是无监督学习。
在reinforcement learning 里面,我们没有告诉机器正确的答案是什么,机器所拥有的只有一个分数,就是他做的好还是不好。
这也比较符合我们人类真正学习的情景:学校里面的老师会告诉我们正确的答案(有监督学习),但在真实社会中没人会告诉你正确答案,你只知道你做得好还是做得不好。
机器学习目前尚不具备传统意义上的通用智能,它基本只能针对某一具体任务进行训练和应用。
想要熟练使用机器学习来解决实际问题是不容易的,它需要根据具体问题去做很多种选择,包括模型的选择、参数的调整、训练数据的预处理等等。做这些工作的人可被称为 “AI训练师”。
一方面,我们需要针对具体问题选择和训练合适的模型(类比:选择有克制关系的宝可梦来战斗)。 另一方面,当没有合适的模型可以使用时需要进行研发(类比:获取新的宝可梦)。
Datawhale 开源教程:李宏毅机器学习
【机器学习笔记】有监督学习和无监督学习
迁移学习概述(Transfer Learning)
李宏毅机器学习视频