机器学习
ZJE_ANDY
这个作者很懒,什么都没留下…
展开
-
损失函数之-----L1 loss和L2 loss和smooth L1 loss -----用于回归任务
1. L1 loss:公式和求导公式:(带绝对值求导时,先去掉绝对值符号,再分情况求导) 一个batch的形式:L1 loss 图形和求导图形如下:图的底部是预测值和label的差值。 我们可以看到L1 loss的底部是尖的。底部是不存在导数的。而在其他地方,导数大小都是一样的。优缺点:优点:1. L1 loss的鲁棒性(抗干扰性)比L2 loss...原创 2020-09-08 22:46:06 · 10398 阅读 · 1 评论 -
softmax及其求导过程
1.softmaxsoftmax多用于多分类问题,它会把网络的输出变成概率,公式如下: softmax一般会和交叉熵结合在一起,因为交叉熵的输入是概率,而softmax就可以把网络的输出变成对应等比例的概率。2.softmax求导过程:假设求导时,有如下x: s 为网络输出,第一个输出节点为,第二个为,以此类推第 i 个输出节点为...原创 2020-09-08 10:40:01 · 6235 阅读 · 1 评论 -
最小二乘法
出自:https://www.zhihu.com/question/37031188-------------------------------------------------------最小二乘法的意思就是,根据给定的很多样本,然后得出这样样本拟合的函数。1.日常例子:比如温度与冰淇淋的销量:如果我们要探究温度与销量之间的关系,要怎么办呢,如下:把温度和销量画到坐标系上如下图:我们看上去,像是线性关系,所以我们假设这种线性关系为: ...原创 2020-08-21 22:09:34 · 851 阅读 · 0 评论 -
L1和L2正则化------直观和全面的解释--解决过拟合和提高模型泛化能力
1. 1范数和2范数L1和L2正则化,其实就是在损失函数后面加一个1范数或2范数约束。1-范数:,1范数表示向量元素绝对值之和。2-范数:也称欧几里得范数。即向量元素绝对值的平方和再开方。2. L1正则化假设有如下带L1正则化的损失函数:令,则 J = J0 + L其中J0为原来损失函数,J为加了L1正则项后的损失函数。α是正则化系数。注意到L...原创 2020-04-12 12:08:55 · 2159 阅读 · 0 评论 -
通过指数衰减的方法设置[优化神经网络损失函数的]学习率
一,什么是学习率?在神经网络中会有一个损失函数J(X)来衡量神经网络的输出结果和正确结果之间的误差,如下图J(X)为某个神经网络的损失函数,其实X假设为神经网络中的参数。优化神经网络的目的就是使它的损失函数值达到最小。由下图所示,设置当前的参数和损失函数值对应下图小圆点的位置,那么梯度下降算法会将参数向X轴左侧移动,从而使得小圆点朝着箭头方向移动。参数的梯度可以通过求偏导数的方式计算,对应...原创 2018-09-24 23:11:12 · 2912 阅读 · 1 评论 -
损失函数之均方误差MSE(一般用于回归问题)
回归问题与分类问题不同,分类问题是判断一个物体在固定的n个类别中是哪一类。回归问题是对具体数值的预测。比如房价预测,销量预测等都是回归问题,这些问题需要预测的不是一个事先定义好的类别,而是一个任意实数。解决回归问题的神经网络一般只有一个输出节点,这个节点的输出值就是预测值。 而回归问题最常用的损失函数是均方误差MSE,定义如下:上式中,yi为一个batch中第 i 个数据的正确答案...原创 2018-08-11 22:27:24 · 24303 阅读 · 1 评论 -
损失函数之交叉熵(一般用于分类问题)
一,交叉熵的原理:交叉熵是用来衡量两个 概率分布 的距离(也可以叫差别)。[概率分布:即[0.1,0.5,0.2,0.1,0.1],每个类别的概率都在0~1,且加起来为1]。若有两个概率分布p(x)和q(x),通过q来表示p的交叉熵为:(注意,p和q呼唤位置后,交叉熵是不同的)只要把p作为正确结果(如[0,0,0,1,0,0]),把q作为预测结果(如[0.1,0.1,0.4,0.1...原创 2018-08-10 11:32:55 · 31082 阅读 · 0 评论 -
ID3决策树(python3)
1.基本概念(香农熵,信息增益)2.决策树代码步骤一.基本概念1.香农熵(又名信息熵)(Entropy)一件事情的发生几率越高,它携带的信息熵越低(信息熵为非负数)香农熵的公式:其中 U 事件有 n 种可能结果,Pi 为[ 可能结果i ]的发生几率 (i例如输入一种数据,判断这个人的性别,即 n = 2,因为性别只有 男 或 女 两种可能结果。原创 2018-03-12 21:40:32 · 564 阅读 · 0 评论 -
机器学习-----之KNN近邻算法(python3)
1.KNN算法思想2.实现KNN算法要提供的数据3.KNN算法核心程序4.KNN完整程序一,KNN算法思想KNN算法是用于判断一个物品是属于哪一类的算法。如要判断一电影(如电影A)是爱情片还是动作片,可以通过其接吻镜头和打斗镜头的次数来判断,设 x = 接吻镜头,y = 动作镜头。则形成一个坐标点(x,y)。而其他已定好类型的电影(例如10部电影---5部爱情片,5部动原创 2017-07-09 19:34:32 · 1103 阅读 · 0 评论 -
python3 一组数值的归一化处理
1.什么是归一化:归一化就是把一组数(大于1)化为以1为最大值,0为最小值,其余数组按百分比计算的方法。如:1,2,3.,那归一化后就是:0,0.5,12.归一化步骤:如:2,4,6(1)找出一组数里的最小值和最大值,然后就算最大值和最小值的差值min = 2; max = 6; r = max - min = 4(2)数组中每个数都减去最小值2,4,原创 2017-06-21 00:59:22 · 12561 阅读 · 1 评论 -
python3 的 matplotlib绘图库的使用
1.绘制第一幅图表(1)figure函数,创建图表(2)subplot函数,创建子图(3)在多个图表中创建子图(4)plot()函数,画函数图像(5)sca()函数,选择子图1.绘制第一幅图表(1)figure()函数,创建图表import matplotlib.pyplot as pltplt.figure(1) #创建图表1plt.fig原创 2017-06-19 10:01:04 · 29926 阅读 · 2 评论 -
python3 矩阵的切片
如有 5*5 矩阵A,有语句: A[ x:y,z ]x:y 表示的是矩阵的行。 x:y 表示从 x 行到 y 行的内容(左闭右开区间 ---就是x 和 y 取值为0~5,但还是表示5行,因为‘:’后面的数要减一,相当于[x,y) ) z 表示的是矩阵的列,一共有 5 列,列序号由0开始,所以 z 取值为:0~4 举例:例如有 5*5的单位矩阵 E:[[ 1. 0原创 2017-06-18 13:52:22 · 14425 阅读 · 0 评论 -
Python3 中把txt数据文件读入到矩阵中
1.实例程序:'''数据文件:2.txt内容:(以空格分开每个数据)1 2 2.53 4 47 8 7'''from numpy import *A = zeros((3,3),dtype=float) #先创建一个 3x3的全零方阵A,并且数据的类型设置为float浮点型f = open('2.txt') #打开数据文件文件lines原创 2017-06-17 12:31:19 · 25303 阅读 · 1 评论 -
python的Numpy之矩阵操作
0.导入numpy包1.创建矩阵2.矩阵的基本操作3.行列式计算0.导入numpy包要进行numpy的操作,必须先导入numpy包:import numpy as np1.创建矩阵创建矩阵用到 numpy 下的 matrix方法:如创建矩阵:矩阵行之间用分号间隔import numpy as npa = np.matrix('1原创 2017-06-16 10:32:40 · 10868 阅读 · 2 评论