2019-12-26 23:37:16 qq_40873545 阅读数 94
  • 人工智能深度学习卷积神经网络入门

    "java大数据人工智能培训学校全套教材"系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。   通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,训练模型,激活函数,sigmoid激活函数,导数和切线,sigmoid激活函数如何求导, 链式法则,梯度,梯度下降法与delta法则,BP(back propagation)误差逆传播神经网络,卷积到底有什么作用?如何做到特征提取,池化的名字由来, dropout,Anaconda Prompt的用法,Jupyter notebook的用法,Spyder的用法, 建立安装Tensorflow所需的Anaconda虚拟环境,如何在Anaconda虚拟环境安装Tensorflow与Keras 概念等让大家对人工智能,卷积神经网络快速入门。 课程特色:专业细致,偏案例,理论强。 课程软件使用:Anaconda,Spyder,Jupyter notebook 重要声明: 1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声  2) 既然我们的名字叫人工智能深度学习卷积神经网络入门 ,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。人工智能深度学习卷积神经网络入门 的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。

    207 人正在学习 去看看 马克

语音识别的基本框图
将语音片段输入转化为文本输出的过程就是语音识别。一个完整的语音识别系统通常包括信息处理和特征提取、声学模型、语言模型和解码搜索四个模块。语言识别系统如下图所示:

图一 语音识别系统的架构
信号处理和特征提取可以视作音频数据的预处理部分,以音频信号为输入,通过消除噪音和信道失真对语音进行增强,将语音信号从时域转换为频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行综合,以特征提取为输入,接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分。同时,语言模型,也就是类似 n-gram 和 RNN 等模型,会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结构。

图二 统计语音识别框图
其中,声学模型为隐马尔科夫模型,Lexcion表示词典,语言模型为n-gram模型。
统计语音识别的基本公式:

图三
其中,X是声学特征向量序列(观察),W表示单词序列,W表示最可能的单词序列。已知观测到的声学X,使用声学模型,语言模型和词汇表来获得最有可能的文字序列W
用贝叶斯公式分析

图四
信息处理和特征提取
因为声波是一种信号,也可称为语音信号。原始的音频信号由人类发声器官和声道共同作用下产生的,属于模拟信号。为了对语音信号进行预处理和特征提取,需要进行模数转换。即采样,将模拟信号转换为数字的形式:

图五
语音引起空气振动,是一种声压波,用麦克风进行录制。经过麦克风录制后的语音信号,其中,采样频率(Fs = 1/Ts)

图六
数字化后,下一步的工作是提取语音信号的声学特征:

图七
采样后的信号通过前处理后进行声学特征向量提取,不同的特征向量表征着不同的声学意义,从音频信号中选择有效的音频表征的过程就是语音特征提取。常用的语音特征包括线性预测倒谱系数(LPCC)和梅尔频率倒谱系数(MFCC),其中 LPCC 特征是根据声管模型建立的特征参数,是对声道响应的特征表征。而 MFCC 特征是基于人的听觉特征提取出来的特征参数,是对人耳听觉的特征表征。所以,在对音频信号进行特征提取时通常使用 MFCC 特征。

图八 基于MFCC的前处理
MFCC 主要由预加重、分帧、加窗、快速傅里叶变换(FFT)、梅尔滤波器组、离散余弦变换几部分组成,其中FFT与梅尔滤波器组是 MFCC 最重要的部分。一个完整的 MFCC 算法包括快速傅里叶变换(FFT);梅尔频率尺度转换;配置三角形滤波器组并计算每一个三角形滤波器对信号幅度谱滤波后的输出;对所有滤波器输出作对数运算,再进一步做离散余弦变换(DTC),即可得到MFCC。
传统的声学模型
在经过语音特征提取之后,将音频特征进行进一步的处理,处理的目的是找到语音来自于某个声学符号的概率。这种通过音频特征找概率的模型就称之为声学模型。声学模型的任务是计算P(W|X),即给模型产生语音波形的概率。声学模型是语音识别系统的重要组成部分,它占据着语音识别大部分的计算开销,决定着语音识别系统的性能。传统的语音识别系统普遍采用的是基于GMM-HMM的声学模型,其中GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。

