计算机视觉读书系列(1)——基本知识与深度学习基础

研三即将毕业,后续的工作可能会偏AI方向的计算机视觉方面,因此准备了两条线来巩固计算机视觉基础。

一个是本系列,阅读经典《Deep Learning for Vision System》,做一些总结跑一些例子,也对应本系列文章

二是OpenCV实践系列,根据官方自学OpenCV使用方法,对应"OpenCV-Python自学系列"。

后续准备在实际项目中引入一些目前的大模型的东西,视觉语言模型在传统CV任务上的理解和实践等。


本期主要包括基础知识和深度学习介绍。本篇主要以概念为主

一、计算机视觉通识

1.1 计算机器视觉

视觉系统:传感设备 + 解释设备

1.2 计算机视觉的应用

1.3 计算集视觉处理流程

计算机视觉处理流程:输入数据------预处理------特征提取------机器学习模型。

以图像分类算法为例,其流程为:从视觉设备输入一张图像、对图像进行预处理(标准化、重采样、模糊、旋转、颜色变换等等)、特性提取(输出为特征向量)、将特征喂到分类模型中、输出概率(该概率代表输入相片是该类别的概率)

1.4 图像输入

图像坐标系:原点为最左上角,横着为x,向右为正;竖着为y,向下为正。(注意,在代码张对图像数据,也即矩阵,进行索引时,仍然按照直观上的行列进行索引)。

图像映射:图像时多层矩阵的组合,每个矩阵中的元素值可看作该点坐标的映射,也即z=f(x,y),z表示坐标为(x,y)的像素值。

通道:通常情况下,灰度图像为单通道,取值范围0-255,0为黑色,255为白色。彩色图像由三通道组成,R(红色)G(绿色) B(蓝色)。

1.5 图像预处理

**预处理一:**将图像由彩色转化为灰度降低计算复杂性。对于那些颜色不是很重要的特征而言,可使用该方法。

**预处理二:**重采样固定模型输入尺寸。

**预处理三:**数据增强。

等等。。。

理论:没有一个方法或一个策略能适合于所有的任务。

1.6 特征提取

特征定义:

++在机器学习过程中,我们希望将原始数据转换为特征向量(一维向量,能简单表示整个类别),再将特征向量展示于我们的学习算法++。

如何选择一个好的特征(如何提取出好的特征)?

传统特征提取和DL的区别:

二、深度学习基础

2.1 理解感知机

感知机的构成主要包括以下几个方面:输入向量、权重向量、神经函数、输出。如图

感知机如何进行学习:感知机通过测试和误差从他的错误中进行学习。

2.2 多层感知机

单层的感知机能力有限(线性问题),无法解决复杂情况的问题。因此使用多层神经元的感知机,也即多层感知机。关于多层感知机的概念需要清楚的是:

隐含层的数量:输入层于输出层之间的网络被称为隐含层,隐含层越多其模型拟合能力越强,但容易过拟合。

激活函数:在某个神经元进行加权求和后进行映射操作,是神经网络具备非线性拟合能力的关键。

误差函数:用于衡量模型的预测结果和真实结果之间差距的函数。

优化器:基于模型现有误差对模型进行调整的优化算法。

Batch-Size:采用MiniBatch方式进行训练的情况下,每个批次的包含样本的多少。

训练轮数:整个训练进行的轮次数。

学习率:(优化过程中)学习速度的控制。

2.3 激活函数

激活函数的目的:往神经网络中引入非线性。

线性激活函数:

步型函数:

Sigmoid函数:将无限连续的变量转移到简单的0-1之间的概率。广泛用于分类中。

softmax函数:对Sigmoid函数的泛化,Sigmoid只能处理单类问题,而sigmoid能处理多类型分类中的概率计算问题。

tanh函数: ++这个函数在隐含层中表现往往比sigmoid函数更好,因为使用tanh会使得数据的均值更接近于0而不是sigmoid的0.5,使得后续的训练更加简单。++

ReLU函数:ReLU函数被认为是目前最优秀的(state-of-the-art)的激活函数。

**Leaky ReLU函数:**虽然用得不多,但通常略优于ReLU,主要是在小于0是提供了小幅度的导数。

2.4 前馈过程

神经网络的前馈过程,加权求和(矩阵乘法)------激活函数------加权求和------激活函数...

其计算过程可表示为:

表示矩阵乘法可为:

2.5 误差函数

常用的误差函数主要由两大类,MSE(Mean Square Error)和Cross Entropy Error。

MSE主要用于回归问题,用于衡量两个向量在空间中的欧式距离的大小。

交叉熵函数(Cross Entropy Error):量化预测概率和目标概率之间的差距。

参数描述如下:

2.6 优化算法

Batch Gradient Descent:逐步的根据梯度信息对误差进行优化。

++梯度:其方向代表了误差下降最快的方向,梯度仅仅提供误差下降的方向信息。++

学习率:决定了迭代速度。

Batch GD :**将所有数据放在一个Batch中,进行训练,**每一个参数更新都是计算了所有训练数据集后的结果。

Stochastic Gradient Descent(SGD):在每次参数更新时只随机选择一组样本数据计算误差。

在实际应用中SGD表现要由于Batch GD。

Mini-Batch Gradient Descent(MBGD):将数据集按一定的尺寸分割为不同批次,每计算一个批次就进行一次参数更新。

其余优化算法:Adam、Adagrad、RMSprop等...

2.7 反向传播

根据链式求导法制对每个参数求偏导,获得梯度,进而计算其参数的改正值。

对网络中某个参数的求解可如下:


相当较为基础,笔记较为简略,欢迎批评交流。

下一期:卷积

共勉。

相关推荐
小陈phd2 小时前
OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算
人工智能·opencv·计算机视觉
Guofu_Liao3 小时前
大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
人工智能·语言模型·自然语言处理·矩阵·llama
ZHOU_WUYI7 小时前
3.langchain中的prompt模板 (few shot examples in chat models)
人工智能·langchain·prompt
如若1237 小时前
主要用于图像的颜色提取、替换以及区域修改
人工智能·opencv·计算机视觉
老艾的AI世界8 小时前
AI翻唱神器,一键用你喜欢的歌手翻唱他人的曲目(附下载链接)
人工智能·深度学习·神经网络·机器学习·ai·ai翻唱·ai唱歌·ai歌曲
DK221518 小时前
机器学习系列----关联分析
人工智能·机器学习
Robot2518 小时前
Figure 02迎重大升级!!人形机器人独角兽[Figure AI]商业化加速
人工智能·机器人·微信公众平台
浊酒南街9 小时前
Statsmodels之OLS回归
人工智能·数据挖掘·回归
畅联云平台9 小时前
美畅物联丨智能分析,安全管控:视频汇聚平台助力智慧工地建设
人工智能·物联网
加密新世界9 小时前
优化 Solana 程序
人工智能·算法·计算机视觉