欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。
专栏:《机器学习》
人工智能这个概念诞生于1956年的达特茅斯会议,因此,1956年也是人工智能元年。在《Python深度学习》一书中,人工智能简洁定义为:努力将通常由人类完成的智力任务自动化。
三者的关系如下图所示:
在早期计算机专家认为,只要可以在程序中写出足够多的明确规则来处理知识,就可以实现人工智能,这种方法被称为符号主义人工智能(symbolic AI)。
后来在图灵关于“计算机除了执行我们的命令外,能否自我学习执行特定任务的方法”这一问题之后,又引出了一种新的编程范式。在符号主义人工智能范式中,人们输入规则(程序)以及根据这些规则要处理的数据,系统输出问题的答案。而在机器学习中,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则,这些规则可以应用于新的数据并由计算机自动生成答案。这就是机器学习(machine learning),机器学习系统是训练出来的,而不是直接通过程序明确写出来的,所以,机器学习与数理统计密切相关。
深度学习(deep learning)是机器学习的一个分支领域,深度学习强调从连续的层中进行学习,所谓深度是指一系列连续的表示层,数据模型包含的层数称为模型的深度,这些表示层都是通过数据训练自动学习的,通常它们是由神经网络(neural network)模型中学习得到的。我们可以这么理解,深度学习网络中的每一层都像一个过滤器,原始信息经过每一层的过滤器后纯度越来越高。神经网络中每层对输入数据所做的操作保存在当前层的权重(也称为该层的参数)中,权重的本质是一串数字,每一层实现的变换都由权重来参数化。于是,学习的意思就是指为神经网络的所有层找到一组权重值,使得神经网络能够将每个示例输入与其目标一一对应。神经网络的输出值与预期值之间的差距,由损失函数(也叫目标函数)来评价,损失函数的输入为预测值与真实目标值,然后计算出一个距离值,以此来衡量网络在这个示例上的效果好坏。深度学习则是利用这个距离值作为反馈信号来对权重值进行微调,以降低当前示例的损失值。微调的任务由优化器完成,该过程实现了反向传播算法。一开始给神经网络的权重赋予随机值,随着网络处理的示例越来越多,权重值向着正确方向一步步的调整,损失值也将逐渐降低,这个过程就是循环训练的过程。重复这个循环过程来得到使损失函数最小的权重值,而具有最小损失的网络,其输出和目标值尽可能地接近,这就是训练好的网络。(参考《Python深度学习》一书)
我们一般用到的是CPU和GPU,二者的区别在于:
对于CPU和GPU并没有谁好谁坏之分,它们的应用场景不同,如果你需要进行大量的计算一般使用GPU,GPU就是为计算而生的;如果你需要频繁的进行IO操作,比如频繁读写文件等等,就需要使用CPU,使用GPU反而不好。
适合在GPU上运行的程序一般具有如下特征:
人工智能的主要技术领域分为计算机视觉CV、自然语言处理NLP(包含文本挖掘/分类、机器翻译和语音识别)、机器人三大领域。
我们已经知道,机器学习就是从数据中自动分析模型,并利用模型对位置数据进行预测。
机器学习工作流程总结
在数据集中:
数据类型构成:
数据分割:
处理数据集中的缺失值和异常值。
特征工程(Feature Engineering)是指使用专业背景知识和技巧去处理数据,使得特征能够在机器学习算法上发挥更好的作用,特征工程直接影响着机器学习的效果。数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
特征工程主要包含三个内容:
根据数据集的组成,可以把机器学习算法分为监督学习、无监督学习、半监督学习和强化学习几类。
监督学习是指输入数据是由输入特征值和目标值所组成的,在监督学习中,根据函数的输出不同可以分为两类:
回归问题
比如说房价预测,我们根据数据样本集可以拟合出一条连续曲线,这就是回归问题
分类问题
比如说我们判断一个形状是矩形还是圆形
监督学习的方法及特点
无监督学习是指,输入数据是由输入特征值组成,没有目标值。输入数据没有被标记,也没有确定的结果,样本数据类别未知,需要根据样本间的相似性对样本集进行类别划分。比如下图对人物进行分类。
无监督学习方法及特点
监督学习和无监督学习对比如下
半监督学习是指,训练集同时包含有样本数据和未标记样本数据。
强化学习是指智能系统在与环境的连续交互中学习最佳行为策略的机器学习问题。强化学习主要包含五个元素:agent, action, reward, environment, observation。强化学习的目标就是获得累计最多的奖励。
模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。按照数据集的目标值不同,可以把模型评估分为分类模型评估和回归模型评估。
比如前面判断图形是圆形还是矩形(离散的)
其评价指标包括:准确率、精确率、召回率、F1-score、AUC指标等。
比如前面的房价预测(连续的)
评价指标包括:均方根误差(Root Mean Squared Error,RMSE)、相对平方误差(Relative Squared Error,RSE)、平均绝对误差(Mean Absolute Error,MAE)、相对绝对误差(Relative Absolute Error,RAE)
模型评估是用来评价训练好的模型的表现效果的,从表现效果来看,大致可以分为两类:过拟合和欠拟合。