基于Tensorflow学习神经网络-理论

3.理论

  • 概率论和统计学




  • 数据分布

BernoulliDistribution(伯努利分布,是离散分布)

均匀分布概率密度函数:

均值:

方差:

n重伯努利分布, 即二项分布。

UniformDistribution(均匀分布)

均匀分布概率密度函数:

均值:



方差:




图示:

NormalDistribution(正态分布,高斯分布)

正态分布积分=1,其表达式为:

标准正态分布表达式()



TruncatedNormal Distribution(截断正态分布)

截断正态分布是限制变量x取值范围(scope)的一种分布。正态分布则可视为不进行任何截断的截断正态分布。

  • Bootstrap采样

    http://blog.csdn.net/baimafujinji/article/details/50554664

    Bootstrap的意思是靴带,来自短语:“pulloneself up by one′s bootstrap”18世纪德国文学家拉斯伯(RudolfErich Raspe)的小说《巴龙历险记(或译为终极天将)》(Adventuresof Baron Munchausen)记述道:“巴龙掉到湖里沉到湖底,在他绝望的时候,他用自己靴子上的带子把自己拉了上来。”现意指不借助别人的力量,凭自己的努力,终于获得成功。

    Bootstrap统计学习中一种重采样(Resampling)技术,从样本中抽样来评估样本,如何抽样评估?抽取的Bootstrap样本量相同,只是在抽样方式上采取有放回地抽,这样的抽样可以进行B次,每次都可以求一个相应的统计量/估计量,最后看看这个统计量的稳定性如何(用方差表示)。

  • Bagging

    弱学习器同一个学习算法在来自同一分布的多个不同的训练数据集上训练得到的模型偏差可能较大。Bagging:统计学的一种方法对于训练数据集进行Nbootstrap采样得到N个训练子集,用相同的学习算法得到N个参数,测试时用N个参数计算的结果投票【分类问题】或平均【回归问题】得到最终结果。

    DropOut来自该思想。

  • Z-Score(统计学的一种方法,此处用于归一化)

https://zhuanlan.zhihu.com/p/26682707

https://wenku.baidu.com/view/9bd89b7e31b765ce050814d5.html

http://blog.csdn.net/photoshop122/article/details/41043563

此处的归一化是均值方差归一化使每一维数据满足正态分布,均值归一化成0,方差归一化成1

,数据图像分别为:


优点:计算简单,速度快。tensorflowBNwhitening都适用这种方法。

缺点:不考虑不同维度间关系。



  • PCAPrincipalComponent Analysis)主成分分析

http://www.360doc.com/content/17/1205/17/4674107_710210175.shtml

PCAPrincipalComponentAnalysis主成分分析,通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

原理:PCA的目的是用较少的维度Y尽可能好的表示原始数据X{1、新数据尽量分散,减少特征损失(使数据Y方差尽可能大,方差越大特征越强,方差即协方差矩阵对角线);2、使不同维度之间相互独立(正交,则协方差=0Y的不同维度间的协方差即协方差矩阵对角线以外的值)},即使转化为将Y的协方差矩阵对角化(Y未知,试图推导Y的协方差矩阵DX的关系)。

Y=PX,其中CX的协方差矩阵,问题转化为求P,使对角化。

线性代数特征分解=>转化为求C特征值D,特征向量P

计算步骤:a、分别对每一维数据0均值化,求协方差矩阵Cb、对C特征值,特征向量;c、将特征向量按对应特征值从大到小的顺序排列;d、取前K行组成矩阵PY= PX即降维后的数据。

PCA之于图像压缩



  • SVDSingularlyValuable Decomposition)奇异值分解

http://blog.csdn.net/Dark_Scope/article/details/53150883#reply

误区:

1、分别对X进行SVD分解,结果中Σ是不变的,只是U交换;而分别对XPCA分析,特征值Λ是不同的。

2SVDPCA时,SVD的输入X必须是去均值的,否则分解的结果无意义。X协方差矩阵的特征值Λ =

酉矩阵:n阶复方阵Un个列向量是U空间的一个标准正交基,则U是酉矩阵(UnitaryMatrix)

