Pytorch学习——入门知识

文章目录

  • 1 机器学习和深度学习的介绍
  • 2 介绍神经网络
    • 2.1 概念
    • 2.2 神经元
    • 2.3 单层神经网络
    • 2.4 感知机
      • 2.4.1 感知机的作用
    • 2.5 多层神经网络
    • 2.6 全连接层
    • 2.7 激活函数
    • 2.8 总结

写在前面:路漫漫其修远兮

1 机器学习和深度学习的介绍

  1. 深度学习
    是机器学习的分支,以人工神经网络为基础,对数据的特征进行学习的方法。

  2. 机器学习和深度学习的区别
    a. 特征抽取
    机器学习:人工的特征抽取过程
    深度学习:自动的进行特征抽取
    b. 数据量
    机器学习:数据量少,效果不好特别好
    深度学习:数据量多,效果更好

  3. 框架
    a. 目前企业中常用的深度学习框架有很多,比如说Tensorflow,Caffe2,Keras,Theano, Pytorch,Chainer,DyNet,MXNet,CNTK 等等
    b. Pytorch的使用和python的语法相同,整个操作类似Numpy的操作,并且Pytorch使用的是动态计算,会让代码调试变得更加简单。

2 介绍神经网络

2.1 概念

人工神经网络(ANN,Artificial Neural Network)简称神经网络或者类神经网络,是一种模仿生物 神经网络的结构和功能的数学模型,用于对函数进行估计或者近似。

2.2 神经元

神经网络的基本单元,相互连接,组成神经网络。

如果神经元上的计算值超过“阈值”,神经元就会被“激活”,也说成是“兴奋”,在这种状态下,这个神经元就会向其他神经元发送信息。

M-P神经网络如下图:
Pytorch学习——入门知识_第1张图片
数学公式如下:
t = f ( W T A + b ) t= f(W^TA+b) t=f(WTA+b)

人工神经网络的区别就是神经元连接的不同,所以学习神经网络的关键就是神经元怎么搭。

2.3 单层神经网络

是最基本的神经网络形式

由有限个神经元构成,所有神经元的输入向量都是同一个向量。

由于每一个神经元都会产生一个标量结果,所以,单层神经元的输出是一个向量,向量的维数等于神经元的个数。

Pytorch学习——入门知识_第2张图片
最后,要知道最常见的神经网络应该是两层的,一个是输入层,一个是隐藏层,这一种单层神经网络并不是很常见。

2.4 感知机

感知器是由两层神经网络组成,输入层和输出层,输出层是MP-神 经元。

Pytorch学习——入门知识_第3张图片

2.4.1 感知机的作用

感知器是一个非常常见的二分类模型

把 一个n维向量空间 用一个超平面分割为两个部分。作用:给定一个输入向量,超平面可以判断这个向量是属于超平面的哪一面,也就得到了正 和 负 两种输出。

2.5 多层神经网络

多层神经网络就是由单层神经网络进行叠加之后得到的。

  • 输入层:神经元接收大量非线性输入消息。
  • 输出层:消息在神经元中传输、分析、权衡,形成输出结果
  • 隐藏层:输入层和输出层之间众多神经元 链接组成的各个层面。隐层有一个或多个,隐层的节点数目不确定,但是一般来说,数目越多、层数越多,神经网络的非线性拟合能力越显著,神经网络的强健性越显著。

2.6 全连接层

概念: 当前一层和前一层的每一个神经元相互链接,我们称当前这一层为全连接层。

Pytorch学习——入门知识_第4张图片
全连接层,也就是在前一层的输出的基础上进行一次 Y = W x + b Y=Wx + b Y=Wx+b 的变化。(不考虑激活函数的情况下)

  • 换言之(不准确):数据shape的变化

2.7 激活函数

如果一层全连接层解决不了分类问题,那么就会想到再加一层全连接层。

但是可以发现,两个线性函数是可以合并的,最后依旧只能拟合出直线,所以说,就需要引入激活函数的概念。

  • 作用:增加模型的非线性分割能力
  • 增加模型的鲁棒性、稳健性
  • 缓解梯度小时
  • 加速模型的收敛

常见的激活函数:

Pytorch学习——入门知识_第5张图片

2.8 总结

深度学习的思想:

输入的最原始、最基本的数据,通过模型来进行特征抽取,进行更加高级的特征学习,然后通过传入的数据来确定合适的参数,让模型去更好的拟合数据。

sigmoid:不咋用了,会导致梯度爆炸,而且计算复杂
多用relu,因为比较简单,而且可以去噪!

你可能感兴趣的:(python语言的学习,pytorch,学习,深度学习)