人工智能

人工智能 · 圈子

675 位酷友已加入

本圈子收集关于人工智能的各种技术资料,加入圈子可以上传、下载资料,也可以使用提问来寻求资料或分享你认为有价值的站外链接~

关注推荐最新

热门标签

资源

【毕业设计】基于 K-means 算法的校园微博热点话题发现系统

基于 K-means 算法的校园微博热点话题发现系统 一、研究目的 微博由其 “短平快 ” 的信息能力和快速传播能力 ,已广泛流行于高校学生的常生活中。但微博上的负面舆情信息给社会 、学校和个人带来巨大的危害 。由于微博的多而快特点 ,无法依赖人工对相关信息进行收集 、筛选和发掘热点话题 。因此研究并开发校园微博热点话题发现系统 ,对高校舆情工作有重要的意义。 二、研究内容 本文从微博独有的短文本特征及国内外相关微博研究出发,通过对校园微博进行分类处理后使 用K-means聚类算法对校园微博短文本聚类,并改进热度计算公式,通过话题热度提取校园微博热点话题,实现对校园微博热点话题的监控。本文通过几个模块设计并现了校园微博热点话题发现系统,包括微博数据爬取模块 、微博数据预处理模块、微博热点话题分析模块、微博热点话 题展示模块等模块。最后以广州中医药大学的生 活类微博 — 广中医I栋为研究对象,对校园微博 各模块功能及相关技术进行介绍,并对相关模块进行测试验证,分析校园微博热点话题特点,总结系统的优点和不足,提出下一步改进的设想。 三、研究结果 本文以校园微博作为研究主体,结合微博的特点,通过研究热点话题相关技术,实现了一套校园微博热点话题发现系统。该系统主要由数据获取、微博数据预处理、K-means 聚类分析等模块组成。该系统为校园舆情人员及时发现热点话题带来了很大的帮助。 本文主要实现内容如下: (1)使用Python爬虫技术并发获取微博页面 ,并使用 Python相关库快速提取微博文本内容 。 (2)观察校园微博的特点和传统文本的区别,根据校园微博短文本的特点进行数据预处理操作 。 (3)针对于向量空间模型的高维度以及微博文本表示的稀疏性,通过改进的TF-IDF算法实现有效的降维和特征选择,解决了VSM特征向量的稀疏性问题。 (4)针对于传统K-means 算法存在的局部最优解问题,改进了 Kmeans 算法初始簇心选择,提高了 K-means聚类的准确性 。 (5)根据校园微博的特点,改进了热度计算的算法,提高了获取热点话题的准确性。 (6)实现热点话题发现系统可通过可视化界面进行操作,方便舆情管理人员从界面上获取热点话题信息 。 四、目录 摘 要 ABSTRACT 第 1 章 绪论 1.1 国内外研究现状与意义 1.2 本文创新点 1.3 论文写作思路 第 2 章 相关技术介绍 2.1 网络爬虫技术 2.2 中文分词技术 2.3 特征选择及权重计算 2.3.1 特征选择 2.3.2 特征权重计算 2.4 文本表示 2.4.1 布尔模型 2.4.2 概率模型 2.4.3 向量空间模型 2.5 文本聚类算法 2.5.1 距离算法 2.5.2 K-means 聚类算法 2.5.3 二分 K-means 聚类算法 第 3 章 校园微博热点话题发现系统设计与实现 3.1 系统设计目标及要求 3.1.1 系统设计目标 3.1.2 系统设计要求 3.2 系统详细架构设计 3.3 系统功能模块设计与实现 3.3.1 微博数据获取模块 3.3.2 微博文本预处理模块 3.3.2 校园微博热点话题发现模块 第 4 章 系统功能测试 4.1 系统运行环境和参数 4.2 实验数据及处理 4.3 系统可视化界面 4.3.1 数据获取界面 4.3.2 热点话题排行榜 4.3.3 热点话题热度直方图 4.3.4 敏感词展示 总结与展望 参考文献 致谢 附录 via:https://github.com/guoweikuang/weibo_project

资源

吴恩达新书《Machine Learning Yearning》完整中文版,机器学习训练秘籍