图九
在深度学习兴起之前,混合高斯模型(GMM)和隐马尔可夫模型(HMM)一直作为非常有效的声学模型而被广泛使用,作为传统声学模型的代表,我将介绍 GMM 和 HMM 模型。
所谓高斯混合模型(GMM),就是用混合的高斯随机变量的分布来拟合训练数据时形成的模型。原始的音频数据经过短时傅里叶变换或者取倒谱后会变成特征序列,在忽略时序信息的条件下,这种序列非常适用于使用高斯混合模型(GMM)进行建模。在实际的 高斯混合模型训练中,通常采用 EM 算法来进行迭代优化,以求取高斯混合模型中的加权系数及各个高斯函数的均值与方差等参数。高斯混合模型作为一种基于傅里叶频谱语音特征的统计模型,在传统语音识别系统的声学模型中发挥了重要的作用。它的劣势在于不能考虑语音顺序信息,高斯混合分布也很难拟合非线性或近似非线性的数据特征。所以,当状态这个概念引入到声学模型的时候,就有了一种新的声学模型,隐马尔可夫模型(HMM)。
隐马尔可夫模型(HMM)的核心是状态,状态是一个随机变量,通常取离散值,马尔可夫链的每一个状态上都增加了不确定性或者统计分布使得 HMM 成为了一种双随机过程,当一个马尔可夫过程含有隐含未知参数时,这样的模型就称之为隐马尔可夫模型。隐马尔可夫模型(HMM) 的主要内容包括参数特征、仿真方法、参数的极大似然估计、EM估计算法以及维特比状态解码算法等细节知识。
深度神经网络
深度神经网络(Deep Neural Networks,DNN)与RNN循环神经网络、CNN卷积神经网络的区别就是DNN特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
语音识别中的DNN-HMN混合系统
最早用于声学建模的神经网络就是最普通的深度神经网络,GMM 等传统的声学模型存在音频信号表征的低效问题,但 DNN 可以在一定程度上解决这种低效表征。但在实际建模时,由于音频信号是时序连续信号,DNN 则是需要固定大小的输入,所以早期使用 DNN 来搭建声学模型时需要一种能够处理语音信号长度变化的方法。一种将 HMM 模型与 DNN 模型结合起来的 DNN-HMM 混合系统颇具有效性。

图十 DNN-HMM框架
在上图这个框架中,HMM 用来描述语音信号的动态变化,DNN 则是用来估计观察特征的概率。在给定声学观察特征的条件下,我们可以用 DNN 的每个输出节点来估计 HMM 某个状态的后验概率。由于 DNN-HMM 训练成本不高而且相对较高的识别概率,所以即使是到现在在语音识别领域仍然是较为常用的声学模型。
除了 DNN 之外,经常用于计算机视觉的 CNN 也可以拿来构建语音声学模型。当然,CNN 也是经常会与其他模型结合使用。CNN 用于声学模型方面主要包括 TDNN、CNN-DNN 框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐层语境扩展和注意 CNN 框架(LACE)等等。这么多基于 CNN 的混合模型框架都在声学模型上取得了很多成果。
端到端的语音识别系统简介
无论是 GMM 和 HMM 这样的传统声学模型,还是基于深度学习的声学模型,它们对于整个语音识别系统都是分开优化的,但是语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以需要一种端到端的语音识别处理系统。而解码是基于训练好的声学模型,并结合词典、语言模型,对输入的语音帧序列识别的过程即为解码的过程。传统的解码是将声学模型、词典以及语言模型编译成一个网络。解码就是在这个动态网络空间中,基于最大后验概率,选择一条或多条最优路径作为识别结果(最优的输出字符序列)。
语音识别的基本框图
将语音片段输入转化为文本输出的过程就是语音识别。一个完整的语音识别系统通常包括信息处理和特征提取、声学模型、语言模型和解码搜索四个模块。语言识别系统如下图所示:

图一 语音识别系统的架构
信号处理和特征提取可以视作音频数据的预处理部分,以音频信号为输入,通过消除噪音和信道失真对语音进行增强,将语音信号从时域转换为频域,并为后面的声学模型提取合适的特征。声学模型将声学和发音学的知识进行综合,以特征提取为输入,接下来声学模型会将预处理部分得到的特征向量转化为声学模型得分。同时,语言模型,也就是类似 n-gram 和 RNN 等模型,会得到一个语言模型得分,最后解码搜索阶段会针对声学模型得分和语言模型得分进行综合,将得分最高的词序列作为最后的识别结构。

图二 统计语音识别框图
其中,声学模型为隐马尔科夫模型,Lexcion表示词典,语言模型为n-gram模型。
统计语音识别的基本公式:

图三
其中,X是声学特征向量序列(观察),W表示单词序列,W表示最可能的单词序列。已知观测到的声学X,使用声学模型,语言模型和词汇表来获得最有可能的文字序列W
用贝叶斯公式分析

图四
信息处理和特征提取
因为声波是一种信号,也可称为语音信号。原始的音频信号由人类发声器官和声道共同作用下产生的,属于模拟信号。为了对语音信号进行预处理和特征提取,需要进行模数转换。即采样,将模拟信号转换为数字的形式:

图五
语音引起空气振动,是一种声压波,用麦克风进行录制。经过麦克风录制后的语音信号,其中,采样频率(Fs = 1/Ts)

图六
数字化后,下一步的工作是提取语音信号的声学特征:

图七
采样后的信号通过前处理后进行声学特征向量提取,不同的特征向量表征着不同的声学意义,从音频信号中选择有效的音频表征的过程就是语音特征提取。常用的语音特征包括线性预测倒谱系数(LPCC)和梅尔频率倒谱系数(MFCC),其中 LPCC 特征是根据声管模型建立的特征参数,是对声道响应的特征表征。而 MFCC 特征是基于人的听觉特征提取出来的特征参数,是对人耳听觉的特征表征。所以,在对音频信号进行特征提取时通常使用 MFCC 特征。

图八 基于MFCC的前处理
MFCC 主要由预加重、分帧、加窗、快速傅里叶变换(FFT)、梅尔滤波器组、离散余弦变换几部分组成,其中FFT与梅尔滤波器组是 MFCC 最重要的部分。一个完整的 MFCC 算法包括快速傅里叶变换(FFT);梅尔频率尺度转换;配置三角形滤波器组并计算每一个三角形滤波器对信号幅度谱滤波后的输出;对所有滤波器输出作对数运算,再进一步做离散余弦变换(DTC),即可得到MFCC。
传统的声学模型
在经过语音特征提取之后,将音频特征进行进一步的处理,处理的目的是找到语音来自于某个声学符号的概率。这种通过音频特征找概率的模型就称之为声学模型。声学模型的任务是计算P(W|X),即给模型产生语音波形的概率。声学模型是语音识别系统的重要组成部分,它占据着语音识别大部分的计算开销,决定着语音识别系统的性能。传统的语音识别系统普遍采用的是基于GMM-HMM的声学模型,其中GMM用于对语音声学特征的分布进行建模,HMM则用于对语音信号的时序性进行建模。

