TensorFlow深度学习-第一章

今天开始学习深度学习框架TensorFlow2.0啦!使用的书籍是


TensorFlow深度学习-第一章

人工智能

人工智能、机器学习和神经网络之间的关系如下图:

MvrKSI.png

机器学习分类

  1. 监督学习

    样本和样本的标签,代表:线性回归、逻辑回归、支持向量机、随机森林

  2. 非监督学习

    只有样本数据集,自行发现数据的模态,代表:自编码器、生成对抗网络

  3. 强化学习

    通过与环境来交互学习解决问题的策略,代表:DQN、PPO

    神经网络

    特征
    MvsqVU.png
    发展史
    1. 1943年:神经元数学模型,MP模型

    其中

    通过​的值来完成输出值的预测:若大大于等于0,输出1;繁殖输出0

    MvHHpt.png
    1. 感知机模型

    自动学习权重的神经元模型-感知机。输出值o和真实值y之间的误差用于调整神经元的权重系数​

    Mvb5uT.png
    1. 反向传播法BP

    现代深度学习的基础:反向传播法BackPropagation

    1. Hopfild连接、LSTM

    1982年John Hopfildde的循环连接的Hopfild网络提出

    1997年LSTM被提出

    1. 浅层神经网络发展史
    MvqA2t.png
    1. 第三次浪潮

    多层神经网络在MNIST数据集上的取得了优于SVM的效果

    提出将线性整流单元Rectfied Linear Unit,ReLU作为激活函数

    2012 年,Alex Krizhevsky 提出了 8 层的深层神经网络 AlexNet,它采用了 ReLU 激活函数Dropout 技术防止过拟合,同时抛弃了逐层预训练的方式,直接在 2 块 GTX580 GPU 上训 练网络。

    1. 深度学习发展史

    2014 年,Ian Goodfellow 提出了生成对抗网络

    2016 年,DeepMind 公司应用深度神经 网络到强化学习领域,提出了 DQN 算法,

    MvqJMV.png

    深度学习特点

    • 数据量大,数据级需求较高
    MvqDR1.png
    • 计算力

    非常依赖并行加速计算设备,目前的大部分神经网络均使用 NVIDIA GPU 和 Google TPU 或其他神经网络并行加速芯片训练模型参数

    Mvq4JA.png
    1. 网络规模

    随着深度学习的兴起和计算能力的提升,AlexNet(8 层),VGG16(16 层), GoogLeNet(22 层),ResNet50(50 层),DenseNet121(121 层)等模型相继被提出,同时输入图 片的大小也从 28x28 逐渐增大,变成 224x224,299x299 等,这些使得网络的总参数量可达 到千万级别,

    MvqqeS.png
    1. 通用智能

    深度学习应用领域

    • 计算机视觉CV

      • 图片识别image classification; VGG 系列、Inception 系 列、ResNet 系列等。

      • 目标检测 object detection;RCNN,Fast RCNN,Faster RCNN,Mask RCNN,SSD,YOLO 系列

      • 语义分割 semantic segmentation;FCN,U-net,SegNet,DeepLab 系列等

      • 视频理解video understanding;C3D,TSN,DOVF,TS_LSTM

      • 图片生成 image generation;VAE 系列,GAN 系列

    • 自然语言处理NLP

      • 机器翻译; Seq2Seq,BERT,GPT, GPT-2 等

      • 聊天机器人:常用在咨询系统、娱乐游戏、智能家居等

    • 强化学习

      • 虚拟游戏:QN,A3C,A2C,PPO

      • 机器人

      • 自动驾驶Autonomous Driving

    深度学习框架

    1. Theano 是最早的深度学习框架之一 ,已经停止

    2. Scikit-learn 是一个完整的面向机器学习算法的计算库,传统的统计学习领域,不支持神经网络和GPU加速

    3. Caffe:面向使用神经网络、提供Python结口、支持GPU和CPU,融入到PyTorch中

    4. Torch 是一个非常优秀的科学计算库,基于较冷门的编程语言 Lua 开发

    5. MXNET :陈天奇和李沐等人开发,采用命令式和符号式混合编程

    6. PyTorch :2017年发布

    7. Keras 是一个基于 Theano 和 TensorFlow 等框架提供的底层运算而实现的高层框架

    8. TensorFlow 是 Google 于 2015 年发布的深度学习框架

    TF 和PyTorch

    都是采用动态图(优先)模式开发,动态图模型开发效率高,但是运行效率可能不如静态图模式

    TensorFlow 在工业界拥有完备的解决方案和用户基础;

    PyTorch 得益于其精简灵活的接口 设计,可以快速设计调试网络模型,在学术界获得好评如潮

    TF2-demo

