常用名词解释

常用名词解释,第1张

渲染:则是从艺术那边借用过来的一个词汇,它是指如何通过一个3D计算机模型来生成一张图像。

总结:马尔科夫过程指的是一个状态不断演变的过程,对其进行建模后称之为马尔科夫模型,在一定程度上,马尔科夫过程和马尔科夫链可以打等号的。

分类问题和回归本质一样,都是要建立映射关系。都是通过计算机学习数据集的特定规律,进而生成模型来实现预测任务。
可以将回归问题和分类问题互相转化,即分类模型可将回归模型的输出离散化,回归模型也可将分类模型的输出连续化。


回归模型可预测连续值。例如,回归模型做出的预测可回答如下问题:

加利福尼亚州一栋房产的价值是多少?

用户点击此广告的概率是多少?

分类模型可预测离散值。例如,分类模型做出的预测可回答如下问题:

某个指定电子邮件是垃圾邮件还是非垃圾邮件?

这是一张狗、猫还是仓鼠图片?

模型
模型定义了特征与标签之间的关系。
例如,垃圾邮件检测模型可能会将某些特征与“垃圾邮件”紧密联系起来。我们来重点介绍一下模型生命周期的两个阶段:
训练是指创建或学习模型。也就是说,向模型展示有标签样本,让模型逐渐学习特征与标签之间的关系
推断是指将训练后的模型应用于无标签样本。也就是说,使用经过训练的模型做出有用的预测 (y')。
例如,在推断期间,您可以针对新的无标签样本预测 medianHouseValue。

样本:
是指数据的特定实例:x。(我们采用粗体 x 表示它是一个矢量。)我们将样本分为以下两类:
有标签样本
无标签样本

有标签样本同时包含特征和标签
无标签样本包含特征,但不包含标签

特征:
是输入变量,即简单线性回归中的 x 变量。简单的机器学习项目可能会使用单个特征,而比较复杂的机器学习项目可能会使用数百万个特征,

标签:
是我们要预测的事物,即简单线性回归中的 y 变量。标签可以是小麦未来的价格、图片中显示的动物品种、音频剪辑的含义或任何事物。

为了使用Tensorboard来可视化我们的数据,我们会经常使用Summary,最终都会用一个简单的merge_all函数来管理我们的Summary


总结一下,把上面提到的 channels 分为三种:

最初输入的图片样本的 channels ,取决于图片类型,比如RGB;
卷积 *** 作完成后输出的 out_channels ,取决于卷积核的数量。此时的 out_channels 也会作为下一次卷积时的卷积核的 in_channels;
卷积核中的 in_channels ,刚刚2中已经说了,就是上一次卷积的 out_channels ,如果是第一次做卷积,就是1中样本图片的 channels 。
最后,对于输入样本,一般的RGB图片,channels数量是 3 (红、绿、蓝);而monochrome图片,channels 数量是 1 。


Mini-batch Gradient Descent:小批量梯度下降法(MBGD)


# preprocessing这个模块还提供了一个实用类StandarScaler,它可以在训练数据集上做了标准转换 *** 作之后,把相同的转换应用到测试训练集中。
# 这是相当好的一个功能。可以对训练数据,测试数据应用相同的转换,以后有新的数据进来也可以直接调用,不用再重新把数据放在

二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)
fit_transform(partData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),
然后对该partData进行转换transform,从而实现数据的标准化、归一化等等。。


fit_transform
不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据,从而把数据转换成标准的正太分布

方差:是和中心偏离的程度,用来衡量一批数据的波动大小(即这批数据偏离平均数的大小)并把它叫做这组数据的方差,记作S2。 
在样本容量相同的情况下,方差越大,说明数据的波动越大,越不稳定。

MinMaxScaler:
将每个元素(特征,feature)转换成给定范围的值。
该估计器(estimator)分别缩放和转换每个特征,以使其处于训练集的给定范围内,例如
在区间[0,1]。


卷积层参数个数计算方法:(卷积核高 * 卷积核宽 * 通道数 + 1) * 卷积核个数


可类似看作:隐藏层中的神经元 具有一个固定大小的感受视野去感受上一层的部分特征。
在全连接神经网络中,隐藏层中的神经元的感受视野足够大乃至可以看到上一层的所有特征。

而在卷积神经网络中,隐藏层中的神经元的感受视野比较小,只能看到上一次的部分特征,
上一层的其他特征可以通过平移感受视野来得到同一层的其他神经元,由同一层其他神经元来看:

可看出 卷积层的神经元是只与前一层的部分神经元节点相连,每一条相连的线对应一个权重 ww 。

