技术交流qq群: 659201069

深度学习第一讲之深度学习基础

转载请注明出处!

  本篇博文从what、why、when、who、where、how五个方面来分析深度学习,接下来讲如何入门,我门将通过介绍实际案例来讲解深度学习的实际应用,一下篇博文讲解深度学习的核心技术:卷积神经网络

WHAT?什么是深度学习?

维基百科: 深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

百度百科:深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

本人的理解:所谓深度学习,就是具有很多个隐层的神经网络。传统的机器学习输入数据的特征和标签都是人工设定的,深度学习就是可以发现隐含的高层特征,即根据基础特征合成复杂的特征,例如图像识别,我们可以拿到的输入就是像素矩阵,在深度学习领域经过卷积运算,可以合成线条,再进一步就可以合成轮廓等高级特征以实现图像的分类。
下面看深度学习的结构图:

  我门可以看到上面的那张图,这是神经网路的概念图,所谓神经网络就是将许多个单一“神经元”联结在一起,这样,一个”神经元”的输出就可以是另一个“神经元”的输入。单一“神经元”的输入-输出映射关系其实就是一个逻辑回归(logistic regression)。
  神经网络最左边的一层叫做输入层,最右的一层叫做输出层。中间所有节点组成的一层叫做隐藏层,因为我们不能在训练样本集中观测到它们的值。
  而右边的图是深度神经网路,我门可以看到,当中的隐藏层大于两层。

  由图可见,人工智能、机器学习、深度学习并非是层层包含的关系,而最近火热的神经网络也只是与人工智能有交叉而非人工智能的实现方式或者子集。

WHY?深度学习到底为什么火了

  • 比传统方法好,而且也比传统方法成本更低
  • GPU(显卡)速度很快,并且深度学习可利用,极大的降低了工程实验成本
  • 互联网数据获取越来越容易,数据量越来越大

      从成本来看:以前某个任务需要 3 个工程师从清洗数据、找特征、构建模型、训练与应用,这些都跑完一个流程,需要3个月。这还不算找特征、构建模型这些工作需要很强的行业领域知识与工程经验。总共消耗了9个人月。而深度学习所做的就是,现在只需要一个工程师,清洗数据、构建模型、训练与应用,可能只需要一个月,总共1个人月。为什么?首先深度学习降低了找特征的成本,甚至可以说在某些时候可以把这个过程忽略,在以前这个过程本身可能就需要3~5个人月的反复工程实验。而清洗数据也更快了,因为深度学习的鲁棒性更好(rubust),尤其是针对大数据的鲁棒性(百万条数据)。如果放在2、3年前,深度学习的训练与应用所需要的时间成本也不低,可是现在无论是各种框架(Torch,Keras,TensorFlow)也好,还是各种工程经验也好,都更加充足了,使得时间成本越来越低。

WHEN?深度学习发展的时机!

“2018年,深度学习将会颠覆工程仿真和设计。未来三到五年里,深度学习会加速产品的研发周期,
并将其从过去以月计数缩短到以天计数,在产品特性、性能和成本的研发流水线上给出一种快速创新的模式”
——Marc Edgar,通用电气研究部的高级信息科学家。

“人工智能是一次新的“电力革命”,无论你是在哪一个行业工作,AI都有可能改变它。就像100年前,电的发明和兴起改变了整个工业一样——从运输、通讯、制造到保健,点点滴滴都在发生改变“
—— 吴恩达,前百度公司首席科学家