图九
在深度学习兴起之前,混合高斯模型(GMM)和隐马尔可夫模型(HMM)一直作为非常有效的声学模型而被广泛使用,作为传统声学模型的代表,我将介绍 GMM 和 HMM 模型。
所谓高斯混合模型(GMM),就是用混合的高斯随机变量的分布来拟合训练数据时形成的模型。原始的音频数据经过短时傅里叶变换或者取倒谱后会变成特征序列,在忽略时序信息的条件下,这种序列非常适用于使用高斯混合模型(GMM)进行建模。在实际的 高斯混合模型训练中,通常采用 EM 算法来进行迭代优化,以求取高斯混合模型中的加权系数及各个高斯函数的均值与方差等参数。高斯混合模型作为一种基于傅里叶频谱语音特征的统计模型,在传统语音识别系统的声学模型中发挥了重要的作用。它的劣势在于不能考虑语音顺序信息,高斯混合分布也很难拟合非线性或近似非线性的数据特征。所以,当状态这个概念引入到声学模型的时候,就有了一种新的声学模型,隐马尔可夫模型(HMM)。
隐马尔可夫模型(HMM)的核心是状态,状态是一个随机变量,通常取离散值,马尔可夫链的每一个状态上都增加了不确定性或者统计分布使得 HMM 成为了一种双随机过程,当一个马尔可夫过程含有隐含未知参数时,这样的模型就称之为隐马尔可夫模型。隐马尔可夫模型(HMM) 的主要内容包括参数特征、仿真方法、参数的极大似然估计、EM估计算法以及维特比状态解码算法等细节知识。
深度神经网络
深度神经网络(Deep Neural Networks,DNN)与RNN循环神经网络、CNN卷积神经网络的区别就是DNN特指全连接的神经元结构,并不包含卷积单元或是时间上的关联。
语音识别中的DNN-HMN混合系统
最早用于声学建模的神经网络就是最普通的深度神经网络,GMM 等传统的声学模型存在音频信号表征的低效问题,但 DNN 可以在一定程度上解决这种低效表征。但在实际建模时,由于音频信号是时序连续信号,DNN 则是需要固定大小的输入,所以早期使用 DNN 来搭建声学模型时需要一种能够处理语音信号长度变化的方法。一种将 HMM 模型与 DNN 模型结合起来的 DNN-HMM 混合系统颇具有效性。

图十 DNN-HMM框架
在上图这个框架中,HMM 用来描述语音信号的动态变化,DNN 则是用来估计观察特征的概率。在给定声学观察特征的条件下,我们可以用 DNN 的每个输出节点来估计 HMM 某个状态的后验概率。由于 DNN-HMM 训练成本不高而且相对较高的识别概率,所以即使是到现在在语音识别领域仍然是较为常用的声学模型。
除了 DNN 之外,经常用于计算机视觉的 CNN 也可以拿来构建语音声学模型。当然, 也是经常会与其他模型结合使用。CNN 用于声学模型方面主要包括 TDNN、CNN-DNN 框架、DFCNN、CNN-LSTM-DNN(CLDNN)框架、CNN-DNN-LSTM(CDL)框架、逐层语境扩展和注 CNN 框架(LACE)等等。这么多基于 CNN 的混合模型框架都在声学模

上取得了很多成果。
端到端的语音识别系统简介
无论是 GMM 和 HMM 这样的传统声学模型,还是基于深度学习的声学模型,它们对于整个语音识别系统都是分开优化的,但是语音识别本质上是一个序列识别问题,如果模型中的所有组件都能够联合优化,很可能会获取更好的识别准确度,所以需要一种端到端的语音识别处理系统。而解码是基于训练好的声学模型,并结合词典、语言模型,对输入的语音帧序列识别的过程即为解码的过程。传统的解码是将声学模型、词典以及语言模型编译成一个网络。解码就是在这个动态网络空间中,基于最大后验概率,选择一条或多条最优路径作为识别结果(最优的输出字符序列)。

2017-04-05 15:14:55 qq_26566831 阅读数 3777
  • 人工智能深度学习卷积神经网络入门

    "java大数据人工智能培训学校全套教材"系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。   通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,训练模型,激活函数,sigmoid激活函数,导数和切线,sigmoid激活函数如何求导, 链式法则,梯度,梯度下降法与delta法则,BP(back propagation)误差逆传播神经网络,卷积到底有什么作用?如何做到特征提取,池化的名字由来, dropout,Anaconda Prompt的用法,Jupyter notebook的用法,Spyder的用法, 建立安装Tensorflow所需的Anaconda虚拟环境,如何在Anaconda虚拟环境安装Tensorflow与Keras 概念等让大家对人工智能,卷积神经网络快速入门。 课程特色:专业细致,偏案例,理论强。 课程软件使用:Anaconda,Spyder,Jupyter notebook 重要声明: 1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声  2) 既然我们的名字叫人工智能深度学习卷积神经网络入门 ,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。人工智能深度学习卷积神经网络入门 的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。

    207 人正在学习 去看看 马克