一个感受视野带有一个卷积核,我们将 感受视野 中的权重 ww 矩阵称为 卷积核 ;
将感受视野对输入的扫描间隔称为步长(stride);
当步长比较大时(stride>1),为了扫描到边缘的一些特征,感受视野可能会“出界”,
这时需要对边界扩充(pad),边界扩充可以设为 00 或 其他值。步长 和 边界扩充值的大小由用户来定义。

卷积核的大小由用户来定义,即定义的感受视野的大小;
卷积核的权重矩阵的值,便是卷积神经网络的参数,
为了有一个偏移项 ,卷积核可附带一个偏移项 bb ,它们的初值可以随机来生成,可通过训练进行变化。

假设输入的是一个 28×2828×28 的的二维神经元,
我们定义5×55×5 的 一个 local receptive fields(感受视野),即 隐藏层的神经元与输入层的5×55×5个神经元相连,这个5*5的区域就称之为Local Receptive Fields,

代码块 Code block

代码块是一组由代码构成的功能“单元”。
一个代码块可以单独运行。
比如一个函数(function)或一个类(class)定义、一个模块(module)都是代码块,

如果欠拟合我们往往需要增大数据量,但是如果很难再增加数据量或者获取数据的代价很高,我们可以使用正则化来减少网络的误差和防止过拟合。

正则化其实就是限制权重的变化速度。


seed()被设置了之后,np,random.random()可以按顺序产生一组固定的数组,
如果使用相同的seed()值,则每次生成的随机数都相同,如果不设置这个值,那么每次生成的随机数不同。
但是,只在调用的时候seed()一下并不能使生成的随机数相同,需要每次调用都seed()一下,表示种子相同,从而生成的随机数相同。


pyplot简介
matplotlib.pyplot是使matplotlib像MATLAB一样工作的命令样式函数的集合。
每个pyplot功能都会对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域中绘制一些线条,用标签装饰绘图等。

正因为pandas是在numpy基础上实现,其核心数据结构与numpy的ndarray十分相似,但pandas与numpy的关系不是替代,而是互为补充。
二者之间主要区别是:

从数据结构上看:

numpy的核心数据结构是ndarray,支持任意维数的数组,但要求单个数组内所有数据是同质的,即类型必须相同;
而pandas的核心数据结构是series和dataframe,仅支持一维和二维数据,但数据内部可以是异构数据,仅要求同列数据类型一致即可

numpy的数据结构仅支持数字索引,而pandas数据结构则同时支持数字索引和标签索引

从功能定位上看:

numpy虽然也支持字符串等其他数据类型,但仍然主要是用于数值计算,尤其是内部集成了大量矩阵计算模块,
例如基本的矩阵运算、线性代数、fft、生成随机数等,支持灵活的广播机制

pandas主要用于数据处理与分析,支持包括数据读写、数值计算、数据处理、数据分析和数据可视化全套流程 *** 作

pandas主要面向数据处理与分析,主要具有以下功能特色:

按索引匹配的广播机制,这里的广播机制与numpy广播机制还有很大不同

便捷的数据读写 *** 作,相比于numpy仅支持数字索引,pandas的两种数据结构均支持标签索引,包括bool索引也是支持的

类比SQL的join和groupby功能,pandas可以很容易实现SQL这两个核心功能,实际上,SQL的绝大部分DQL和DML *** 作在pandas中都可以实现

类比Excel的数据透视表功能,Excel中最为强大的数据分析工具之一是数据透视表,这在pandas中也可轻松实现

自带正则表达式的字符串向量化 *** 作,对pandas中的一列字符串进行通函数 *** 作,而且自带正则表达式的大部分接口

丰富的时间序列向量化处理接口

常用的数据分析与统计功能,包括基本统计量、分组统计分析等

集成matplotlib的常用可视化接口,无论是series还是dataframe,均支持面向对象的绘图接口

正是由于具有这些强大的数据分析与处理能力,pandas还有数据处理中"瑞士军刀"的美名。

五、变量
1. 变量的作用
变量,简单来说,其实就是计算机内存中的一块储存空间,用来存储CPU需要使用的数据。 而这个储存空间需要一个名字,这个名字的统称就叫变量。


   BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,
是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。
      BP算法是一种有监督式的学习算法,其主要思想是:输入学习样本,使用反向传播算法对网络的权值和偏差进行反复的调整训练,
使输出的向量与期望向量尽可能地接近,当网络输出层的误差平方和小于指定的误差时训练完成,保存网络的权值和偏差。
(1)初始化,随机给定各连接权及阀值。

(2)由给定的输入输出模式对计算隐层、输出层各单元输出  

(3)计算新的连接权及阀值,计算公式如下:

(4)选取下一个输入模式对返回第2步反复训练直到网络设输出误差达到要求结束训练。

  传统的BP算法,实质上是把一组样本输入/输出问题转化为一个非线性优化问题
