作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121691734


目录

前言:

1. 直接数值编码

1.1 概述

1.2 应用范围

2. 归一化与Normalize编码

2.1 概述

2.2 应用范围

3. 索引编码

3.1 概述

3.2 应用

4. OneHot数字编码

4.1 概述

4.2 应用

5. ASCII编码

5.1 概述

5.2 应用

6. Unicode编码

6.1 概述

6.2 应用

7. 词向量编码:word2vec

7.1 概述

7.2 词向量的多维空间

7.3 词向量编码的好处

7.4 词向量的热度图

7.5 词向量编码的实现

7.6 应用


前言:

本文探讨在深度学习领域,对输入数据进行编码的几种方式。

OneHot、ASCII、词向量word2vec等。

1. 直接数值编码

1.1 概述

直接使用原始的数据格式作为神经网络的输入数据X和标签数据Y。如:

1.2 应用范围

(1)线性拟合

  • 输入数据X
  • 标签数据Y

(2)图像分类

  • 输入数据X (像素值),如每张图片的输入数据三维RGB值(3*224*224)

2. 归一化与Normalize编码

2.1 概述

不改变原有数据的形状,值改变原有数据的数值范围。

(1)归一化:所有的数据都被等顺序地压缩到【0,1】之间。

(2)Normalize:所有数据都被等顺序的压缩到正态分布线上的点。

2.2 应用范围

用于消除梯度爆炸、大数吃小数、数值溢出等情形。

3. 索引编码

3.1 概述

不管原始对象是什么数据格式,如字符串或图片等,都把他们先编码成一个特定的索引值。

如cat,编码成10, dog编码成11等等。

然后把编码后的索引值作为神经网络的输入。

3.2 应用

完成采用这种编码的场合比较少,通常作为中间过渡,先把某个对象,按照种类进行分类,每个分类赋予一个index索引值,以示分开。

然后再对索引值进行进一步的编码,如onehot编码或词向量编码。

二次编码后的数据,才用于神经网络的预测和训练。

4. OneHot数字编码

4.1 概述

独热编码即 One-Hot 编码,又称一位有效编码。

其方法是使用 N位来表示 N个状态的编码。

每个状态都有它独立的状态位,并且在任意时候,其中只有一位有效

(1)输入数据的oneHot编码

(2)分类标签的oneHot编码

这种情形,有多少种类就有多少bit的编码。

如10000种分类,就需要10000个bit存放一个对象的标签。

4.2 应用

这种方式,采用稀疏矩阵的方式存放数据,是比较浪费内存空间的。

主要应用于:每个输入对象之前是完全不相干的,每个对象之间,没有关联的,与输入顺序无关,是完全正交的场合。比如图片分类,就属于这种情形。

相邻的两张图片之间,没有任何语义上的关联。

5. ASCII编码

5.1 概述

ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。

这种方案,实际上先把字母按照顺序转换成索引index,然后对每个索引进行直接数值(0维)编码。

5.2 应用

主要应用对于英文字母(不是词)进行编码,每个字母的长度一个字节。

6. Unicode编码

6.1 概述

统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。

这种方案,实际上先把字母按照顺序转换成索引index,然后对每个索引进行直接数值(0维)编码。

unicode与ASCII原理是一样的,不同的是,它对所有国家的语言支持的基本“字”进行了统一索引编码。因此索引分类数量要远远大于ASCII编码的索引分类数量。

6.2 应用

Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

Unicode用于多语言的编码,如汉字的编码,就可以采用unicode编码 。

7. 词向量编码:word2vec

7.1 概述

先对单词(有多个字母组成)进行分类,然后对分类后的单词进行编码。

由于单词与单词之间实际并不是完全独立的,比如Apple和Orange,这两个单词就是安全不相干的,而是都属于水果。

单词与图片的区别在于,词与词之间,并非完全独立,不相干,而是有一点的关联度,为了能够表达词与词之间的关联关系,就不能采用onehot编码了。