WHO?何人需要学习深度学习?何人撑握了深度学习

  • 机器学习第一层:懂原理的调库君
  • 从事AI工作的算法工程师至少占到 75% 以上

  • 机器学习第二层:会推公式的学术君

  • 懂得算法的大致原理

  • 机器学习第三层:创造新算法的大神君

  • 吴恩达、Hinton、Lecun等大神级别的人物

      很多著名的机器学习(当然本文中机器学习也包括深度学习,深度学习只是机器学习的一个重要的分支)书籍包括机器学习培训机构的课程,大家都把数学列为机器学习课程的必备基础,几乎如出一辙地都在强调数学的重要性。于是乎许多想转头AI学习机器学习的小伙伴们就被高深莫测的数学难倒了,吓得退出了,事实真的是这样吗?不学高深的数学就无法在工业界应用机器学习算法去解决实际问题了吗?答案显然不是这样的。
      毫无疑问,数学是机器学习的基础。以至于传统机器学习最重要的流派叫做 “统计学习理论” 。但是这和转行AI学机器学习必须要具备深厚的数学“看起来是合情合理”,但事实却并非如此!想要解释清楚这个问题,首先我们需要解释掌握机器学习的三个层次到底是什么?每个层次是怎么定义的?掌握每个层次需要的必备知识是什么?
      
    2.1 机器学习第一层:懂原理的调库君
      虽然这个级别被我定义为最低的等级。但是大家可不要忘记,在中国目前的互联网公司中处于我定义的这一级别的从事AI工作的算法工程至少占到 75% 以上。所以,这也是我建议的绝大多数数学不是特别好的,没读过博士或者硕士的同学转行AI给自己定位的建议。这样,你就不需要去学习那些你很难搞懂的高深莫测的数学知识,也不需要掌握各种数学原理的推导。你只需要知道理工科本科毕业的那三门数学基础知识就完全可以了。这时候,知道常见算法的基本原理,以及各个参数的含义。OK,能用机器学习算法解决实际项目中的任务才是王道嘛!

2.2 机器学习第二层:会推公式的学术君
  如果你想去BAT核心部门去做算法工程师,也许调库君是不够资格的。那么你需要满足一定的学术水平。也就是说,你不仅要懂得算法的大致原理,比如说决策树的分支是基于信息熵和信息增益的策略的。你还得知道常见算法的优化过程中使用的损失函数以及他的推导过程,这时候对大家的要求就相对来说比较高了。接下来我就以BAT机器学习算法面试必考题(这是福利,燕哥亲自经历的经验,大家要认真点哦!)。
2.3 机器学习第三层:创造新算法的大神君
  这一层次的典型人物就是 吴恩达、Hinton、Lecun等大神级别的人物,这并非是仅仅是数学好或者是普通硕士生就能达到的水平,需要从博士生的艰苦数学基础的积累和长期不懈的研究探索才能达到的境界,一般如果转行的话,我个人建议别忘这个level上去想,容易伤害你自己!但是,如果你是本科生,而且数学也非常不错的话,向往这方面发展还是很有希望的。
  那么,这个层级的大神到底如何牛呢?还是举个栗子吧!
  著名的神经网络发明人 Hinton ,在别人发现感知机的时候,他觉得感知机能力有限,于是想出了神经网络来表示更复杂的学习任务。只是提出这么个模型不行,还得解决我该怎么优化参数,想出(与上面的会推是两回事)一个损失函数并且找到很好的BP反向传播算法来优化神经网络参数,这就是他牛的地方。并不是理解别人的思路,会推别人想出来的公式,而是从头到尾自己创造,并且算法实用性非常好,能解决很多现实的问题。

WHERE?深度学习用在什么领域?


  传统机器学习的优势是能够进行特征内省-即系统理解为什么将一项输入这样或那样分类,这对于分析而言很重要。但这种优势却恰恰导致传统机器学习系统无法处理未标记、非结构化的数据,也无法像最新的深度学习模型那样达到前所未有的准确度。特征工程是传统机器学习的主要瓶颈之一,因为很少有人能把特征工程做得又快又好,适应数据变化的速度。