并通过负梯度下降算法,利用迭代运算求解权值问题的一种学习方法,但其收敛速度慢且容易陷入局部极小,为此提出了一种新的算法,即高斯消元法。

改进的BP网络算法

2.1 改进算法概述

  此前有人提出:任意选定一组自由权,通过对传递函数建立线性方程组,解得待求权。
本文在此基础上将给定的目标输出直接作为线性方程等式代数和来建立线性方程组,不再通过对传递函数求逆来计算神经元的净输出,简化了运算步骤。
没有采用误差反馈原理,因此用此法训练出来的神经网络结果与传统算法是等效的。
其基本思想是:由所给的输入、输出模式对通过作用于神经网络来建立线性方程组,
运用高斯消元法解线性方程组来求得未知权值,而未采用传统BP网络的非线性函数误差反馈寻优的思想。
      
边缘计算是一种致力于使计算尽可能靠近数据源、以减少延迟和带宽使用的网络理念。
简而言之,边缘计算意味着在云端运行更少的进程,将这些进程移动到本地,例如用户的计算机、IoT 设备或边缘服务器。
将计算放到网络边缘可以最大程度地减少客户端和服务器之间必须进行的长距离通信量。

sigmoid函数的作用是将输入映射到一个(0,1)的输出范围

BP神经网络
       BP (Back Propagation)神经网络是一种神经网络学习算法。
其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。
相邻层之间各神经元进行全连接,而每层各神经元之间无连接,
网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。
然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。
此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。

正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。
因其曲线呈钟形,因此人们又经常称之为钟形曲线。我们通常所说的标准正态分布是μ = 0,σ = 1的正态分布(见右图中绿色曲线)。

最小二乘法适用于对处理的一堆数据,不必精确的经过每一点,而是根据图像到每个数据点的距离和最小确定函数。

最小二乘法逼近的最简单的例子是根据一组观测值对(x1,y1),(x2,y2)…(xn,yn)来拟合一条直线。直线的数学表达式为
因为是二次函数,所以对其求导,导数为零时取得最小值。
 
牛顿迭代法
      没有根式解不意味着方程解不出来,数学家也提供了很多方法,牛顿迭代法就是其中一种。

1 切线是曲线的线性逼近
我们随便选一点f(x) 上的一点(a,f(a)) 做它的切线:
因为切线是一条直线(也就是线性的),所以我们可以说,A点的切线是f(x) 的线性逼近。
离A点距离越近,这种逼近的效果也就越好,也就是说,切线与曲线之间的误差越小。所以我们可以说在A点附近,“切线\approx f(x) ”。
牛顿-拉弗森方法提出来的思路就是利用切线是曲线的线性逼近这个思想
牛顿、拉弗森们想啊,切线多简单啊,研究起来多容易啊,既然切线可以近似于曲线,我直接研究切线的根不就成了。
随便找一个曲线上的A点(为什么随便找,根据切线是切点附近的曲线的近似,应该在根点附近找,但是很显然我们现在还不知道根点在哪里),
做一个切线,切线的根(就是和x轴的交点)与曲线的根,还有一定的距离。
牛顿、拉弗森们想,没关系,我们从这个切线的根出发,做一根垂线,和曲线相交于B点,继续重复刚才的工作
之前说过,B点比之前A点更接近曲线的根点,牛顿、拉弗森们很兴奋,继续重复刚才的工作
第四次就已经很接近曲线的根了:
经过多次迭代后会越来越接近曲线的根(下图进行了50次迭代,哪怕经过无数次迭代也只会更接近曲线的根,用数学术语来说就是,迭代收敛了):                        
3 牛顿-拉弗森方法的代数解法

已知曲线方程f(x) ,我们在x_n 点做切线,求x_{n+1} :
容易得出,x_n 点的切线方程为:f(x_n)+f'(x_n)(x-x_n) 。

要求x_{n+1} ,即相当于求f(x_n)+f'(x_n)(x-x_n)=0 的解,即f(x_n)+f'(x_n)(x_{n+1}-x_n)=0\implies :