词向量编码,就是把一个个单词编码一个个索引值,然后把索引值编码成一个个一维的向量,每个一维向量的长度可以设定,通常在60~300之间。

常见的长度为300,即为长度为300的一维向量,或维度为1的300维度的向量, 与OneHot编码不同的是,每个数值是一个浮点数,这样每个单词就比编码成了形状为(1 * 300)的特征数据。

这个特征数据,唯一的标识了一个单词。比如有100万个单词,就有100万个不同的特征向量。

7.2 词向量的多维空间

如下是多维词向量空间的示意图:

从上图可以看出,不同的词,处于多维空间的不同的位置:

有些词,在多维空间中的综合距离相近,

有些词,在多维空间中的综合距离相差甚远。

有些词,在某些维度相差较近,如水果Apply与Apply公司,输入相同

有些词,在某些维度相差远,如水果Apply与Apply公司,语义完全不同。

7.3 词向量编码的好处

为什么采用词向量编码呢? 以100万个单词为例,这样的编码的好处:

(1)只用了300个维度的特征值(而不是OneHot的100万个位的数据),就可以标识无穷多的单词,相对于OneHot编码,节省了大量的内存空间。

(2)可以通过余弦距离获取两个单词词向量的关联程度。

如果两个单词,完全无关,则这两个单词的词向量的余弦距离为1.

如果两个单词,完全一样,则这两个单词的词向量的余弦距离为0.

两个单词的距离越小,则他们的相似度越高,关联性越大。

两个单词的距离越大,则他们的相似度越小,关联性越小。

7.4 词向量的热度图

热度图:展现的是,每个词的每个维度的数据值,通过颜色的方式展现出来。

然后通过观察两个向量颜色,来只管的比较两个单词的相似度。

从上图可以看出,man和boy在热度图上有很多一致的向量值,反应的是这两个词的相似度很高。

而water与boy的相似性就比较少。

7.5 词向量编码的实现

词向量的难点是:

(1)如何指派各个词向量每个维度的数值,(2)且要确保相似度相近的词的词向量的距离相对较小。

如果少量的词,如几十个,通过人工的方式来排列或指定是可以做到的,然而,如果词的数量高达几十万个,再通过人工的方式来厘清词与词的关系以及通过特定的词向量来体现,就不太可行了。

因此,每个单词的词向量的编码值,并非人为设定的,而是通过分析大量的文章,进行机器自动学习获得的。

后续会阐述,如何通过机器学习,从大量的文本数据中,学习各个单词的词向量。

7.6 应用

在自然语言处理中,为每个单词进行编码。单词与单词之间构成某种关联。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121691734