本资源为吴恩达历经 2 年时间,结合自己多年学术、实践经验整理出的机器学习秘籍。 对于创作这本书的目的,吴恩达说: 人工智能、机器学习和深度学习正在改变许多行业。我写这本书,其目的是教大家如何构造机器学习项目。 人工智能、机器学习和深度学习正在改变许多行业。我写这本书,其目的是教大家如何构造机器学习项目。 这本书的重点不是教你ML算法,而是如何让ML算法发挥作用。一些AI技术会给你一个锤子;这本书教你如何使用锤子。如果你渴望成为AI的技术领导者,并且想要为你的团队设定方向,这本书将会有所帮助。这本书的重点不是教你ML算法,而是如何让ML算法发挥作用。一些AI技术会给你一个锤子;这本书教你如何使用锤子。如果你渴望成为AI的技术领导者,并且想要为你的团队设定方向,这本书将会有所帮助。 本书能让你掌握以下内容: 考虑人工智能项目最有前途的方向。 在机器学习系统中诊断错误。 在复杂的设置中构建ML,例如不匹配的训练集/测试集。 建立一个ML项目来比较和/或超过人类级的性能。 了解何时以及如何应用端到端学习、迁移学习和多任务学习。 从以前经验来看,学习如何做出这些“战略”决定的唯一方法是在研究机构或公司里从事多年学习研究。我编写的这本书,希望能帮助你快速获得这项技能,以便你能更好地建立人工智能系统。这本书有100多页。 本书中文版github地址:https://github.com/deeplearning-ai/machine-learning-yearning-cn 在线阅读:https://deeplearning-ai.github.io/machine-learning-yearning-cn/docs/home/

资源

CV算法推理框架应用

项目目的 一个算法模型的落地需要经历从算法任务确立,到方法调研、模型选型和优化、数据采集标定、模型训练、部署验证等一整个pipeline,其中对于绝大多数的算法工程师,模型的训练和输出是没有问题的,但是要快速地进行模型在移动设备上的效果验证,则需要移动端开发人员和配合才能完成。另一方面,考虑到团队内CV算法研究方向很多,如果每个模型都单独在移动端开发一套验证APP的话显然费时费力。 为了解决模型移动端部署验证困难,以及每个模型都单独在移动端开发一套验证APP带来的重复工作的问题,本项目实现了CV算法快速验证框架项目,旨在提供一套通用的CV算法验证框架。框架经过一年多的开发和维护,目前已经完成绝大部分API的开发,实现包括实时视频流模块、单帧图像处理模块、3D场景模块、云端推理模块等众多功能。 研究方法 构建包含推理的应用程序所涉及的不仅仅是运行深度学习推理模型,开发者还需要做到以下几点: 利用各种设备的功能 平衡设备资源使用和推理结果的质量 通过流水线并行运行多个操作 确保时间序列数据同步正确 本框架解决了这些挑战,将上述软件框架解耦为数据流控制层、nn推理引擎层,以及UI层进行框架实现,把数据流处理管道构建为模块化组件,包括推理处理模型和媒体处理功能等。 其中数据流控制层包含三个大的模块 -- 视频流模块、图片和编辑模块、3D场景模块,每个模块提供可供配置的数据流参数接口,同时提供了一些常用的工具包如OpenCV、QVision等用于作为模型的数据输入和预处理。 nn推理引擎层则集成了一些移动端常用的推理框架比如SNPE、TensorFlow Lite等,并提供统一模板便于后续持续维护扩展其他推理框架。 UI层则封装好了图像渲染模块,以及各种调试控件。在API方面,该算法验证框架提供了Native/JAVA/Script三个层次的API,前两者可以在Android工程中进行快速模型集成,Script API则不需要编写任何APP 代码,通过文本脚本解析的形式配置模型推理选项。 通过以上功能使开发者可以专注于算法或模型开发,并使用本框架作为迭代改进其应用程序的环境,其结果可在不同的设备和平台上重现。 API接口说明 本框架提供了Native/JAVA/Script三个层次的API,前两者可以在Android工程中进行快速模型集成,其中Native为C/C++接口,提供JNI模板以及封装好的通信组件便于和JAVA进行数据交互;JAVA层则为Android API,使用和C++一样风格的进行封装,此外提供一些UI绘制函数接口;Script API则不需要编写任何APP 代码,通过文本脚本解析的形式配置模型推理选项。 举例在JAVA API下,算法模型在代码中的初始化方式如下,以高通平台的SNPE Runtime为例,只需要几行非常简单的代码即可加载并初始化模型: 如代码所示,模型文件的加载方式比较灵活,可以作为FileInputStream加载,也可以作为APP的Asset进行加载。 而图像数据的预处理和结果回调使用也非常简单,通过提供的OpenCV、QVison等CV库封装接口,可以方便地调取很多图像处理函数: 其中常用的一些操作比如数据的归一化等函数都经过底层优化,保证数据一致性和高效性,比如数据类型的转换使用了zero-copy: 同时OpenCV的编译开启了NEON指令、OpenMP多核等加速选项,对于图像的归一化等操作可以做到并行化加速 模型优化算法实现和工具封装 除了APP侧的接口外,本CV算法验证框架提供了一套配套的模型优化工具(暂未开放),包括: 模型8bit量化工具 模型结构化剪枝工具 模型转换工具 使用TensorFlow或者PyTorch等Training框架训练好的pb、pth、onnx等模型文件并不能直接在移动端进行部署运行,而是需要做一些模型转换工作,本框架将各种转换工具打包,提供了一套方便的模型转换工具。 其中的模型量化工具基于TensorFlow的TOCO、Pytorch的QNNPACK等实现。 剪枝工具则是根据论文Learning Efficient Convolutional Networks Through Network Slimming (ICCV 2017)提到的模型剪枝方法进行复现实现的。 模型转换工具和具体的Inference Runtime有关,比如SNPE则是使用DLC转换脚本、TensorFlow使用的是TF Lite转换工具等等。 转载自:https://github.com/peng-zhihui/DeepVision

