机器学习是实现一种人工智能的一种方式。
人工智能的三驾马车-算法、算力、数据。数据非常重要。
是数学、语言学、计算机科学三者结合
动手能力强
论文 公开数据集
新生词:
九漏鱼:九年义务教育漏网之鱼
计算机冒充人,与人对话,如果超多30%的人误认为自己对话而非计算机,则可以认为这台机器拥有人类智能。图灵测试是图灵个人看法,在1950年提出,并非当前业界的最求。
绕过图灵测试的方法:
焦躁的年轻人(机器一直说自己事情,表现出焦虑的感觉,容易让听者误认)
心理医生式问答(机器反问你一些问题,表现出一定的主动性,容易让人误认)
计算机在很多方面比人强(比如计算),如果在图灵测试中我问人工智能一个有计算量的运算(如:6526*541),那么它可以立刻给我答案,但这不是一个正常人可以马上计算出的。
深度学习大幅改变了NLP研究,使离散的符号转化为连续的数值,因此大量的数学工具得以应用,极大的推进了NLP技术的发展。
NLP技术已经深入生活的各个角落,输入法、语音助手、搜索引擎、智能客服等大量依赖NLP技术的应用已经被推广和使用。
综合来看,目前计算机对语义的理解能力尚不如小学生,但在特定任务上可以达到人类以上的水平。
用计算机来模拟人的神经元反应的过程,该模型将神经元简化为了三个过程:输入信号线性加权,求和,非线性激活(阈值法)
1969年,美国数学家及人工智能先驱Minsky在其著作中证明了感知器本质上是一种线性模型,只能处理线性分类问题。
Hinton在1986年发明了适用于多层感知器(MLP)的BP算法,并采用Sigmoid进行非线性映射,有效解决了非线性分类和学习的问题。
1991年,BP算法被指出存在梯度消失问题,即在误差梯度后向传递的过程中,后层梯度以乘性方式叠加到前层,由于Sigmoid函数的饱和特性,后层梯度本来就小,误差梯度传到前层时几乎为0,因此无法对前层进行有效的学习
1997年,LSTM模型被发明,尽管该模型在序列建模上的特性非常突出,但由于正处于NN的下坡期,也没有引起足够的重视。
决策树,支持向量机,随机森林等算法先后被提出,并且在实际场景取得不错的效果
该阶段又分为两个时期:快速发展期(20062012)与爆发期(2012至今)
2012年,Hinton课题组为了证明深度学习的潜力,首次参加ImageNet图像识别比赛,其通过构建的CNN网络AlexNet一举夺得冠军,且碾压第二名(SVM方法)的分类性能。
之后基于深度学习的模型在各种算法任务上开始屠榜,也带来了人工智能整个产业的崛起
编程语言
引擎开发:C++和Java居多
算法实验:Python, R
C++,Java的特点:
执行效率高,开发累(代码量大),不好上手,有助于深入理解编程,有成熟的框架和各种检查工具
Python的特点:
执行效率低,开发轻松,开源库多,简单易学,做线上业务需要开发者有较好的编程习惯
框架:
数据处理常用库
检索框架
数据库
训练的模型是一种输入与输出之间的映射。找输入输出的一种对应关系。这属于有监督学习。有监督学习的核心目标:建立一个魔心给(函数),来描述输入(X)与输出(Y)之间的映射关系。有监督学习的价值:对于新的输入,通过模型给出预测的输出。
文本分类任务
输入:文本
输出:类别
关系:文本内容决定了文本的类别
机器翻译任务
输入:A狱中文本
输出:B狱中文本
A与中国表达的意思,在B狱中共有对应的意思
图像识别任务
输入:图像
输出:类别
图中的像素排列,决定了图像的的内容
语音识别任务
输入:音频
输出:文本
声音信号在特定语言中对应特定的文本
给与机器的数据没有标注信息,通过算法对数据进行一定的自动分析处理,得到一些结论
常见任务:聚类、降维、找特征值等等。
高维降到低维,利于观察。
训练集和验证集可以看见。
过度的频繁的使用一个数据集去修改一个模型很可能会发生集内。导致在其它测试集上不准。
过拟合:模型失去繁华能力。如果模型在训练集和验证集上都有很好的表现,但在测试集上表现很差,一般认为是发生了过拟合
欠拟合:模型没能建立起合理的输入输出之间的映射。当输入训练集中的样本时,预测结果与标注结果依然相差很大
回归问题
预测值为数值型(连续值)。如预测房价。
分类问题
预测值为类别(离散值)或在类别上的概率的分布。
特征
模型输入需要数值化,对于较为抽象的输入,如声音,文字,情绪等信息,需要将其转化为数值,才能输入模型。转化后的输入,被称作特征。
特征工程
筛选哪些信息值得(以特征的形式)输入模型,以及应当以何种形式输入的工作过程。对于机器学习而言非常重要。模型的输入,决定了模型能力的上限。
算法假设:
一般而言,算法模型是对问题的一种简化。或者说,对于数据事先进行了某种假设,然后在这个基础上,寻找合适的参数,使模型可以拟合数据。
即使问题明显不符合假设,并不意味着这个算法就不能用。事实上,很多情况下,这样依然能有不错的结果。但是,“假设”表明了算法的局限性。
评价算法效果的好坏,不同任务有不同指标
为了评价算法效果的好坏,需要找到一种评价模型效果的计算指标。不同的任务会使用不同的评价指标。常用的评价指标有:
1)准确率
2)召回率
3)F1值
4)TopK
5)BLEU…
想要快速获得正确的模型,有哪些可以优化的地方?
优化过程:模型随机初始化,预测,计算误差,反复调整
人工神经网络(Artificial Neural Networks,简称ANNs),也简称为神经网络(NN)。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。
隐含层/中间层:
神经网络模型输入层和输出层之间的部分,隐含层可以有不同的结构:RNN、CNN、DNN、LSTM、Transformer等等
不同的模型结构本质上就是不同的公式
导数表示函数曲线上的切线斜率。 除了切线的斜率,导数还表示函数在该点的变化率。
一步走太大,可能错过全局最优点;一步走太小,课呢困在局部最优点。所以需要一定的策略进行调整。
一次训练使用一部分
一次全部使用,机器不足。不容易收敛。
迭代过程:
迭代训练要点:
模型训练好后把参数保存,可用于对新样本的预测
总结:
机器学习的本质,是从已知的数据中寻找规律,用来预测未知的样本
深度学习是机器学习的一种方法
深度学习的基本思想,是先建立模型,并将模型权重随机初始化,之后将训练样本输入模型,可以得到模型预测值。使用模型预测值和真实标签可以计算loss。通过loss可以计算梯度,调整权重参数。简而言之,“先蒙后调”