/deep-learning-demo

记录小润学习的深度学习相关,首先是 Caffe、TensorFlow、Theano、Keras 框架,之后再补充 Torch

Primary LanguageJupyter Notebook

deeplearningDemo

##Wunderlist


##一、记录深度学习例子:

名称 目录
Caffe [dir]
TensorFlow [dir]
Theano [dir]
Keras [dir]

##二、记录历程点滴:

  1. 掌握机器学习相关的概念及计算公式,包括有/无/半监督学习,强化学习,分类/回归/标注,聚类;训练集/验证集,交叉验证,测试集;数据预处理,正则化,归一化;损失函数,经验风险最小化,结构风险最小化,最优化算法;训练误差,泛化误差,欠拟合,过拟合;准确率,召回率,F1值,ROC和AUC;

  2. 掌握机器学习主流的模型及其算法,包括有生成方法:朴素贝叶斯、隐马尔可夫模型,判别方法:感知机、logistic回归、决策树、K近邻、支持向量机、提升方法、最大熵、条件随机场等;

  3. 安装 numpy, scipy, pandas, matplotlib, scikit-learn, xgboost 等 python 包,实战项目:识别手写数字、画决策树、文本挖掘过滤垃圾邮件、情感倾向分析、波斯顿房价预测、基于协同过滤的推荐系统、图像分类等,上手 kaggle、KDD 比赛题或者阿里天池、滴滴Di-Tech、今日头条bytecup 比赛题;

  4. 了解大数据相关的知识,包括有Flume、Kafka,Storm,Hadoop,Spark等,知道Hadoop基金下的项目(Cassandra、HBase、Hive、Pig、ZooKeeper等)的应用场景,特别地要知道分布式计算框架的原理,从 HDFS、MapReducer 到 Streaming;

  5. 安装 spark-2.0.0-bin-hadoop2.7,掌握 Hadoop Shell命令,两种模式下运行 Spark 作业,了解 Spark SQL/Streaming/GraphX,掌握 Spark MLlib 写机器学习算法

  6. 深度学习相关的概念及计算公式,包括神经元模型、输入层、隐藏层、输出层、weight、bias、BP算法、目标函数(mean_squared_error、mean_absolute_percentage_error等)、激活函数(sigmoid、softmax、tanh、relu等)、优化算法(SGD、RMSprop、Adagrad、Adam等)、多层感知器、自动编码器、卷积神经网络CNN(卷积层Convolution2D、池化层MaxPooling2D)、递归神经网络RNN、LSTM、全连接网络等;

  7. 安装深度学习框架 TensorFlow/Theano 或其它,掌握 tf 的张量、图、会话的用法,了解分布式/使用GPU的方法,动手写经典的项目,学会使用 Vgg 16/19 和 ResNet 的模型并运用到自己的项目中;

  8. 安装更上层的深度学习库 Keras,更加快速、熟练的编写出各种种类的神经网络模型。


TODO:

  1. Autoencoder:
    特点:1)数据相关的,2)有损的,3)从样本中自动学习的;
    作用:1)数据去噪,2)进行可视化而降维;
    类型:简单自编码器、稀疏自编码器、深度自编码器、卷积自编码器、序列到序列的自动编码器、变分自编码器;

  2. CNN:
    LeNet、AlexNet、GoogLeNet、VGG、ResNet

    Neural Network Architectures

    高级激活: LeakyReLU, PReLU, ELU, ParametricSoftplus, ThresholdedReLU, SReLU

    卷积: Convolution1D, Convolution2D, AtrousConvolution2D, SeparableConvolution2D, Deconvolution2D, Convolution3D, UpSampling1D, UpSampling2D, UpSampling3D, ZeroPadding1D, ZeroPadding2D, ZeroPadding3D

    内核: Dense, Activation, Dropout, SpatialDropout2D, SpatialDropout3D, Flatten, Reshape, Permute, RepeatVector, Merge, Highway, MaxoutDense

    嵌入: Embedding

    归一化: BatchNormalization

    池化: MaxPooling1D, MaxPooling2D, MaxPooling3D, AveragePooling1D, AveragePooling2D, AveragePooling3D, GlobalMaxPooling1D, GlobalAveragePooling1D, GlobalMaxPooling2D, GlobalAveragePooling2D

    循环: SimpleRNN, LSTM, GRU

    包装器:Bidirectional, TimeDistributed

  3. RNN:
    http://deeplearning.net/tutorial/rnnslu.html

  4. LSTM:
    http://deeplearning.net/tutorial/lstm.html

  5. GAN:
    http://datascienceassn.org/sites/default/files/Generative%20Adversarial%20Nets.pdf
    https://github.com/255BITS/HyperGAN