Image Pyramids

目标: 使用表征来分解图片,到不同的scale的图片,来提取特征并且消除噪声。

动机: a) 来提取图像的特征,比如多种尺度的边缘
b) 减少冗余和图像建模,可以做:图像编码,图像增强和复原,图像分析和合成。
c) 当前各种深度网络中都用到了这个,比如[1] [2] [3], 用来做object detection.
例子:a)Gaussian Pyramid 
b) Laplacian Pyramid

1.Gaussian Pyramid

原图片表示为
<a href="http://www.codecogs.com/eqnedit.php?latex=I" target="_blank"><img src="http://latex.codecogs.com/gif.latex?I" title="I" /></a>

, 低通的下采样序列图片表示为
<a href="http://www.codecogs.com/eqnedit.php?latex=[\vec{I}_0,&space;\vec{I}_1,&space;...,&space;\vec{I}_N]" target="_blank"><img src="http://latex.codecogs.com/gif.latex?[\vec{I}_0,&space;\vec{I}_1,&space;...,&space;\vec{I}_N]" title="[\vec{I}_0, \vec{I}_1, ..., \vec{I}_N]" /></a>
高斯金字塔采用一个高斯滤波卷积核来卷积这个图像,设卷积核为h, 同时对卷积后的图像进行下采样,1/2倍,于是可以用下面矩阵形式表达:

反复进行k次之后可以得到如下所示:

2.Laplacian Pyramid

每一个Laplacian Pyramid的层都是相邻两个Gaussian Pyramid的差值
<a href="http://www.codecogs.com/eqnedit.php?latex=\vec{b}_k&space;=&space;\vec{I}_k&space;-&space;E\vec{I}_{k+1}" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\vec{b}_k&space;=&space;\vec{I}_k&space;-&space;E\vec{I}_{k+1}" title="\vec{b}_k = \vec{I}_k - E\vec{I}_{k+1}" /></a>
其中
<a href="http://www.codecogs.com/eqnedit.php?latex=E\vec{I}_{k+1}" target="_blank"><img src="http://latex.codecogs.com/gif.latex?E\vec{I}_{k+1}" title="E\vec{I}_{k+1}" /></a>
是一个上采样的平滑之后的
<a href="http://www.codecogs.com/eqnedit.php?latex=\vec{I}_{k+1}" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\vec{I}_{k+1}" title="\vec{I}_{k+1}" /></a>
所以 
<a href="http://www.codecogs.com/eqnedit.php?latex=\vec{I}_{k+1}" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\vec{I}_{k+1}" title="\vec{I}_{k+1}" /></a>
<a href="http://www.codecogs.com/eqnedit.php?latex=\vec{I}_{k}" target="_blank"><img src="http://latex.codecogs.com/gif.latex?\vec{I}_{k}" title="\vec{I}_{k}" /></a>
的维度是相同的。写成矩阵形式为如下:

通常这两个fileter g 和 h 是相同的.
L层的Laplacian pyramid 表示为
<a href="http://www.codecogs.com/eqnedit.php?latex=[\vec{b}_{0},&space;\vec{b}_1,&space;...,&space;\vec{b}_{L-1},&space;\vec{I}_L]" target="_blank"><img src="http://latex.codecogs.com/gif.latex?[\vec{b}_{0},&space;\vec{b}_1,&space;...,&space;\vec{b}_{L-1},&space;\vec{I}_L]" title="[\vec{b}_{0}, \vec{b}_1, ..., \vec{b}_{L-1}, \vec{I}_L]" /></a>
这样就得到了Laplacian pyramid

但是构造出这种Pyramid的意义何在呢?在传统的方法中,要让两个图片合成,通常会让两个图片的laplacian pyramid拼接在一起(相当于把高通信号融合),再任意选择一个I_L利用Laplacian pyramid反向reconstruct到原图的size, 这样合成的效果就会好很多。这就是把图像的特征分成multi-scale的角度来操作。



