看完发现RNN原来是这样,机器学习人门贴送上
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
今天写给小白的机器学习入门贴,就来介绍一下什么是循环神经网络,也就是RNN。
循环神经网络就是专门处理序列的。由于它们在处理文本方面的有效性,因此经常用于自然语言处理(NLP)任务。
还是之前介绍的那个作者——Victor Zhou。
RNN有什么用?
传统的神经网络,以及CNN,它们存在的一个问题是,只适用于预先设定的大小。
通俗一点,就是采用固定的大小的输入并产生固定大小的输出。
就比如上次提到的CNN例子,以4×4图像为输入,最终指定输出2×2的图像。
而RNN呢?它专注于处理文本,其输入和输出的长度是可变的,比如,一对一,一对多,多对一,多对多。
看这个图,我想你就可以明白了。
其中,输入是红色、RNN本身是绿色,输出为蓝色。
这种处理序列的能力十分有用,于是,RNN就有了丰富的应用场景。
比如,机器翻译。
像你见到的,某歌、某道、某度,还有最近很火的DeepL翻译器,它们都是“多对多”进行的。
原始文本序列被馈送到RNN,然后RNN生成翻译后的文本作为输出。
再比如,情绪分析。
通常使用的是“多对一”的RNN进行。将想要分析的文本输入到RNN中,然后产生一个单一的输出分类。
举个例子:分析一个评论是正面还是负面的评论。
输出得出:这是一个肯定的评论。
怎样实现RNN?
我们就先来考虑一下,“多对多的RNN,输入为x0、x1、x2……xn,输出为y0、y1、y2……yn,这些xi,yi都是向量,具有任意维度。
RNNs的工作原理是迭代更新一个隐藏状态h,它是一可以有任意维度的向量。
而对于任意的一个ht:
1、由对应的输入xt与上一个隐藏层ht-1来计算
2、输出yt是由ht计算出的结果。
这样,前一次的输出结果,就会带到下一次的隐藏层中,跟着一起训练。这样看,是不是就感受到了循环二字了。
每一个步骤都是采用的相同的权重,通常来讲,一个典型的RNN通常只需3组权重去完成它的计算。
此外,还需要两个偏差。
由此,这3个权重跟2个偏差,就完成了整个RNN的计算。
将他们组合起来,方程式是这样的。
需要注意的是,这里的权重是矩阵,而其他变量是向量哦!
这里的第一个方程式,激活函数采用的是双曲线函数,当然用之前提到的S型函数也是OK的。
文本是肯定还是否定?
接着,我们就来试着从头开始执行RNN吧。
以一个简单的情感分析为例,就是判断一串给定的文本字符串是肯定的表达还是否定的。
比如,这些数据集。
从这个表格看出,我们将使用“多对一”的RNN类型。
每个输入x都将是一个向量,代表文本中的一个单词。
而输出y则是一个包含两个数字的向量,一个代表正数,一个代表负数,然后应用Softmax将这些值转化为概率,并最终得出正负。
预处理
首先,我们要先进行一些预处理——将数据集转化为可用的格式。因为RNN暂且还不能识别单词,所以,我们需要构建一个所有单词的词汇表,并给它编号。
在词汇表中,有18个单词,那就意味着每一个单词是一个x,那么输入就是一个18维的向量。
训练RNN
接下来,就是按照原始RNN所需的3个权重,与2个偏差开始。
就是我们前面见过的公式。
就像此前训练CNN一样,训练RNN,首先需要一个损失函数。
此次将使用交叉熵损失与Softmax联合计算:
(其中c表示某个文本标签,比如 correct)
举个例子,如果一个肯定文本测试显示有90%的概率是肯定的,那么它的损失函数是:
计算了损失函数以后,就要利用梯度下降的训练来减小损失。
接下来,就涉及到多变量演算,计算思路跟之前的一样,只是具体计算公式有所不同。详情就戳下方链接。
训练之后,别忘了,还需要进行一番测试哦~
好了,今天有关RNN介绍,就到这里了。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-05-31
本文作者:白交
本文来自:“量子位公众号”,了解相关信息可以关注“公众号 QbitAI”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何采集Nginx的日志?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 由于nginx功能强大,性能突出,越来越多的web应用采用nginx作为http和反向代理的web服务器。而nginx的访问日志不管是做用户行为分析还是安全分析都是非常重要的数据源之一。 如何有效便捷的采集nginx的日志进行有效的分析成为大家关注的问题。本文通过几个实例来介绍如何通过filebeat、logstash、rsyslog采集nginx的访问日志和错误日志。 大家都知道ELK技术栈是采集、分析日志的利器。所以这里介绍的是从nginx采集日志到ES。当然至于日志采集以后存到看大家的需要。通过logstash可以方便的配置日志输出存储的方式。 一般来说nginx默认安装后,日志文件在 /usr/local/nginx/logs 目录下。分别有 access.log和error.log 访问日志和错误日志。 这次示例Elasitcsearch是三个节点组成的集群172.28.65.22、172.28.65.23、172.28.65.24,172.28.65.30 是kibana的地...
- 下一篇
RPA+AI这个278亿市场规模的赛道,IDC的这份报告讲清楚了
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! RPA+AI,正在成为AI领域看得见的一股潮流,各类厂商都不约而同的朝着这个方向前进。 它的另一个名字叫做IPA,Intelligent Process Automation,智能流程自动化。 在过去一年多的时间里,这个领域被密集的提到、被密切的关注,甚至不同阶段的大中小公司一齐入局,其中也不乏有自然语言处理背景的厂商和有一定经验的AI创业公司。 RPA+AI的确很大程度基于自然语言处理能力。当然,计算机视觉等其他方面的AI模型对它一样重要。相对成熟的技术和广阔的应用空间,让RPA成为人工智能商业化进程中触手可得的果实。 或许,早期阶段的RPA之于自然语言处理,正如安防刷脸之于计算机视觉一样,是这个领域最早的爆发机会之一。 RPA+AI,如何解放生产力 在RPA(Robotic process automation,机器人流程自动化)的基础之上,接入OCR、图片识别、自然语言理解等AI能力,自动化的机器人系统操作,就可以变得更聪明,能完成更多任务。 举个例子,如果你需要把一些纸质信息数据...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器