- 博客(21)
- 收藏
- 关注
原创 tensorboard问题锦集
前言:今天用了下tensorboard,第一次用发现了几个问题,在此记录以便之后再次遇到。问题1:tensorboard: error: unrecognized arguments: Study\Class3\logtensorboard: error: unrecognized arguments: Study\Class3\logs文件路径不能正确识别,在运行这句指令之前需要保...
2019-08-23 16:27:37
1322
1
原创 softmax反向传播公式推导
前言:最近在深度学习中,了解到多分类的softmax算法,且利用该算法在进行反向传播时除了损失函数与sigmoid的损失函数不一样,其他梯度递推基本一致。这里主要对softmax算法的反向传播求解dZ进行了公式推导。其他部分与sigmoid算法求解一致。符号说明 ...
2019-08-20 18:41:42
1921
原创 numpy和MATLAB中协方差矩阵的计算
前言:最近重新看了下PCA算法的实现,在里面用到了协方差矩阵的计算。为了今后方便回顾,特此记录。这里只针对协方差矩阵的计算做说明,并与numpy和MATLAB中的协方差矩阵计算做对比。关于协方差矩阵的定义这里不再赘述。混淆点关于矩阵中数据是按照列排列和按照行排列的出来的协方差矩阵是不同的。如果数据按照列排列,例如一个3*2的矩阵,那么该矩阵有2个数据(或者叫观测值),3个变量。...
2019-07-25 09:23:24
571
原创 吴恩达机器学习ex1MATLAB实现完整版
前言:线性回归的实现在机器学习中是相对比较容易理解和实现的,最近回顾了一下之前学的线性回归,重新理了一下吴恩达的作业,加之之前做的时候很多地方不明白。因此,重新将其实现一遍。简单来说,利用梯度下降算法求解线性回归方程主要分为两步:1、计算代价函数;2、最小化代价函数得到参数θ。下面依次来实现单变量和多变量的线性回归问题。单变量问题computeCost.m这个函数的作用就是计算...
2019-07-16 14:44:42
1954
1
原创 K最近邻算法实现
前言:k最近邻算法(KNN)的算法思想十分简单,简单来说就是输入一个样本数据与已知标签的样本集(样本集中每条数据都有标签)做比较,找出与输入样本最相似的K个样本,在这K个样本中,选择出现次数最多的标签作为输入样本的标签。正如下图中,输入样本以绿色表示,若k=3,也就是实线园所表示的范围,红色样本有2个,蓝色有1个。因此,输入样本标签为红色。若k=5,也就是虚线园所表示的范围,红色样本有2个,蓝...
2019-07-14 19:21:17
356
原创 吴恩达机器学习之异常检测与推荐系统的MATLAB实现(对应ex8练习)
异常检测前言:异常检测算法的重点是高斯分布的实现与概率阈值的选取。高斯分布是异常检测的核心,其实现就是依靠高斯分布来实现的;而概率阈值的选取决定了整个异常检测算法的实现好坏。下面给出MATLAB实现。estimateGaussian.m这部分实质是求均值u和标准差σ。直接将公式实现即可。下面先给出公式。代码实现也没什么难点,细心点即可。function [mu sigma2...
2019-07-08 19:18:13
1029
2
原创 吴恩达机器学习K-Mean算法和PCA算法的MATLAB实现(对应ex7练习)
K-mean算法前言:K-mean算法的思想和实现都不难,整个算法主要分为两步:1、找到与每个样本距离最近的质心,将样本与最近的质心关联起来;2、根据每个质心的关联样本,重新计算质心的位置。下面是吴恩达课件里的说明,说的十分清晰。在实现K-mean算法的过程中,质心的初始位置一般是随机选取样本点作为质心。例如需要将样本分为K类,那么从样本中随机选取K个样本作为初始化质心即可。样本的初始...
2019-07-06 21:03:05
829
原创 吴恩达机器学习支持向量机的MATLAB实现(对应ex6练习)
前言:本章作业有两个实现,一个是分类问题,有点类似于之前做过的分类,但是不同在这里是使用SVM实现。对于SVM的思想配套视频已经讲的比较清楚了,在练习中也是直接给出了关键代码,我们需要实现的只是部分。另一个是垃圾邮件的分类,也是使用SVM实现,这部分自己敲的内容很少。总之,本节很多关键代码吴恩达都直接给出,需要自己动手实现的都不难,重点是阅读这些核心代码。gaussianKernel.m这...
2019-07-05 15:10:05
927
原创 Python语言的套接字学习
背景:前段时间做毕设需要做一个显示界面将摄像头采集的关键信息传送回PC并显示出来,由于之前学习java的时候接触过套接字。因此,在利用Python实现这个功能时首先也想到了这茬。想到之后可能还会用到这个知识点,特此记录下来以便翻阅。TCP套接字TCP套接字也叫面向连接的套接字,这种连接方式能够保证每一条消息片段都能到达目的地。相对于另一种无连接的套接字(也叫UDP套接字),TCP套接字传输...
2019-05-30 20:54:35
204
原创 使用Python的pyinstaller打包程序出现failed to create process的问题
方法一:在Python的安装路径下找到Scripts文件下的pyinstaller-script.py文件并打开,如果路径没有引号则加上引号,此种情况一般发生在pyinstaller版本较低的情况下方法二:如果加上引号还是不能打包文件,则在DOS命令行进入Python安装路径的Scripts文件夹 执行:python pyinstaller-script.py G:\Pyt...
2019-05-23 11:01:26
7565
9
原创 吴恩达机器学习正则化线性回归和偏差算法的MATLAB实现(对应ex5练习)
linearRegCostFunction.m这个文件主要的功能是计算正则化线性回归的代价函数和梯度,其实在之间的正则化的练习过程中就有过实现。作为温习,先放出对应的参考。代价函数的计算公式正如上图中所示,这里需要注意的是标黄的部分文字。其意思是不需要正则化theta0,这与视频中一致,同时在MATLAB中,theta0代表的是theta1。梯度的计算主要是区别j = 0和j...
2019-05-18 18:08:36
1131
1
原创 吴恩达机器学习正则化Logistic算法与神经网络的MATLAB实现(对应ex3练习)
前言:本次作业主要是一个多分类案例的实现。其主要是利用logistic算法,多分类与二分类问题相似。其主要思想是将N类别的分类转换成N个二分类问题,每次选择其中一个类别作为正类,其余的类别都作为反类,计算出相应的权重。最后通过计算出来的N个权重对输入样本做预测,选取其中最大输出作为最终的输出。lrCostFunction.m该函数是正则化logistic算法的实现,包括计算代价函数和梯度,...
2019-05-06 23:53:51
1341
原创 吴恩达机器学习正则化Logistic回归算法的MATLAB实现
前言:最近二刷了吴恩达的机器学习视频,通过对视频中logistic算法知识点的整理,对该算法的应用有了更深的认识。同时发现logistic算法的应用和线性回归有几分相似,因此重新做了下练习加深自己的理解。在文章最后,附上自己用梯度下降算法实现的logistic算法。这里列出线性回归和logistic回归算法的重要公式,更直观的认识到二者之间的异同。未正则化的logistic算法...
2019-04-26 20:29:51
2293
原创 吴恩达机器学习Logistic回归算法的Python实现
根据吴恩达作业ex2的Logistic Regression用Python代码实现。首先贴上公式,整个算法的实现主要依靠两个公式。一个是计算代价函数的公式,一个是进行梯度下降的公式。计算logistic回归的代价函数定义如下。值得注意的是,这里的h(x)与线性回归的h(x)并不一样,在带入公式时尤其注意。同样,与线性回归类似,为了最小化代价函数J,需要进行迭代计算相应的theta。...
2019-04-21 21:29:09
522
原创 吴恩达机器学习ex1的Python实现
主要根据吴恩达的机器学习视频来学习梯度下降算法,并用代码实现。梯度下降算法的目的是求使代价函数最小的θ的值,附上相关公式。上图是假设函数和代价函数的定义,而梯度下降算法的目的就是为了找到是代价函数最小的θ值。附上梯度下降算法公式。需要注意的时,在实现梯度下降算法时需要同时更新θ的值。下面通过吴恩达梯度下降算法的作业和一个例子来实现该算法,验证其正确性。以下代码通过Pytho...
2019-04-16 20:39:44
965
2
原创 Python之Numpy学习(4)
使用数组进行文件输入和输出主要介绍三个文件文件操作函数:numpy.save()、numpy.savez()和numpy.save()。numpy.save(file,arr)存储的文件是以.npy为后缀,通过notepad无法打开,与该函数对应的读取函数是numpy.load(file)In [9]: arr = np.random.randn(3,5)In [10]: n...
2019-04-03 16:25:19
401
原创 Python之Numpy学习(3)
sort方法使用,对于多维数据可以指定对指定轴排序,默认是最里面一层数据排序In [8]: arr = np.random.randn(3,2,2)In [9]: arrOut[9]:array([[[ 1.17120187, 1.46243415], [ 1.03303677, 0.046324 ]], [[ 0.54480189, -1.53...
2019-04-03 16:00:25
154
原创 Python之Numpy学习(2)
数组的转置和换轴数组的转置拥有T和transpose方法,其中后者可以接收包含轴编号的元组,值得注意的是转置和换轴操作返回的是原数组的视图而非拷贝In [17]: arr = np.arange(15).reshape(3,5)In [18]: arrOut[18]:array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9],...
2019-04-03 01:06:58
155
原创 Python之Numpy学习(1)
astype(dtype):显示的转换数组的数据类型,该方法总会生成一个新数组In [6]: arr = np.arange(10,dtype=np.float)In [7]: arrOut[7]: array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])In [8]: arr = arr.astype(np.int)In [9]: arr...
2019-04-01 23:34:24
307
原创 OpenCV中数据访问的三种方式
方法一:使用at<>()访问数据元素:at<>()是一个模板方法,在使用时圆括号内需要写访问的row和col,尖括号内需要写该row和col对应的数据。比如,对于单通道的图像,row行和col列处只有一个数据。因此,只需要写基本数据类型即可,比如uchar,float等。当时对于BGR图像这种三通道的数据,row行和col列处包含三个数据(B、G、R的值),因此需要...
2019-03-31 00:32:19
934
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人