理解深度学习之深度学习简介

 更新时间:2021年04月14日 17:30:10   作者:tzc_fly  
这篇文章主要是关于深度学习的简介,对大家学习了解机器深度学习有一定的帮助,以后会持续更新本系列,希望能为大家带来一些收货,让我们一起来看看下面的文章吧

机器学习

在吴恩达老师的课程中,有过对机器学习的定义:

ML:<P T E>

P即performance,T即Task,E即Experience,机器学习是对一个Task,根据Experience,去提升Performance;

在机器学习中,神经网络的地位越来越重要,实践发现,非线性的激活函数有助于神经网络拟合分布,效果明显优于线性分类器:

y=Wx+b

常用激活函数有ReLU,sigmoid,tanh;

sigmoid将值映射到(0,1):

tanh会将输入映射到(-1,1)区间:

#激活函数tanh
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
def tanh(x):
    return (np.exp(x)-np.exp(-x))/(np.exp(x)+np.exp(-x))
X=np.linspace(-5,5,100)
plt.figure(figsize=(8,6))
ax=plt.gca()#get current axis:获取当前坐标系
#将该坐标系的右边缘和上边缘设为透明
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#设置bottom是x轴
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data',0))
#设置left为y轴
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0))
ax.plot(X,tanh(X),color='blue',linewidth=1.0,linestyle="-")
plt.show()

fig1

开源框架

当神经网络层数加深,可以加强捕捉分布的效果,可以简单认为深度学习指深层神经网络的学习;

当前有两大主流的深度学习框架:Pytorch和Tensorflow;

Pytorch支持动态计算图,使用起来更接近Python;

Tensorflow是静态计算图,使用起来就像一门新语言,据说简单易用的keras已经无人维护,合并到tensorflow;

一个深度学习项目的运行流程一般是:

vfig2

深度学习计算重复且体量巨大,所以需要将模型部署到GPU上,GPU的设计很适合加速深度学习计算,为了便于在GPU上开展深度学习实验,人们开发了CUDA架构,现在大部分DL模型都是基于CUDA加速的

关于CUDA

1.什么是CUDA?

CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

2.什么是CUDNN?

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中。

方向概览

当前计算机视觉的发展相对于自然语言处理更加成熟,NLP的训练比CV更耗费资源,CV模型相对较小;

在CV方向:

1.图像分类(ResNet,DenseNet)

  1. 目标检测ObjectDetection
  2. 风格迁移StyleTransfer
  3. CycleGAN:比如图像中马到斑马,也可以从斑马返回马
  4. ImageCaptioning:从图像生成描述文本,一般用CNN获得feature,再输入RNN获得文本

2.在NLP方向

  1. 情感分析:分类影评数据
  2. QuestionAnswering:一段问题->给出答案
  3. Translation:可以用OpenNMT-py,OpenNMT-py是开源的seq->seq模型
  4. ChatBot聊天机器人,基于QuestionAnswering,目前刚起步

另外还有强化学习Deep Reinforcement Learning,从简单的打砖块游戏到著名的阿尔法Go;

以及预训练语言模型:给一段话,让机器继续说下去,比如BERT,GPT2;

迁移学习

在CV中,NN的低层可以提取位置信息(边,角等精细信息),高层提取抽象信息,所以低层的网络可以反复使用,更改高层再训练以适用其他任务

到此这篇关于深度学习简介的文章就结束了,以后还会不断更新深度学习的文章,更多相关深度学习文章请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

相关文章

  • 使用Pandas实现可视化带有标签列的数据表

    使用Pandas实现可视化带有标签列的数据表

    Pandas是Python中一个灵活强大的数据处理库,它提供了大量数据操作和分析工具,本文我们将讨论如何使用Pandas可视化带有标签列的数据表,以便更好地呈现和传达数据的信息,需要的可以了解下
    2024-02-02
  • Pytorch 实现数据集自定义读取

    Pytorch 实现数据集自定义读取

    今天小编就为大家分享一篇Pytorch 实现数据集自定义读取,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 使用Python编写提取日志中的中文的脚本的方法

    使用Python编写提取日志中的中文的脚本的方法

    这篇文章主要介绍了使用Python编写提取日志中的中文的脚本的方法,该脚本包括过滤重复的字符行等功能,需要的朋友可以参考下
    2015-04-04
  • 详细分析Python垃圾回收机制

    详细分析Python垃圾回收机制

    这篇文章主要介绍了Python垃圾回收机制的相关资料,文中讲解非常详细,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • python中偏函数partial用法实例分析

    python中偏函数partial用法实例分析

    这篇文章主要介绍了python中偏函数partial用法,实例分析了偏函数partial的功能、定义及使用方法,需要的朋友可以参考下
    2015-07-07
  • Permission denied的解决方法

    Permission denied的解决方法

    这篇文章主要介绍了Permission denied的解决方法,希望能给你带来帮助
    2021-08-08
  • 利用Python操作消息队列RabbitMQ的方法教程

    利用Python操作消息队列RabbitMQ的方法教程

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。下面这篇文章主要给大家介绍了关于利用Python操作消息队列RabbitMQ的方法教程,需要的朋友可以参考下。
    2017-07-07
  • 使用Python来开发Markdown脚本扩展的实例分享

    使用Python来开发Markdown脚本扩展的实例分享

    这篇文章主要介绍了使用Python来开发Markdown脚本扩展的实例分享,文中的示例是用来简单地转换文档结构,主要为了体现一个思路,需要的朋友可以参考下
    2016-03-03
  • TensorFlow梯度求解tf.gradients实例

    TensorFlow梯度求解tf.gradients实例

    今天小编就为大家分享一篇TensorFlow梯度求解tf.gradients实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 在keras中获取某一层上的feature map实例

    在keras中获取某一层上的feature map实例

    今天小编就为大家分享一篇在keras中获取某一层上的feature map实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论