对于必须进行特征内省的应用情景(例如法律规定,以预测的信用风险为由拒绝贷款申请时必须提供依据),我们建议使用与多种传统机器学习算法相集成的深度神经网络,让每种算法都有投票权,发挥各自的长处。或者也可以对深度神经网络的结果进行各类分析,进而推测网络的决策原理。

  • 实时语音翻译
  • 微软的Skype能够将语音实时翻译成不同的语言。
  • 自动回复电子邮件
  • Google的Mail可以代替您自动回复电子邮件。
  • 音乐作曲
  • 可以基于不同的作曲家风格进行音乐组成。
  • 绘画
  • 可以基于著名的艺术家绘画风格创建。

      图像、语音、自然语言处理这三个领域,已经被深度学习席卷了。深度学习的性能就是比传统方法好得多,无可辩驳。
    深度学习在这些领域内大放异彩的主要原因,在于图像、语音、文本数据中都是有 pattern 的,这种 pattern 人脑比较容易识别,但难以明确说出识别的规则。这正是深度学习适合的问题。另外还有一个重要原因就是这些领域有足够多的数据来训练神经网络。而一般的预测问题,可能本身不够复杂,也可能数据不够多。面对这些问题,一般是先试验简单的、传统的机器学习模型,当它们明显表现出瓶颈的时候,再去试深度学习模型。

  • 仓库优化  一个深度学习系统,在仓库中用最佳的方式拿取和放置物品,这种系统明显快于传统的研究方法,并且效率更高。

  • 个性化   亚马逊使用深度学习技术来驱动其个性化功能
  • 脑肿瘤检测   在2013年BRATS测试数据集上的报结果表明,802,368参数网络比已发布的最先进的技术改进了超过30倍。
  • 省电   Google正在使用DeepMind人工智能子公司的技术,以大幅节省其数据中心的电力功耗。
  • AlphaGo

  • 蒙特卡洛树搜索 (MCTS) 是大框架,是许多博弈AI都会采用的算法

  • 强化学习 (RL) 是学习方法,用来提升AI的实力 深度神经网络 (DNN) 是工具,用来拟合局面评估函数和策略函数

理解唇语

  理解唇语音频用 LSTM(Long Short-Term Memory)长短期记忆网络),视频用 CNN(卷积神经网络)+LSTM。这两个状态向量提供给最后的 LSTM,然后再生成结果
  
图片搜索

1.将图像大致分为10大类(可分为上万个子类)
2.检测前景对象
3.提取CNN特征和局部特征(例如SIFT)
4.对数据库构建索引
5.提取检索目标特征,分布式搜索
6.根据不同的优化目标重新排序

  摘要:移动端的以图搜图是一代又一代的图像人,搜索人的梦想。从90年代开始,学术界,工业界做了很多的努力和尝试。拍立淘-以图搜图,从14年正式立项开始,通过算法/工程/产品的不断打磨,以及兄弟部门的紧密合作,在业务指标的增长的同时,沉淀下来了业界领先的图搜算法。
一、为什么要做,为什么现在做
1.1 为什么做:
  以图搜图功能,特别是移动端的以图搜图,成为日益增长的流量入口和用户需求。有机构表明:未来5年,用户使用语音和图像进行意图表达的比例将超过50%。手机淘宝每个月的用户反馈中,有相当的比例都是用户对以图搜图的需求和渴望。
1.2 为什么现在:
  1. 移动设备的普及:带有摄像头的移动设备的日益普及。
  2. 深度学习时代:从2013开始,深度学习在图像、语音、NLP等领域的工业界取得了巨大成功。
  3. 大规模的计算平台的普及:如ODPS,亚马逊云。
  4. 电商:移动电商的发展,使得通过手机进行所拍即所买成为用户的自然诉求。同时活跃的用户留下的数据使得相关性等能不断提升。
