产品入门者学习机器学习流程与视觉算法下游任务

一、机器学习流程

(一)机器学习的定义

机器学习是一门人工智能科学,这一领域的研究对象是人工智能,通过经验自动改进的计算机算法的研究,根据数据或经验优化计算机程序的性能标准。

(二)机器学习流程

(三)流程解读

1. 收集数据:

收集到的数据的质量和数量将直接决定预测模型是否能够建好。需要将收集的数据去重复、标准化、错误修正等,保存成数据库文件或者csv格式文件,为下一步数据的加载做准备。

2. 分析数据:

分析数据主要是数据发现,比如找出每列的最大、最小值、平均值、方差、中位数、三分位数、四分位数、某些特定值(比如零值)所占比例或者分布规律等等都要有一个大致的了解。了解这些最好的办法就是可视化,谷歌的开源项目facets可以很方便的实现。另一方面要确定自变量(x1…xn)和因变量y,找出因变量和自变量的相关性,确定相关系数。

3. 特征选择:

特征的好坏很大程度上决定了分类器的效果。将上一步骤确定的自变量进行筛选,筛选可以手工选择或者模型选择,选择合适的特征,然后对变量进行命名以便更好的标记。命名文件要存下来,在预测阶段的时候会用到。

4. 向量化:

向量化是对特征提取结果的再加工,目的是增强特征的表示能力,防止模型过于复杂和学习困难,比如对连续的特征值进行离散化,label值映射成枚举值,用数字进行标识。这一阶段将产生一个很重要的文件:label和枚举值对应关系,在预测阶段的同样会用到。

5. 拆分数据集:

需要将数据分为两部分。用于训练模型的第一部分将是数据集的大部分。第二部分将用于评估我们训练有素的模型的表现。通常以8:2或者7:3进行数据划分。不能直接使用训练数据来进行评估,因为模型只能记住“问题”。

6. 模型训练:

进行模型训练之前,要确定合适的算法,比如线性回归、决策树、随机森林、逻辑回归、梯度提升、SVM等等。选择算法的时候最佳方法是测试各种不同的算法,然后通过交叉验证选择最好的一个。但是,如果只是为问题寻找一个“足够好”的算法,或者一个起点,也是有一些还不错的一般准则的,比如如果训练集很小,那么高偏差/低方差分类器(如朴素贝叶斯分类器)要优于低偏差/高方差分类器(如k近邻分类器),因为后者容易过拟合。然而,随着训练集的增大,低偏差/高方差分类器将开始胜出(它们具有较低的渐近误差),因为高偏差分类器不足以提供准确的模型。

7. 模型评估:

训练完成之后,通过拆分出来的训练的数据来对模型进行评估,通过真实数据和预测数据进行对比,来判定模型的好坏。模型评估的常见的五个方法:混淆矩阵、提升图&洛伦兹图、基尼系数、ks曲线、roc曲线。混淆矩阵不能作为评估模型的唯一标准,混淆矩阵是算模型其他指标的基础。完成评估后,如果想进一步改善训练,我们可以通过调整模型的参数来实现,然后重复训练和评估的过程。

8. 文件整理:

模型训练完之后,要整理出四类文件,确保模型能够正确运行,四类文件分别为:Model文件、Lable编码文件、元数据文件(算法,参数和结果)、变量文件(自变量名称列表、因变量名称列表)。

9. 接口封装:

通过封装封装服务接口,实现对模型的调用,以便返回预测结果。

(四)机器学习案例

1.垃圾邮件检测:

一封邮件可以分为发送人、接收人、抄送人、主题、时间、内容等要素,所以可以通过上述要素中的发送方、主题以及内容来进行垃圾邮件判断。

因此机器学习需要依次对上述要素进行分析:

垃圾邮件内容分类(通过提取垃圾邮件内容进行判断)

中文垃圾邮件分类

英文垃圾邮件分类

垃圾邮件标题分类

垃圾邮件发送方分类

最终,可以根据这三个维度进行综合评判,从而实现垃圾邮件的准确分类。本文将根据邮件内容进行垃圾邮件分类。

实现步骤:数据集语料库----数据加载----构建词向量----训练模型并评估----识别实现

2.人脸识别:

面对一张人脸时,我们首先要进行的是进行人脸特征的提取,比如鼻子、眼睛等,之后对这些特征进行分析比对,确认人物基本信息。而机器主要是通过数学模型学习轮廓、纹理等细节,将机器提取出来的细节(特征提取,Feature extraction)输入到分类模型中进行分类(分类,Classification),从而识别人脸。

实现步骤:原始图像输入提取关键点----检测人脸关键点----将人脸图像转换为向量----识别/验证


二、视觉算法

计算机视觉算法是一种数学模型,试图帮助计算机理解图像。计算机视觉算法,有助于方式运算,计算机可以从图像数据的特定类型来进展。

利用计算机视觉算法面临的挑战是,视觉依赖于一系列图像的未知元素。基于复杂物理概率模型可以帮助技术深刻的方式解释的图像。科学家们从不同的角度对计算机视觉的一般性问题,包括三维建模,对图像识别部分和预测图像建模进行分析构图。计算机视觉算法以不同的方式工作。他们中的一些工作,可以确定一个照片或图像的特定部分。一些技术还具有相机或安全设备新的面部识别功能。


视觉算法基本任务:分类、检测、分割、关键点识别、图像生成、度量学习。


分类:就是对输入图片进行分类(具体可选类别需要事先确定)。分类任务是其他CV任务的基础。

检测:是检测出图片中的物体位置,一般需要进行画框。比如把人、羊,还有狗都框出来了,具体来说,网络需要输出框的坐标。

分割(Segmentation):是在检测任务的基础上把框精细化,具体到每个像素的分类。在上图的检测任务中,矩形框还是比较粗糙的,并不知道每个像素具体属于哪个物体。下图中语义分割任务输出的绿色像素是背景,蓝色像素属于羊,红色像素是狗,还有一个颜色的像素属于人。当然,可以再精细一些,比如不同的羊的像素点用不同的颜色标记出来,那就是实例分割


超分(Super Resolution, SR):是超分辨率的简称,简单地说就是增加图片的分辨率。

关键点识别(Key Point):是找出图片中的关键点,最常见的就是人体关键点检测,可以用来判断人的姿态。


图像生成:是指根据输入的图片或者其他数据,生成目标图像。图像生成任务也可以合成人脸、图像修复等等。


度量学习:是要判断输入之间的距离到底多少,例如两个图片之间的距离,需要神经网络去学习如何度量。具体的应用比如人脸识别,判断摄像头前的人是否和身份证一致。

#机器学习#
全部评论
感谢整理!
点赞 回复
分享
发布于 2022-08-22 09:43 江苏

相关推荐

3 1 评论
分享
牛客网
牛客企业服务