深度学习

几分钟带你快速了解聊天机器人!

為{幸葍}努か 提交于 2021-02-12 08:52:23
当我们谈起人机对话系统 现实中的人机系统 人机对话的发展历程 人机对话系统的四个主要功能 通用聊天机器人的五个主要模块 输入预处理 语音识别技术主要包括特征提取技术、模式匹配准则以及模型训练技术3个方面 自然语言理解 聊天机器人系统中的自然语言理解功能包括用户意图识别、用户情感识别、指代消解、省略恢复、回复确认及拒识判断等技术¨ 引。并且语法分析、语义分析、关键词提取、相似度计算等自然语言处理技术也是必不可缺的。 对话管理 封闭式 封闭式是指有明确的服务目标和服务对象,仅处理特定领域中的问题, 给对话的主题进行了限制。 开放式 开放式则没有一个清晰的目标和对象,对话涉及的主题很广,所需要的知识量也是巨大的。 答案生成 整个答案生成的过程包括了内容选择、文本规划、语句合成、指代表达生成、表层实现等阶段。 生成技术主要包括检索式和生成式 检索式 检索式是指在对话库中以搜索匹配的方式找到适合用户输人语句的最佳答案予以回复。 生成式 生成式是指采用一定的技术手段( 如深度学习技术) 自动生成新的回复内容。 输出处理 聊天机器人的构建方式 基于人工模板的聊天机器人 根据用户输入的句子,在模板库中找到匹配的问句模板,然后按照对应的应答模板生成答案, 返回给用户,如ALICE、Chat Scfipt 等。 基于检索的聊天机器人 对话库的要求很高,并且需要足够大,但是它的优点是回答质量高

从机器学习谈起

天大地大妈咪最大 提交于 2021-02-12 07:02:19
点击上方 “ 程序员江湖 ”, 选择“置顶或者星标” 你关注的就是我关心的! 转自:博客园,作者:计算机的潜意识 链接:www.cnblogs.com/subconscious/p/4107357.html 从机器学习谈起 在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。 在进入正题前,我想读者心中可能会有一个疑惑:机器学习有什么重要性,以至于要阅读完这篇非常长的文章呢? 我并不直接回答这个问题前。相反,我想请大家看两张图,下图是图一: 这幅图上上的三人是当今机器学习界的执牛耳者。中间的是Geoffrey Hinton, 加拿大多伦多大学的教授,如今被聘为“Google大脑”的负责人。右边的是Yann LeCun, 纽约大学教授,如今是Facebook人工智能实验室的主任。而左边的大家都很熟悉,Andrew Ng,中文名吴恩达,斯坦福大学副教授,如今也是“百度大脑”的负责人与百度首席科学家。这三位都是目前业界炙手可热的大牛,被互联网界大鳄求贤若渴的聘请,足见他们的重要性。而他们的研究方向,则全部都是机器学习的子类--深度学习。 下图是图二: 这幅图上描述的是什么?Windows Phone上的语音助手Cortana,名字来源于《光环》中士官长的助手。相比其他竞争对手,微软很迟才推出这个服务

ResNet论文笔记

