08 2018 档案

摘要:机器学习基础( Basic Recipe for Machine Learning) 我们训练的目的是找到低偏差、低方差的模型。 首先要保证的是低偏差,这是最低标准,反复尝试,直到可以拟合数据为止,至少能够拟合训练集。 偏差较高时可以考虑采取的方法: 用规模更大的网络 延长训练时间 一旦偏差降低到可 阅读全文 »
posted @ 2018-08-29 16:05 刘-皇叔 阅读(319) 评论(0) 推荐(0) 编辑
摘要:偏差,方差( Bias /Variance) 假设数据集: 如果给这个数据集拟合一条直线,可能得到一个逻辑回归拟合,但它并不能很好地拟合该数据, 这是高偏差( high bias)的情况, 我们称为“欠拟合(” underfitting)。 相反的如果我们拟合一个非常复杂的分类器,比如深度神经网络或 阅读全文 »
posted @ 2018-08-29 16:02 刘-皇叔 阅读(753) 评论(0) 推荐(0) 编辑
摘要:训练,验证,测试集( Train / Dev / Test sets) 在配置训练、验证和测试数据集的过程中做出正确决策会在很大程度上帮助大家创建高效的神经网络。 通常我们会将数据集分层三类: 训练集:执行算法 验证集,也称作简单的交叉验证集:选择好的模型 测试集:对模型性能进行评估 数据集划分原则 阅读全文 »
posted @ 2018-08-29 15:57 刘-皇叔 阅读(880) 评论(2) 推荐(0) 编辑
摘要:作业简介 使用前面完成的函数构建神经网络,并运用到猫的分类问题中。我们可以得到相比于logistic回归准确性提高的模型。 工具包 数据集 还是使用与logistic·回归对猫分类问题中的数据集: 输出: 数据集详细信息: 输出: 数据集预处理: 输出: 构建模型 两层网络 L层网络 基本流程 两层 阅读全文 »
posted @ 2018-08-27 22:06 刘-皇叔 阅读(621) 评论(0) 推荐(0) 编辑
摘要:作业简介 本次作业是要构建深度神经网络,通过本次作业: 能够使用Relu激活函数来改善你的模型 创建深度的神经网络(超过一个隐藏层) 实现易于使用的网络类 工具包 引入本次作业需要的工具包: 本次作业的架构 初始化两层和L层神经网络的参数 执行前向传播 计算前向传播的线性部分 使用激活函数 结合上述 阅读全文 »
posted @ 2018-08-27 09:01 刘-皇叔 阅读(582) 评论(0) 推荐(2) 编辑
摘要:作业简介 本次作业将实现含有一个隐藏层的神经网络,你将会体验到与之前logistic实现的不同: 使用含有一个隐藏层的神经网络实现2分类。 使用一个非线性的激活函数(比如tanh)。 计算交叉熵损失。 实现前向传播和反向传播。 工具包 sklearn包:提供简单有效的数据挖掘和数据分析。 数据集 加 阅读全文 »
posted @ 2018-08-26 20:45 刘-皇叔 阅读(1369) 评论(0) 推荐(2) 编辑
摘要:作业简介 本次作业的内容是使用logistic回归来对猫进行分类,你将会了解到创建一个学习算法的基本步骤: 参数初始化; 计算代价函数与梯度; 使用优化函数(在此使用梯度下降); 使用一个main函数将上述三个步骤合理的安排在一起。 本次作业使用的数据集下载链接。 工具包 使用下面的代码引入本次作业 阅读全文 »
posted @ 2018-08-26 14:10 刘-皇叔 阅读(1166) 评论(0) 推荐(0) 编辑
摘要:参数 VS 超参数( Parameters vs Hyperparameters) 比如算法中的 learning rate (学习率)a,iterations (梯度下降法循环次数)、L(隐藏层数目)、n[l](隐藏层单元数目)、choice of activation functi 阅读全文 »
posted @ 2018-08-25 18:07 刘-皇叔 阅读(330) 评论(0) 推荐(0) 编辑
摘要:搭建神经网络块( Building blocks of deep neural networks) 在神经网络中正向步骤的结构,我把它成为称为正向函数,类似的在反向步骤中会称为反向函数。 单一模块的正向函数和反向函数可以使用下面的图示表示:对于第l层的正向输入函数,输入为${a^{[l - 1]}} 阅读全文 »
posted @ 2018-08-25 17:23 刘-皇叔 阅读(681) 评论(0) 推荐(0) 编辑
摘要:为什么使用深层表示?( Why deep representations?) 深度神经网络的这许多隐藏层中,较早的前几层能学习一些低层次的简单特征,等到后几层,就能把简单的特征结合起来,去探测更加复杂的东西。 比如人脸识别检测时,一般会从比较小的细节入手,比如边缘,然后再一步步到更大更复杂的区域,比 阅读全文 »
posted @ 2018-08-25 16:49 刘-皇叔 阅读(692) 评论(0) 推荐(0) 编辑
摘要:核对矩阵的维数( Getting your matrix dimensions right) 在神经网络的计算过程中,特别需要注意的一点就是确认各个矩阵的维度,一般的规律为: w的维度是(下一层的结点个数,上一层的结点个数),即: b的维度是(下一层的结点个数,1),即: a和z的维度是: dw和w 阅读全文 »
posted @ 2018-08-25 15:51 刘-皇叔 阅读(963) 评论(0) 推荐(0) 编辑
摘要:前向传播和反向传播( Forward and backward propagation) 前向传播 假设输入a[l1],输出a[l],缓存z[l],从实现的角度来说缓存w[l]b[l]更容易在不同的环节调用函数。 向量化实 阅读全文 »
posted @ 2018-08-25 14:56 刘-皇叔 阅读(1870) 评论(0) 推荐(0) 编辑
摘要:深层神经网络( Deep L-layer neural network) 如下图所示,表示从logistic 回归到5层的神经网络,严格的说,logistic回归也是一个一层的神经网络,神经网络的深浅只是一种程度。 有一些函数,只有非常深的神经网络能学会,而更浅的模型则办不到。 对于给定的问题,先去 阅读全文 »
posted @ 2018-08-25 14:16 刘-皇叔 阅读(527) 评论(0) 推荐(0) 编辑
摘要:随机初始化( Random Initialization) 对于逻辑回归,把权重初始化为 0当然也是可以的。但是对于一个神经网络,如果你把权重或者参数都初始化为 0,那么梯度下降将不会起作用。 如上图所示的神经网络以及初始化方式,其结果a1[1]=a2[1],反向传播时:$d 阅读全文 »
posted @ 2018-08-25 10:57 刘-皇叔 阅读(1099) 评论(0) 推荐(0) 编辑
摘要:神经网络的梯度下降 ( Gradient descent for neural networks) 对于一个两层神经网络,输入参数:W[1], b[1], W[2], b[2],输入特征个数nx,隐藏层结点的个数n[1] 阅读全文 »
posted @ 2018-08-24 12:59 刘-皇叔 阅读(1174) 评论(0) 推荐(1) 编辑
摘要:激活函数的导数( Derivatives of activation functions) Sigmoid函数 导数为: tanh函数 导数为: Relu函数 在z=0时,通常给定导数1,0,当然z=0的情况很少。 Leaky Relu函数 在z=0时,通常给定导数1,0.01,当然z=0的情况很少 阅读全文 »
posted @ 2018-08-23 21:52 刘-皇叔 阅读(2088) 评论(0) 推荐(0) 编辑
摘要:激活函数( Activation functions) 常用激活函数: 依次为: Sigmoid函数 tanh函数或双曲正切函数 tanh可以看做是sigmoid函数向下平移和伸缩的结果,对它变形之后,穿过了(0,0)点,并且阈值介于-1和+1之间。 在隐藏层上使用tanh函数效果优于sigmoid 阅读全文 »
posted @ 2018-08-23 21:50 刘-皇叔 阅读(614) 评论(0) 推荐(0) 编辑
摘要:多样本向量化( Vectorizing across multiple examples) 前面已经了解了单一训练样本神经网络计算过程: 如果有m个样本就要重复这个过程m次,第一个样本记作:x[1],预测值记作:y^[1],依次,第m个样本${x^{[m] 阅读全文 »
posted @ 2018-08-22 22:46 刘-皇叔 阅读(668) 评论(0) 推荐(0) 编辑
摘要:计算一个神经网络的输出( Computing a Neural Network's output) 下图表示一个两层的神经网络: 逻辑回归的计算分为两个步骤,先计算出z,在通过sigmoid函数计算出a,神经网络只是多次重复这样的计算。 按照上述的计算方法,可以得到隐藏层的计算结果: 向量化上述计算 阅读全文 »
posted @ 2018-08-22 22:29 刘-皇叔 阅读(1449) 评论(0) 推荐(0) 编辑
摘要:神经网络的表示( Neural Network Representation) 神经网络: 我们有输入特征x1,x2,x3它们被竖着堆叠起来,这叫做神经网络的输入层,它包含了神经网络的输入。 之后的一层称之为隐藏层。 最后一层由一个结点构成,称为输出层,它复制产生预测值。 隐藏层的含义: 在监督训练 阅读全文 »
posted @ 2018-08-22 21:12 刘-皇叔 阅读(1212) 评论(0) 推荐(0) 编辑
摘要:神经网络概述( Neural Network Overview) 前面所说的逻辑回归的例子回顾: 神经网络可以表示成如下图所示,可以看成把许多个sigmoid函数堆叠起来就构成一个神经网络。 计算过程: 这里的[1]表示层的概念。 阅读全文 »
posted @ 2018-08-22 20:33 刘-皇叔 阅读(517) 评论(0) 推荐(0) 编辑
摘要:Building basic functions with numpy math.exp() 但是实际上在深度学习中数据往往是矩阵和向量形式,而math库函数的参数往往是一个实数,因而在深度学习中广泛使用numpy库。 numpy基础 numpy实现sigmoid函数: 求sigmoid函数的梯度 阅读全文 »
posted @ 2018-08-19 14:15 刘-皇叔 阅读(1260) 评论(0) 推荐(1) 编辑
摘要:logistic 损失函数的解释( Explanation of logistic regression cost function) 在逻辑回归中,需要预测的结果y^可以表示为y^=σ(wTx+b),我们约定y^=p(y|x),也就 阅读全文 »
posted @ 2018-08-16 20:19 刘-皇叔 阅读(2650) 评论(0) 推荐(1) 编辑
摘要:关于 python _ numpy 向量的说明( A note on python or numpy vectors) 这样会生成存储在数组a中5个高斯随机参数变量。a的结构为:(5,) ,这种结构在python中称为一个一维数组,它既不是行向量,也不是列向量。它的转置还是一个一维数组,并且a与a的 阅读全文 »
posted @ 2018-08-16 08:58 刘-皇叔 阅读(1070) 评论(0) 推荐(0) 编辑
摘要:Python 中的广播( Broadcasting in Python) 如下,列举四种食物中的营养成分含量表: 现在想计算不同食物中不同营养成分中的卡路里百分比,在python中的实现: 注释: axis表示将要进行的计算是沿着哪个轴进行的,在numpy中0轴表示列,1轴表示行。 A/cal.re 阅读全文 »
posted @ 2018-08-16 08:43 刘-皇叔 阅读(1383) 评论(0) 推荐(1) 编辑
摘要:向量化 logistic 回归的梯度输出( Vectorizing Logistic Regression's Gradient) 已知: dz(1)=a(1)y(1) dz(2)=a(2)y(2) 。。。 定义 阅读全文 »
posted @ 2018-08-15 22:24 刘-皇叔 阅读(626) 评论(0) 推荐(0) 编辑
摘要:向量化逻辑回归(Vectorizing Logistic Regression) 前向传播过程中, 对第一个样本进行预测:z(1)=wTx(1)+b a(1)=σ(z(1)) 对第二个样本进行预测:${z^{(2)}} = {w^T 阅读全文 »
posted @ 2018-08-14 22:23 刘-皇叔 阅读(791) 评论(0) 推荐(0) 编辑
摘要:向量化(Vectorization) 向量化是非常基础的去除代码中 for 循环的艺术 。 在逻辑回归中需要去计算z=wTx+b,w,x都是列向量 ,如果维度为nx,那么采用非向量化的方式计算就需要采用下面的方法: 作为一个对比,向量化实现将会直接计算 {w^T}x: 向量化的实现 阅读全文 »
posted @ 2018-08-14 22:04 刘-皇叔 阅读(627) 评论(0) 推荐(0) 编辑
摘要:计算图( Computation Graph) 一个神经网络的计算,都是按照前向或反向传播过程组织的。首先我们计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作。后者我们用来计算出对应的梯度或导数。 举个简单的例子,假如代价函数为J(a,b,c)=3(a+bc),包含a,b,c三个变量 阅读全文 »
posted @ 2018-08-13 22:20 刘-皇叔 阅读(873) 评论(0) 推荐(0) 编辑
摘要:逻辑回归的代价函数( Logistic Regression Cost Function) 逻辑回归的代价函数(也称作成本函数),为了训练逻辑回归模型的参数w和参数b,需要一个代价函数。 损失函数又叫做误差函数,用来衡量算法的运行情况,Loss function:L(y^,y) L称为的 阅读全文 »
posted @ 2018-08-12 23:36 刘-皇叔 阅读(1134) 评论(0) 推荐(1) 编辑
摘要:二分类(Binary Classification) 二分类就是输出 y 只有离散值 { 0, 1 }。 以一个图像识别问题为例,判断图片中是否有猫存在,0 代表 non cat,1 代表 cat。 一般来说,彩色图片包含RGB三个通道。我们首先要将图片输入x(维度是(64,64,3))转化为一维的 阅读全文 »
posted @ 2018-08-11 18:31 刘-皇叔 阅读(915) 评论(0) 推荐(2) 编辑
摘要:什么是神经网络 假如我们要建立房价的预测模型,我们已知模型输入面积 x 及输出价格 y ,来预测房价:y = f(x),我们用一条直线来拟合图中这些离散点(建立房价与面积的线性模型)。 这个简单的模型(蓝色折线)就是一个最简单的神经网络。 该神经网络的输入 x 是房屋面积,输出 y 是房价,中间包含 阅读全文 »
posted @ 2018-08-11 18:00 刘-皇叔 阅读(1699) 评论(0) 推荐(1) 编辑
摘要:绝对路径和相对路径 绝对路径:路径的写法一定由根目录 ‘/’写起,例如: 相对路径:路径的写法不是由根目录 ‘/’写起,例如: 第二个cd命令后跟 ‘test’, 并没有斜杠,这个 ‘test’ 是相对于 ‘/home’ 目录来讲的,所以叫做相对路径。 . 表示当前目录 .. 表示当前目录的上一级目 阅读全文 »
posted @ 2018-08-08 23:50 刘-皇叔 阅读(297) 评论(0) 推荐(0) 编辑
摘要:目录结构简介 /:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。 /:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev 阅读全文 »
posted @ 2018-08-08 23:40 刘-皇叔 阅读(176) 评论(0) 推荐(0) 编辑
摘要:开机过程简述 开机BIOS自检,加载硬盘。 读取MBR,并进行Boot Loader引导。 加载内核kernel,Kernel检测硬件和加载驱动程序。 启动init进程,依据inittab文件设定运行级别 init进程,执行rc.sysinit文件来准备软件执行的操作环境。 启动内核模块,执行不同级 阅读全文 »
posted @ 2018-08-06 22:10 刘-皇叔 阅读(157) 评论(0) 推荐(0) 编辑
摘要:虽然GStreamer是跨平台的framework,但不是所有的element都是在所有平台下都有的。比如,音频和视频的sink都非常依赖于当前的window系统,根据当前的平台需要选择不同的element。当然,你在运行playbin或者autovideosink这些element时不需要考虑跨平 阅读全文 »
posted @ 2018-08-05 18:09 刘-皇叔 阅读(568) 评论(0) 推荐(0) 编辑
摘要:Bins 这些是Bin element,它们在内部包含其他的element,已经组成了内部的pipeline,但在外部,我们还是把它们当成一个element。 Playbin 这个element在整个系列的教程里面广泛的被使用了。它会处理播放的方方面面,从源经过解复用、解码到最后的显示。同时它也非常 阅读全文 »
posted @ 2018-08-05 18:03 刘-皇叔 阅读(832) 评论(0) 推荐(0) 编辑
摘要:介绍 快进是以超过正常速度播放媒体的一项技术,反之,慢放是以低于正常速度播放的技术。倒放和播放是一样的,只不过是从后面朝前面播放。 所有这些技术做的都是修改播放速度这件事,如果说正常播放速度是1.0的话,那么超过1.0这个数字就是快进,低于1.0这个数字就是慢放了,正数就是从前朝后放,负数就是从后超 阅读全文 »
posted @ 2018-08-05 17:50 刘-皇叔 阅读(694) 评论(0) 推荐(0) 编辑
摘要:介绍 直接播放Internet上的文件而不在本地保存就被称为流播放。我们在前面教程里已经这样做过了,使用了http://的URL。 当在播放流的时候,一旦从网络上取到媒体数据块就会进行解码和放入显示队列。这意味着如果网络来的数据延迟了,那么显示队列就可能没有数据,播放就会停下来。 解决这个问题的办法 阅读全文 »
posted @ 2018-08-05 17:44 刘-皇叔 阅读(258) 评论(0) 推荐(0) 编辑
摘要:调试记录 GStreamer和插件里面都有大量的调试信息,也就是说,在调试区域内可以给出所有的信息,包括时间戳,线程,种类,源文件名,函数名等等。 调试输出的控制是在一个GST_DEBUG的环境变量控制的,这里给出一个例子,GST_DEBUG=2: 0:00:00.868050000 1592 09 阅读全文 »
posted @ 2018-08-05 17:34 刘-皇叔 阅读(543) 评论(0) 推荐(0) 编辑
摘要:介绍 这些工具就位于SDK的bin目录下。你需要把这个目录加入PATH变量,或者把当前目前目录切换到GStreamer SDK的bin目录。 为了防止多个版本的GStreamer都安装导致的冲突,所有的工具都是有版本的,他们的名字后面跟着GStreamer的版本号。因为这个版本的SDK是1.0,所以 阅读全文 »
posted @ 2018-08-05 17:06 刘-皇叔 阅读(2034) 评论(0) 推荐(0) 编辑
摘要:介绍 GstDiscover是一个在pbutils库提供的工具,接受输入URI或者URI列表,返回它们的信息。这个工具可以工作在同步或者异步模式下。 在同步模式下,只有一个API可以用,就是gst_discoverer_discover_uri(),这个API会阻塞线程直到得到需要的信息。因为阻塞会 阅读全文 »
posted @ 2018-08-05 16:55 刘-皇叔 阅读(444) 评论(0) 推荐(0) 编辑
摘要:介绍 有几种方法可以让应用通过pipeline和数据流交互。本教程讲述了最简单的一种,因为使用了专门为这个而创建的element。 专门让应用可以往pipeline里面传入数据的element时appsrc,而appsink就正好相反,让应用可以从pipeline中获得数据。为了避免混淆,我们可以这 阅读全文 »
posted @ 2018-08-05 16:50 刘-皇叔 阅读(632) 评论(0) 推荐(0) 编辑
摘要:介绍 多线程 GStreamer是一个支持多线程的框架。这就说明,如果有必要它会在内部自动创建/销毁线程。比如:在应用线程中把流解出来。而且,plugin在自身也可以任意的创建线程,比如一个视频解码器为了充分利用4核CPU的能力,可以创建4个线程。 这里最重要的是,当应用在建立pipeline时可以 阅读全文 »
posted @ 2018-08-05 16:43 刘-皇叔 阅读(388) 评论(0) 推荐(0) 编辑
摘要:介绍 Pads Pads允许信息进入或者离开一个element。这个Capabilities(或者简单地叫做Caps)就是指定哪些信息可以通过Pad来传输。例如:RGB视频,尺寸为320x200并且每秒30帧或者16位的音频采样,5.1声道,每秒采样44.1k,甚至可以是类似于mp3/h264之类的 阅读全文 »
posted @ 2018-08-05 15:30 刘-皇叔 阅读(628) 评论(0) 推荐(0) 编辑
摘要:介绍 我们下面就用GTK+这样一个GUI工具来些一个播放器,但基本概念是可以推广到其它工具的(比如QT)。 最重要的是告诉GStreamer把视频输出到哪个window,而这个是依赖于操作系统的,好在GStreamer提供了一个平台无关的抽象层,它让应用可以告诉一个视频输出到哪个window进行渲染 阅读全文 »
posted @ 2018-08-04 18:27 刘-皇叔 阅读(608) 评论(0) 推荐(0) 编辑
摘要:介绍 GstQuery是向一个element或者pad询问一些信息的机制。在这个例子中我们会问pipeline是否支持跳转功能(某些sources 例如实时流是不支持跳转功能的),如果支持跳转功能,那么在播放了10s之后跳转到另一个位置。 在之前的例子中一旦建立pipeline并运行后,我们就是在等 阅读全文 »
posted @ 2018-08-04 17:05 刘-皇叔 阅读(291) 评论(0) 推荐(0) 编辑
摘要:介绍 在一个容器中可能包含多个流(比如:一路视频,两路音频),demuxer会把他们分离开来,然后从不同的输出口送出来。这样在pipeline里面的不同的分支可以处理不同的数据。 GStreamer 的elements之间相互沟通的的端口称为pad (GstPad),Pad分为sink pad:数据 阅读全文 »
posted @ 2018-08-04 16:23 刘-皇叔 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:代码示例 编译: gcc basic-tutorial-2.c -o basic-tutorial-2 `pkg-config --cflags --libs gstreamer-1.0` 工作流程 GStreamer的基本组成是elements,这些elements把数据从source经过filt 阅读全文 »
posted @ 2018-08-04 15:52 刘-皇叔 阅读(624) 评论(0) 推荐(0) 编辑
摘要:代码示例 下面的代码copy到一个文本文件,并改名为basic-tutorial-1.c #include <gst/gst.h> int main(int argc, char *argv[]) { GstElement *pipeline; GstBus *bus; GstMessage *ms 阅读全文 »
posted @ 2018-08-04 13:24 刘-皇叔 阅读(499) 评论(0) 推荐(0) 编辑
摘要:Gsteramer官方教程 Gsteramer 1.0 的安装官方文档 ubuntu下安装: 获取教程源码: 编译和运行教程源码 阅读全文 »
posted @ 2018-08-04 13:18 刘-皇叔 阅读(9746) 评论(0) 推荐(0) 编辑
摘要:Ctrl + Alt + F1 ~ F6:切换终端界面。 Ctrl + Alt + F7 :切换回图形界面。 Ctrl + c:终止当前命令的。 Tab: 补全命令或者文件名。 Ctrl + Alt + t:进入终端。 Ctrl + a:将光标移动到行首。 Ctrl + e:将光标移动到行尾。 Ct 阅读全文 »
posted @ 2018-08-04 12:31 刘-皇叔 阅读(1031) 评论(0) 推荐(1) 编辑
摘要:Linux大多用在服务器领域,所以很少关机,除非特殊情况下,才不得已关机。 linux下的程序(或者称为服务),都是在背景下执行的。因此,在背后可能有很多人同时在主机工作,这个时候突然关机,会导致其它人的数据中断;除此之外,若不正常关机,则可能造成文件系统的损坏。 关机之前的常用指令 查看系统当前有 阅读全文 »
posted @ 2018-08-04 12:14 刘-皇叔 阅读(4684) 评论(0) 推荐(0) 编辑
摘要:Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Red Hat(RHEL红帽)为代表,后者以Debian为代表。 Redhat系列 Redhat系列的包管理方式采用的是基于RPM包和YUM包的管理方式,包分发方式是编译好的二进制文件。 R 阅读全文 »
posted @ 2018-08-04 11:32 刘-皇叔 阅读(3041) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示