1.1 深度学习定义
首先我们要弄懂人工智能,机器学习,深度学习还有神经网络这些看起来很高冷的专业术语都是啥意思。
人工智能(Artificial Intelligence - AI)
人工智能是指可模仿人类智能来执行任务,并基于收集的信息对自身进行迭代式改进的系统和机器。
机器学习(Machine Learning - ML)
机器学习是人工智能的一个分支。人工智能的研究历史有着一条从以“推理”为重点,到以“知识”为重点,再到以“学习”为重点的自然、清晰的脉络。
显然,机器学习是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。
机器学习的三类:
- 无监督学习:指的是从信息出发自动寻找规律,并将其分成各种类别,有时也称"聚类问题"。
- 监督学习:给一个标签,运用模型预测结果。有一条狗,告诉网络这是狗并且告诉网络通过什么特征判断的,网络通过这些特征的学习来判断是不是狗
- 强化学习:强调如何基于环境而行动,以取得最大化的预期利益。人话:对人的一些动作、行为产生奖励的回馈机制,通过这个回馈机制促进学习,这与人类的学习相似,所以强化学习是目前研究的重要方向之一。
深度学习(Deeplearning)
深度学习是机械学习的一种,是一种以人工神经网络为架构,对数据进行表征学习的算法。
从数据预测,分类任务到图像识别,物体识别,声音识别等人工智能领域上发挥重大的作用。
人工神经网络(Artificial Neural Network - ANN)
在机器学习和认知科学领域,是一种模仿生活神经网络(大脑)的结构和功能的数学模型活计算模型,用于对函数进行估计或近似。
1.2 深度学习具体应用
- 计算机视觉
- 文字以及数字识别:手写的文字通过照相然后转换成电子文字这个功能就是用文字识别实现的,文字识别又叫OCR。
- 物体识别:通过对图像内各个物体的特征分析来判断当前物体是什么或者是谁,人脸识别,人体识别等都包含在这里。
- 自动驾驶:自动驾驶识别道路环境中的人,车,标识牌等都是通过这个功能实现的。
- 语音技术
- 语音识别:声音转文字技术
- 语义理解:Siri,小度,智能家居领域
- 智能降噪
- 自然语言处理
- 翻译:翻译机
- 人机对话:各大官网,网店几乎都有人工答复的功能,最近谷歌的工程师说谷歌开发的聊天机器人LaMDA产生智慧的事件,让人有些害怕,感兴趣的朋友可以查一下。
- 决策系统
- 游戏AI:当年轰动世界谷歌的[AlphaGo]赢了世界第一的围棋大师。以及我们玩游戏里面的AI,不知不觉的慢慢在变的厉害。
- 垃圾邮件分类
- 大数据应用
- 信用卡使用异常分析
- 金融:股票分析
- 推荐功能:分析商品受欢迎度,以及网络商店自动的推荐,抖音,快手猜你喜欢的功能
- 医疗诊断:通过对患者数据的收集以及比对,对患者当前的病症进行诊断,帮助医生更好的诊断病症。
当然以上很多领域的应用中都不止使用一个技术,现在很多应用都是很多技术复合产生的产品。
随着技术,硬件(GPU,算法芯片),数据多样性等各个方面的提升,AI这个以前看起来离生活比较远的词,现在已经渗入到我们生活的方方面面,充斥着全天各个时间,从早上新闻的推送,手机刷脸解锁,到公司刷脸打卡,上班遇到问题的智能检索,自动贩卖机的人脸支付,外卖软件的符合你口味的智能推荐,晚上打开抖音的猜你喜欢,一直到你睡觉智能设备分析你的健康报告等。有没有发现我们已经被AI牵着鼻子走了。。
1.3 深度学习详解
前面说深度学习是人工神经网络为架构的,那到底是什么样子的。
在说人工神经网络之前,我们先了解一下我们自己的生物的神经网络是什么样的。
-
生物神经系统
我们的神经网络是由下图一个一个神经元组成的。
神经元之间互相转递信号形成网络
-
人工神经元
- a1~an为输入向量的各个分量
- w1~wn为神经元各个突触的权值
- b为偏置
- f为传递函数,通常为非线性函数。一般有traingd(),tansig(),hardlim()。以下默认为hardlim()
- t为神经元输出
人工神经网络的结构
输入神经元(a)→ 经过对各个神经元权重W(参数)和偏置项(b)进行计算求和SUM → 对SUM进行激活函数(f)的转换 → 神经元输出(t)
-
权重,偏置项,激活函数
权重:权重是与每个要素关联的实际值,表明了该要素在预测最终值中的重要性。
偏置项:偏差用于将激活函数向左或向右移动,在线性方程式中可以称为y截距。
激活函数:将非线性引入神经网络,使其能够学习更复杂的函数。
常用的激活函数:Sigmoid, RELU, Softmax等
上面的权重(权值)就是参数,就像一元一次方程 ax + b = y a就是参数,b呢就是偏置项,有了b才能让函数移开原点,就像下面的图片(网上随便找的),如果不偏离原点是无法更好的分类。
好了,到了激活函数,为什么要用激活函数,首先我们的目的是分类或者是判断,就拿垃圾邮件辩解来说,你需要判断具有什么样的特征的邮件才算垃圾邮件把,特征肯定不止是一个,所以这里判断特征的函数就是激活函数,就是达到标准了就判定你为垃圾邮件,那为什么要非线性函数呢。前面阐述有个问题,肯定有误判,就像零和博弈,比如垃圾邮件的特征一共有10个,那6个就被判定为垃圾邮件,这就是阶跃函数,非黑即白那肯定容易判定错误,所以需要一个非线性函数,来描述之前的邮件是有多少概率为垃圾邮件,你可以设定如果这封邮件符合垃圾邮件的概率为95%,那我可以认定它为垃圾邮件。
从两个函数的图可以看到上面描述的内容,这里的非线性函数就是Sigmoid函数(S型函数),
-
感知器
在聊人工神经网络之前,先介绍一下这个名词,它长下面这个样,眼熟吗,跟人工神经元一样。感知器就是第一个具有完整算法描述得神经网络学习算法(PLA),任何线性分类或线性回归问题都可以用感知器来解决。下面这样的是单层感知器
-
人工神经网络
现在可以聊人工神经网络了,下面是它的样子,怎么样?好像就是几个单层感知器拼起来的样子。没错,它就是人工神经网络的另一个称呼 - 多层感知器(MLP)。这里有一个隐藏层,**深度学习(DNN)**就是有多个隐藏层的多层感知器。有点绕口但理解不难。
大家常常听到的DNN上面提到了,接下来简单的介绍一下**递归神经网络(RNN)和卷积神经网络(CNN),**大家记得一件事,所有新技术的出现,都是为了解决之前技术的问题。
之前的全连接层的DNN存在着一个无法解决的问题,就是无法对时间序列上的变化进行建模。DNN只能够接受当前时刻上一层的输入,但在RNN中,它的隐藏层不但可以接受上一层的输入,还能得到上一时刻前隐藏层的输入。就是上一刻隐藏层和当前输入层的结合,形成了当前时刻的隐藏层。如果不是太明白没有关系,先了解一下,后期在代码以及实际应用中会更明确。 CNN主要是在人工视觉上的应用。CNN的隐藏层中包含**卷积层**,**池化层**和**全连接层**等单元。卷积层的作用就是对输入的数据进行特征提取,前面说它主要应用在视觉上,例如人脸识别,那卷积层就是提取人脸特征,其内部包含多个**卷积核**,一个卷积核覆盖的原始图像的范围叫**感受野**。池化层呢就是在卷积层的基础上在进行特征的选取和信息过滤,以降低运算,并且一定程度上模糊了特征信息,这样使得模型泛化更好。这里除了上面提到的几个层之外还有Dropout层,对数据进行标准化等技术,大家到这里很多专业名词不是很懂,没有关系,后期的文章中会在实际例子里详细说明这些名词的由来,它们的原理,以及作用还有起到多大的效果,都在实际构建模型中进行阐述。最后一个问题就是模型训练,训练的是啥?
这里有个二元一次方程 ax + by + c = F, 我们到现在学习的数学都是求x和y, 机器学习呢是求的a和b, 也就是给你x, y的答案,让你自己通过公式推导前面的条件。神经网络是一个更复杂的公式,所以不是一次就能推导到准确的条件,要不断迭代去找到这个正确的条件(参数),这个过程就是神经网络参数的训练。常用的方法是梯度下降法。
接下来会分享深度学习中使用的数学知识。
上面文章如果有欠缺或者错误的地方,欢迎各位大佬指正。