资源

【Demo】人脸识别

人脸识别小项目 系统功能 要求输入一张人脸图片后识别出是具体某个人,验证集评价指标采用准确率。 人脸库简介 ORL人脸数据库 共有40个不同年龄、不同性别和不同种族的对象,每个对象10副灰度图像,共计400副灰度图像,图像尺寸是92*112像素。人脸部分表情有变化,如笑与不笑、眼睛睁与不睁、眼镜戴与不戴等,是目前使用最为广泛的标准数据库。 Yale 人脸数据库 共有15个人,每人11副,共计165副在不同光照、不同表情的人脸图像。 由于两个人脸库的图片大小以及格式不一致,所以我只选择了第一个人脸库的人脸进行识别。人脸库见目录image。 核心技术 卷积神经网络(Convolutional Neural Networks, CNN), 是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网络能够利用输入数据的二维结构。 与其他深度学习结构相比,卷积神经网络在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 运行环境 Hardware:PC OS:Window10 Software or Package: Python3.6.2 tensorflow-1.8.0 Pycharm-2018 PyQt5 opencv-python-3.4.0(cv2) numpy-1.15.4 卷积神经网络算法流程 界面展示 界面功能展示 ① 人脸识别类FaceRecognition的参数,用于训练模型时使用。 ② Start按钮:启动训练模型Reset按钮:重置以上参数为空 ③ 模型训练中间输出过程展示 ④ Select...按钮:用于选择测试使用的图片,左边的文本框显示图片文件名称 ⑤ 左边的Selected图片是已选中的图片展示,Predicted图片是模型预测出的结果,即属于哪个人,然后从这个人的目录下面选择第一张进行展示,作为对比。 ⑥ 测试样本预测结果提示 结果分析 通过自己线下的多次调参,得到较好的效果的模型就是上面参数介绍里面的默认参数,即学习率为0.0001,模型训练次数50次,全连接层神经元个数2019,early_stopping为5,数据集划分比例0.9,当Shuffle data set = False时就可以理解为从每个人的10张图片里面选取9张作为训练集,剩余一张作为验证,即训练集包含360个样本,验证集包含40个样本,模型的最高准确率能达到0.925,即有37张图片分类正确,另外3张分类错误。 学习率这个参数特别重要,设置过大可能会跨过最优值,太小导致梯度下降太慢,模型训练时间过长且容易过拟合。然后我还尝试了划分比例0.8,0.7,它们的准确率分别为0.5和0.3.分析原因大致如下:由于训练样本太少容易出现欠拟合,另外可能参数设置不到位等等。 我所设计的模型里面,各用了两个卷积层和池化层,当然这个层数对模型结果影响也比较大,后期我会去尝试再加上一个或多个卷积层和池化层,看看效果。还有些比较重要的参数,比如说卷积层里面的卷积核和步长这些,考虑到界面和类参数个数,我就没有采样手动设置这些参数,而是采用事先默认设置的。 界面相关 本系统界面采用的是PyQt5做的,ui-package里的MainInterface.ui就是用PyQt5生成的xml文件,所以需要把它转化成.py文件。可以使用如下命令: 推荐一篇在pycharm配置PyQt5的教程,写的很详细:https://www.cnblogs.com/BlueSkyyj/p/8398277.html 另外,也可以通过下面的代码将当前目录下的.ui文件转化为.py文件。 文件简介 face_recognize.py:人脸识别类,核心模块。 load_images.py:加载图片,并将它保存在矩阵中。 ui-package/MainInterface.py:界面主程序,除了自定义功能区那几行代码外其它的都是PyQt5自动生成的。 ui-package/MainInterface.ui:PyQt5生成的xml文件。 ui-package/main.py:系统主函数,只需要运行这一个文件即可。 特别提醒:运行之前把所有.py文件里的路径改成自己所用的,不然程序会无法运行。界面程序有些小bug,欢迎issues交流 tensorflow保存或加载模型 https://blog.csdn.net/roger_royer/article/details/86520235 参考文献 https://www.cnblogs.com/BlueSkyyj/p/8398277.html http://www.tensorfly.cn/tfdoc/api_docs/index.html https://blog.csdn.net/liuxiao214/article/details/79048136 https://cv-tricks.com/tensorflow-tutorial/training-convolutional-neural-network-for-image-classification/ http://cs231n.github.io/convolutional-networks/ https://cv-tricks.com/tensorflow-tutorial/training-convolutional-neural-network-for-image-classification/ 来源https://github.com/rogeroyer/face_recognition

