机器学习笔记
mAP(mean Average Precision)在机器学习中的目标检测领域,是十分重要的衡量指标,用于衡量目标检测算法的性能。一般而言,全类平均正确率(mAP,又称全类平均精度)是将所有类别检测的平均正确率(AP)进行综合加权平均而得到的。
李课
理论部分
损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是代价函数 + 正则化项)。代价函数最小化,降低经验风险,正则化项最小化降低
神经网络
反向传播(back progration)
logstic回归
logistic回归是一种用于二分类或多分类问题的统计模型。它基于sigmoid函数将线性回归的结果压缩在0和1之间,以概率的形式输出结果。
$$
p = \frac{1}{1+\exp^{-k(x)}}\
p是概率,x是自变量,k是待求的权重参数。
$$
softmax回归
softmax 定义的一个运算,一般应用在输出位置,用来将输出变成正数而且介于 0-1 之间 总共的和为 1
$$
\hat y_i=\frac{exp(o_i)}{\sum_k\exp(o_k)}
$$
多层感知机(MLP)
multi percepertion
信息熵
$$
-log(y)
$$
交叉熵 CE(crossemm)
K 则交叉验证
CNN卷积神经网络 Convolution Neural Network
二位交叉相关 (二维卷积)平移不变性 局部性
卷积符号 *,卷积本质就是对图像的特征提取在加上偏置项(python广播机制)
filter 卷积核 padding stride步长 channel 通道数
$$
\begin{aligned}
f^{[1]}=filter\
p^{[1]}=padding\
s^{[1]}=stride
\end{aligned}
$$
$$
卷积后大小=\lfloor \frac{n+2p-f}{s}+1\rfloor
$$
卷积层
提取图像特征
池化层
池化层的目的是降低信息冗余、提升模型的尺度不变性、旋转不变性、防止过拟合,
池化层的常见操作包含以下几种:
max pooling 选取卷积核内最大值作为结果的;效果较好;超参数较少
average pooling 对卷积核内数字取平均数作为结果
随机池化、中值池化、组合池化等
池化层是深度学习中常用的一种层级结构,它可以对输入数据进行降采样,减少数据量,同时保留重要的特征信息。池化层通常紧跟在卷积层之后,可以有效地减少数据量和计算复杂度,提高模型的训练速度和泛化能力1
$$
Cost J=\frac{1}{m}\sum_{i=1}^mL(\hat y{(i)},y)
$$
经典网络
LeNet-5
总体来看,LeNet(LeNet-5)由两个部分组成:
- 卷积编码器:由两个卷积层组成;
- 全连接层密集块:由三个全连接层组成。
![image-20230923164033186](E:\OneDrive - flavorful5475\桌面\zhen\note.assets\image-20230923164033186.png)
![image-20230923094518814](E:\OneDrive - flavorful5475\桌面\zhen\note.assets\image-20230923094518814.png)
AlexNet
VGG
![image-20230923100220649](E:\OneDrive - flavorful5475\桌面\zhen\note.assets\image-20230923100220649.png)
残差网络 ResNet (residual block )
代码部分
Scalar 标量
pd.get_dummies(features) ## 对字符类型的进行独热编码
模型构造
参数管理
自定义层
python 类
self代表类的实例,而非类
类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。self 代表的是类的实例,代表当前对象的地址,而 self.class 则指向类。self 不是 python 关键字,我们把他换成 runoob 也是可以正常执行的:
class Test:
def prt(self): # 第一个参数必须是
print(self)
print(self.__class__)
t = Test()
t.prt()
类属性与方法
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
类的方法
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。
self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定使用 self。
类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用。self.__private_methods。
#!/usr/bin/python3
class JustCounter:
__secretCount = 0 # 私有变量
publicCount = 0 # 公开变量
def count(self):
self.__secretCount += 1
self.publicCount += 1
print (self.__secretCount)
counter = JustCounter()
counter.count()
counter.count()
print (counter.publicCount)
print (counter.__secretCount) # 报错,实例不能访问私有变量
继承
#!/usr/bin/python3
#类定义
class people:
#定义基本属性
name = ''
age = 0
#定义私有属性,私有属性在类外部无法直接进行访问
__weight = 0
#定义构造方法
def __init__(self,n,a,w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" %(self.name,self.age))
#单继承示例
class student(people):
grade = ''
def __init__(self,n,a,w,g):
people.__init__(self,n,a,w)#调用父类的构函
self.grade = g
#覆写父类的方法
def speak(self):
print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
s = student('ken',10,60,3)
s.speak()
迭代器
用于对类等集合的遍历,遍历的类需要重写_ it _ _ next _()方法,抛出异常 StopIteration
推导式
用于列表,集合,元祖,字典等生成新数据结构的使用,过程中可以过滤掉一些元素,写法类似于for循环
标签:__,.__,机器,卷积,self,笔记,学习,print,def From: https://www.cnblogs.com/xiaojiansuibi/p/17727633.html