# 创建在cpu上运算的2个矩阵
import tensorflow as tf 
with tf.device('/cpu:0'):
cpu_a = tf.random.normal([1,n])
cpu_b = tf.random.normap([1,n])
print(cpu_a.device, cpu_b.device)

# 创建在gpu上运算的2个矩阵
with tf.device('/gpu:0'):
cpu_a = tf.random.normal([1,n])
cpu_b = tf.random.normap([1,n])
print(gpu_a.device, gpu_b.device)

2 . 自动梯度网络

在使用 TensorFlow 构建前向计算过程的时候,除了能够获得数值结果,TensorFlow 还 会自动构建计算图 ,看个demo:
y=a*w^2+b*w+c

\frac {\partial y}{\partial w}=2aw+b

考虑在点(a,b,c,w)= (1,2,3,4)的导数为10

import tensorflow as tf

# 创建4个张量
a = tf.constant(1.)
b = tf.constant(2.)
c = tf.constant(1.)
w = tf.constant(4.)

with tf.GradientTape as tape:  # 构建梯度环境
  # 将w加入梯度跟踪列表
  tape.watch([w])
  # 计算过程
  y = a * w ** 2 + b * w + c
  
[dy_dw] = tape.gradient(y, [w])
print(dy_dw)  # 打印导数
tf.Tensor(10.0, shape=(), dtype=float32)

TF3大核心功能

  1. 加速计算

神经网络本质上由大量的矩阵相乘,矩阵相加等基本数学运算构成;TensorFlow的重要功能就是利用 GPU 方便地实现并行计算加速功能。

# 创建在cpu上运算的2个矩阵
import tensorflow as tf 
with tf.device('/cpu:0'):
  cpu_a = tf.random.normal([1,n])
  cpu_b = tf.random.normap([1,n])
  print(cpu_a.device, cpu_b.device)
  
# 创建在gpu上运算的2个矩阵
with tf.device('/gpu:0'):
  cpu_a = tf.random.normal([1,n])
  cpu_b = tf.random.normap([1,n])
  print(gpu_a.device, gpu_b.device)

并通过 timeit.timeit()函数来测量 2 个矩阵的运算时间:

def cpu_run():
  with tf.device('cpu:0'):
    c = tf.matmul(cpu_a, cpu_b)
  return c

def gpu_run():
  with tf.device('gpu:0'):
    c = tf.matmul(gpu_a, gpu_b)
  return c

# 第一次计算需要热身
cpu_time = timeit.timeit(cpu_run,number=10)
gpu_time = timeit.timeit(gpu_run,number=10)

# 计算10次,取平均值
cpu_time = 
timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run,number=10)

2 . 自动梯度网络

在使用 TensorFlow 构建前向计算过程的时候,除了能够获得数值结果,TensorFlow 还 会自动构建计算图 ,看个demo:
y=a*w^2+b*w+c

\frac {\partial y}{\partial w}=2aw+b

考虑在点(a,b,c,w)= (1,2,3,4)的导数为10

import tensorflow as tf

# 创建4个张量
a = tf.constant(1.)
b = tf.constant(2.)
c = tf.constant(1.)
w = tf.constant(4.)

with tf.GradientTape as tape:  # 构建梯度环境
  # 将w加入梯度跟踪列表
  tape.watch([w])
  # 计算过程
  y = a * w ** 2 + b * w + c
  
[dy_dw] = tape.gradient(y, [w])
print(dy_dw)  # 打印导数
tf.Tensor(10.0, shape=(), dtype=float32)

3 . 常用神经接口

TensorFlow除了提供底层的矩阵相乘,相加等运算函数,还内建了常用的:

  • 网络运算函数
  • 常用网络层
  • 网络训练
  • 网络保存与加载
  • 网络部署
  • ……
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352