计算机

计算机·圈子   首发

anna 发布了
问答

参数keep_graph在变量的backward()方法中是什么意思?

我正在阅读pytorch教程,并对retain_variable(不推荐使用,现在称为retain_graph)的用法感到困惑。代码示例如下: 文档中说明 keep_graph(布尔型,可选)–如果为False,将释放用于计算grad的图形。请注意,几乎在所有情况下都不需要将此选项设置为True,并且通常可以用更有效的方式解决它。默认为create_graph的值。 因此,通过设置retain_graph= True,我们不会在向后传递时释放分配给图的内存。保留此内存有什么好处,为什么我们需要它?

计算机

计算机·圈子   首发

阿托 更新了
资源

【Demo】识别中国二代身份证

识别中国二代身份证 一、写在开头 身份证识别,又称OCR技术。OCR技术是光学字符识别的缩写,是通过扫描等光学输入方式将各种票据、报刊、书籍、文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算机输入技术。 因为项目需要,所以这些天查阅了相关资料,想在网上看看有没有大神封装的现成的demo可以用。但是无果,网上关于ocr这一块的资料很少,比较靠谱的都是要收费的,而且价格也不便宜。但是在天朝,收费感觉心里不爽,所以就决定自己研究一番。 先上一个最终实现的效果(如果mac不是retain屏幕的,分辨率会有影响,需要在真机上调试) 二、需要用到的技术 搜了很多资料,发现要进行身份证号码的识别,需要用到以下几种技术: 图像处理技术 包括灰度化处理,二值化,腐蚀,轮廊检测等等。 1.灰度化处理:图片灰度化处理就是将指定图片每个像素点的RGB三个分量通过一定的算法计算出该像素点的灰度值,使图像只含亮度而不含色彩信息。 2.二值化:二值化处理就是将经过灰度化处理的图片转换为只包含黑色和白色两种颜色的图像,他们之间没有其他灰度的变化。在二值图中用255便是白色,0表示黑色。 3.腐蚀:图片的腐蚀就是将得到的二值图中的黑色块进行放大。即连接图片中相邻黑色像素点的元素。通过腐蚀可以把身份证上的身份证号码连接在一起形成一个矩形区域。 4.轮廊检测:图片经过腐蚀操作后相邻点会连接在一起形成一个大的区域,这个时候通过轮廊检测就可以把每个大的区域找出来,这样就可以定位到身份证上面号码的区域。 文字识别技术 通过识别图像,将图像信息转化为可以使用的计算机输入技术。比如下面这张包含一串数字的图片,通过ocr识别技术可以将图片中包含的数字信息以字符串的方式输出。 三、开源框架OpenCV和TesseractOCRiOS OpenCV(完成图像处理技术) OpenCV是一个开源的跨平台计算机视觉和机器学习库,通俗点的说,就是他给计算机提供了一双眼睛,一双可以从图片中获取信息的眼镜,从而完成人脸识别、身份证识别、去红眼、追踪移动物体等等的图像相关的功能。 TesseractOCRiOS(完成文字识别技术) Tesseract是目前可用的最准确的开源OCR引擎,可以读取各种格式的图片并将他们转换成各种语言文本。而TesseractOCRiOS则是针对iOS平台封装的Tesseract引擎库。 四、实战演示 创建一个iOS项目 用CocoPods导入上面两个库 由于OpenCV库文件比较大,所以时间会稍微久一点,耐心等待就是。 导入完成之后运行项目,会发现报如下错误 由于导入的库不支持Bitcode机制,需要关掉,在工程->TARGETS->Build Setting-> Enable Bitcode设置为NO就ok。 导入TesseractOCRiOS需要的语言包 TesseractOCRiOS库中没有自带的语言包,需要我们自己手动导入,我们这里直接到tesseract-ocr网站,tessdata即是我们需要用到的语言包。下载下来的语言包有400多兆。这里我们只需要用到英语语言包,所以就只导入eng.traineddata就ok,其他的都删掉。 导入语言包种需要注意几点: 语言包需要放在tessdata目录下。TesseractOCRiOS中查找语言包是在tessdata目录下进行查找的,所以我们不能单独把eng.traineddata导入项目中,而需要放在tessdata目录下导入项目中。 将tessdata导入xcode项目,需要勾选Create folder refrences。上面已经提到了语言包需要放在tessdata目录下,所以导入文件到xcode的时候需要创建文件夹的形式,而不是创建组的形式。如下图: 创建一个RecogizeCardManager用来管理身份证识别相关的代码 由于OpenCV和TesseractOCRiOS库都是基于c++编写的,所以需要把RecogizeCardManager.m后缀的.m改成.mm RecogizeCardManager中的代码 .h文件 .m文件 RecognizeCardViewController代码 故事版布局界面 .m文件 总结 通过上面的实验,该程序对身份证识别的正确率几乎可以达到90%,剩下的10%主要取决于图像的预处理,预处理程序是整个识别系统的关键所在。该系统的原理同样也适用于获取身份证上其他的信息,也可以应用于银行卡、车牌号等的识别。最后针对实现的效果进行一步总结。 识别的正确率 主要取决于腐蚀、取出身份证号码区域(轮廊提取)的算法这几个关键点。 腐蚀: 腐蚀的参数很重要,关于腐蚀的一些介绍,可以参考这篇文章 腐蚀与膨胀(Eroding and Dilating) 取出身份证号码区域的算法(轮廊提取): 所有的处理都是为了在图片中定位到身份证号码的区域,轮廊提取就是这样一个操作。筛选轮廊图的算法很重要但是也是个难点。我从这篇博客iOS身份证号码识别中找到了思路。要提取身份证号码区域的轮廊,算法的原理就是该轮廊的宽度是所有中最宽的,且宽度的长度必须大于高度的5倍。 不过这个算法还是存在不少问题。有的时候可能图片背景比较复杂会影响到轮廊的检测,基于这个问题: 一方面可以通过对图片的预处理来进行优化,减少对检测身份证号码区域的干扰 第二个方面就是优化算法。 识别速度 使用TesseractOCRiOS对比较清晰的文字进行识别速度是比较快的,我试过用一张未经处理的写着数字的图片来处理,识别速度小于5s。但经过二值图处理之后识别的速度就降低了,我认为可以对二值化处理后的图片进一步处理,比如对二值图进行细化描出骨架,然后在对骨架做均匀的膨胀处理,这样得到的身份证号码可能会清晰很多。 来源https://github.com/peaktangf/RecognizeCard