匆匆过客 提交于 2021-02-12 06:40:30
其实ResNet这篇论文看了很多次了,也是近几年最火的算法模型之一,一直没整理出来(其实不是要到用可能也不会整理吧,懒字头上一把刀啊,主要是是为了将resnet作为encoder嵌入到unet架构中,自己复现模型然后在数据集上进行测试所以才决定进行整理),今天把它按照理解尽可能详细的解释清楚跟大家一起分享一下,哪里没有说明白或者说错的,欢迎指出留言。 深度残差神经网络( Residual Networks )是 2015年(12月在arxiv.org可下载) 何凯明大神提出来的一个神经网络模型,获得了2015年多个竞赛数据集的第一。模型被提出主要是为了解决如下两个主要问题: 减缓深度学习模型难以训练的问题(e.g. 超过100层的神经网络) 模型退化(degradation problem)问题,这个之后会详细解释什么是退化(表示看了论文很迷茫,还是看了不少别人的博客才恍然大悟) 这里还有一点需要被注意的是, 深度残差网络是基于这么一个假设:越深的网络理应具备更好的学习能力 。这个后来也确实被证明层数的增加确实带来不一样的效果,不论以什么样的形式叠加和计算(如AlexNet、GoogLeNet、DenseNet等等)。 一、简要介绍 虽然假设越深的网络应该具备更好的表征学习能力,但是接踵而来的问题也很明显,如梯度消失和梯度爆炸(vanishing/exploding

关于卷积神经网络体系设计的理论实现

心不动则不痛 提交于 2021-02-12 04:45:44
  卷积神经网络,简称CNN,常用于视觉图像分析的深度学习的人工神经网络。形象地来说,这些网络结构就是由生物的神经元抽象拟合而成的。正如,每个生物神经元可以相互通信一般,CNN根据输入产生类似的通信输出。   若要论CNN的起源,那大概就是1980年代初了,随着最近技术的迅猛进步和计算能力的不断强大,CNN就此流行起来。简而言之,CNN技术允许在合理的时间内,利用其自身性和扩展性的算法对大量数据和复杂训练进行卷积维度的“神经”运算。目前,CNN主要应用于:基于人工智能的虚拟助手、自动照片标记、视频标记和自动驾驶汽车等方面。 一、卷积神经网络与常规神经网络的区别 CNN能处理分辨率更高的图像,解决常规神经网络不能解决的巨大计算开销问题;举个例子:如果考虑一个大小为224224个和3个通道的图像,它对应于224x224x3=150528的输入特性。一个典型的具有1000个节点的隐层神经网络在第一层本身就有150528×1000个参数。这对于常规神经网络来说,根本就难以估量; 具有检测不变性(Translation invariance)的特性,不管在识别过程中的哪个微时间阶段,或者图像识别的局部区域大小,都具有客观识物不变性质。 二、CNN的工作机制和原理   卷积层都是基于卷积的数学运算。卷积层由一组滤波器组成,就像一个二维数字矩阵。然后,滤波器与输入图像合并以产生输出

《Machine Learning

拈花ヽ惹草 提交于 2021-02-12 04:21:48
https://www.youtube.com/watch?v=CXgbekl66jc&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49 https://www.bilibili.com/video/av65521101 因为之前有些基础,对于本视频课程的学习仅仅记录一些要点.目前只学习涉及深度学习和对抗攻击的部分. 1 Regression 通过Gradient Descent找到Loss Function的局部最优点.Gradient就是Loss Function对每个参数的偏导数排成的向量. 如果Loss Function是Convex的,即凸函数,那么Gradient Descent一定可以找到全局最优点. 过于复杂的model就会Overfitting. 类别型特征可以通过δ函数变成Linear Model. 对于特征的处理,可以通过Domain Knowledge或者Regularization. Regularization的一种简单方式是在Loss Function中加入λΣ(w i ) 2 ,因为越小的w越平滑,即对变化越不敏感. Regularization一般不考虑bias,因为它只影响Loss Function的上下移动,而与是否平滑无关. 可以给w和b设定不同的Learning Rate来加强拟合效果. 2 Where

为什么大公司要开源自己的技术?

[亡魂溺海] 提交于 2021-02-11 20:57:00
大约一个月前,谷歌公开了用于Big Transfer(BiT)的预训练模型和微调代码——Big Transfer是一种深度学习的计算机视觉模型。根据谷歌的说法,Big Transfer将允许任何人在相应的任务上达到最优表现,即使每个类只有少量的标签图片。这仅仅是这家科技巨头免费向公众开放其专有产品的一个例子。要知道,发布强大的免费开源软件已经成为科技界的常见事件,并引发了这样一个问题:大型科技公司这么做得到了什么回报? 在90年代后期,当Open Source Initiative出现时,将源代码公开的想法被认为是一个坏策略,因为专有软件是标准,公司会尽一切努力保护软件。到2020年,开源的概念发生了巨大的变化,现在已经成为主流。 如今有许多开源技术公司,其中一些公司的年收入已经超过1亿美元(甚至10亿美元),包括红帽、MongoDB、Cloudera、MuleSoft、Hashicorp、Databricks(Spark)和Confluent(Kafka)。 除了上述科技公司高调收购和投资开源项目外,谷歌和Facebook等科技巨头也把开源放到了难以置信的重要位置,因为开源对于收集新产品的创新和建立一个庞大的开发者社区非常重要。例如,Flutter vs React Native、Tensorflow vs PyTorch、Kubernetes等

【深度学习】目标检测算法总结(R-CNN、Fast R-CNN、Faster R-CNN、FPN、YOLO、SSD、RetinaNet)

旧巷老猫 提交于 2021-02-11 20:40:40
目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息。本文对目标检测进行了整体回顾,第一部分从RCNN开始介绍基于候选区域的目标检测器,包括Fast R-CNN、Faster R-CNN 和 FPN等。第二部分则重点讨论了包括YOLO、SSD和RetinaNet等在内的单次检测器,它们都是目前最为优秀的方法。 一、基于候选区域的目标检测器 1.1 滑动窗口检测器   自从 AlexNet 获得 ILSVRC 2012 挑战赛冠军后,用 CNN 进行分类成为主流。 一种用于目标检测的暴力方法是从左到右、从上到下滑动窗口,利用分类识别目标 。为了在不同观察距离处检测不同的目标类型,我们使用不同大小和宽高比的窗口。 滑动窗口(从右到左,从上到下)   我们根据滑动窗口从图像中剪切图像块。由于很多分类器只取固定大小的图像,因此这些图像块是经过变形转换的。但是,这不影响分类准确率,因为分类器可以处理变形后的图像。 将图像变形转换成固定大小的图像   变形图像块被输入 CNN 分类器中,提取出 4096 个特征。之后,我们使用 SVM 分类器识别类别 和该 边界框的另一个线性回归器 。 滑动窗口检测器的系统工作流程图   下面是伪代码。我们创建很多窗口来检测不同位置的不同目标。要提升性能,一个显而易见的办法就是减少窗口数量。 for

一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

依然范特西╮ 提交于 2021-02-11 20:40:16
一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD 前言 之前我所在的公司七月在线开设的深度学习等一系列课程经常会讲目标检测,包括R-CNN、Fast R-CNN、Faster R-CNN,但一直没有比较好的机会深入(但当你对目标检测有个基本的了解之后,再看 这些课程 你会收益很大)。但目标检测这个领域实在是太火了,经常会看到一些写的不错的通俗易懂的资料,加之之前在京东上掏了一本书看了看,就这样耳濡目染中,还是开始研究了。 今年五一,从保定回京,怕高速路上堵 没坐大巴,高铁又没抢上,只好选择哐当哐当好几年没坐过的绿皮车,关键还不断晚点。在车站,用手机做个热点,修改 题库 ,顺便终于搞清R-CNN、fast R-CNN、faster R-CNN的核心区别。有心中热爱 何惧任何啥。 为纪念这心中热爱,故成此文。 一、目标检测常见算法 object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要解决的问题就是物体在哪里以及是什么的整个流程问题。 然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,更何况物体还可以是多个类别。 目前学术和工业界出现的目标检测算法分成3类: 1. 传统的目标检测算法

一文读懂目标检测:R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

蹲街弑〆低调 提交于 2021-02-11 20:31:09
一、目标检测常见算法 object detection,就是在给定的图片中精确找到物体所在位置,并标注出物体的类别。所以,object detection要解决的问题就是物体在哪里以及是什么的整个流程问题。 然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,更何况物体还可以是多个类别。 目前学术和工业界出现的目标检测算法分成3类: 1. 传统的目标检测算法:Cascade + HOG/DPM + Haar/SVM以及上述方法的诸多改进、优化; 2. 候选区域/框 + 深度学习分类:通过提取候选区域,并对相应区域进行以深度学习方法为主的分类的方案,如: R-CNN(Selective Search + CNN + SVM) SPP-net(ROI Pooling) Fast R-CNN(Selective Search + CNN + ROI) Faster R-CNN(RPN + CNN + ROI) R-FCN 等系列方法; 3. 基于深度学习的回归方法:YOLO/SSD/DenseBox 等方法;以及最近出现的结合RNN算法的RRC detection;结合DPM的Deformable CNN等 传统目标检测流程: 1)区域选择(穷举策略:采用滑动窗口,且设置不同的大小,不同的长宽比对图像进行遍历,时间复杂度高)

Faster R-CNN 目标检测体验篇

时光毁灭记忆、已成空白 提交于 2021-02-11 19:56:04
本文建议阅读时间 12 min 上次我们分享了目标检测 One-Stage 的代表 YOLO,从体验、理论到代码实战。其实 One-Stage 还有一个代表是 SSD ,这个等到下一次我们再讲解,因为 SSD 涉及到部分 Two-Stage 目标检测的知识。 本期我们分享的是 Two-Stage 的代表作 Fater R-CNN ,这是属于 R-CNN 系列中比较经典的一个,目前比较流行。今天我们就带大家体验一把 Faster R-CNN 的检测,代码不多。 代码说明 我们代码使用的是 Pytorch 提供的目标检测模型 fasterrcnn_resnet50_fpn model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained= True ) 模型预测后得到的结果是 Bounding boxes [x0, y0, x1, y1] 边框的四个值 Labels 所有预测的标签 Scores 所有标签的分数 以下就是本次内容的所有代码: import torchvision # 0.3.0 version 这里指的是所使用包的版本 from torchvision import transforms as T import cv2 # 4.1.1 version import matplotlib