二、算法框架
  拍立淘首次上线是在2014年手机淘宝,很小的入口,功能也比较少。经过了多个版本的迭代和探索,形成了比较稳定的算法框架。如下图: 上面的框架,有5个算法模块,分别是类目预测,主体检测,图像特征提取,检索索引和排序。其中,与相关性有关的是类目预测,主体检测,特征和排序。而检索索引更多的与scalability相关。
  2.1 类目预测
  由于特征对于类目的区分能力有限,同时如果不分类目在全量中搜索性能无法满足。因此,我们通过类目预测来判断商品数据哪个类目。目前拍立淘有10多个大类,涵盖上万个叶子类目。
  2.2 主体检测
  因为商品的背景复杂,主体常常较小,所以为了减少大量背景干扰和多主体的影响,因此需要将搜索目标从图像中提取出来。下面两幅图反应了对于用户的query,进行主体检测和不进行主体检测的搜索结果差异。
  2.3 图像特征
  图像特征包括深度特征(CNN深度卷积神经网络)和局部特征。CNN从高层提取特征,突破语义鸿沟。局部特征关注图像的局部特征,可以作为CNN特征的辅助和补充。
  2.4 检索索引
  搜索的过程可以分成离线和在线。离线过程进行商品图像特征的提取,建立索引。而在线的过程,对query提取特征,到分布式的引擎里面去进行快速的查询。
  2.5 排序
  针对多种图像特征,和非图像的特征,根据不同的优化函数,我们会对结果进行重新的排序。
三、拍立淘业务
  经过长期的迭代和优化,拍立淘不仅能够为用户提供同款和高度相似的搜索结果,并且在覆盖的类目和索引的宝贝上也达到了相当可观的量级。 目前拍立淘的算法可以支持几亿图片的实时检索索引,其中包括男女服装,包,鞋以及其他如美妆,家居,饰品等不同种类的商品。此外,拍立淘还提供了一键搜索的用户体验,用户只需进行拍照即可得到最终的结果而不需要额外的操作。
  目前拍立淘产品有如下的展现形式:
  1. 移动端:拍立淘在手淘上有两个入口,分别是搜索框右侧的拍照按钮,以及扫一扫页面中的拍立淘Tab。
  2. PC端:PC淘宝的搜索框
  3. 外部和网页插件:http://www.pailitao.com

HOW?如何学习深度学习

tensorflow开源框架
Fast.ai

  • http://www.fast.ai/ https://github.com/fastai/fastai
  • https://www.kaggle.com/c/dogs-vs-cats
  • https://www.kaggle.com/c/mercari-price-suggestion-challenge

下一篇讲解深度学习核心技术卷积神经网络

