文章目录

  • 前言
  • 一、神经网络的全连接层
  • 二、激活函数
  • 三,误差计算
  • 四,梯度下降
  • 五,反向传播
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、神经网络的全连接层

对于线性函数 h=relu(X@W+b)的图形解释如下:

令输出h是一个两行两列的矩阵,输入X是一个两行三列的矩阵,权值W是一个三行两列的矩阵,偏置b为0,激活函数为relu函数。当且仅当只看输入x0,x1,x2,则对应的模型部分的图形解释如图:

完全符合矩阵运算,其输入需要经过relu函数进行判定,即公式 h=relu(X@W+b)
在此基础上增加输入值数量和隐藏层h1,h2,h3…hn.即构成简单的多层神经网络结构的模型。如图所示:

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、激活函数

激活函数是用来控制数据输出的,模拟生物的神经元则解释为激活函数为细胞核,当给与细胞的刺激(输入)不同时,细胞做出的反应(输出)不同。通过激活函数,可以让神经网络模型解决非线性问题,且一个合适的激活函数可以让模型快速收敛,以得到合适的解。以下简单介绍三个广泛运用的激活函数。

三,误差计算

前面已经讲解了神经网络的基本模型,那么对于模型的输出结果是如何进行衡量和优化的呢?这便是下面讲述的重点——损失(误差)函数loss
对于有监督神经网络来说,我们将模型的输出称为预测值,将被预测物体的事实称为真实值,预测值越逼近真实值,则模型越好,而衡量的标准称为loss。
以下给出常用的二种loss:
MSE(mean square error)
分为两种,一种的平方差均值,另一种是2范数。
y是真实值(ground-truth) out为预测值(prob)

CEL(cross entropy loss)交叉熵
常用于分类问题。p,q为不同的事件。
熵的意义:一件事的熵越大,则该事件的惊喜度越低,该事件越稳定越确定。

总的来说,优化神经网络的过程就是让loss变小的过程,即不断更新loss的过程。

四,梯度下降

介绍了优化神经网络的标准,即loss。而优化loss最常见的方法便是梯度下降法。梯度是一个向量,是函数在每个方向的导数的组合。梯度的方向代表函数值增大的方向,梯度的长度代表函数增大的速度。所以,loss减少的过程就是函数向梯度减少的方向进行更新的过程。令loss为平方差均值,f(x)为线性感知机模型WX+b,即:

W’和b’分别向梯度相反的方向更新,目的是使W’* x + b’-> y,而使得loss变小。lr是学习步长(learning rate)通过lr控制更新的步长,lr的设置要合理,若过大则很容易产生梯度震荡而得不到最优解,而lr过小会导致训练速度过慢,训练不容易收敛。
如图3-4-1所示,若参数lr过小,模型更新时每次向最小值的点移动的距离很小,模型的训练时间越长,且若loss函数复杂可能会造成梯度收敛困难。
如图3-4-2所示,若参数lr过大,模型更新时每次向最小值的点移动的距离很大,可能造成权值更新的来回震荡,而得不到最优解(最小值)。
设置lr的一个较好的方式是——learning rate decay。即刚因为起始点可能距离最优解较远,lr可以设置的较大(如0.01),随着模型更新次数的迭代,lr也逐渐减少,便于求得最优解,如图3-4-3所示。

五,反向传播

通过以上介绍我们已经建立了一个简单的神经网络模型,且探讨的如何求得最优解的方法,接下我们将探讨如何更新模型的权值,使模型得到自我优化。一个最经典的方法就是反向传播。



总结

本章依次讲解了神经网络模型的建立,激活函数,误差分析,梯度下降和反向传播,这五部组合起来就是完整的BP神经网络模型

