DSP

简单的了解深度学习的运行机制

2019-07-13 16:58发布

1、首先我们应该大致了解其运行机制,通常在实际的框架中算法封装时都会有嵌套。阅读Peter harrington《机器学习实战》和重现源代码。了解其统计原理《统计学习方法》李航,接下来开始LISA的Deep learning Tutorial,http://neuralnetworksanddeeplearning.com/
https://github.com/tigerneil/neural-networks-and-deep-learning-zh-cn
https://www.52ml.net/18635.html http://neuralnetworksanddeeplearning.com/ 在此过程中我们需要抽时间来读原文](https://www.toptal.com/machine-learning/an-introduction-to-deep-learning-from-perceptrons-to-deep-networks) A deep learning Tutorial:From Perceptrons to Algorithms.
读完这些资料发现了问题是神经网络在PRML第三到第五章节,可以暂时不读贝叶斯部分的解释 ,主要读懂BP算法的数学原理,和练习MATLAB的神经网络工具箱的github源码https://github.com/rasmusbergpalm/DeepLearnToolbox,完善补充学习书籍如下:http://goodfeli.github.io/dlbook/这本手稿目前没有更新完善还在继续。当然读这个UFLDL文档是特别有帮助:http://ufldl.stanford.edu/tutorial/,通常从逻辑上开始理解其机制原理,在对全部的梯度求导部分向量化,然后推到其Feed forward neualnetwork,研究和理解其BP算法机制时,可以试试主流的DL算法CNN、MN ISTM等全部向量化实现,掌握其推导并实现任何神经网络结构。然后按照自己的背景情况学习特征工程和优化技术,因为这是一门工具科学,Tutorial:http://ufldl.stanford.edu/tutorial/这是Ng老师的相对比较完善,导论性的文章http://www.nature.com/news/computer-science-the-learning-machines-1.14481当然你要从事这方面的研究工作那么就要学习科学史及其学科体系Review Article in Nature, May 2015) 三大鼻祖Yann LeCun, Yoshua Bengio, and Geoffrey Hinton的文章http://www.nature.com/articles/nature14539.epdf?referrer_access_token=K4awZz78b5Yn2_AoPV_4Y9RgN0jAjWel9jnR3ZoTv0PU8PImtLRceRBJ32CtadUBVOwHuxbf2QgphMCsA6eTOw64kccq9ihWSKdxZpGPn2fn3B_8bxaYh0svGFqgRLgaiyW6CBFAb3Fpm6GbL8a_TtQQDWKuhD1XKh_wxLReRpGbR_NdccoaiKP5xvzbV-x7b_7Y64ZSpqG6kmfwS6Q1rw%3D%3D&tracking_referrer=www.nature.com这里面主要学习写文章和文章中提到算法的复现,及其多方面深入研究http://cacm.acm.org/news/188737-growing-pains-for-deep-learning/abstractGeoffrey Hinton在Coursera开设的MOOC。现在没有重新开课,但里面的资料都有,论坛也开放,neural networks for machine learning
Nando de Freitas 在 Oxford 开设的深度学习课程,有全套视频。教程http://www.computervisiontalks.com/tag/deep-learning-course/Yoshua Bengio, Ian Goodfellow and Aaron Courville,目前最权威的DL教材http://www.deeplearningbook.org/目前我个人所了解的深度学习库有以下: 一个开源的可扩展的库,支持Java, Python, Scala, and Rhttp://www.h2o.ai/verticals/algos/deep-learning/ Java库,整合了Hadoop和Spark,也可以用weka调用:http://deeplearning4j.org/ Yangqing Jia读研究生的时候开发的,现在还是由Berkeley维护http://caffe.berkeleyvision.org/以及最流行的库Theanohttp://deeplearning.net/software/theano/,深度学习的新闻、研究进展和相关的创业项目http://news.startup.ml/。 【 【C++方面】
计算机视觉
CCV-基于c语言,提供缓存核心的机器学习视觉库,新颖的机器视觉库
OpenCV -提供C++,C,python,java以及MATLAB接口的Android和mac os操作系统
通用的机器学习:MLPack DLib ecogg shark 【 Closure】 通用机器学习:Closure Toolbox-Clojure语言与工具的分类目录 【GO】 自然语言处理: go-porterstemmer—— 一个porter词干提取算法的原生GO语言实现库 paicehusk-paice/Husk词干提取算法的GO语言实现 snowball——GO语言版的snowball词干提取器 通用机器学习: GoLearn——Go语言机器学习库 go-pr——Go语言机器学习包 bayesian——Go语言朴素贝叶斯分类库 go-galib——Go语言遗传算法库 数据分析/数据可视化 go-graph——Go语言图形库 SVGo——Go语言的SVG生成库 【Java】 自然语言处理方面 CoreNLP——斯坦福大学提供的CoreNLP提供一系列的自然语言处理工具,输入原始英文的文本,可以给出单词的基本形式(下面是斯坦福的几个工具) Stanford Parser——一个自然语言分析器 Stanford POS Tagger ——一个词性分类器 Stanford Name Entity Recognizer——Java实现的名称识别器 stanford Word Segment——分词器,很多NLP工作中都要用到的标准预处理步骤 Tregex ,Tsurgeon and Semgrex——一个在树状结构中进行模型模式匹配,基于数关系与节点匹配正则表达式(名称为‘tree regular expressions’的简写) Stanford Phrasal——最新基于统计短语的机器翻译系统,java编写的。 Stanford Tokens Regex——用于定义文本模型的框架 Stanford Temporal Tagger——SUTime是一个识别并标准化时间表达式的库 Stanford SPIED一种子集上的使用模式,以迭代方式从无标签文本中学习字符实体 Stanford Topic Modeling Toolbox——为社会学家及其其他希望分析数据集的人员提供的主题建模工具 Twitter Text Java——Java实现的推特文本处理库 MALLET——基于Java统计自然语言处理,文档分类,聚类,主题建模,信息提取以及其他机器学习文本应用包 OpenNLP——处理自然语言文本的机器学习工具包 LingPipe——使用计算机语言处理文本的工具包 通用机器学习: MLlib in Apache Spark——Spark中的分布式机器学习程序库 Mahout——分布式的机器学习库 Stanford Classifier——斯坦福大学的分类器 Weka——weka是数据挖掘方面的机器学习程序库 ORYX——提供一种简单的大规模实时机器学习/预测分析基础框架 数据分析/数据可视化 Hadoop——大数据分析平台 Spark——快速通用的大规模数据处理引擎 Impala——为Hadoop实时查询 【JavaScript】 自然语言处理
Twitter -text-js——javascript实现的推特文本处理库
NLP js——javascript及coffeescript编写的NLP工具
natural————Nodel下的通用NLP工具
Knwl-js————JS编写的自然语言处理器
通用机器学习
Convent js————训练深度模型的javaScript库
Clustering js————用javascript实现的聚类算法,使用Node.js及浏览器使用
Kmeans js————k-means算法的javascript简单实现,使用node.js和浏览器实现使用。
LDA js————供node .js 用的LDA主题建模工具
Learning js————逻辑回归/c4.5决策树的javascript实现
Machine Leaning————Node js的机器学习库
Node SVM————Node.js的支持向量机
Brain————javascript实现神经网络
Bayesian-Bandit————贝叶斯强盗算法的实现,供Node.js及其浏览器使用
数据分析/数据可视化
D3.js
High Charts
NVD3.js
dc.js
charjs
dimple
amCharts 【Julia】 自然语言处理
Topic Models————Julia下的主题建模
Text Analysis————julia下的文本分析包
通用机器学习
PGM————julia实现的概率图模型框架
DA————julia实现的正则化判别分析包
Regression————回归分析算法包(rg:线性回归和逻辑回归)
Local Regression————局部回归,非常平滑
Naive Bayes————朴素贝叶斯的简单julia实现
Mixed Models(统计)混合效应模型的Julia包
simple MCMC ————julia实现基本MCMC采样器
Distance————julia实现的距离评估模型
Decision Tree————决策树分类器及回归分析器
Neural————Julia实现的神经网络
MCMC————julia下的MCMC工具
GLM————Julia写的广义线性模型
online learning
GLMNet————GMLNet的julia包装版,适合套索/弹性网模型
Clustering————数据聚类的基本函数:K-means,dp-means等
SVM————julia下的支持向量机
Kemal Density————julia下的核密度估计器
Dimensionality Reducetion————降维算法
NMF————julia下的非负矩阵分解包
ANN————julia实现的神经网络
数据分析/数据可视化
Graph Layout————纯julia实现的图布局算法
Data Frames Meta————DataFrames的元编程工具
julia Data————处理表格数据的julia库
Data Read————从Stata,SAS,Spss读取文件处理
Hypothesis Tests ————julia中的假设检验包
Gladfly ——julia编写的灵巧的统计绘图系统
Stats——Julia编写的统计测试函数包
RDataSets——读取R语言中众多可用的数据集的Julia函数包
DataFrames——处理表格数据的Julia包
Distnbutions——概率分布及其相关函数的Julia 包
Data Arrys——元素值可以为空的数据集结构
Time Senes——julia的时间序列数据分析包
Sampling——Julia的基本采集算法包
可视化工具与包
DSP——数字信号处理
JuliaCon Presentations——Julia大会上演示的文稿
SignalProcessing——julia的信号处理工具
Images——julia的图像库 【Kaggle竞赛源代码】 wiki challange——kaggle上的一个维基预测挑战赛Dell Zhang解法的实现
kaggle insults——kaggle上社交媒体评论检测辱骂竞赛的提交代码的挑战赛
kaggle cifar——kaggle上CIFAR-10赛代码,使用CUDA-convent,机器学习主流算法的三大部分
这里写图片描述