深度学习第一讲之深度学习基础相关推荐

  1. 【深度学习】讲一个深度分离卷积结构和空洞卷积的应用

    [深度学习]讲一个深度分离卷积结构和空洞卷积的应用 文章目录 前言:看一张图像 1 概述1.1 正常卷积1.2 Depth可分离卷积 2 深度可分离卷积的优点 3 空洞(扩张)卷积(Dilated/A ...

  2. Apollo星火计划学习笔记——第一讲 使用Apollo学习自动驾驶

    引言 如何学习自动驾驶? 自动驾驶是集车辆.计算机.电子电气.人工智能.通信等多学科应用为一体的的复杂系统.针对自身专业背景结合自动驾驶发展进行学习: 自动驾驶是通过智能系统来驾驶汽车从而取代了驾驶员 ...

  3. 学习笔记:星火第一讲-使用Apollo 学习自动驾驶

    星火第一讲-使用Apollo 学习自动驾驶 引言 如何学习自动驾驶? 自动驾驶是集车辆.计算机.电子电气.人工智能.通信等多学科应用为一体的的复杂系统.针对自身专业背景结合自动驾驶发展进行学习: 自动 ...

  4. Redis第一讲:相关的基础知识/数据类型/缓存的过期策略/双写一致性/内存存储和持久化

    Redis第一讲:相关的基础知识 摘要:本文是Redis(6.2.1)详解的第一讲,介绍Redis相关的基础知识,内存存储和持久化,Redis作缓存使用时的注意要点,常见的数据类型,缓存的过期策略,R ...

  5. .NET基础学习-第一讲笔记

    目录 一.概念 1.简介.NET 2.简介C# 二.基础 1.关键字/保留字 2.变量与常量 3.基本类型 4.值类型和引用类型 5.流程控制语句 6.命名空间 一.概念 1.简介.NET (1).N ...

  6. 2019-0331视觉SLAM的学习第一讲

    视觉SLAM第一讲学习笔记 框架显示 第一讲主要内容 资源获取 框架显示 第一讲主要内容 我就不多bb后面三个概述了,今天开始说明一下SLAM的第一讲的内容,接下来13天每天按时按量完成任务,立个FL ...

  7. 数据结构-第一讲 基本概念-学习笔记(MOOC 浙江大学 陈越 何钦铭)

    目录 第一讲 基本概念 1.1 什么是数据结构 1.1.1 关于数据组织 - 例:图书摆放 1.1.2 关于空间使用 - 例:PrintN函数实现 1.1.3 关于算法效率 - 例:计算多项式值 计算 ...

  8. python深度学习第一讲——用python写神经网络

    神经网络输入层到第一层的传递,也就是wx+b 用矩阵的形式写出 激活函数用sigmoid函数,其图像如下 三层神经网络的python代码如下 def sigmoid(x):return 1 / (1+ ...

  9. 吴恩达深度学习第一课--第二周神经网络基础作业上正反向传播推导

    文章目录 正向传播推导 第i个样本 向量化(从个别到整体) 判断向量维度 将原始数据进行整合 反向传播推导 第i个样本 损失函数 代价函数 梯度下降法(实则是多元函数求微分) 向量化(从个别到整体) ...

最新文章

  1. uniapp 鸿蒙,关于前端:uniapp项目安装运行操作手册
  2. maven 简易入门笔记
  3. OpenCV创建自己的corner检测器
  4. 单片机实用工具大全,超级赞,工程师必备!
  5. PHP连接MySQL报错:Fatal error: Call to undefined function mysql_connect()之解决方法
  6. python赋值语句的一般格式为_[零基础学Python]赋值,简单也不简单
  7. tcp连接工具_基于Swoole如何搭建TCP服务,你掌握了吗?
  8. linux为mysql用户授权,Linux环境 Mysql新建用户和数据库并授权
  9. Android利用温度传感器实现带动画效果的电子温度计
  10. MFC初探 —— 设置软件开机自启
  11. MS CRM 2011 汇总更新4已经发布
  12. 零基础搭建Hadoop大数据处理
  13. 前端精英你是什么样的呢
  14. 【经验分享】数学建模论文格式要求及常见问题汇总
  15. win10浏览器html设置字体大小设置,Win10网页字体变小了如何变大?网页字体变小了调节方法...
  16. AJP:纵向研究:抑郁症青年在当前期和累积期的奖赏系统的功能障碍具有不同的神经基础
  17. python基础教程网易云_Python爬虫教程:网易云音乐歌词
  18. arduino读取控制手柄
  19. 使用weixin-java-miniapp实现微信小程序登录接口
  20. 小学生计算机认识ppt,小学生认识计算机概要.ppt

热门文章

  1. laravel-admin 出现SQLSTATE[42S01]: Base table or view already exists: 1050 Table ‘users‘ already exist
  2. 关于虚拟机镜像无法检测
  3. zb怎么做渲染图_zbrush精加工和渲染
  4. 遗传算法解决寻路问题——Python描述
  5. 记ViewModel和LiveData使用的一些坑与注意点
  6. 第十三章、IO流_File类与递归/基本流/增强流/属性集与打印流__黑马Java第57期个人学习笔记_个人笔记
  7. 芯片热阻系数学习 芯片温度
  8. 【解析几何】解析几何(Analytic geometry)
  9. Java开发知识体系!javadruid数据库连接池
  10. Generic Timer Module (GTM)