神经网络的介绍与模型搭建相关推荐

  1. 神经网络学习小记录50——Pytorch 利用efficientnet系列模型搭建yolov3目标检测平台

    神经网络学习小记录50--Pytorch 利用efficientnet系列模型搭建yolov3目标检测平台 学习前言 什么是EfficientNet模型 源码下载 EfficientNet模型的实现思 ...

  2. 神经网络学习小记录26——Keras 利用efficientnet系列模型搭建yolov3目标检测平台

    神经网络学习小记录26--Keras 利用efficientnet系列模型搭建efficientnet-yolov3目标检测平台 学习前言 什么是EfficientNet模型 源码下载 Efficie ...

  3. Python Djang 搭建自动词性标注网站(基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU、LSTM、RNN神经网络组成的词性标注模型)

    引言 本文基于Keras框架和维基百科中文预训练词向量Word2vec模型,分别实现由GRU.LSTM.RNN神经网络组成的词性标注模型,并且将模型封装,使用python Django web框架搭建 ...

  4. Darknet_Yolov3模型搭建

    Darknet_Yolov3模型搭建 YOLO(You only look once)是目前流行的目标检测模型之一,目前最新已经发展到V3版本了,在业界的应用也很广泛.YOLO的特点就是"快 ...

  5. PyTorch 笔记(20)— torchvision 的 datasets、transforms 数据预览和加载、模型搭建(torch.nn.Conv2d/MaxPool2d/Dropout)

    计算机视觉是深度学习中最重要的一类应用,为了方便研究者使用,PyTorch 团队专门开发了一个视觉工具包torchvision,这个包独立于 PyTorch,需通过 pip instal torchv ...

  6. 15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)【LP自然语言处理涉及到深度学习和神经网络的介绍、 Pytorch、 RNN自然语言处理】 笔记

    15个小时彻底搞懂NLP自然语言处理(2021最新版附赠课件笔记资料)[LP自然语言处理涉及到深度学习和神经网络的介绍. Pytorch. RNN自然语言处理] 笔记 教程与代码地址 P1 机器学习与 ...

  7. PyTorch模型搭建和源码详解

    文章目录: 一.VGG模型简单介绍 二.PyTorch源码分析 三.预训练模型的使用 本文是以VGG模型为例,深入介绍了完整的模型搭建过程,以及预训练模型使用过程,希望本篇博客可以解答一些困惑,同时欢 ...

  8. Kaggle猫狗大战模型搭建总结

    0.前言 基于我暑假内学习的深度学习理论知识,我的学长建议我仿照他所设计的猫狗大战模型来尝试运用tensorflow与keras搭建神经网络,虽然我对python并不是很了解,但我依旧愿意尝试搭建来提 ...

  9. 生成式对抗网络GAN模型搭建

    生成式对抗网络GAN模型搭建 目录 一.理论部分 1.GAN基本原理介绍 2.对KL散度的理解 3.模块导入命令 二.编程实现 1.加载所需要的模块和库,设定展示图片函数以及其他对图像预处理函数 1) ...

  10. 信息抽取(一)机器阅读理解——样本数据处理与Baseline模型搭建训练(2020语言与智能技术竞赛)

    机器阅读理解--样本数据处理与Baseline模型搭建训练 前言 样本数据处理 数据测试 模型部分 模型构建 模型训练 部分推理结果 总结 前言 最近看到今年早些时候百度的"2020语言与智 ...

最新文章

  1. 【Python】Pandas基础:结构化数据处理
  2. Android SearchView 搜索框
  3. JFace中的表格型树TableTreeViewer
  4. 蓝桥杯历届试题 国王的烦恼(并查集逆序加边+坑)
  5. php实现享元模式,php设计模式 flyweight (享元模式)
  6. asp 调用java文件上传_用asp实现文件浏览、上传、下载的程序
  7. 男人最佳的生育年限,程序猿们,看看吧!!!
  8. 字体系统之字体粗细(CSS、HTML)
  9. 【缩点】洛谷P3387
  10. JAVA格式化输出字串
  11. 第七章 与Web集成——《跟我学Shiro》[张开涛]
  12. Qt设计师的简单使用(ui设计界面的简单使用)
  13. 【AJAX 教程】Jquery 实现 AJAX 请求的三种方式
  14. 直角三角形 纪中 1385 数学_斜率
  15. echarts渐变色
  16. 基于Xcode8.x的CoreData的使用
  17. kettle carte服务配置
  18. 轻松解决2013 lost connection to mysql server at ‘reading initial communication packet‘, system error: 0“
  19. 创建第一个适用于Android的自定义Gradle插件-第2部分:在构建时生成资源
  20. linux漏洞处理(更新中)

热门文章

  1. Gallery 3D+倒影 滑动切换图片示例
  2. CF1042F Leaf Sets
  3. python中rename函数_python-重命名Pandas Groupby函数中的列名
  4. java 解析xml saxreader_Java中使用DOM和SAX解析XML文件的方法示例
  5. 能够支持python开发的环境_Windows上使用virtualenv搭建Python+Flask开发环境
  6. linux用Vim上传.sql,真的有(很多)linux大牛用vim写项目吗?
  7. python 三维矩阵乘以二维矩阵_python 二维矩阵转三维矩阵示例
  8. weui开发文档_微信小程序云开发挑战赛 之体验
  9. 小农民在深山树林里发现古墓_“快来!快来!这边有一个洞!”秦岭多古墓,难不成还真碰到了?...
  10. linux 备份到云存储空间,Ubuntu 使用教程- 自动备份Ubuntu 14.04到Box云存储上