资源

【毕业设计】基于Attention机制的LSTM语义模型安卓聊天机器人的实现

基于Attention机制的LSTM语义模型安卓聊天机器人的实现 一、研究目标 随着智能移动设备的快速发展,移动端的用户期望更加人性化的设备使用体验以及通过自然语言与计算机沟通交流。基于来自互联网的大量短对话数据,通过计算图框架Tensorflow实现基于Encoder-Decoder的LSTM网络单元模型生成式聊天机器人,并设计一款Android客户端聊天机器人软件,结果表明移动端聊天机器人的可行性和有效性。 二、研究方法 本文对常用的检索式和生成式两种实现方式进行对比,基于主流的实现聊天机器人所采用的生成式技术框架,本文主要使用Encoder-Decoder端到端的模型,它可以对中间的词法分析、句法分析省略,并减少了对序列的过多假设和猜想,十分高效。 在实现Encoder-Decoder框架时并结合LSTM神经元网络,在此基础上添加Word Embedding词嵌入、Attention注意力机制、Beam Search集束搜索算法等,解决了信息传递、人格一致性和回答多样性问题。 三、研究结论 本文主要设计了一款智能聊天机器人软件,在智能聊天机器人的关键技术上做了一些研究,利用文本词向量表示技术和Encoder-Decoder框架下LSTM训练并生成对话。 四、目录 摘要 ABSTRACT 1 绪论 1.1 研究背景及意义 1.2 国内外研究现状 1.3 论文的主要工作 2 相关技术介绍 2.1 自然语言处理相关 2.1.1 词性标注 2.1.2 语法解析 2.1.3 语义分析 2.2 聊天机器人的关键技术 2.3 Android系统 2.4 本章小结 3 深度学习相关 3.1 神经网络概述 3.1.1 神经元模型 3.1.2 感知机与多层网络 3.1.3 反向传播算法 3.1.4 全局最小与局部极小 3.2 常见神经网络 3.2.1 卷积神经网络 3.2.2 循环神经网络 3.3 本章小结 4 Attention-Based LSTM聊天机器人模型 4.1 传统的RNN Encoder-Decoder框架 4.2 Attention-based Model思想 4.3 Attention-Based LSTM的聊天机器人模型 4.4 Dropout机制 4.5 Beam Search算法 4.6 本章小结 5 聊天机器人软件客户端开发与模型测试 5.1 软件环境 5.2 聊天机器人客户端开发 5.2.1 聊天机器人界面开发 5.2.2 聊天机器人模块开发 5.3 软件测试 5.4 语料数据 5.5 模型训练 5.6本章小结 6 总结与展望 6.1 总结 6.2 展望 致 谢 参 考 文 献 来源https://github.com/ximingxing/chatbot#speech_balloon-faq