[人工智能-深度学习-55]:循环神经网络 - 样本数据的几种编码方式:OneHot、ASCII、词向量word2vec相关推荐

  1. 深度学习之循环神经网络(8)长短时记忆网络(LSTM)

    深度学习之循环神经网络(8)长短时记忆网络(LSTM) 0. LSTM原理 1. 遗忘门 2. 输入门 3. 刷新Memory 4. 输出门 5. 小结  循环神经网络除了训练困难,还有一个更严重的问 ...

  2. 深度学习之循环神经网络(1)序列表示方法

    深度学习之循环神经网络(1)序列表示方法 序列表示方法 Embedding层 2. 预训练的词向量 前面的卷积神经网络利用数据的局部相关性和权值共享的思想大大减少了网络的参数量,非常适合于图片这种具有 ...

  3. [人工智能-深度学习-14]:神经网络基础 - 常见loss损失函数之逻辑分类,对数函数,交叉熵函数

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  4. [人工智能-深度学习-9]:神经网络基础 - 常见loss损失函数之均分误差MSE、绝对值误差MAE、平滑平均绝对误差Huber

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  5. 深度学习之循环神经网络(12)预训练的词向量

    深度学习之循环神经网络(12)预训练的词向量  在情感分类任务时,Embedding层是从零开始训练的.实际上,对于文本处理任务来说,领域知识大部分是共享的,因此我们能够利用在其它任务上训练好的词向量 ...

  6. 深度学习之循环神经网络(11-b)GRU情感分类问题代码

    深度学习之循环神经网络(11-b)GRU情感分类问题代码 1. Cell方式 代码 运行结果 2. 层方式 代码 运行结果 1. Cell方式 代码 import os import tensorfl ...

  7. 深度学习之循环神经网络(11-a)LSTM情感分类问题代码

    深度学习之循环神经网络(11-a)LSTM情感分类问题代码 1. Cell方式 代码 运行结果 2. 层方式 代码 运行结果 1. Cell方式 代码 import os import tensorf ...

  8. 深度学习之循环神经网络(11)LSTM/GRU情感分类问题实战

    深度学习之循环神经网络(11)LSTM/GRU情感分类问题实战 1. LSTM模型 2. GRU模型  前面我们介绍了情感分类问题,并利用SimpleRNN模型完成了情感分类问题的实战,在介绍完更为强 ...

  9. 深度学习之循环神经网络(10)GRU简介

    深度学习之循环神经网络(10)GRU简介 1. 复位门 2. 更新门 3. GRU使用方法  LSTM具有更长的记忆能力,在大部分序列任务上面都取得了比基础RNN模型更好的性能表现,更重要的是,LST ...

最新文章

  1. WCF实现RESTFul Web Service
  2. HTTP 500 服务器内部错误的解决方法
  3. 【开发环境】戴尔电脑系统重装 ( 下载 Dell OS Recovery Tool 工具 | 使用 Dell OS Recovery Tool 工具制作 U 盘系统 | 安装系统 )
  4. Python安装模块出错(No module named setuptools)解决方法
  5. 没有为类型定义方法怎么办_拼多多开店没有流量怎么办?有什么方法?新手必看!...
  6. 有关子数组最大累加和的算法小结
  7. java 文件提前结束_java – org.xml.sax.SAXParseException:过早结束文件
  8. 如何调优JVM - 优化Java虚拟机(大全+实例)
  9. 算法设计与分析-实验3
  10. 形成20位存储单元的物理地址
  11. R7-5 求矩阵各行元素之和 (15 分)
  12. 基于android的高仿抖音,Android仿抖音列表效果
  13. 最基础eacharts图带数字,百分比,tab切换
  14. OneNote 2016代码编写插件 安装
  15. html修改字体大小菜鸟,HTML字体大小颜色
  16. 计算机专业有必要考软考吗,软考初级程序员有用吗_有必要考吗_上学吧
  17. 高恪或者Padavan等品牌路由用N1作为旁路由
  18. 物联网技能大赛lora开发
  19. 华为OJ——将真分数分解为埃及分数
  20. 入门了解开发板是做什么用的?

热门文章

  1. WAIC | 阿里龙志勇:云游戏量变进行时,与元宇宙有什么关系?
  2. 基于决策树算法对良/恶性乳腺癌肿瘤预测
  3. 苹果手机计算机桌面显示器,《iphone使用技巧》苹果电脑手机必学的几个投屏幕方法分享...
  4. 移动端/嵌入式-CV模型-2018:MobelNets-v2【Inverted Residuals(中间胖两头瘦)、Linear Bottlenecks(每个倒残差的最后一个卷积层使用线性激活函数)】
  5. 68 个Python内置函数,你用过几个?
  6. cadence安装完怎么打开_为何cadence软件在虚拟机里安装成功了以后打不开
  7. 文献检索(学术搜索)
  8. 更新pip后出现WARNING:pip is being invoked by an old script wrapper
  9. Android之光线传感器
  10. 计算特征根时出现复数 ComplexWarning: Casting complex values to real discards the imaginary part