- 博客(52)
- 资源 (6)
- 收藏
- 关注
原创 Unix中的文件(1)
1 文件系统对文件的处理依赖于操作系统中的文件系统;而操作系统的启动却需要存储在文件系统中的操作系统文件;——Linux是如何完成这个“鸡生蛋、蛋生鸡”的过程1.1 Linux系统启动流程加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备;读取并执行第一个启动设备内MBR的boot loader(即grub、spfdisk等程序);依据boot loader的设...
2018-10-21 22:12:48
393
原创 mac+vscode+go环境搭建
1. 安装Go使用安装包或brew安装go brew install go2. 配置Go环境+安装vscodehttps://www.jianshu.com/p/0b2b80336d473. 安装vscode插件vscode自动安装插件失败的情况下: http://bighug.top/2018/03/28/mac+Go+VsCode%E4%B8%AD%E9%85%...
2018-08-27 21:59:53
2091
原创 mac操作
1. 设置快捷键新建文件https://blog.csdn.net/coder_zzy/article/details/66477485按上述步骤能够在服务中找到“新建文本文件”之后:在“系统偏好设置->键盘->快捷键->服务”中设置快捷键2. 设置右键“使用vs code”打开【模仿windows使用notepad++打开】https://www.jians...
2018-08-27 21:31:11
458
原创 mac下PHP环境配置常用操作
1 安装composerhttps://www.jianshu.com/p/fd1b53df3f4b2 修改为国内镜像https://pkg.phpcomposer.com/4 安装homebrewhttps://www.jianshu.com/p/4e80b42823d5 改为国内镜像: https://www.jianshu.com/p/5f1efab5a40a...
2018-08-16 13:09:07
181
原创 C++的多态
虽然没有学过Java,但是很喜欢Java的干净、统一,没有特别多的意外情况。因为Java里“一切皆是对象”。所有的类型都继承自Object类型,所以能写出一个适用于一切类型的函数。这是一个良好的实践,符合设计模式的基本特征。所以当我们看许多C++框架的时候,这个框架都会有一个Object类,框架里所有的类都继承自这个类——这也算是自成一个小系统了。但是,在写C++程序时,我时常会遇到一个问...
2018-02-10 19:59:12
281
原创 C++动态内存
1. 堆(heap)关于操作系统的内存管理的具体内容可以看《深入了解计算机系统》第九章——虚拟存储器。 进程内存分布图如下: 动态内存分布主要发生在heap上,对于每个进程,内核维护一个变量brk,指向heap的顶部。访问超过brk的地址,将会发生错误。那么heap是什么呢?heap是一组不同大小的块(block)的集合。每个块就是一个连续的虚拟存储器片(chuank),要么是...
2018-02-09 12:21:24
351
原创 机器学习(十二):推荐系统的两种观点
1. 从物理意义出发的观点什么是推荐系统?以电影推荐为例,就是对于一部电影,我们预测某个用户对一部电影的评分。 我们用如上所示符号来表示。值得注意的是,很有可能用户没有给某电影打分,此时r(i,j)=0r(i,j)=0。这里需要理清: 对于一个电影,我们需要找到一些特征空间XX来衡量这个电影; 对于一个用户,我们需要找到一些参数h(x)=wTxh(x)=w^Tx来预测用户对这部电影的评分。
2017-02-10 16:28:56
2260
原创 机器学习(十一):K-Means算法
1. K-Means1.1 核函数的另一种观点之前我们提到过高斯核函数:K(x1,x2)=ϕ(x1)ϕ(x2)=exp(η||x1−x2||2)K(x_1,x_2)=\phi(x_1)\phi(x_2)=exp(\eta||x_1-x_2||^2)当时我们是把ϕ(x)\phi(x)当做对x进行无限维的特征转换。 其实根据高斯函数的形状,我们可以将其视为:对x1,x2x_1,x_2相似性的度量/距离
2017-02-10 12:03:18
2087
原创 机器学习(十):PCA
1. PCA1.1 PCA算法为什么要使用主成分分析?正如名字所示,其目的显而易见,不再赘述,此处从自动编码器的角度审视PCA。 最小化如下损失函数:C=12m∑i=1m||y(i)−WWTx(i)||2C=\frac 1{2m} \sum_{i=1}^m ||y^{(i)}-WW^Tx^{(i)}||^2根据WWTWW^T的对称性,我们使用eigen-decompose:WWT=VDVTWW
2017-02-09 21:08:13
790
原创 机器学习(九):神经网络(2)——深度学习
1. 深度学习为什么难训练?之前提到过深度学习,那么深度学习跟普通的神经网络相比,难点在于哪里呢?1.1 梯度的不稳定性深度学习的根本问题在于梯度的不稳定性。 σ导数在 σ′(0) = 1/4 时达到最⾼。现在,如果我们使⽤标准⽅法来初始化⽹络中的权重,那么会使⽤⼀个均值为 0 标准差为 1 的⾼斯分布。因此所有的权重通常会满⾜|wj|<1|w_j|\lt1。有了这些信息,我们发现会有|wjσ
2017-02-09 11:53:27
1007
原创 机器学习(八):神经网络(1)
(主要参考书籍《神经网络与深度学习》)1. 什么是神经网络1.1 从感知器说起……什么是感知器?很简单,前面我们已经说过了: output=sign(wTx)output=sign(w^Tx) 什么意思呢?我们有一些输入,我们会根据这些输入做出一个决定:YES OR NOT。我们可能会想这么简单有什么用呢?那我们得想一下电脑——CPU和人脑的组成了。先从简单的CPU说起:只需要简单与或非三个
2017-02-08 21:13:51
2926
原创 机器学习(七):集成方法(2)Boost
Boost(提升)方法不同于bagging,基分类器是顺序训练的,每个基分类器使⽤数据集的⼀个加权形式进⾏训练,其中与每个数据点相关联的权系数依赖于前⼀个分类器的表现。特别地,被⼀个基分类器误分类的点在训练序列中的下⼀个分类器时会被赋予更⾼的权重。⼀旦所有的分类器都训练完毕,那么它们的预测就会通过加权投票的⽅法进⾏组合。1. AdaBoost假设我们在对一组数据进行分类的时候,确定一个分类模型;
2017-02-05 19:40:44
3028
原创 机器学习(六):集成算法(1)Bagging
1.Aggregation概论1.1 引言三个臭皮匠,顶个诸葛亮。 假设我们有多个预测模型g1,g2...gTg_1,g_2...g_T,能不能将这些模型组合起来,获得更好的性能?回想一下,之前我们Validation:是在多个模型中选择出一个好的模型,现在问题变成了:多个模型组合出一个更好的模型。 能不能呢?我们从直观上来看: 我们组合是有效果的。1.2 这么多g是怎么获得的? 如果使
2017-02-05 12:00:29
1383
原创 机器学习(五):w·x+b模型(2)
3. 支持向量机SVMSVM主要用于分类问题,w∈Rn,b∈R,y∈{−1,1}w\in R^n, b\in R, y\in \{-1,1\}(注意此处不再将b视为w0w_0)3.1 引言3.1.1 training set完全线性可分假设有很多wx+b=0超平面可以将training set中的数据正确分类,那么应该选用哪个(w,b)呢?如下图所示: 很容易凭借直觉选出wx+b=0与所有的数
2017-02-04 16:06:53
3488
原创 机器学习(四):w·x+b模型(1)
假设输入空间x∈Rnx\in R^n, 对于分类问题,我们使用的假设空间为H={h=sign(wTx+b)|w∈Rn,b∈R}H=\{h=sign(w^Tx+b)| w\in R^n, b\in R\} 对于回归问题,我们使用的假设空间为H={h=wTx+b|w∈Rn,b∈R}H=\{h=w^Tx+b|w\in R^n, b\in R\} 其实际意义也比较简单:对于分类问题,用一个超平面将特征
2017-01-17 17:39:43
4937
原创 机器学习(三):拉格朗日乘子与梯度下降法
这里介绍两个在以后的机器学习算法中经常使用的技巧:拉格朗日乘子(Lagrange multiplier)和梯度下降法(Gradient descent)。1. 拉格朗日乘子法拉格朗日乘子被⽤于寻找多元变量在⼀个或者多个限制条件下的驻点。1.1 等式约束条件考虑这样一个问题: 求解f(x1,x2)f(x_1,x_2)的最大值,其中x1和x2必须满足如下限制条件:g(x1,x2)=0g(x_1,x_2
2017-01-16 21:58:24
13714
原创 机器学习(二):如何使用机器学习来解决一个问题?
给定一个问题,如何设计机器学习系统来解决此问题?1. 机器学习流水线1.1设计问题的流水线什么是“machine learning pipeline”?对于一个由多个阶段/模块组成的系统,当系统中含有机器学习的阶段/模块时,我们就说这是一个机器学习流水线。 Photo OCR问题:识别图片中的文字。 我们将这一问题分成三部分:首先是检测到图片中存在文字的部分,然后将文字分割成一个个的字符,最
2017-01-16 16:43:21
3942
原创 机器学习(一):统计学习问题概述
学习:“如果一个系统能够通过执行某个过程改进它的性能,这就是学习。”按照这一观点,统计学习就是计算机系统通过运用数据及统计方法提供系统性能的机器学习。 机器学习的对象是数据,它从数据出发,提取数据特征,抽象出数据模型,发现数据中的知识,又回到对数据的分析和预测中去。[机器学习关于数据的基本假设是:同类数据具有一定的统计规律性。由于它们具有统计规律性,所以可以用概率统计方法来处理。]1. 何时使用机
2017-01-15 20:29:36
2503
原创 Qt学习笔记外观篇(二):QStyle
三种方法来重新定义Qt内置窗口部件的外观:1)子类化QStyle或者一个预定义的风格,这种方法很好用,Qt本身就是用这种方法为它所支持的不同平台提供基于平台的外观的2)子类化个别的窗口部件类,并且重新实现它的绘制和鼠标事件处理器。3)Qt 样式表
2014-08-13 11:27:15
20578
3
原创 (三):初步寻找区分病人的最佳高频/低频阈值
前两步,我已经做好了将心音信号转化为txt文件,和基二FFT。 对于病人和健康人,其心音频率成分是不同的。病人的高频成分多一些。我们可以选择一个频率阈值X:大于X的频率称为高频HP,小于X的频率称为低频LP;由于病人和健康人的频率成分不同,必然存在一个最佳阈值,使得以此为阈值时病人和健康人的HP/LP差别最大。例如假设最佳频率阈值为X,此时求得病人和健康人的HP/LP,设定一标准值Y,我们说
2013-09-17 20:16:53
1395
原创 STL源码--函数对象
函数对象对于stl这个以迭代器为基石的库的重要性不言而喻//函数对象的重要性不言而喻,尤其是对于stl这个以迭代器为基石的库//定义一个函数对象,实现两数相加templatestruct plus{ _Tp operator()(const _Tp& __x,const _Tp& __y){return __x+__y;}};//我们可以使用plus(x,y);
2013-09-13 13:02:45
610
原创 STL源码-traits的使用
关于iterator traits和type traits的使用,我们什么时候会使用这两个类?我们怎么使用?//问题:将[first1,last1)区间内的元素复制一遍。//我们需要知道first1迭代器的类型。。template_Iter copy(_Iter first1,_Iter last1){ //首先需要分配足够的空间,即迭代器所指元素的大小乘以个数 typedef t
2013-09-12 13:00:58
620
原创 STL源码--iterator
iterator,是stl中至关重要的一个组件,它是stl的基石,对于所有与容器有关的操作,几乎都用到iterator,本文先不谈iterator的各种使用技巧,而是谈谈iterator中的技术:技术一:标记//首先是迭代器的类型,我们需要一种方法来标记迭代器的类型,标记的方法多种多样,最简单的是使用掩码(宏定义)//这里我们为什么不使用一个int或者unsigned来存储一个掩码,而是
2013-09-11 23:12:59
850
原创 STL源码--alloc
//关于内存管理与配置,标准做法与内存池做法,内存池解决内存碎片的问题//首先对于第一级配置器,我们直接使用new操作符就可以,第二级配置器是我们的主要战场。//那么我们为什么设计制造第一级配置器呢?直接使用new就好了。//首先,明确我们为什么设计两级配置器,因为我们针对不同的应用可以选择合适的配置器,那么我们就必须让配置器的使用//对象看不出两者的差异:即,两者要有相同的接口。//怎
2013-09-09 22:40:07
790
原创 C++的I/O(vc版)(七)
首先,我们还有很多的类没有分析:istream,filestream,filebuf,还有对应得迭代器。第二,即使前面的分析也不能说明I/O的使用规范。如果想要熟练的使用I/O,建议读《C++标准程序库》,那是一本经典。第三,流的格式化读取和输出大部分依靠的是locale,而我们前面很少涉及,现在还看不懂源码,只能以后分析了。 下面摘抄《c++标准程序库》中关于如何自定义I/O操作符的说明。
2013-08-28 12:17:31
805
原创 C++的I/O(vc版)(六)
首先回忆一下,我们已经分析过的类:基本的流类完成:流状态信息,格式化信息,其中一些不能用掩码表示,需要特定的数据成员,locale对象,流缓冲类指针,耦合的ostream;基本的流缓冲类完成:六个指针的存储。这个我们分析的是basic_ostream 首先是类中会用到的类型声明: typedef basic_ostream _Myt; typedef basic_ios _Myios
2013-08-28 00:42:29
1589
4
原创 C++的I/O(vc版)(五)
具体的缓冲类有filebuf,stringbuf,由于filebuf的大部分工作都转交给了C流,不好分析,所以重点分析的还是stringbuf。 对于stringstream,我们最常用的语句就是:string s="1.2 5.6 7 7 ";istringstream is(s);float f; is >> f;上述语句,给出了stringbuf的基本形式:以string初
2013-08-27 16:30:27
1112
原创 C++的I/O(vc版)(四)
下面进行我们的第二大类,流缓冲类。stream并不负责写或者读,毕竟如它原本的目的一样:负责格式化,存储格式化信息;当然我们还用它存储状态信息等等。stream把它的读写工作转交给stream buffer,即缓冲区类。缓冲区类主要是围绕着位置展开操作,下面先介绍一个与位置有关的类:/*fpos:它可以存储还原任何流中的任意文件的位置指示器所需的所有信息 * 对象的类 fpos
2013-08-27 15:07:22
1370
原创 C++的I/O(vc版)(三)
前面已经分析完ios_base类了,现在来分析一下basic_ios//此处为了简洁,将许多别文件的定义搬到此文件typedef int _Mbstatet;typedef fpos streampos;typedef streampos wstreampos;#define EOF (-1)//原本定义于stdio.h//下面是类char_traits的定义//不同的字符集,不同
2013-08-27 14:37:56
1275
原创 C++的I/O(vc版)(二)
根据流类体系,我们可以看出基本的流类是ios_base和basic_ios 首先是ios_base是流类始祖,先分析ios_base,ios_base中储存的是不依赖于读写的数据的类型的基本信息,如格式化信息、异常状态、事件回调函数等。首先看一下数据成员: iostate _mystate;//stream state iostate _except_;//except
2013-08-27 00:29:49
862
原创 c++的I/O(vc版)(一)
c++的I/O是我们最常用的库之一,也是操作复杂,功能复杂的类库之一。 在C++的程序中,很少有不用I/O的程序,但是,对于我来说,I/O我却用的出奇的差,只会几个简单的函数,尽管够用,但是却用的效率奇低,于是,在此学习c++ I/O类库的使用方法。首先是I/O中流的概念,c++的I/O中的所有的操作都是基于流。流i/o:要传递的数据是无结构的字节流,字符流或者任意同等大小单位
2013-08-25 18:30:39
1097
原创 (-):wav文件转化为txt文件
首先声明一下,由于水平有限,所以这里的代码没有加入错误处理程序,为version1;第一步:明确wav格式:一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成
2013-08-12 00:13:42
5318
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人