资源

【项目】深层文本匹配

深层文本匹配 项目模型 环境准备 运行 运行一般深度神经网络模型 运行 bert 系列模型 使用自己的数据训练 将自己的数据集处理成 header 为 sentence1,sentence2,label 三个字段的csv文件,如下图所示: 将数据分为 train.cav,dev.csv ,test.csv 放入 ./input 文件夹中。 自己重写数据预处理脚本 设置参数 在train.py脚本里的相应位置设置相应模型的参数。 实验结果分析 毫无疑问 bert 系列模型的效果最好,由于我的电脑不允许我使用较大的batchsize进行训练,因此上文表格中报道的准确率不是最佳准确率,如果加大batchsize 应该能提升效果的;另外使用 rnn 做encode 的模型效果明显好于使用cnn 做 encode 的模型。 文本匹配模型一般分为表示型和交互型模型,为了下文方便描述,我将文本匹配模型的框架分为三个层,分别是 Embedding 层,Encoding 层(在交互型模型里,该层还包含匹配层), Prediction 层如下所示: Encoding 层参数共享与不共享 由于模型需要对输入的左右两个句子进行建模,因此需要编码器分别对两个句子进行编码,我们可以选择是否共享左右编码器的参数,下面两段代码分别表示不共享与共享的写法。 不共享参数的情况其实就是分别初始化两个双向LSTM网络,然后分别对左右两个句子进行编码;而共享参数是只初始化一个双向LSTM网络,然后左右句子都使用它来编码。在计算文本相似度这个任务时,从实验中发现共享参数的编码对模型更有帮助,比如 mvlstm和 bimpm 两个模型共享Encoding 层参数比不共享参数准确率要高 7-8个百分点,这两个模型都是使用 rnn 网络做编码器的;而使用cnn 网络做编码器的 arcii 模型共享参数后比不共享参数准确率高2个百分点左右。 深度神经网络模型并不是网络层数越多效果越好 在深度学习领域其实有个经验,就是只要把网络做深效果就会更好,这也许有一定道理,但是面对不同数据,我们应该多尝试。在 arcii 模型中 3 个 cnn block(如下图的 more 2D convolution & pooling 结构)比 2 个 cnn block的模型效果要差一些(0.7734 -> 0.7684)。 产生这个结果的原因可能是所用数据集的句子基本是短句子,语句结构也不复杂的缘故。其实可以看到准确率差的也不多,但是使用 rnn 做 encode的模型在增加深度后效果将会差的更多。 如下图所示的 drcn 模型,原文中使用 4 个 Nx 模块,每个Nx 包含 5 层 LSTM,总共20 层 LSTM的网络,但是在我的实验中我发现在每个 Nx 里面只能用两层LSTM,且只能用 1个 Nx,如果再多效果反而会不好。 另外该模型虽然花里花俏的,但是效果并没有更朴素 bimpm 和 mvlstm 模型要好。也许是我用了 BatchNormalization 做层归一化的缘故(MatchZoo 中使用的 Dropout),但是不用 BN 的话训练时将会造成梯度爆炸。 match_pyramid 和 arcii 模型 这两个模型都是使用2D convolution 做编码器提取特征的,但是为什么match_pyramid 效果这么差呢?将match_pyramid模型的结构和arcii对比一下: 可以看到,match_pyramid直接用左右两个句子的embedding进行匹配交互,然后用 2D convolution 提取特征,这显然匹配层的好坏直接取决于 embedding的好坏;而arcii 首先使用了一层 1D convolution 对embedding进行编码,再进行匹配计算的。所以其实 match_pyramid 模型等于就是 arcii 模型的阉割版(少一层关键的 1D convolution)。 来源https://github.com/wangle1218/deep_text_matching

