![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
WAWA战士
起飞
展开
-
极大似然估计与交叉熵
极大似然估计定义:训练一个模型的参数,使得在该模型下,当前已经发生的事的发生概率最大原创 2023-01-03 17:32:30 · 236 阅读 · 1 评论 -
感知机从0到1
感知机干嘛用的感知机是一种监督算法好像单层的感知机相当于单层的神经网络通过输入的数据和对应的标签来训练一组权重w和b对输入的特征向量进行二分类或者说判断,比如要判断一个人帅不帅,输入特征向量可以是(身高,体重,五官评分,气质评分),然后感知机会根据以前训练的结果告诉你这个人帅不感知机模型模型的数学定义模型为:希望通过以下的fx函数进行二分类感知机模型的几何意义这里的w向量相当于确定了一个超平面的法向量,b是截距,所以找到一组好的w和b相当于要找到一个好的超平面将两类数据分好类损失函数原创 2022-06-07 21:43:31 · 148 阅读 · 0 评论 -
kmeans从0到1
kmeans在干什么聚类,就是你给我一堆数据,我能帮你把相近的数据分成一类,最终得到很多个类如下图,kmeans会帮我们把左边的点分成一类,右边的点分成一类,前置知识说白了监督学习和现在大部分的深度学习一样,需要训练样本并且一通训练后能推测或判断新的一个输入,而无监督学习比如pca,kmeans,不需要喂数据,直接给我什么我就处理什么数据标准化具体流程我们告诉kmeans需要分成多少类,然后他会任意选择k个样本数据作为初始的聚类中心,接着他会计算每个样本到k个聚类中心的距离,然后把该样本原创 2022-06-07 18:59:01 · 131 阅读 · 0 评论 -
pca从0到1
如上图,把X矩阵看成列向量组,则1/(m-1)XtX结果就是协方差矩阵,该矩阵的第i行第j列代表X矩阵中的第i列与第j列之间的协方差基变换如下图,橙色坐标系和黑色坐标系的基不同,那么怎么根据v在橙色坐标系的坐标计算v在黑色坐标系下的坐标呢,其实就是计算v在黑色坐标系的各个基上的投影如下图,总结一句话就是:基w为单位向量时,向量v在基w下的投影是二者内积当想要把m个具有n维特征的样本降维,可以直接样本矩阵右边乘一个基变换矩阵A,其中A的每一列是新的基且为单位向量,如下图,样本矩阵维度从n降到了..原创 2022-06-07 17:12:11 · 168 阅读 · 0 评论 -
从0到1学习SVM
凸集定义设K是n维欧式空间的一点集,即任意两点X,Y(均属于K)的连线上所有点aX+(1-a)Y仍属于K,(a属于0-1)通俗理解借用一张图,如下,若点集中任取两点,它们所连成的线段上的点仍属于该点集,则为凸集为什么就是这么定义呢为什么说aX+(1-a)Y所生成的点就是在X和Y的连成线段之间呢根据aX+(1-a)Y=Y+a(X-Y)画图后就懂了更为严谨的证明凸优化问题定义待解函数为凸函数,约束是一个凸集kkt条件作用使用条件一个凸优化问题,满足slater条件,则必有强对偶原创 2022-01-21 14:57:13 · 409 阅读 · 0 评论 -
train,test,valid
train是训练集,val是训练过程中的测试集,是为了让你在边训练边看到训练的结果,及时判断学习状态。test就是训练模型结束后,用于评价模型结果的测试集。只有train就可以训练,val不是必须的,比例也可以设置很小。test对于model训练也不是必须的,但是一般都要预留一些用来检测,通常推荐比例是8:1:1作者:theone链接:https://www.zhihu.com/question/41055017/answer/125737453来源:知乎著作权归作者所有。商业转载请联系作者获得授权转载 2021-05-16 22:13:18 · 2898 阅读 · 0 评论 -
F.softmax函数dim解读
F.softmax(score, dim=1)dim=1就是对score矩阵中 所有第1维下标不同,其他维下标均相同的元素进行操作(softmax)比如a[0][8][15]和a[7][8][15]都会被选中,同时进行同一操作而a[0][8][15]和a[0][8][15]不会a[0][8][15]和a[0][7][15]也不会...原创 2021-05-09 19:56:36 · 4713 阅读 · 0 评论 -
python添加模块搜索路径终极方法
背景:sys.path.append(os.pardir)只能在程序运行时生效,这意味着你不可以ctrl去对应其他库看代码方法:在site-packages文件那里创建一个txt文件,里面写库(或者某一模块)的绝对路径(我这里直接把整个项目的绝对路径写了下去),保存好之后修改为.pth后缀即可...原创 2021-05-07 21:47:44 · 209 阅读 · 0 评论 -
python axis
import numpy as npa=[ [ [1,5,1], [2,2,1] ], [ [5,6,1], [3,3,1] ], [ [3,3,3] , [4,4,4] ] ]a=np.array(a)a1=np.mean(a,axis=(0,1))print(a1)#输出[3. 3.83333333 1.83333333](0,1)就是第2维以及更高维确定了之后,0,1维所有的变法都归为一组把上面的数组想象成通道顺序维RGB的图像,第1原创 2021-03-16 20:41:33 · 53 阅读 · 0 评论 -
残差网络
强调一点,我这种理解离数学证明还远得很,只适合入门者看看,尝试去理解先看这篇回答作者的观点是残差网络解决深层网络的梯度消失which will lead to 难以学习,或者说各个参数没啥变化,因为传到自己那的时候loss对某个权重的偏导太小了这时候也就是说,如果反向传播的时候链式法则项很小,那我们也还有一个loss对Xd的偏导的补偿,不至于没学到东西而且我们也没有增加新的超参数...原创 2021-03-08 23:45:13 · 128 阅读 · 0 评论 -
正则化如何抑制过拟合(未证明kkt)
大前提是解决凸函数最值问题(因为凸函数局部最优等于全局最优的性质,可以让我们找到极值点就相当于找到最值点,而梯度下降正正就是帮助我们找极小值,也就是利用梯度下降就能找到凸函数的最小值)问题背景想要限制权重参数数目以此抑制过拟合,我们可以从两个思路去想,一是直接限制权重参数中为0的数目,这样就相当于限制了有效权重参数的数目,这其实是L0<=m,但L0范数为非凸函数,可惜解不得,二是使部分权重参数尽量地小,最好趋于0,相当于用L2范数<=m(L1也行)实现,这个可以实现为啥构造拉格朗日函数原创 2021-03-07 17:52:59 · 127 阅读 · 0 评论 -
神经网络中由于传入对象所以能够通过修改对象的值从而修改权重
import numpy as npclass obj: def __init__(self,x): self.x=x def printselfx(self): print(self.x['a'])x=np.array([1,3,5])dict = {'a': x}temp=obj(dict)temp.printselfx()x+=1dict= {'a': x}temp.printselfx()输出结果:如上所示,因为x是原创 2021-02-06 20:29:35 · 125 阅读 · 0 评论 -
np.random.permutation()用法
import numpy as npx=np.array([1,5,6,3,4])permutation1=np.random.permutation(x)permutation2 = np.random.permutation(7)x=np.array([[1,9,6],[1,1,1],[9,5,2],[8,8,8]])permutation3 = np.random.permutation(x)print(permutation1)print(permutation2)print原创 2021-02-06 20:04:03 · 1839 阅读 · 0 评论 -
softmax函数细节
这是我一开始写的softmax函数,用于one hot label的def softmaxforminibatch(input): max=np.max(input,axis=1) input=np.exp(input-max) sum=np.sum(input,axis=1) input/=sum return input我之前看源码发现别人是这样写的,别人是这样的def softmax(x): if x.ndim == 2: x =原创 2021-02-03 17:13:58 · 158 阅读 · 0 评论 -
python中numpy关于布尔值转换为int的方法
布尔转inty.astype(np.int)#np数组使用这个转换为intnp.array(x,dtype=np.int)#在将一个数组包装成np数组时顺便指定包装之后的数据类直接对布尔值进行求和x=np.array([True,True,False])print(np.sum(x))#结果是2,即自动把True看成1,False看成0...原创 2021-01-31 00:48:15 · 11017 阅读 · 0 评论 -
梯度下降证明
对应深度学习入门104页梯度下降法是什么证明什么是方向余弦什么是方向导数就是某个点向着某个方向的前进一点点所导致的函数值变化量方向导数和梯度有什么关系方向导数什么时候有最大值即某个点的梯度方向有方向导数max...原创 2021-01-29 16:07:20 · 181 阅读 · 0 评论 -
mini-batch中关于python一维数组reshape
深度学习入门那本书91页有这么一段话输入一维数组咋就一定要reshape啊,而且还要求reshape成一维,这不是没变化吗? t1=[1,2,6] t1=np.array(t1) print("t1数组是",end="") print(t1) print("t1数组的shape[0]是", end="") print(t1.shape[0]) t1=t1.reshape(1,t1.size) print("t1数组reshape为1维之后是",end="")原创 2021-01-28 22:11:02 · 407 阅读 · 0 评论 -
Softmax-with-Loss层反向传播的值除以批的大小
对应《深度学习入门:基于 Python 的理论与实现》153页最后一段落class SoftmaxWithLoss: def __init__(self): self.loss = None # 损失 self.y = None # softmax的输出 self.t = None # 监督数据(one-hot vector) def forward(self, x, t): self.t = t self.y = softmax(x) self.loss = cross原创 2020-12-19 20:51:48 · 1129 阅读 · 17 评论 -
误差反向传播中批版本Affine层关于偏置的反向传播
对应《深度学习入门:基于Python的理论与实现》149页对应书中的内容可以看看这里,主要用来看看图片和代码,我的图用来理解正向传播时,偏置会被加到每一个数据(第1个、第2个……)上。因此,反向传播时,各个数据的反向传播的值需要汇总为偏置的元素。...原创 2020-12-18 22:04:12 · 635 阅读 · 1 评论