2016-03-30 16:26:03 happytofly 阅读数 1367
  • 人工智能深度学习卷积神经网络入门

    "java大数据人工智能培训学校全套教材"系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。   通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,训练模型,激活函数,sigmoid激活函数,导数和切线,sigmoid激活函数如何求导, 链式法则,梯度,梯度下降法与delta法则,BP(back propagation)误差逆传播神经网络,卷积到底有什么作用?如何做到特征提取,池化的名字由来, dropout,Anaconda Prompt的用法,Jupyter notebook的用法,Spyder的用法, 建立安装Tensorflow所需的Anaconda虚拟环境,如何在Anaconda虚拟环境安装Tensorflow与Keras 概念等让大家对人工智能,卷积神经网络快速入门。 课程特色:专业细致,偏案例,理论强。 课程软件使用:Anaconda,Spyder,Jupyter notebook 重要声明: 1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声  2) 既然我们的名字叫人工智能深度学习卷积神经网络入门 ,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。人工智能深度学习卷积神经网络入门 的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。

    207 人正在学习 去看看 马克

环形五麦克风阵列360°全平面拾音角度,远场拾音距离可达5米。

功能特性包括:

  • 二维空间拾音
  • 抗噪能力增强
  • 远距拾取音频
  • 支持连续唤醒
  • 支持回声消除
  • 支持语音打断

噪声、混响、干扰和回声是声学信号处理需要解决的问题。讯飞采用声源定位技术,利用麦克风阵列用基于TDOA(Time Difference Of Arrival,到达时间差)计算声源距离阵列的角度和距离,实现对目标声源的跟踪。再通过波束形成技术,即在期望方向上有效地形成一个波束,仅拾取波束的信号,从而达到同时提取声源和抑制噪声的目的。

图片描述

图片描述

原文:http://www.pieeco.com/zb/keda.html?from=groupmessage&isappinstalled=0

2018-09-09 15:08:06 qq_16307369 阅读数 111
  • 人工智能深度学习卷积神经网络入门

    "java大数据人工智能培训学校全套教材"系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。   通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,训练模型,激活函数,sigmoid激活函数,导数和切线,sigmoid激活函数如何求导, 链式法则,梯度,梯度下降法与delta法则,BP(back propagation)误差逆传播神经网络,卷积到底有什么作用?如何做到特征提取,池化的名字由来, dropout,Anaconda Prompt的用法,Jupyter notebook的用法,Spyder的用法, 建立安装Tensorflow所需的Anaconda虚拟环境,如何在Anaconda虚拟环境安装Tensorflow与Keras 概念等让大家对人工智能,卷积神经网络快速入门。 课程特色:专业细致,偏案例,理论强。 课程软件使用:Anaconda,Spyder,Jupyter notebook 重要声明: 1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声  2) 既然我们的名字叫人工智能深度学习卷积神经网络入门 ,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。人工智能深度学习卷积神经网络入门 的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。

    207 人正在学习 去看看 马克

原创声明:本文为犇丿灬犇原创文章未经博主允许不得转载。犇丿灬犇博客地址 [犇丿灬犇博客]

