最近一直在研究机器学习,看过两本机器学习的书,然后又看到深度学习,对深度学习产生了浓厚的兴趣,希望短时间内可以做到深度学习的入门和实践,因此写一个深度学习系列吧,通过实践来掌握《深度学习》和 TensorFlow,希望做成一个系列出来,加油!
学习内容包括了:
1. 小象学院的《深度学习》课程
2. TensorFlow的官方教程
3. 互联网上跟深度学习相关的教程
整个深度学习,学习的过程是通过一条主线串联起来的,这个知识结构总结的还是蛮好的。
1. 线性回归 - 线性回归是基础。
2. 神经网络 - 线性回归引入非线性激励(保留线性函数的信息,但是又要转化成为非线性,为啥呢?线性的描述能力太有限了,大部分复杂问题都是非线性的)就形成了神经元,神经元组合在一起就构成了最基础的神经网络,神经元和神经网络都是深度学习的基础。
3. 卷积神经网络(CNN)- 神经网络,通过卷积核构建成为CNN(卷积神经网络),为什么引入卷积核?如何引入卷积核?需要好好再理解和分析一下。
4. 卷积神经网络(CNN)- 目标分类,图像识别,人脸识别,物品识别,场景识别,文字识别,把卷积神经网络研究明白就可以完成大量的目标分类的功能。
5. 卷积神经网络(CNN)- 目标监测, 安防,自动驾驶,卷积神经网络的进一步应用场景。
6. 循环神经网络(RNN)- CNN时域迭代形成循环神经网络
7. LSTM - Word2vec - 语句生成,自动翻译,智能对话
8. 增强学习 - 围棋,德州扑克,自动游戏
9. 生成网络,判别网络,对抗网络 - 无限数据
计划与期望效果:
1. 理论讲解,模型分析
2. TensorFlow 实例运行,调试(源码共享)
3. 思想总结,资源分享,论文推荐,方便课后研究
能力进阶:
1. 入门:明白概念,练习和原理。
2. 实践:能够运用模型展开具体应用开发。
3. 提升:根据具体问题设计新的模型。
总结:理论+实践+总结 => 解决全新的问题
提纲:
1. 深度学习:传统到现在
2. 深度学习应用特点
3. 深度学习框架比较
4. TensorFlow 介绍
5. 一些基本深度学习概念
期待目标:
1. 了解深度学习发展
2. 清楚深度学习能力范围
3. 知道常见深度学习框架
4. 会 安装、运行、简单调试 TensorFlow,了解 TF运行方式
5. 了解:神经元,卷积核,分类,回归等基本概念
深度学习:传统到现在
1. 传统机器学习
数据预处理 -> 特征提取 -> 选择分类器
数据预处理:归一化,降维,去噪
特征提取:人工设计模式图像:SIFT,LBP,Fisher,Gabor,Hog 语言:MFCC,小波,Word2vec
选择分类器:SVM,决策树,随机森林,贝叶斯网络,线性回归,聚类
2. 深度学习
数据准备:数据,标签
设计模型:CNN,RNN,CNN+RNN
训练:调结构,损失函数,训练函数
2010年 NEC-UIUC Lin CVPR 2011
2012年 SuperVision
2014年 GoogLeNet VGG
2015年 MSRA
推动因素:
1. 理论:CNN,RNN,ReLU
2. 数据:ImageNet,LFW
3. 硬件:Nvidia CUDA + GPU
总结:深度学习 = 硬件(CPU+GPU+FPGA+TPU) + 算法(CNN,RNN,ReLU)+大数据(ImageNet)
未来可能进展 - 无人驾驶
未来可能进展 - 无人超市
未来可能进展 - 自动翻译
未来可能进展 - 个人助手
深度学习应用特点:
优点:
学习能力强
覆盖范围广,适用性好
可移植性好
ImageNet -> ImageNet Model -> 物品分类,目标检测,人脸计算,场景识别,生成图片
总结:5种类型的应用:物品分类,目标检测,人脸计算,场景识别,生成图像
缺点:
计算量大,便携性差
硬件要求高
模型设计复杂
有可能被“Hack”
长于计算,弱于算计
深度学习框架比较
TensorFlow Python,文档 +++,CNN兼容 +++,RNN兼容 ++,上手难易 +++,速度 ++,并行支持 ++,Keras兼容+,支持 Google
深度学习框架比较:
本课程选择:TensorFlow
1. 文档丰富,适合初学者
2. 安装非常方便
3. 谷歌支持,长期有效
4. 自动求导,只需关注模型设计
5. Keras支持,方便迅速开发
原因:
1. 统一模型标准,方便交流
2. 维持地位:TPU, Google Cloud,Future Market
3. 影响力 TF2016
TensorFlow 介绍 - 实例程序运行
1. 简单程序:直线方程拟合(见Code:course_1_tf_lr.py)
2. 基本迭代:迭代次数,Learning Rate,模型结构,误差对比
深度学习基本概念 - 神经元
深度学习基本概念 - 卷积核 - 图像处理基本算子(边界算子)
卷积核 - CNN卷积核Plot
本节总结:
1. 了解深度学习发展
2. 清楚深度学习能力范围
3. 知道常见的深度学习框架
4. 会安装、运行、简单更改 TensorFlow
5. 了解:神经元,卷积核,分类,回归等基本概念
总结:
课程代码:https://github.com/wiibrew/DeepLearningCourseCodes
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_1_tf_basic_operation.py
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_1_tf_lr.ipynb
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_1_tf_lr.ipynb
【原创 深度学习与TensorFlow 动手实践系列 - 1】第一课:深度学习总体介绍的更多相关文章
-
【原创 深度学习与TensorFlow 动手实践系列 - 4】第四课:卷积神经网络 - 高级篇
[原创 深度学习与TensorFlow 动手实践系列 - 4]第四课:卷积神经网络 - 高级篇 提纲: 1. AlexNet:现代神经网络起源 2. VGG:AlexNet增强版 3. GoogleN ...
-
【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇
[原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...
-
【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络
第二课 传统神经网络 <深度学习>整体结构: 线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM 目标分类(人脸识别,物品识别 ...
-
《ASP.NET SignalR系列》第一课 认识SignalR
从现在开始相关文章请到: http://lko2o.com/moon 一.概述 ASP.NET signalr对ASP.NET开发者来说是一个新的程序库,它能让我们更加容易便捷地开发实时通信功能; s ...
-
Python学习,第一课 - 基础学习
前言. 本内容全部以python3所讲 一.Python安装 windows 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\pyth ...
-
Tensorflow简单实践系列(二):张量
在上一节中,我们安装 TensorFlow 并运行了最简单的应用,这节我们熟悉 TensorFlow 中的张量. 张量是 TensorFlow 的核心数据类型.数学里面也有张量的概念,但是 Tenso ...
-
Tensorflow简单实践系列(三):图和会话
当执行一个 TensorFlow 函数的时候,并不会马上执行运算,而是把运算存储到一个称为“图”(graph)的数据结构里面. 图存储的各种运算,只有在会话(session)里执行图,才会真正地执行. ...
-
Tensorflow简单实践系列(一):安装和运行
TensorFlow 是谷歌开发的机器学习框架. 安装 TensorFlow 直接使用 pip 安装即可,添加豆瓣镜像可以加快速度: pip install tensorflow -i https:/ ...
-
ABP开发框架前后端开发系列---(1)框架的总体介绍
ABP是ASP.NET Boilerplate的简称,ABP是一个开源且文档友好的应用程序框架.ABP不仅仅是一个框架,它还提供了一个最徍实践的基于领域驱动设计(DDD)的体系结构模型.学习使用ABP ...
随机推荐
-
Android实现侧边栏SlidingPaneLayout
//主布局 1 <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widg ...
-
MultiLine Text光标停留在第一行
MultiLine Text是多行文本,默认设置下,光标是停留在控件中间的,很不好看. 解决的方法是设置属性android:gravity="top",这样光标就会停留在第一行.
-
Unity3D之飞机游戏追踪导弹制作
最近开发完成一款打飞机的游戏,记录一下制作追踪导弹的方法,最开始在网上找到的资料制作出来的追踪导弹都不够真实,主要的问题是没有对导弹进行一个阀值处理,导弹每帧都始终会面向目标,而不是按照一定的角度进行 ...
-
.net程序开发人员必看的变量的命名规则
(1)类名.属性名.方法名采用Pascal命名,如 class User { } interface IEditable { } bool ValidateInput() public int Age ...
-
PHP面向对象编程简单实例
<?php date_default_timezone_set("PRC"); /** 1.静态属性用于保存类的公有数据* 2.静态方法里面只能访问静态属性* 3.静态成员 ...
-
IOS设备型号(原创)
以下是我收集的ios目前为止移动设备型号,ipad air不知道,本人没有这款设备,求指导的给个回复,在这谢谢了 ///** //////////////////// 设备类型 字符串 /// ...
-
[转载] Netty教程
转载自http://blog.csdn.net/kobejayandy/article/details/11493717 先啰嗦两句,如果你还不知道Netty是做什么的能做什么.那可以先简单的搜索了解 ...
-
plus、max、Pro、Edge
plus.max.Pro.Edge等后缀到底什么意思? Plus:比好更好.比牛X更牛X 译成中文是:加.和.正的-的意思.比如oneplus中文名就是一加.用于手机命名表示配置更加牛X,最早是由iP ...
-
SM4加密算法实现Java和C#相互加密解密
SM4加密算法实现Java和C#相互加密解密 近期由于项目需要使用SM4对数据进行加密,然后传给Java后台,Java后台使用的也是SM4的加密算法但是就是解密不正确,经过一步步调试发现Java中好多 ...
-
python面试题--数据类型
数据类型 字典 dict:字典,字典是一组键(key)和值(value)的组合,通过键(key)进行查找,没有顺序, 使用大括号”{}”;应用场景:dict,使用键和值进行关联的数据; 现有字典d={ ...