SVDSingularlyValuableDecomposition)奇异值分解,,其中Um×m阶酉矩阵;Σm×n阶非负实数对角矩阵;而,即V的共轭转置,是n×n阶酉矩阵。这样的分解就称作X的奇异值分解。

1.V的列组成一套对X的正交‘输入’的基向量。这些向量是的特征向量。
2.U
的列组成一套对X的正交‘输出’的基向量。这些向量是的特征向量。
3.Σ
对角线上的元素是奇异值,可视为是在输入与输出间进行的标量的‘膨胀控制’。这些是

的特征值的非零平方根,并与UV的行向量相对应。


X协方差矩阵的特征值和特征向量,计算如下:

已知:UV酉矩阵(标准正交基),

条件:X是去均值的,则X的协方差矩阵,其中M是维度。对C特征值分解

两中方法:

1X进行SVD分解计算特征值和特征向量,则:

,

2、对X的协方差矩阵C进行SVD分解,则:

,

另注意:由于UV都是的基向量组成的矩阵,显然有,则


  • 白化(Whitening,一种归一化方法)

https://zhuanlan.zhihu.com/p/26682707

步骤:1PCA(特征值分解||SVD SVD直接对X分解不需要计算协方差矩阵)

2、数据投影到特征向量空间

3、投影数据/各自维度的标准差(特征值开方)

好处:使每一维数据都有相同的方差,还可以做特征降维。

缺点:需要SVD分解,计算量大。tensorflow中的白化用的z_score,未考虑协方差,简化计算)


Z_ScoreWhitening代码实现:

def_test_DataN():

defgenOriData():

"""生成原始数据"""

samplenum= 10000

mu= np.array([[3, 3]])

Sigma= np.array([[1, 0.5], [1.5, 3]])

R= np.linalg.cholesky(Sigma)

s= np.dot(np.random.randn(samplenum, 2), R) + mu

returns

defdrawData(s,i,title):

plt.subplot(2,2,i,facecolor=(0.8, 0.8, 0.8))

plt.title(title)

plt.gca().set_aspect(1)

#plt.axis([-10,10,-10,10])

scale= 6

plt.plot([-scale,scale],[0,0],lw=1,c = 'k',ls=':')

plt.plot([0,0],[-scale,scale],lw=1,c = 'k',ls=':')

plt.scatter(s[:,0],s[:,1],s=1)

return

s=genOriData()

#ori

drawData(s,i = 1,title='ori')

#mean_0

mean_= np.mean(s, axis=0)

ss= s - mean_

drawData(ss,i = 2,title='0_mean')

#z_score

std= np.std(s,axis=0)

ss= (s-mean_)/std

drawData(ss,i = 3,title='z_score')

#whitening-pca

#计算协方差----

#covMat= np.cov(s,rowvar = 0)

#U,S,V= np.linalg.svd(covMat);

#标准差=sqrt(S)

#S= np.sqrt(S)

#printS

#特征向量=U

#s= np.dot(s,U)

#不计算协方差----

s_= s-np.mean(s, axis=0)

U,S,V= np.linalg.svd(s_);

#标准差=S/sqrt(M-1)

M,N=s.shape

S= S/np.sqrt(M-1)

printS

#特征向量=V*

s= np.dot(s,V.transpose())

mean_= np.mean(s, axis=0)

ss= (s-mean_)/S

drawData(ss,i = 4,title='whitening')

plt.show()

return

  • KmeansKNN(属于机器学习方法,不属于神经网络)

http://blog.csdn.net/zll0927/article/details/17000675

http://blog.csdn.net/u013709270/article/details/53819741

用法不同:Kmeans是一种聚类方法(未知数据聚K类),是非监督学习KNN是一种基于数据统计的分类方法(基于已分类好的数据,对其它数据K人投票进行分类),是监督学习

K的含义不同Kmeans表示类别(分成K类)KNN表示投票范围(最近的K个数据进行投票)

相同点:二者都用到了NN(NearsNeighbor最近邻,不是神经网络)算法,一般用KD树实现NN

Kmeans

将数据聚类分成K。大致步骤如下:1、取K,取K个初始位置Pos_K 2欧氏距离等聚类3、计算中心质心等,并用中心替代Pos_K 4、循环迭代 2-3),直到Pos_K不再变化。

K值不好确定。初始位置对聚类结果有影响不同的计算方法产生不同的分类

改进:初始点选取。


KNN

已有两组分类的数据(D_1,D_2),新来一批数据x应如何归类。大致步骤1、取K2、计算离x最近的K个数据3K中属于那个分类多,则x也属于那个类。改进:按距离×权重,距离小权重大。另外:两个类别数据若不是均匀采样可能会有问题。


K=3,属于红三角,K=5则属于蓝方框

疑问:KDTreeBallTree?brute-force?(生成树索引度量标准,避免重复计算)
贝叶斯法则
  • A已发生的条件下B发生的概率,即已知A发生B条件概率,也是A后验概率

    AB同时发生的概率,即AB联合分布,显然有

    注意:不要把条件概率和计算当采用某个动作后会发生什么相混淆。条件概率:假设某个人说德语,那么他是德国人的条件概率是非常高的。动作先后:先把会说德语的人都选出了,再从里面选一个德国人,这个概率是比较低的,两种操作显然不一样。【随机选择的一个人会说德语他的国籍不会因此而改变】

    =>链式法则:=>

    =>贝叶斯公式:

    B发生的概率也可表示为不同(如A、!A)下B发生的概率和,即

    =>贝叶斯公式:

    应用:贝叶斯公式为利用搜集到的信息对原有判断进行修正提供了有效手段。在采样之前,先假设一个判断:先验概率当无任何信息时,一般假设各先验概率相同,较复杂精确的可利用包括最大熵技术或边际分布密度以及相互信息原理等方法来确定先验概率分布】,然后通过采样到的行为修正先验概率

朴素贝叶斯(NaiveBayesian ModelNBC

http://blog.csdn.net/polly_yang/article/details/9471223例子错误较多,但有助于理解

http://blog.csdn.net/aladdina/article/details/4141140

朴素贝叶斯模型是一种广泛用于分类的模型NBC模型需要有先验概率,且假设属性之间相互独立,该假设在实际应用中往往不成立,在属性相关性较小时,性能最为良好。

  • 无偏估计 最大似然估计 贝叶斯估计最大后验估计

http://blog.csdn.net/guohecang/article/details/52313046

无偏估计

,n次样本计算的参数的平均值与实际θ相等

最大似然估计(ML
  • https://www.zhihu.com/question/24124998

    最大似然估计,就是利用已知的样本结果反推最有可能(最大概率)导致这样结果的参数值;即求似然函数的极大值点。可用于多次实验样本(如交叉验证)。

    似然函数:,θ是要求的参数,X^(i)是第i次实验结果.

    连乘不方便计算且可能下溢,可将最大似然估计等价转成对数连加(ln单调递增),即

    最大似然估计:

    特别对二项分布有:

贝叶斯估计

http://www.xuyankun.cn/2017/05/13/bayes/

  • 贝叶斯估计是以贝叶斯法则为理论基础,已知参数θ先验概率分布P(θ)(如均匀分布、高斯分布等),通过贝叶斯规则,结合样本和先验概率,修正θ的分布。

    通过观测到m个样本估计下一个样本的分布如下:

    上式代入联合分布公式得:

    则根据贝叶斯规则m+1个样本修正θ的分布如下

    相对于最大似然估计区别:a.MLθ的点估计(使Lθ)最大的θ),bayes估计是关于θ的全分布;

    b.先验概率分布影响最后的参数分布,向偏好先验的区域偏移c.训练数据很有限,贝叶斯方法通常泛化得更好,但是当训练样本数目很大时,通常会有很大的计算代价。

最大后验估计(MAP

最大后验估计是贝叶斯估计的一种特殊形式,即

  • HMM(隐马尔科夫模型)MEMM(最大熵马尔科夫模型)

https://www.zhihu.com/question/20962240

HMM(隐马尔科夫模型)

https://wenku.baidu.com/view/341e9a85a0116c175f0e48c9.html




模型:一个会随时间改变(隐态间的关系,假设后续的隐藏状态只受前一隐藏状态影响A)的隐藏状态,在以一定概率(隐藏状态与外在表现的关系B持续地影响它可见的外在表现



隐形状态转换关系图和转换矩阵



隐性状态的表现分布图及分布概率矩阵

三要素1.隐藏状态2.外在表现3.变量间关系(a.初始态πb.隐态间关系Ac.隐态及其表现关系B

问题HMM模型N个隐藏状态给出观察序列O(T个状态),计算概率PO|λ

计算1.基础方法,列出所有可能的隐藏状态序列Q,将每个q下出现O的概率累加。

计算量,计算量太大

2.前向法(递归),通过第T-1个状态概率,计算第T个状态的概率



初始化:是序列第1位中第i个隐态表现正确的概率

递归:,

应用1.语音识别手写识别(语音&图像是表态,实际文字序列是隐态),对应问题1

缺点:1.HMM模型只有状态和其对应的表现上有直接依赖关系(如语义分割时,分割不止依赖单词,与行长、缩减、空格等也有关系)。2.学习的目标函数P隐藏状态外在表现)与预测的目标函数不匹配P隐藏状态|外在表现)。

MEMM(最大熵马尔科夫模型)

MEMM模型是把无状态的最大熵模型和马尔科夫模型相结合



  • MCMC(马尔科夫链蒙特卡罗)

https://site.douban.com/182577/widget/notes/10567181/note/292072927/

蒙特卡罗算法是通过大量随机采样计算得到近似结果,随着采样的增多,得到的结果是正确结果的概率逐渐加大。典型如求PI:落在圆中的点/落在其外接正方形内的点=PI/4.

蒙特卡罗算法步骤:

  • a建立模型:针对问题建立概率统计模型,使问题转化为求模型的概率分布或者数字特征。

    b抽样统计:对模型中的随机变量建立抽样方法,得到足够的随机抽样,并对相关事件进行统计。

    c结果分析:对试验结果进行分析,给出所求解的估计及其精度(方差)的估计。

    马尔科夫链:未来状态只与当前t时刻有关,一个非周期且任意状态联通的马氏链可以收敛到一个平稳分布,在收敛之前的一段时间,比如上面的前n-1次迭代,各个状态的边际分布还不能认为是稳定分布,所以在进行抽样估计的时候,应该把前面的这n-1个迭代值去掉(类似与找到无限循环小数的循环部分)。这个定理就是MCMC方法抽样的理论基础。基于马氏链做抽样的关键问题是如何构造转移矩阵P,使得平稳分布恰好是我们要的分布π(x)M-H算法,Gibbs抽样也可以看做M-H算法的一个特例)。

MCMC方法就是构造合适的马尔科夫链进行抽样(平稳分布)而使用蒙特卡洛方法进行积分计算

  • CRF(条件随机场:ConditionalRandom Field

https://www.zhihu.com/question/35866596

随机场


随机场:一组随机变量,他们样本空间一样,那么就是随机场。我们利用这些随机变量之间的依赖关系建模实际问题中的相关关系:实际问题中,我们可能只知道变量之间有相关关系,可以画出关系图表(结构化概率模型,结构有时也是需要学习的,如结构学习:惩罚模型复杂度,优化模型),我们想知道其间的关系到底是多少,需要通过实际数据训练出相关关系,然后嵌入到图里,进行预测、reference等很多事情。例如:语义分割中基于不同类别(FCN中即像素点与像素点)之间存在一定关系,通过鼓励相似像素分配相同的标签,而相差较大的像素分配不同标签,来优化分割。举个简单的例子,“天空”和“鸟” 这样的像素在物理空间是相邻的概率,应该要比“天空” 和 “鱼” 这样像素相邻的概率大,那么天空的边缘就更应该判断为鸟而不是鱼(从概率的角度)。



马尔科夫随机场 (MRF,即无向图模型)

马尔可夫独立性假设:不直接连接的点之间相互独立,点与点相互影响,边传递信息。

满足马尔科夫独立性假设的随机场即马尔科夫随机场。

条件随机场(CRF∈ MRF

条件随机场(CRF:是给定随机变量X条件下,随机变量Y的马尔可夫随机场。条件X即观测值。

全连接条件随机场(DenseCRF

全连接条件随机场:二元势函数描述每一个像素与其他所有像素的关系,所以叫“全连接”。




线性链条件随机场(linearchain CRF)

线性链接的条件随机场,如下:




另如何将CRF融合到CNN???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值