主成分分析(Principal components analysis,以下简称PCA)是一种简单的机器学习算法。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。可以通过线性代数的方法进行推导。
##推导过程
假设在Rn\mathbb R^n空间有mm个点{x(1),x(2),...x(m}\{x^{(1)},x^{(2)},...x^{(m}\},我们希望对这些点进行有损压缩。这可以使我们使用更少的内存来存储信息,但我们希望精度损失尽可能少。
主成分分析是一种编码方法,即用函数f(x)=cf(\mathbf x)=\mathbf c,其中xRn\mathbf x\in \mathbb R^ncRm\mathbf c\in \mathbb R^m,m&lt;nm&lt;n,主成分分析选择解码函数为g(c)=Dcg(\mathbf c)=\mathbf {Dc},其中DRn×m\mathbf D\in\mathbb R^{n\times m},其列向量彼此正交且为单位向量,为得到一个最优解c\mathbf c^*,需要使cx\mathbf c与\mathbf x的距离最小,即:
c=argmincxg(c)22\mathbf c^*= \arg\min_{\mathbf c} \|\mathbf x-g(\mathbf c)\|_2^2
也即:
c=argminc (xg(c))T(xg(c))\mathbf c^*= \arg\min_{\mathbf c} \ (\mathbf x-g(\mathbf c))^T(\mathbf x-g(\mathbf c))
由于xTx\mathbf x^T\mathbf x不依赖于c\mathbf c因此
c=argminc (2xTg(c)+g(c)Tg(c))\mathbf c^*= \arg\min_{\mathbf c} \ (-2\mathbf x^Tg(\mathbf c)+g(\mathbf c)^Tg(\mathbf c))
更进一步带入g(c)=Dcg(\mathbf c)=\mathbf {Dc}

c=argminc (2xTDc+cTIlc)\mathbf c^*= \arg\min_{\mathbf c} \ (-2\mathbf x^T\mathbf {Dc}+\mathbf c^T\mathbf I_l \mathbf c)

根据梯度下降法取$ (-2\mathbf x^T\mathbf {Dc}+\mathbf c^T\mathbf I_l \mathbf c)$的梯度等于零
c(2xTDc+cTIlc)=0\bigtriangledown_{\mathbf c} (-2\mathbf x^T\mathbf {Dc}+\mathbf c^T\mathbf I_l \mathbf c)=0
得:
c=DTx\mathbf c=\mathbf D^T \mathbf x
因此
xg(f(x))=DDTx=r(x)\mathbf x\approx g(f(\mathbf x))=\mathbf{DD^Tx}=r(\mathbf x)
接下来分析如何挑选D\mathbf D,要挑选最优的D\mathbf D就必须使所有的点重构值与真实值之间距离和最小,即:
D=argminDi,j(xj(i)r(x(i))j)2 ,DTD=Il\mathbf D^*= \arg\min_{\mathbf D}\sqrt{\sum_{i,j}( x_j^{(i)}-r(\mathbf x^{(i)})_j)^2}\ ,这里\mathbf D^T\mathbf D=\mathbf I_l
为简化运算以寻求D\mathbf D^*的算法,取l=1l=1此时DD变为一个列向量d\bf d

整理得:d=argmindix(i)ddTx(i))2 ,dTd=1\mathbf d^*= \arg\min_{\mathbf d}\sum_{i}\|\mathbf x^{(i)}-\mathbf {dd^Tx}^{(i)})\|^2\ ,这里\mathbf d^T\mathbf d=1
将求和形式写成矩阵形式:
d=argmindXXddT2 ,dTd=1\mathbf d^*= \arg\min_{\mathbf d}\|\mathbf X-\mathbf {Xdd^T}\|^2\ ,这里\mathbf d^T\mathbf d=1
不考虑dTd=1\mathbf d^T\mathbf d=1
得:
\begin{equation}
\begin{split}
\mathbf d^&= \arg\min_{\mathbf d}|\mathbf X-\mathbf {XddT}|2\
&= \arg\min_{\mathbf d} \ Tr((\mathbf X-\mathbf {XddT})T(\mathbf X-\mathbf {Xdd^T}))
\end{split}
\end{equation}
整理(除去与d\bf d无关项)得:
\begin{equation}
\begin{split}
\mathbf d^
&= \arg\min_{\mathbf d}(-2Tr(\mathbf{XTXddT})+Tr(\mathbf{XTXddTdd^T}))
\end{split}
\end{equation}

考虑dTd=1\mathbf d^T\mathbf d=1
\begin{equation}
\begin{split}
\mathbf d^*&= \arg\min_{\mathbf d}(-Tr(\mathbf{XTXddT})) \
&=\arg\max_{\mathbf d}(Tr(\mathbf{XTXddT}))\
&=\arg\max_{\mathbf d}(Tr(\mathbf{dTXTXd}))
\end{split}
\end{equation}
上式可以通过特征分解求解,最优的d\bf dXTX\bf{X^TX}的最大特征值对应的特征向量。此为l=1l=1时的情况,更一般的,主成分分析可以取ll个特征值对应的特征向量,这可以用数学归纳法证明。
##sklearn中主成分分析法的使用

class sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)

###参数含义
n_components

意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n
类型:int 或者 string,缺省时默认为None,所有成分被保留。
赋值为int,比如n_components=1,将把原始数据降到一个维度。
赋值为string,比如n_components=‘mle’,将自动选取特征个数n,使得满足所要求的方差百分比。

copy:

类型:bool,True或者False,缺省时默认为True。
意义:表示是否在运行算法时,将原始训练数据复制一份。
若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;
若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。

whiten:

类型:bool,缺省时默认为False
意义:白化,使得每个特征具有相同的方差。
###类对象
components_ :返回具有最大方差的成分。
explained_variance_ratio_:返回 所保留的n个成分各自的方差百分比。
n_components_:返回所保留的成分个数n。
mean_:
noise_variance_:
###类方法
fit(X,y=None)
fit()可以说是scikit-learn中通用的方法,每个需要训练的算法都会有fit()方法,它其实就是算法中的“训练”这一步骤。因为PCA是无监督学习算法,此处y自然等于None。
fit(X),表示用数据X来训练PCA模型。
函数返回值:调用fit方法的对象本身。比如pca.fit(X),表示用X对pca这个对象进行训练。

fit_transform(X)

用X来训练PCA模型,同时返回降维后的数据。
newX=pca.fit_transform(X),newX就是降维后的数据。

inverse_transform()

将降维后的数据转换成原始数据,X=pca.inverse_transform(newX)

transform(X)

将数据X转换成降维后的数据。当模型训练好后,对于新输入的数据,都可以用transform方法来降维。

此外,还有get_covariance()、get_precision()、get_params(deep=True)、score(X, y=None)等方法。

  1. https://www.cnblogs.com/eczhou/p/5433856.html
  2. [美]伊恩·古德费洛(Lan Goodfellow)[加]约书亚·本吉奥(Yoshua Bengio)[加]亚伦·库维尔(Aaron Courville)深度学习【M】
2018-12-28 22:09:00 weixin_30886233 阅读数 181
  • 人工智能深度学习卷积神经网络入门

    "java大数据人工智能培训学校全套教材"系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。   通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,训练模型,激活函数,sigmoid激活函数,导数和切线,sigmoid激活函数如何求导, 链式法则,梯度,梯度下降法与delta法则,BP(back propagation)误差逆传播神经网络,卷积到底有什么作用?如何做到特征提取,池化的名字由来, dropout,Anaconda Prompt的用法,Jupyter notebook的用法,Spyder的用法, 建立安装Tensorflow所需的Anaconda虚拟环境,如何在Anaconda虚拟环境安装Tensorflow与Keras 概念等让大家对人工智能,卷积神经网络快速入门。 课程特色:专业细致,偏案例,理论强。 课程软件使用:Anaconda,Spyder,Jupyter notebook 重要声明: 1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声  2) 既然我们的名字叫人工智能深度学习卷积神经网络入门 ,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。人工智能深度学习卷积神经网络入门 的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。

    207 人正在学习 去看看 马克

在基于CNN的超分辨率中,经常在最后一层使用stride>1的deconv layer,而这会造成棋盘格噪声。如下图所示

 

具体产生原因

上面的黑格子是表示原始图像中的某一个像素点,白色的表示转置卷积中的stride,一般是用0去填充。下面一层就是deconv生成的图像。可以看到stride不能整除size的时候,就会出现棋盘格效应(当然,就算整除也不能完全消除)。

 

 

 如何避免呢?

采用一般的插值算法(NN或bilinear)先把图像放大到目标分辨率,再用普通的conv去做计算,替代deconv layer。

 

最后效果

 

参考文献

[1] https://distill.pub/2016/deconv-checkerboard/              deconvolution and checkerboard artifacts

 

转载于:https://www.cnblogs.com/sunny-li/p/10193141.html

没有更多推荐了,返回首页