机器学习/深度学习相关库

机器学习/深度学习相关库

本文主要参考地址

神经网络节点和算法

包括的节点:

Backfed Input Cell
反馈输入单元
Input Cell
输入单元
Noisy Input Cell
噪声输入单元
Hidden Cell
隐藏单元
Probablistic Hidden Cell
概率隐藏单元
Spiking Hidden Cell
尖峰隐藏单元
Output Cell
输出单元
Match Input Output Cell
匹配输入输出单元
Recurrent Cell
复发单元
Memory Cell
存储单元
Different Memory Cell
不同的存储单元
Kernel
核心
Convolution or Pool
卷积或池

以下内容感谢大牛提供:

神经网络算法:
Perceptron(P):感知器.
算法中最简单的神经网络算法,解决二分类问题.将分类问题抽象成空间坐标点,就存在一个超平面分离两种类别,该算法旨在找出这个超平面.
相关链接:https://www.jianshu.com/p/c0eb73847b81

Feed Forward(FF):前馈神经网络.
各神经元分层排列,每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,各层间没有反馈.
相关链接:https://baike.baidu.com/item/%E5%89%8D%E9%A6%88%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C#4

Raidal Basis Network(RBF):径向基函数网络.
属于前向神经网络类型,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题.
相关链接:https://blog.csdn.net/zouxy09/article/details/13297881

Deep Feed Forward(DFF):深度前馈网络.

Hopfield Network(HN):Hopfield 网络模型.
是一种循环神经网络,从输出到输入有反馈连接.

Boltzmann Machines(BM):玻尔兹曼机.
是一种随机神经网络,只有0和1的输出,取值由概率统计法则决定.很像Hopfield,区别在于,有一些神经元标记为输入,其它为输出,最终输入神经元变为输出神经元.

Restricted Boltzmann Machines(RBM):受限玻尔兹曼机.
受限玻尔兹曼机由一个可见神经元层和一个隐神经元层组成。由于隐层神经元之间没有相互连接,并且隐层神经元独立于给定的训练样本,这让直接计算依赖数据的期望值变得更容易。可见层神经元之间也没有相互连接。

Markov Chains(MC)或Discrete Time Markov Chain(DTMC):马尔科夫链或离散时间马尔科夫链.
马尔可夫链是指数学中具有马尔可夫性质的离散事件随机过程。该过程中,在给定当前知识或信息的情况下,过去(历史状态)对于预测将来(未来状态)来说是没有关联的。马尔科夫链虽然不是真正的神经网络,但类似于神经网络,并且构成了波尔兹曼机和 Hopfield 神经网络的理论基础。

Autoencoders(AE):自编码器.
最小的隐藏层总是处在中央层,这也是信息压缩程度最高的地方。从输入层到中央层叫做编码部分,从中央层到输出层叫做解码部分,中央层叫做编码(code)。

Sparese Auttoencoders(SAE):稀疏自编码器.
稀疏自编码器在某种程度上与自编码器相反。不同于以往训练一个网络在更低维的空间和结点上去表征信息,它尝试在更高维的空间上编码信息。所以在中间层,网络不是收敛的,而是扩张的。
稀疏自编码器可以自动从无标注数据中学习特征,可以给出比原始数据更好的特征描述。在实际运用时可以用稀疏编码器提取的特征代替原始数据,这样往往能带来更好的结果。

Variational Autoencoders(VAE):变分自编码器.
变分自编码器和自编码器有相同的网络结构。不同点在于其隐藏代码来自于训练期间学习到的概率分布。

Denosing Autoencoders(DAE):去噪自编码器.
去噪自编码器的训练方法和其他自编码器一样,但是输入不是原始数据,而是带噪声的数据。这样的网络不仅能够学习到细节,而且能学习到更泛化的特征。原因有两点:一是通过与非破损数据训练的对比,破损数据训练出来的权重噪声比较小,二是破损数据在一定程度上减轻了训练数据与测试数据之间的代沟。

Deep Belief Networks(DBN):深度信念网络.
深度信念网络是受限玻尔兹曼机(RBM)或者变分自编码器(VAE)的堆叠结构。深度信念网络是一种生成模型,通过训练其神经元间的权重,我们可以让整个神经网络按照最大概率来生成数据。深度信念网络由多层神经元构成,这些神经元又分为显性神经元和隐性神经元。显元用于接受输入,隐元用于提取特征。
深度信念网络能够通过对比散度(contrastive divergence)或者反向传播来训练,并像常规的受限玻尔兹曼机或变分自编码器那样,学习将数据表示成概率模型。一旦模型通过无监督学习被训练或收敛到一个稳定的状态,它可以被用于生成新数据。

Convolutional Neural Networks(CNN)或Deep Convolutional Neural Networks(DCNN):卷积神经网络或深度卷积神经网络.
卷积神经网络主要用于图像处理,但也可用于其他类型的输入,如音频。卷积神经网络的卷积运算过程如下:输入图像通过可训练的滤波器组进行非线性卷积,卷积后在每一层产生特征映射图,然后特征映射图中每组的四个像素再进行求和、加权值、加偏置,在此过程中这些像素在池化层被池化,最终得到输出值。

Deconvolutional Neural Networks(DNN):反卷积神经网络.
反卷积神经网络是和卷积神经网络对应的。在 CNN 中,是由输入图像与特征滤波器进行卷积,得到特征图,而在反卷积神经网络中,是由特征图与特征滤波器卷积,得到输入图像。反卷积神经网络主要用于图像重构和卷积网络可视化。