资源

【毕业设计】基于CNN和词向量的句子相似性度量

基于CNN和词向量的句子相似性度量 开发环境 Anaconda + Pycharm 项目说明 毕业设计主要针对于句子相似度的计算,尤其是长句相似度,使用GoogleNews预训练的模型 GoogleNews-vectors-negative300.bin 数据来源 数据存放于本项目DataSet下 项目运行 clone 项目到本地 配置config.json文件:model_path用于存放 预训练模型存放的路径;dataset_path用于存放最后作实验评估的数据集存放的路径 从main.py开始运行,首先要点击初始化按钮加载预训练模型 在句子1和句子2处输入要计算相似度的句子 计算结果显示在相似度,WJ,WMD距离三个地方 可以每次换一个句子,并点击计算 计算完成,点击退出 结论验证 via:https://github.com/sivanWu0222/GraduationProject

资源

【毕业设计】基于机器视觉的害虫种类及数量检测

基于机器视觉的害虫种类及数量检测 一、研究目的 研究的目的在于建立一套远程病虫害自动识别系统,有助于缓解农业植保人员和病虫害鉴定专家的人力资源紧张,有助于病虫害知识有限的农业人员进行及时的病虫害检测,并且,通过害虫种类数目的监测和信息收集,定期对昆虫数据进行整理和分析,建立病虫害爆发的规律模型,进而预测判断病虫害爆发的时间,及时通知农业植物保护人员和农户进行合理地科学地预防。提高农作物产量和质量。 二、研究内容及结论 (1) 设计实现了一套可适用于野外的害虫捕获和图像采集装置。该装置放置在农业种植区域,24 小时进行害虫的诱杀和图像采集,同时,装置可以通过无线网络将害虫图像上传至农业监控中心虫类鉴别服务器,并进行害虫种类的识别,进行产区内害虫种类数目的信息收集。 (2) 开发了一套基于机器视觉的昆虫计数工作方法。开发了一套的适用于苍蝇粘板等包含多数昆虫设备的图像的基于机器视觉的昆虫计数工作方法。该方法首先对包含多数昆虫的图片进行二值化预处理,然后进行轮廓的查找,并进行轮廓的计数,得到的数目反映了图片中的昆虫数目的数量级。该方法适用于苍蝇粘板图像等包含多数昆虫虫体的图像上。 (3) 开发了一套基于机器视觉的昆虫识别工作方法和流程。该方法在参考已有研究成果的基础山,选取了昆虫形态特征中的昆虫矩形度、昆虫延长度、昆虫圆形度、昆虫球状性、昆虫叶状性等 5 个特征,进行昆虫图像的特征提取。之后,采用逻辑斯蒂回归模型、线性 SVM 模型和 K 邻近分类器分别进行训练,并测试比较训练结果,以进行分类器算法的筛选。该方法适用于本套图像采集装置。 (4) 设计了一套远程害虫自动识别系统。结合上述三个功能,该系统可以实现:在图像采集节点进行害虫捕获和昆虫图像采集,在虫类鉴别服务器进行昆虫图像的识别和分类。 三、目录 摘 要 ....................................................................................................................... I ABSTRACT ......................................................................................................... II 目 录 ..................................................................................................................... III 第 1 章 绪论 ..........................................................................................................1 1.1 课题研究的背景和意义......................................................................................1 1.2 国内外研究现状 .................................................................................................1 1.2.1 国内研究现状 ..............................................................................................2 1.2.2 国外研究现状 ..............................................................................................2 1.3 研究的内容和目的 .............................................................................................3 1.3.1 研究内容 ......................................................................................................3 1.3.2 研究目的 ......................................................................................................3 1.4 章节安排 .............................................................................................................4 第 2 章 系统总体设计 ........................................................................................5 2.1 系统设计目标 .....................................................................................................5 2.2 系统总体架构 .....................................................................................................5 2.3 图像采集节点 .....................................................................................................6 2.3.1 装置总体设计 ..............................................................................................6 2.3.2 运行流程 ......................................................................................................9 2.4 虫类鉴别服务器和虫类信息数据库设计 ......................................................... 10 2.4.1 服务器设计 ................................................................................................ 10 2.4.2 服务器虫类分类器实现 ............................................................................. 11 2.4.3 PC 上的昆虫分类识别软件 ........................................................................ 12 第 3 章 昆虫图像预处理与计数研究 ........................................................... 15 3.1 昆虫图像的采集 ............................................................................................... 15 3.2 昆虫图像的预处理 ........................................................................................... 16 III 3.2.1 图像的灰度化,高斯滤波和尺度变换 ...................................................... 16 3.2.2 二值化 ........................................................................................................ 17 3.2.3 大津法 OTSU 在昆虫图像二值化上的应用 .............................................. 18 3.3 昆虫图像的计数 ............................................................................................... 20 3.3.1 检测轮廓 .................................................................................................... 20 3.3.2 昆虫计数 .................................................................................................... 20 第 4 章 昆虫图像特征提取与识别研究 ...................................................... 23 4.1 特征的选取 ....................................................................................................... 23 4.2 特征描述以及提取方式.................................................................................... 23 4.3 分类器的选择和训练 ....................................................................................... 32 4.4 机器学习结果分析 ........................................................................................... 33 4.4.1 性能评价指标 ............................................................................................ 33 4.4.2 三种分类器的性能比较 ............................................................................. 34 第 5 章 总结与展望 .......................................................................................... 37 5.1 总结 .................................................................................................................. 37 5.1.1 完成的工作 ................................................................................................ 37 5.1.2 创新点和不足之处 .................................................................................... 37 5.2 展望 .................................................................................................................. 38 致谢 ........................................................................................... 参考文献 ............................................................................................................... 40 附录一:部分昆虫图像样本 ........................................................................... 42 附录二:OTSU 的 PYTHON 实现 .............................................................. 44 附录三:英文文献翻译 ....................................................... 文件介绍 用户界面 MainWindow.ui-----------------------PyQtDesigner设计的主界面文件 MainWindow.py----------------------PyUIC转换而成的主界面程序 运行逻辑 VideoMainWindow.py--------------PyQt结合OpenCV实现在界面中显示视频画面 PreProcess.py-------------------------对源数据样本进行预处理 特征提取 P_circle.py------------------------------似圆度 P_extend.py----------------------------延长度 P_leaf.py--------------------------------叶状性 P_rect.py--------------------------------矩形度 P_spherical.py------------------------球形度 GetFeatures.py-----------------------提取特征的模块 GetFiveFeatures.py-----------------五个特征提取的测试代码 FeatureExtract.py-------------------提取样本库特征保存到CSV文件 机器学习模块 LinearSVM.py-------------------------线性SVM分类器的训练和模型保存 LinearRegression.py---------------逻辑回归分类器的训练和模型保存 KneiborsClassfier.py---------------KNN分类器的训练和模型保存 Predict.py------------------------------加载预训练模型,对特征进行预测 Thresholding.py---------------------------大津法程序实现和OpenCV大津法函数的效果对比 Count.py-------------------------------------实现加载图片,二值化(大津法),查找轮廓进行计数的效果 GetChineseName.py--------------------分类中英文转换 via:https://github.com/veraposeidon/Insect_Identification

  • 1
  • 29
  • 30
  • 31
  • 46
前往