结合openCV学习DIP之机器学习

综述 

结合openCV学习DIP之传统图像特征与匹配

图像特征

        图像的浅层特征主要是颜色、纹理和形状

        图像特征是指: 可以表达图像中对象的主要信息, 并且以此为依据可以从其他未知图像中检测出相似或相同的该对象A.

        在特征提取上,传统的图像处理都是自行设计提取固定特征的算子,在深度学习上主要是利用CNN网络来广泛的提取图像的特征.

笔记以吴恩达课程为基础, 全面介绍机器学习相关术语, 再以李航《统计学习方法》和周志华《机器学习》以及《学习openCV3》为基础,记录学习内容, 将不定期更新.

机器学习-吴恩达课程笔记

本章以吴恩达机器学习课程为基础, 记录期间的学习笔记,该课程和本笔记仅以入门为目标, 即不涉及理论具体推导.

第一课-基本术语和LogisticRegression

目的: 将一个图片输入到一个 (暂称为)机构 中, 自动对其进行分类

        分类的结果有二类分类和多类分类, 根据分类结果不同,可以将分类器分为:

                二类分类: 感知机,支持向量机SVM, Adaboost提升方法,Logistic回归模型

                多类分类: k近邻树(k近邻法),朴素贝叶斯法,决策树,Logistic回归模型,最大熵模型

如何遍历一个包含了N个图片的集合? 一般是for循环,但是这种费时.

回归:简单理解为两组数据关系的统计分析方法

对于一张图片一般是3个通道,假设图片size是64x64, 那么将这张图片记为x, x通过维度变换为nx1的列向量,如下图所示:

结合openCV学习DIP之机器学习

 假设训练集train set记为X有m个样本,每个样本是结合openCV学习DIP之机器学习,其中结合openCV学习DIP之机器学习表示第i个样本的标签, 标签的信息即分类信息, 比如猫or狗

 上述结合openCV学习DIP之机器学习是一个n维列向量结合openCV学习DIP之机器学习,显然, 训练集X是一个n行m列的矩阵,同理标签Y如下

 结合openCV学习DIP之机器学习

 LogisticRegression 逻辑回归模型

结合openCV学习DIP之机器学习为预测值, 结合openCV学习DIP之机器学习为标签真实值, X为输入的图片集合记号, 对其有表达式:

结合openCV学习DIP之机器学习  得到一个线性的模型, 但是输出的范围变成了∞, 想要函数值限定在[0,1]

结合openCV学习DIP之机器学习  其中结合openCV学习DIP之机器学习, 该表达式将其值域锁定在了[0,1]上结合openCV学习DIP之机器学习

 

Loss function损失函数和Cost function成本函数

loss function是对于单个样本而言, 目的是求 真实值 和 预测值之间的差距, 自然是越小越好,其数学表达式为:

结合openCV学习DIP之机器学习

由于y是标签值,自然是不变的, 而结合openCV学习DIP之机器学习是预测值, 其值和w和b有密切关系,将结合openCV学习DIP之机器学习

带入L()中结合openCV学习DIP之机器学习

cost function是对于群体样本而言, 其数学表达式为: 

结合openCV学习DIP之机器学习

 上述问题转换成: 如何确定 w和b的值, 使得L和J 存在最小值, 即使得分类的错误率最低?

答案: GradientDescent 梯度下降法

梯度下降法或最速下降法steepest descent 是求解无约束最优化问题的一种常用方法

graditent descent是一种迭代算法,  选取适当的初值结合openCV学习DIP之机器学习,不断迭代更新x的值,将目标函数值最小化,直到收敛. 

负梯度方向是使函数值 下降 最快的方向, 应当以负梯度方向更新x值

结合openCV学习DIP之机器学习

 书中或许不太容易理解, 作图理解如下: 注意parameter学习率结合openCV学习DIP之机器学习

结合openCV学习DIP之机器学习 

 对于上图抛出的问题,结合openCV学习DIP之机器学习

该曲线的递减部分, 其斜率为负, 梯度负方向,负负得正,w+正数,因此w向右移动, 递增部分, 斜率为正, 梯度负方向,w+负数,因此w向左移动

 

在上述的问题中, 如何通过计算得到的损失函数的值, 自动更新输入的w和b的值呢? 从而自动调整模型的参数,使得预测能力的错误率降低? 

为了回答这个问题, 引入正向传播和反向传播的概念, 在下图的反向传播中, 结合openCV学习DIP之机器学习就是将来参数b 在梯度下降时需要的梯度值,其方向取- ,这里结合openCV学习DIP之机器学习就是反向传播中如何求取结合openCV学习DIP之机器学习(简单的高数知识)

结合openCV学习DIP之机器学习

 

例子1: 单个样本

假设有样本结合openCV学习DIP之机器学习,  因为 结合openCV学习DIP之机器学习,  那么结合openCV学习DIP之机器学习

显然x是列向量, w应该为行向量, b则为1x1的单数值

根据logistic 回归模型,有

结合openCV学习DIP之机器学习 

结合openCV学习DIP之机器学习

 结合openCV学习DIP之机器学习

对w1和w2和b进行gradient descent, 引入学习率结合openCV学习DIP之机器学习

结合openCV学习DIP之机器学习

 

 例子2: 多个样本

成本函数结合openCV学习DIP之机器学习

 假设有样本结合openCV学习DIP之机器学习,  因为 结合openCV学习DIP之机器学习,  那么结合openCV学习DIP之机器学习结合openCV学习DIP之机器学习

 直接将其看成矩阵,然后求即可

Nerual Networ 

2 layers nerual network

为了区分, 现将[i]表示网络第i层, (i)表示第i个样本(方便理解,可以把每个样本理解成一张图片)

下图中结合openCV学习DIP之机器学习表示第1层的激活函数activation function, 该函数的表达式暂且不表.应当注意结合openCV学习DIP之机器学习即 下图中的第一层

结合openCV学习DIP之机器学习

应该根据输入的X维度和输出的分类结果Y的维度, 从第一层开始逐步推出每一层的维度

 结合openCV学习DIP之机器学习

 激活函数 ActivationFunction

上述的网络引入了新的概念: 激活函数

激活函数的作用是什么? 表达式一般是什么样的?

 

 

 

 

 

上一篇:算法打卡Week15


下一篇:QPF BGA封装