x_{n+1}=x_{n}-{\frac {f(x_{n})}{f'(x_{n})}}


整理一下刚才的解题思路,步骤如下:
1、先在状态空间中随机选取若干状态。
2、在这些状态中选出较优或合适的状态值。
3、以选中的状态值为基础,使用一些演化方式,演化到其它的状态,
4、重复2、3两个步骤直到获得满意的结果。

遗传算法的基本思路。
     只是在遗传算法中,不同的状态叫基因,演化方式有杂交方式(以两种状态为基础得到第三个状态),
变异方式(只以一种状态为基础演化到其它状态),而第2步在遗传算法中就叫做优胜劣汰。
 换一个思路来看,通常的遍历方式是以数组系列来进行的,从date[0]遍历到date[99],这种方式能够保证完全遍历,且不会重复,但是效率太差。
遗传算法也是一种遍历方式,只是它的遍历不按序号来,首先是随机选,然后是基于已有的历史数据,并通过指定的规则得到新的数据,
这种方式偏好性较强,对较优的状态会优先进行选择,这样效率就要高得多,找到最优值的机会也就更大,速度也更快。但是不可避免的会出现两个问题,
      一是可能不能完全遍历,因为选择是有倾向的,就有可能即使给无限多的时间,也绝对不会选择到某些数据,
而如果这些未被选的数据能够确定是次优的数据,则这是很有利的,但很多时侯我们并不能做出这个确认,这就会使我们错过了最优数据的选择,只能得到局部最优。
     二是重复遍历的情况,会反复选择相同的一些数据,重复的选择带来的必然是效率的降低。
    对应这两个问题的需要注意的也有两个方面:
    一、如何选择、淘汰的问题。也就是选取哪些状态去演化,选择的依据是什么?选择的方式是什么。
比较典型的方法就是轮盘赌方法,这个方法能够保证会所有的数据都有被选中的机会。
    二、演化的方式有哪些,如何选择演化方式?使用的演化方式如果进行无穷多次,能够保证会遍历到最优值吗?
我们的目的就是能够更快的获得最理想的值,而且当给定足够长(近于无穷)的时间情况下,理论上能保证一定能得到最优值。
为了达到这个目标,就需要对状态空间的分布有一个深入的了解,发现的规律越多,越本质则我们越有可能获得最优值。

5.深度学习:Python中的卷积神经网络
6.深度学习:Python中的递归神经网络
Keras是一个最低限度的、模块化的神经网络库,可以使用Theano或TensorFlow作为后端。Keras最主要的用户体验是,从构思到产生结果将会是一个非常迅速的过程。

在Keras中架构网络设计是十分轻松自然的。它包括一些state-of-the-art中针对优化(Adam,RMSProp)、标准化(BatchNorm)和激活层(PReLU,ELU,LeakyReLU)最新的算法。

Keras也非常注重卷积神经网络,这也是我十分需要的。无论它是有意还是无意的,我觉得从计算机视觉的角度来看这是非常有价值的。

更重要的是,你既可以轻松地构建基于序列的网络(其中输入线性流经网络)又可以创建基于图形的网络(输入可以“跳过”某些层直接和后面对接)


上图中每个圆圈都是一个神经元,每条线表示神经元之间的连接。
我们可以看到,上面的神经元被分成了多层,层与层之间的神经元有连接,而层内之间的神经元没有连接。
最左边的层叫做输入层,这层负责接收输入数据;最右边的层叫输出层,我们可以从这层获取神经网络输出数据。
输入层和输出层之间的层叫做隐藏层。

隐藏层比较多(大于2)的神经网络叫做深度神经网络。
而深度学习,就是使用深层架构(比如,深度神经网络)的机器学习方法。


监督学习和无监督学习
接下来,我们需要关心的是这个模型如何训练,也就是参数取什么值最合适。

机器学习有一类学习方法叫做监督学习,它是说为了训练一个模型,我们要提供这样一堆训练样本:每个训练样本既包括输入特征,也包括对应的输出(也叫做标记,label)。
也就是说,我们要找到很多人,我们既知道他们的特征(工作年限,行业...),也知道他们的收入。
我们用这样的样本去训练模型,让模型既看到我们提出的每个问题(输入特征),也看到对应问题的答案(标记)。
当模型看到足够多的样本之后,它就能总结出其中的一些规律。然后,就可以预测那些它没看过的输入所对应的答案了。

另外一类学习方法叫做无监督学习,这种方法的训练样本中只有而没有。
模型可以总结出特征的一些规律,但是无法知道其对应的答案。

很多时候,既有又有的训练样本是很少的,大部分样本都只有。
比如在语音到文本(STT)的识别任务中,是语音,是这段语音对应的文本。
我们很容易获取大量的语音录音,然而把语音一段一段切分好并标注上对应文字则是非常费力气的事情。
这种情况下,为了弥补带标注样本的不足,我们可以用无监督学习方法先做一些聚类,让模型总结出哪些音节是相似的,然后再用少量的带标注的训练样本,告诉模型其中一些音节对应的文字。
这样模型就可以把相似的音节都对应到相应文字上,完成模型的训练。

我们之前所做的一切都只是把这些东西放到了一个“计算图(computation graph)”中,而我们还没有开始运行这个计算图,
为了实际计算这两个数字,我们需要创建一个会话并运行它:

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/922020.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-16
下一篇2022-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存