神经网络基础知识-程序员宅基地

技术标签: 深度学习  神经网络  

一、课程来源:

深度之眼神经网络基础知识

二、主要内容:

主要分为三个部分,分别是

1.神经网络基础与多层感知机:基础知识、激活函数、反向传播、损失函数、权值初始化和正则化

2.卷积神经网络:统治图像领域的神经网络结构,发展历史、卷积操作和池化操作

3.循环神经网络:统治序列数据的神经网络结构,RNN、GRU和LSTM

三、神经网络基础与多层感知机

(1)人工神经元:第一个神经网络模型是科学家Rosenblatt提出的Perceptron(感知机模型)

但是这个模型无法解决异或问题,因为他是用一条直线进行拟合,然后将一个平面分割为两个平面,对异或问题无法解决。

(2)多层感知机(Multi layer Perceptron)

因为感知机模型不能解决异或问题,所以出现了多层感知机,多层感知机的核心是:在隐藏层引入了激活函数,这个激活函数一般是非线性的函数,从而避免因为矩阵乘法变化导致的网格退化。

(3)激活函数(Activation Function)

激活函数的作用是:

1.让多层感知机成为真正的多层,否则等价为一层;

2.引入非线性函数,使网络可以逼近任意非线性函数。(万能逼近定理)

激活函数需要具备以下几点性质:

1 . 连续并可导(允许少数点上不可导),便于利用数值优化的方法来学习网络参数

2 . 激活函数及其导函数要尽可能的简单,有利于提高网络计算效率

3 . 激活函数的导函数的值域要在合适区间内,不能太大也不能太小,否则会影响训练的效率和稳定性

常见的激活函数:Sigmoid、Tanh、ReLU

 (4)反向传播

 前向传播:输入层数据开始从前向后,数据逐步传递至输出层

反向传播:损失函数开始从后向前,梯度逐步传递至第一层(梯度是不是指求导?)

反向传播能够更新权重,使网络输出更接近标签

(5)损失函数

损失函数:衡量模型输出与真是标签之间的差距

损失函数(Loss Function):是指单样本差距

代价函数(Cost Function):是指总体样本差距

目标函数(Objective Function):代价函数加正则项

两种常见的损失函数:分类和回归任务

(6)权值初始化

权值初始化:训练前对权值参数赋值,良好的权值初始化有利于模型训练

简便但错误的方法:初始化为全0

随机初始化、Xavier初始化、Kaiming初始化

(7)正则化

Regularization:减小方差的策略,通俗理解为减轻过拟合的策略

误差可分解为:偏差,方差与噪声之和。即误差 = 偏差 + 方差 + 噪声之和

偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力

方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响

噪声:则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界

方法:L2权值衰减、Dropout随机失活等

四、卷积神经网络(convolutional neural networks, CNN)

(1)概述

CNN是针对图像领域任务提出的神经网络, 经历数代人的发展, 在2012年之后大部分图

像任务被CNN统治, 例如图像分类, 图像分割, 目标检测, 图像检索等

1.第一个卷积神经网络——新认知机(Neocognitron)

1980年, 日本学者福岛邦彦借鉴猫视觉系统实验结论, 提出具有层级结构的神经网络——新认知机,堆叠使用类似于S 细胞和C 细胞的两个结构。

S 细胞和C 细胞可类比现代CNN的卷积和池化

缺点: 没有反向传播算法更新权值, 模型性能有限

2.第一个大规模商用卷积神经网络——Lenet-5

1989年,Lecun等人已开始研究Lenet。1998年,Lecun 等人提出Lenet-5, 并成功在美国邮政系统中大规模应用于手写邮政编码识别

缺点: 无大量数据和高性能计算资源

3.第一个技惊四座的卷积神经网络——AlexNet

2012年,AlexNet以超出第二名10.9%的成绩夺得ILSVRC分类任务冠军, 从此拉开卷积神经网络统治图像领域序幕

 (2)卷积层

 

 多通道卷积: RGB图像是3*h*w的三维的数据,第一个维度3,表示channel(通道数)

一个卷积核是3-D张量,第一个维与输入通道有关

注:卷积核尺寸通常指高、宽

 

(3)池化层 

池化作用:

1. 缓解卷积层对位置的过度敏感

2. 减少冗余

3. 降低图像分辨率,从而减少参数量

(4)Lenet-5

 五、循环神经网络(Recurrent Neural Network, RNN)

(1)序列数据:是指数据前后具有关联性。比如基因数据,文本数据等。

(2)语言模型:

语言模型是自然语言处理(NLP)重要技术。

需要不断考虑前面出现过的词,所以计算量很大。

(3)循环神经网络(RNN) 

RNN是针对序列数据而生的神经网络结构, 核心在于循环使用网络层参数, 避免时间步增大带来的参数激增, 并引入隐藏状态( Hidden State ) 用于记录历史信息, 有效的处理数据的前后关联性。

左边是没有展开的,在输入和输出之间不断循环

右边是展开的:会考虑上一阶段的h隐藏状态

循环神经网络在每一个隐藏状态都会考虑上一隐藏状态的值  Whh是指从Wh到Wh,下标是指从哪到哪。

RNN特性:

1 . 循环神经⽹络的隐藏状态可以捕捉截至当前时间步的序列的历史信息

2 . 循环神经⽹络模型参数的数量不随时间步的增加⽽增长

穿越时间反向传播:因为RNN需要有时间关联,所以在反向传播的时候需要通过时间来进行

梯度随时间t 呈指数变化, 易引发梯度消失或梯度爆炸(梯度变为0或梯度无穷大)

(4)门控循环单元 

让模型记住重要的东西,遗忘不重要的东西,这样在下一次更新梯度的时候不用更新所有的内容

候选隐藏状态主要用于对历史信息进行遗忘,记住有用的。

GRU——引入门控机制的循环网络

重置门: 哪些信息需要遗忘,用于遗忘上一时间步隐藏状态

更新门: 哪些信息需要注意,用于更新当前时间步隐藏状态 

 (5)长短期记忆网络(Long short-term memory, LSTM)

输出门让输出,记忆细胞信息才能流入隐藏状态。

LSTM模型整体如下图:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a360521/article/details/123704079

智能推荐

如何查看网站的端口_知道域名查看网址的端口-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏23次。转:http://jingyan.baidu.com/article/4dc40848be2fd2c8d946f1a0.html本文教您:1,网站的域名和端口是什么含义2,网站的端口到底有哪些方法/步骤1通俗化解释什么是网站的端口,特别实用。-------------------------------_知道域名查看网址的端口

检查二维数组是否对称java,更有效的方法来检查Java中二维数组中的邻居-程序员宅基地

文章浏览阅读395次。Hey all, for a few of my college assignments I've found the need to check neighbouring cells in 2-dimensional arrays (grids). The solution I've used is a bit of a hack using exceptions, and I'm lookin..._用java编写一段程序,检查一个二维数组是否对称,(即对所有和都有a[i][j]=a[j][i])

YOLOv5训练结果性能分析_yolov5训练结果分析-程序员宅基地

文章浏览阅读3.2w次,点赞85次,收藏786次。目录一、confusion_matrix.png —— 混淆矩阵二、F1_curve.png —— F1曲线三、labels.jpg ——标签四、labels_correlogram.jpg —— 体现中心点横纵坐标以及框的高宽间的关系五、P_curve.png ——单一类准确率六、R_curve.png —— 单一类召回率七、PR_curve.png ——精确率和召回率的关系图八、result.png —— 结果loss functions一、confusion__yolov5训练结果分析

java drivername_java解惑:Class.forName(String driverClassName)载入JDBC驱动程序的幕后。-程序员宅基地

文章浏览阅读408次。转 http://blog.csdn.net/dengyunze/article/details/181328开始接触JDBC时,一直有一个疑虑,为什么执行Class.forName(“com.mysql.jdbc.Driver“)就可以载入MySql的驱动程序?JDBC的驱动程序初始化过程是怎么样的?连接具体的数据库时,JDBC的DriverManager又是如何运作的?带着这么几个疑惑,本人..._maria java jdbc driver.classname

jQuery下载和安装详细教程-程序员宅基地

