![](https://img-blog.csdnimg.cn/20191117111248433.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
机器学习
文章平均质量分 71
JK Chen
ACM退役选手,战绩4金6银
展开
-
基于yolo3的图像识别的训练过程
用了极客云的云gpu,GTX 1080 Ti 40核64G 220GB SSD + 3TB硬盘 网速D800/U100,4.8元一小时。跑的速度还可以,毕竟自己用的thinkpad显卡都是集成的,只能用cpu跑。自己机子上是18.08s/it,云gpu是4.09s/it,差了好几倍。感兴趣的可以看一下注册,使用说明环境python 3.6tensorflow==2.0.0open...原创 2020-02-01 16:51:24 · 2654 阅读 · 0 评论 -
tensorflow2笔记
常量:import tensorflow as tfprint(tf.__version__)x=tf.constant(0.)y=tf.constant(1.)for iteration in range(50): x=x+y y=y/2print(x.numpy())2.0.02.0原创 2020-01-18 20:38:03 · 240 阅读 · 0 评论 -
训练自己的图像分类器的详细过程(Xception,cifar10)
这两天肺炎传的特别快,搞得人心惶惶的。。。会不会学完后人类都快没了下文中的keras默认是tf.kerasfrom tensorflow import kerasimport tensorflow as tfimport matplotlib.pyplot as plt数据集处理目标分类数据集: cifar10引用方式: (x_train, y_train), (x_tes...原创 2020-01-28 15:50:13 · 2985 阅读 · 3 评论 -
机器学习资源
学习资源机器学习:吴恩达老师很久之前的课程,有很多东西已经不用了深度学习工程师:吴恩达老师,很专业很详细Hinton机器学习与神经网络:暂未学习斯坦福cs231n:官网,会持续更新课程斯坦福cs231n-2017:2017年的课程教学,为无法近youtube的人提供数据资源MNIST:个人学习初用的,20*20灰度图MNIST:手写数字集CIFAR-10:入门级别图像分类Ima...原创 2019-12-18 15:03:01 · 472 阅读 · 0 评论 -
关于训练集、验证集、测试集及数据不同时的情况
定义训练集用来拟合参数,验证集用来查看参数的好坏,测试集在完成后测试置信度确保不会出问题。划分传统的分法是把数据集分成训练集(70%)和测试集(30%),或者在需要交叉验证集时分为:训练集(60%)、交叉验证集(20%)、测试集(20%)。但是现在是大数据时代,假设你的数据量大于100万,那么可以分成训练集(98%)、交叉验证集(1%)、测试集(1%)。因为10000个数据已经具有普遍性了...原创 2019-12-15 16:05:14 · 5121 阅读 · 4 评论 -
误差分析、数据修正
误差分析我们在训练结束,做完验证后,人工查看在验证集中被误判的数据,看看你的算法的问题处在哪里。这个过程叫作误差分析。评估改善改善的方法有很多,但是也要分重点。例如错误中,有50%是A问题,5%是B问题,那么即便我想到了一个可能可以解决B问题的改善方法,但是要考虑一下是不是值得花时间去改善。假设遇到上述问题,首先应该要想办法改善A问题。...原创 2019-12-14 22:33:59 · 2332 阅读 · 0 评论 -
正交化、人类表现、可避免偏差、方差
正交化在优化算法的迭代过程中,可能会存在很多个可以改善的方面。假设你同时修改多个进行优化,那么不能直接从结果中看出。你要做的类似于控制变量法,一次修改一个看看是否有用。贝叶斯最优误差在算法的不断改善的迭代过程中,存在这样的情况:如果你的准确率劣于人类表现,那么改善速度会很快。但是当超过人类表现后会变慢。误差因为实际情况的原因,存在一个上限。例如语言识别中杂音很重,根本听不清楚,那么这种情况...原创 2019-12-14 21:23:21 · 1449 阅读 · 0 评论 -
查准率和查全率、单一数字评估
问题引入对于一些答案分布不平均的分类问题,单一看准确率是不够的。例如假设某种病发生的概率为1%1\%1%,那么显然对于任何一个就诊的人,直接回答没有病的做法,在准确率上达到99%99\%99%。但是这种做法显然很劣质,而我们由准确率作为唯一评价标准的评价方式,得到的结果为99%99\%99%,一份很高的评价。查准率和查全率我们对于这种问题引入查准率(percision)和查全率(recal...原创 2019-12-12 16:57:38 · 647 阅读 · 0 评论 -
关于局部最优
在开始学习梯度下降的时候,总会有这样的疑问:梯度下降只能到达局部最优,万一到达了一个较大的局部最优,错过了较小的全局最优或是另外一个更小的局部最优,那么是不是算法是失败呢?其实在机器学习的大数据背景下,随机到达的局部最优点与全局最优点虽然有差距,但是也足够优秀。而且到达局部最优的可能性也不是很大。单独看一个特征,到达梯度为0的情况有两种:而100个特征全部到达右边这种情况的概率值约为...原创 2019-12-12 16:09:17 · 1053 阅读 · 0 评论 -
学习速率递减
存在的问题在mini-batch梯度下降法中,由于多个mini-batch的互相干扰,如果到了低谷附近还保持很大的学习速率,可能会一直来回波动。而一开始设置较小的学习速率下降又太慢。学习速率递减为了解决上述问题,很自然的想到了学习速率的递减。开始时学习速率较大,而当epoch到达一定程度的时候适当的减少。方法一:α′=11+decayrate∗epochnumα\alpha'=\dfr...原创 2019-12-11 15:04:06 · 645 阅读 · 0 评论 -
mini-batch梯度下降
mini-batch梯度下降将总训练集划分为多个子训练集,每个子集称为mini-batch然后一次遍历全部训练集时,会逐一遍历每个mini-batch,进行参数的优化。注意,J{t}J^{\{t\}}J{t}(第t个mini-batch的cost,假设有K个)为1K∑δ+12K∑θ2\frac{1}{K}\sum\delta+\frac{1}{2K}\sum \theta^2K1∑δ+2...原创 2019-12-10 20:23:18 · 1457 阅读 · 0 评论 -
Adam梯度下降法
Adam梯度下降法结合了momentum梯度下降法和RMSprop梯度下降法的方法,更加的适用于大多数的情况。过程Vdw:=β1Vdw+(1−β1)dwVdb:=β1Vdb+(1−β1)db Sdw:=β2Sdw+(1−β2)dw2Sdb:=β2Sdb+(1−β2)db2 Vdw:=Vdw/(1−β1t)Vdb:=Vdb/(1−β1t)Sdw:=Sdw/(1−β2t)Sdb:=Sdb/(...原创 2019-12-09 22:22:34 · 3381 阅读 · 0 评论 -
RMSprop梯度下降法
RMSprop梯度下降法有点类似动量梯度下降法,其过程为:我们在神经网络中,算出了dw,dbdw,dbdw,db,然后令:Sdw:=βSdw+(1−β)dw2Sdb:=βSdb+(1−β)db2 w:=w−α⋅dwSdw+10−8b:=b−α⋅dbSdb+10−8Sdw:=\beta Sdw+(1-\beta)dw^2\\Sdb:=\beta Sdb+(1-\beta)db^2\\\;...原创 2019-12-09 22:06:35 · 866 阅读 · 0 评论 -
momentum梯度下降法
指数加权平均假设有多个时间点对应的值θt\theta_tθt,那么我可以得出一个指数加权平均值VtV_tVt:{Vt=0t=0Vt=βVt−1+(1−β)θtt>0\begin{cases}V_t=0&t=0\\V_t=\beta V_{t-1}+(1-\beta)\theta_t&t>0\end{cases}{Vt=0Vt=βVt−1+(1−β)θ...原创 2019-12-09 21:52:07 · 1129 阅读 · 0 评论 -
机器学习目录
监督学习数据集中的数据节点,均已打上标记(给出答案),例如结果有无,价格高低。其中对于连续答案值使用回归算法,对于离散答案值使用分类算法。无监督学习数据集中只要特征值,没有答案,即只告诉计算机是什么,而不告诉计算机要求的是什么,让计算机自动分析,形成多个特征值相近的簇,称为“聚类”。...原创 2019-12-09 21:24:22 · 2942 阅读 · 0 评论 -
无监督K-Means算法(代码部分)
理论部分 https://jkchen.blog.csdn.net/article/details/103334497这个比神经网络简单多了,一下午就KO了顺便一提,可视化过程很有意思,也学到了很多matplotlib.pyplot的知识代码:import numpy as npimport matplotlib.pyplot as pltfrom scipy.io import ...原创 2019-12-01 19:46:05 · 429 阅读 · 0 评论 -
无监督K-Means算法(理论部分)
无监督学习给出只有特征值的数据,自行分成多个相似的簇。以下是两个特征值的可视化情况:你需要做到的结果大致如下:K-Means算法流程:先随机K个点,作为K个簇的中心;然后对于每个样本点,寻找最近的中心,并加入那个簇;每个簇的中心变为簇中的所有样本点的均值点;重复这个过程直到不发生变化。定义:x(i)x^{(i)}x(i)为第i个样本点;μk\mu_kμk为第k个...原创 2019-12-01 19:22:27 · 500 阅读 · 0 评论 -
算法性能评估以及诊断法
问题介绍我们大致可以将训练出的参数分为三类:欠拟合、正常、过拟合。以方程次数为例,对于一个简单的单特征值问题,我们可能拟出如下模型:而方程次数过低容易导致欠拟合,方程次数过高可能导致过拟合:方程次数选择首先来讲一个比较简单的方法,我们把数据集分成训练集(70%)和测试集(30%),用每一种方程训练集得出对应的最优参数θ\thetaθ。然后每个方程用对应的参数θ\thetaθ去测试集...原创 2019-11-30 15:15:39 · 535 阅读 · 0 评论 -
神经网络(代码实现)
这个代码自己写到自闭,很多天拼拼凑凑才写完。但是靠理论部分自己写出来的代码真香理论部分链接:https://blog.csdn.net/jk_chen_acmer/article/details/103066444用的是吴恩达老师给的minst(手写数字)数据集,20*20单通道值。用前面4900个数据训练的,跑了半个小时左右,跑出来后面100个数据对上92个,还行。import ...原创 2019-11-29 19:19:23 · 2612 阅读 · 0 评论 -
神经网络(理论部分)
问题引入实际问题中,往往数据的特征数量很大,要使用线性方法,使用一些多项式拟合这样的数据很困难。我们得想办法使用非线性的算法解决这些问题。神经网络下面是生物的神经元结构:每个神经元有很多树突,用于接收外部信息;有一个轴突,用于网外传递信息。我们可以按照这个模型将逻辑回归抽象成这样:接收信息,通过处理(计算后)往后传递处理后的信息。注意这里的处理结果:hθ(x)=11+e−θTXh...原创 2019-11-14 21:51:55 · 1448 阅读 · 0 评论 -
正则化
问题引入当预测函数的项次数过高时,算法为了降低代价,也就是差异,会跑出一条畸形的曲线。虽然这条畸形的曲线完美的拟合了所有的数据点,但是显然这样一条曲线并不具有可推广性、泛化性。对于以后给出的数据也不能准确的预测。这种情况称为拟合过度。一般在数据量较小,而特征值较多的情况下,过度拟合发生的概念较高。正则化为了在保留较小的高次项的基础上,解决过度拟合,我们需要进行正则化。我们对于原有的代...原创 2019-11-14 14:05:42 · 1562 阅读 · 0 评论 -
逻辑回归(理论部分)
logistic回归……引入原因用于解决分类问题,虽然叫作回归但是其实是分类算法。以简单的单特征值双答案值(0或1)为例,下面的案例说明这种问题使用线性回归的不足:对于这样的情况,上面的预测函数才是我们真正要找的,满足以下要求:预测值属于[0,1][0,1][0,1];当预测值∈[0.5,1]\in[0.5,1]∈[0.5,1]我们认为答案为1,预测值∈[0,0.5)\in[0,0....原创 2019-11-11 17:51:56 · 601 阅读 · 0 评论 -
逻辑回归(代码部分)
理论部分链接logistic回归……梯度下降算法单特征值双答案值(0或1),y当x<5x<5x<5时为0,x>=5>=5>=5时为1,x左右浮动1单位import numpy as npimport matplotlib.pyplot as pltimport copy# 获取随机数据,y当x<5时为0,x>=5时为1,x左右浮动1...原创 2019-11-11 17:52:03 · 359 阅读 · 0 评论 -
线性回归(代码部分)
using python产生随机数据import numpy as npimport matplotlib.pyplot as pltdef getData(): res=np.zeros([20,2],dtype=float) res=res.T res[0]=np.random.random(20)*10 for i in range(0,20):...原创 2019-11-09 21:30:17 · 395 阅读 · 0 评论 -
线性回归(理论部分)
监督学习数据集中的数据节点,均已打上标记(给出答案),例如结果有无,价格高低。其中对于连续答案值使用回归算法,对于离散答案值使用分类算法。无监督学习数据集中只要特征值,没有答案,即只告诉计算机是什么,而不告诉计算机要求的是什么,让计算机自动分析,形成多个特征值相近的簇,称为“聚类”。线性回归预测的答案值可以用各个特征值的线性表达式表示。假设单个变量xxx,实际答案为yyy,线性预测值为...原创 2019-11-08 22:20:11 · 303 阅读 · 0 评论