cnn


##三、记录开源资料: ###机器学习相关 #####网站:

  1. awesome-machine-learning
  2. dl
  3. 我爱机器学习
  4. 寒小阳的博客

#####书籍

  1. 统计学习方法、集体智慧编程、利用python进行数据分析、机器学习实战、机器学习西瓜书、Spark MLlib 机器学习
  2. 自然语言处理、计算广告、推荐系统、计算机视觉、大数据应用实践

#####课程:

  1. Coursera Ng大牛的课程
  2. 小象学院邹博老师的课程

###深度学习相关 #####网站:

  1. deeplearning.net 收藏夹必备,paper指南
  2. Neural Networks and Deep Learning
  3. UFLDL教程

#####书籍:

  1. DeepLearningBook 亚马逊预售12月出,等不及花40元打

#####课程:

  1. 优达学城的deep-learning免费课程
  2. 深度学习2016暑假课程有PPT无字幕
  3. 周莫烦的录制视频Youtebe和优酷均有

Tips: ①Follow 业界大牛的 Twitter,比如 Geoffrey Hinton (Google AI团队)、Aymeric Damien (Facebook AI实验室)、Yoshua Bengio (蒙特利尔大学终身教授) 、Andrew Ng (斯坦福大学副教授)、Li Feifei、Andrej Karpathy 等,掌握大神们的最新研究进展; ②Reddit 上订阅一些主题如 /r/deeplearning,可以知道业界最新的新闻动态,还有一些 discussion 如 WAYR(what_are_you_reading) 可以交流。


##四、记录开发机

  1. 自己的 MacBook Pro 一训练数据CPU升到200%300就开始发热,甚至风扇开始转;

  2. 偶然听朋友建议到 SuperVessel上试试,装了GPU下的TF,但是必须在规定的VPN下才能SSH;

  3. 接下来转到 AWS,可以自己搭建应用了, 现在有两种虚拟机 g2.2xlarge(单块CPU,4G显存)和 g2.8xlarge(4块CPU,4G显存),都是CUDA的。知乎上的教程在AWS上配置深度学习主机

  4. 阿里云HPC 和 Ucloud 现也有带 Tesla 的物理机了。用前者低配版的训练 neural-style,14分钟左右,python neural_style.py --content content.jpg --styles style.jpg --output output.jpg --iteration 1000 --width 512。用之前算一算数据量要付费多少,大了的话买虚拟机还不如自己搭一台工作站;

  5. 等毕业了自己搭一台工作站吧...

  6. TPU是什么鬼


##五、记录集群部署

  1. Spark集群部署

  2. 分布式tensorflow部署与训练

使用 git hook,配合 rsync,本地开发机一次提交代码,使集群间指定目录代码一致,节省每台机器都复制粘贴代码的操作;这样跑分布式训练时,只需要在每台机器上带参数来运行代码就可以了


##六、项目demo

  1. IMAGE相关:
    1.1 图像风格转换neural-style anishathalye/neural-style
    1.2 素描自动上色 pfnet/PaintsChainer
    1.3 图像描述 iFighting/im2txt
    1.4 图片生成故事 ryankiros/neural-storyteller
    1.5 小度机器人
    1.6 生成明星脸

  2. NLP相关:
    2.1 古诗词生成器

  3. RNN相关:
    3.1 创作歌曲/歌曲风格转换

  4. RL相关:
    4.1 愤怒的小鸟 yenchenlin/DeepLearningFlappyBird
    4.2 模拟自动驾驶 kevinhughes27/TensorKart


##七、调参trick

  1. Theano调试技巧