您的位置:首页 > 其它

深度学习笔记-简介

2018-01-22 22:03 218 查看
李伟-tensorflow-ubuntu-nvidia显卡

深度学习设计的领域



主要以CNN卷积网络位置展开,

传统机器学习和深度学习的对比

传统学习流程是 数据预处理-〉特征提取-〉选择分类器

数据预处理:包括对数据归一化,降维,去噪

特征提取:传统的算法包括处理图像的SIFT SURF LBP Brisk Fisher Gabor HOG ,处理语言的MFCC,小波,Word2vec

分类器:主要有SVM,随机森林,决策树,贝叶斯网络,线性回归,聚类

深度学习:数据准备-〉设计模型-〉训练(调整参数 损失函数对比效果)

数据准备可以预处理也可以不预处理,深度学习的预处理一般比较简单 resize等,label标签

设计模型:CNN、RNN、CNN+RNN

训练:调整模型结构,损失函数,调整参数等。

目前深度学习方法效果比较好,但是对深度学习进行模型改进的时候 要了解传统机器学习,传统机器学习中的方法对深度学习的模型进行修改,比如用深度学习提取的特征用SVM分类,设计深度学习特征学习的重点区域。

2012年之前都是基于传统深度学习图像特征提取的方法,2012年之后深度学习占领了天下。理论方面CNN、RNN、ReLU的发展,数据集ImageNet(深度学习常用数据库) LFW (人脸识别的数据库)硬件方面就是英伟达显卡计算速度NVIDIA CUDA(GPU加速)+GPU

传统机器学习数据及比较小,容易过拟合,深度学习数据及大,可移植性好。得到一个好的模型的话,可以用别人在大数据上训练的结果进行在训练finetune。但是计算硬件比较贵,模型设计还是比较复杂的,参数很多,计算量大,不轻便。可能被hack 也就是说误检(需要对数据分布均匀,数据标注)

深度学习热门的领域

无人驾驶:目标检测

无人超市:位置跟踪,物品检测,语音分析 马云的无人超市 还没有那么发达吧 没有体验过。

自动翻译:RNN、LSTM

个人助手:

深度学习框架

caffe 是现在工业应用用的比较多,比较早

theano学术用的多点比较早

tensorflow后来google出的 现在也很火了

MXNet 并行计算比较好用

TensorFLow

公开课程和文档还有安装都比较方便,而且还是goole开发的,自学还是很方便的。会python语言就行。主要有模型计算的源代码,官方会有一些code,tensorboard可以画出模型结果图-可视化。

推荐用ubuntu ,windows会有很多问题,因为安装tensorflow会需要python opencv等别的依赖库。

TF计算 加减乘除 矩阵计算等函数

'''
basic tf operation examples,
1. write a tf function use tf.xxxx
2. feed data to tf.placeholder and set data to tf.Variable
3.run...
'''

#导入库
import tensorflow as tf

# direct sum with constand value常量计算
a = tf.constant(2)
b = tf.constant(3)
c=a+b
d=a*b

sess=tf.Session()#会话
print sess.run(c)
print sess.run(d)

#
a = tf.placeholder(tf.int16)#接口定义接受数据的类型,用字典的方式来传数据的值。
b = tf.placeholder(tf.int16)

#
add = tf.add(a, b)
mul = tf.multiply(a, b)
print sess.run(add, feed_dict={a: 2, b: 3})
print sess.run(mul, feed_dict={a: 2, b: 3})

#矩阵计算
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix2, matrix1)
print sess.run(product)

#here you should also be able to use tf.placeholder
mat1=tf.Variable(tf.random_normal([3,2]))
mat2=tf.Variable(tf.random_normal([2,3]))
product=tf.matmul(mat1,mat2)

m1=[[1,3],[2,1],[0,5]]
m2=[[3,2,1],[1,2,3]]

print sess.run(product,feed_dict={mat1:m1,mat2:m2})


卷积运算

什么样的卷积核有什么样的能力,不同的卷积核(算子)功能是不一样的,如直线检测,焦点检测,边缘检测,高斯核啥的。横线检测,斜线检测啥的。

分类

输入数据,得到特定的类别

回归

合成一个值,计算合成值和真实值得差距

生成

注意力,分割图(0,1,2,。。。),艺术风格图,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: