深度之眼神经网络基础知识
主要分为三个部分,分别是
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随机失活等
(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模型整体如下图:
文章浏览阅读362次。一、类型相关操作1.type函数理解:type(数据)获取指定数据类型例如:type(100) #直接输入是不会打印,需要printprint(type(100)) #整型(int) #得出结果:100print(type(1.25)) #浮点型(float) #得出结果:1.25print(type('陈某某')) #字符串(str) #得出结果:陈某某print(type(10>20)) #布尔(bool) _type({100})
文章浏览阅读798次。在运行idea时常常提示端口被占用,在cmd查询该端口,但显示端口没有被占用怎么办?_unable to open debugger port 12208
文章浏览阅读312次。docker不容置疑,目前最为成熟最广泛的虚拟容器产品,虽然k8s在docker编排基础上,基于战略原因,协同google,ibm推出了CRI标准,兼容一切符合CRI标准的容器厂商,而带动了podman等其他容器产品的百花齐放,但是docker依然在诸多的容器产品里鹤立鸡群,强就是强,无惧大厂商的霸权,今天这里谈谈docker使用里查看容器启动命令的一个工具。runcommandruncommand是一款使用golang实现的基于容器管理的工具,市面上也有一些同类产品的实现,比如笔者我,在没有开发runco_docker joinsunsoft
文章浏览阅读9.9k次,点赞115次,收藏108次。ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口。_arrylist
文章浏览阅读1.2k次,点赞12次,收藏73次。一、分布式知识点:分布式基础、缓存机制、消息机制、搜索机制、分布式ID、分布式锁、分布式SESSION、分布式事务、分布式分页、分布式部署、二、分布式基础知识 软件架构设计的六大原则:https://blog.csdn.net/u012562943/article/details/76110761 软件架构需要考虑的基本原则:https://blog.csdn.net/zyhl..._分布式、缓存、消息等机制;
文章浏览阅读1.7w次,点赞2次,收藏8次。寞水_fatal: not a git repository (or any of the parent directories): .git
文章浏览阅读48次。多人認為遠距離關係(異地戀)幾乎都會無疾而終。家人不支持,甚至朋友也勸你不要全身心投入,以免未來傷心透頂。的確,維持一段異地戀並不容易——遙遠的距離令很多事變得難以實現。一切變得複雜起來,偶爾難過萬分,偶爾孤獨無助。不過,距離的遙遠卻也讓最簡單的小事做起來甜甜蜜蜜。例如,挽著對方的手,一起同桌吃飯,感受彼此的觸碰,一起散步,聞著彼此的發香...... 在異地戀中,如此渺小的願望瞬間顯得彌足珍貴。雖然異地戀很艱難,但也會帶來很多驚喜。如果真的不能避免異地戀,那我們也只能花心思去維持這段戀情了。
文章浏览阅读541次。题目大意:对一个数组排序,但基本操作是翻转(使倒序)前k个元素(k可以是0到n-1(n为数组元素个数))。#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #inc_煎饼 stacks of flapjacks
文章浏览阅读4.6k次,点赞2次,收藏12次。首先讲下搬运作品上热门,很多朋友傻傻的以为把别人的视频去掉水印或者修改一下MD5值然后发出去就可以热门了,那么简单的话全世界都是热门了!拜托,先搞懂短视频的检测原理,MD5检测都是多少年前的技术了?你确定快手火山抖音这种大平台会用这么low的检测技术?我来告诉你们他们是怎么检测的!抽取你的作品,某个时间段的某一帧。和其他作品的某一帧,进行点对点之间的对比重合。然后再上下浮动若干秒进行对比..._快手如何检测视频是否原创
文章浏览阅读2k次。Cesium 实战 - 点对象(point)、广告牌(billboard)、文字标签(label)贴地问题以及总结。_cesium point
文章浏览阅读241次。Sass (英文全称:Syntactically Awesome Stylesheets) 是一个最初由 Hampton Catlin 设计并由 Natalie Weizenbaum 开发的层叠样式表语言。Sass 是一个 CSS 预处理器。Sass 是 CSS 扩展语言,可以帮助我们减少 CSS 重复的代码,节省开发时间。Sass 完全兼容所有版本的 CSS。链接总的来说,学习uni-app需要有一定的Vue.js基础知识,并要了解各个平台的差异和限制。_如果 nvue 页面 @animationfinish 事件不能返回正确的数据,可同时监听 @change 事
文章浏览阅读2.3w次,点赞69次,收藏297次。Node.js和Vue的安装与配置(超详细步骤)_nodejs安装vue