Deep Convolutional Inverse Graphics Networks(DCIGN):深度卷积逆向图网络.
深度卷积逆向图网络实质上是变分自编码器(VAE),只是在编码器和解码器中分别采用卷积神经网络(CNN)和反卷积神经网络(DNN)结构。这些网络尝试在编码的过程中对“特征”进行概率建模。该网络大部分用于图像处理。网络可以处理未训练的图像,也可以从图像中移除物体、置换目标,或者进行图像风格转换。

Generative Adversarial Networkds(GAN):生成式对抗网咯.
生成式对抗网络由判别网络和生成网络组成。生成网络负责生成内容,判别网络负责对内容进行判别。判别网络同时接收训练数据和生成网络生成的数据。

Recurrent Neural Networks(RNN):循环神经网络.
循环神经网络是基于时间的前馈神经网络,循环神经网络的目的是用来处理序列数据。在循环神经网路中,一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆,并应用于当前输出的计算中,即隐藏层之间的节点不再是无连接的,而是有连接的。并且隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。

Long Short Term Memory(LSTM):长短时记忆网络.
长短时记忆网络是一种特殊的循环神经网络,能够学习长期依赖关系。网络通过引入门结构 (gate) 和一个明确定义的记忆单元 (memory cell) 来尝试克服梯度消失或者梯度爆炸的问题。

Gated Recurrent Units(GRU):门控循环单元.
门控循环单元是长短时记忆网络的一种变体。

Neural Turing Machines(NTM):神经图灵机.
神经图灵机包含两个基本组成部分:神经网络控制器和记忆库。传统的神经网络是一个黑箱模型,而神经图灵机尝试解决这一问题。

Deep Residual Networks(DRN):深度残差网络.
深度网络容易造成梯度在反向传播的过程中消失,导致训练效果很差,而深度残差网络将基本的单元改成了这样.它在神经网络的结构层面解决了这一问题,就算网络很深,梯度也不会消失。

Echo State Networks(ESN):回声状态网络.
回声状态网络是另外一种不同类型的循环网络。与循环神经网路的不同之处是网络将输入到隐藏层,隐藏层到隐藏层的连接权值随机初始化,然后固定不变,只训练输出连接权值。由于只训练输出层,不需要反向传播误差,训练过程就变成求线性回归,速度非常快。

Extreme Learning Machines(ELM):极限学习机.
极限学习机是一种新型的快速学习算法,它们随机初始化权重,并通过最小二乘拟合一步训练权重。这使得模型表现力稍弱,但是在速度上比反向传播快很多。

Liquid State Machines(LSM):液体状态机.
液体状态机是一种脉冲神经网络:sigmoid 激活函数被阈值函数所取代,每个神经元是一个累积记忆单元(memory cell)。

Support Vector Machines(SVM):支持向量机
支持向量机是分类问题的最佳解决方式。支持向量机通过核函数,将低维空间不可分的数据映射到高维空间,使数据变得线性可分。支持向量机能够学习出一个分类超平面,对数据进行分类,但一般不认为支持向量机是神经网络。分类最佳/最好.

Kohonen Networks(KN)或Self-Organizing Map(SOM):Kohonen网络.
Kohonen 网络是自组织竞争型神经网络的一种,该网络为无监督学习网络,能够识别环境特征并自动聚类。
用于图像的神经网络算法:
Deep Feed Forward
Deep Recurrent
Deep GRU
Deep LSTM

示例参考链接:
https://github.com/OUCMachineLearning/OUCML/tree/master/%E4%BB%A3%E7%A0%81%E9%80%9F%E6%9F%A5%E8%A1%A8
python库 命令链接

python基础

是一门简单易上手的语言,也是数据分析的常用工具,IDE有anaconda/spyder/jupyter等,内容主要包括数据类型,字符串,列表,库等.
scipy科学计算

spark是类Hadoop MapReduce的通用的并行计算框架,基于map reduce算法实现的分布式计算,能够更好的适应需要迭代的map reduce算法.

适用场景:
基于内存迭代,需要多次操作特定数据集的场合.需要反复操作的次数越多,读取数据量越大,受益越大;不适合那种异步细粒度更新状态的引用.

介绍链接:https://www.zhihu.com/question/23330889

numpy
pandas
bokeh

Bokeh是一个很美观实用的Python交互绘图库

matplotlib
ggplot
各类图形的信息链接
sklearn
keras

Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlowCNTK, 或者 Theano 作为后端运行。

tensorflow
结构复杂度
datastruct.png
各类数据结构的复杂度
 
O().png
各类算法的复杂度
sort.png
各类排序算法的复杂度
 

MapReduce算法和实现

知乎通俗解释

mapreduce讲分而治之的概念,把一个复杂的任务分为若干个简单的任务分别来做.
例如需要分析海量的数据实现一个任务,这些数据分布在1w台PC上,我们不需要讲所有数据拷贝到一起,而是按照规则各自处理然分类汇总就能得到结果.
mapreduce解决这个问题的方法是:讲1w台PC分成三类,第一类是Master,负责调度;第二类叫Worker,又细分为Mapper和Reducer.其中Mapper按照Master安排的任务开展工作,并将工作结果传递给Reducer,Reducer负责统计各个Mapper上报结果,得到最终答案.
然实际中会很复杂,需要考虑任务时间/任务出错/通讯负担等需要问题.

preview
图片来源于知乎链接
 
 
 
 

留下评论