文章浏览阅读3.1w次,点赞23次,收藏128次。下载jQuery我们可以到jQuery的官网下载jQuery文件(PS:其实jQuery就是一个封装了很多函数的js文件,把这个js文件导入到网页中就可以了)。jQuery官网地址: https://jquery.com/打开官网,即可看到jQuery的下载按钮,点击进入下载页面。有两个版本的jQuery可以下载:Production version - 用于实际的网站中,是已经被精简和..._jquery

王者荣耀语音文件下载_王者荣耀语音素材下载-程序员宅基地

文章浏览阅读4.9k次,点赞3次,收藏11次。“王者荣耀语音文件下载”王者荣耀作为一款全民竞技游戏,深受广大玩家的欢迎,平时和好友玩一玩还是可以的,但是,今天我们不是来玩游戏的,我们今天是来搞素材的。别问是什么素材,问就是英雄语音素材。01—材料准备1、素材地址:http://pvp.qq.com/story201904/index.html#/hero2、拉一个你身边特别喜欢收集王者素材的朋友(之后我们下载下来的素材资源卖给他(这是你学会本篇文章的一个变现途径))。3、本文后面的资源获取。02— 操作步骤..._王者荣耀语音素材下载

随便推点

pytorch版yolov5模型用TenserRT生成engine推理模型参考过程_engine/trt模型-程序员宅基地

文章浏览阅读1w次,点赞8次,收藏24次。我们之前测试了OpenVINO在x86系统上的模型推理加速,本次我们在win10系统下基于cuda+GPU显卡下用tensorRT做engine模型转换,因为显卡太低端最后还是没能生成engine模型,但是过程可以借鉴。_engine/trt模型

历史经验之SIP SDP Profile-level-id解析_sip profileid-程序员宅基地

文章浏览阅读959次。SIP SDP Profile-level-id解析基于SIP协议的VOIP通信,该字段通常位于视频协商sdp报文中,如:[html] view plain copy print?在CODE上查看代码片派生到我的代码片video 23456 RTP/AVP 121rtpmap:121 H264/90000fmtp: 121 profile-level-id=42801E; packetization-mode=142801E分三部分0x42 660x80 1000 0000 (二进制)0x_sip profileid

Flutter 那些花里胡哨的底部菜单 进来绝不后悔_flutter 多级menu-程序员宅基地

文章浏览阅读446次。前言前段时间,学习到了Flutter动画,正愁不知道写个项目练习巩固,突然有一天产品在群里发了一个链接【ios中的动画标签】(下面有例图),我心里直呼"好家伙",要是产品都要求做成这样,产品经理和程序员又又又又又又得打起来! 还好只是让我们参考,刚好可以拿来练习。GitHub地址:https://github.com/longer96/flutter-demo我们每天都会看到底部导航菜单,它们在应用程序内引导用户,允许他们在不同的tag之间快速切换。但是谁说切换标签就应该很无聊?让我们一起探索标签_flutter 多级menu

【c++】从交换函数(swap)例子中了解按值传递和按址传递_swap是值传递吗-程序员宅基地

文章浏览阅读1.2k次,点赞3次,收藏3次。话不多说直接来个正文~————————————下面是正文——————————————如果此时需要你来编写一个函数需求是传进两个参数,对传进来参数进行数值交换,大多数人可能会写出以下的代码:#include <iostream>using namespace std; void swap(int x,int y){ int temp; temp = x..._swap是值传递吗

MIT18.06线性代数课程笔记15:子空间投影矩阵_矩阵在子空间的投影-程序员宅基地

文章浏览阅读1.8k次。课程简介18.06是Gilbert Strang教授在MIT开的线性代数公开课,课程视频以及相关资料请见https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/index.htm。课程笔记设空间SS是位于RnR^n的子空间,维度为mm。求RnR^n中的任意向量在子空间SS中的投影pp。1. 子空间维度为1对于m_矩阵在子空间的投影

第十五届蓝桥杯C/C++A组比赛补题记录_蓝桥封印宝石-程序员宅基地

文章浏览阅读847次,点赞21次,收藏10次。第15届C/C++补题记录_蓝桥封印宝石

推荐文章

热门文章

相关标签