深度学习与人工神经网络的介绍
深度学习与人工神经网络
- 深度学习
- 机器学习和深度学习的区别
- 常见的深度学习框架
- 神经网络
- 人工神经网络的概念
- 神经元的概念
- 单层神经网络
- 感知机
- 多层神经网络
- 激活函数
深度学习
机器学习的分支,人工神经网络为基础,对数据的特征进行学习的方法。
机器学习和深度学习的区别
- 特征抽取:
- 机器学习:人工抽取特征的过程
- 深度学习:自动的进行特征抽取
- 数据量:
- 机器学习:数据量少,效果不是特别好
- 深度学习:数据量大,效果更好
- 应用场景:
- 深度学习:图像识别(物体识别、场景识别、人脸检测跟踪、人脸身份认证)、自然语言处理(机器翻译、文本识别、聊天对话)、语音识别
常见的深度学习框架
目前企业中常见的深度学习框架有很多:Tensorflow、Caffe2、Keras、Theano、PyTorch、Chainer、DyNet and CNTK等等。
神经网络
人工神经网络的概念
人工神经网络(Artificial Neural Network,ANN)是一种模仿生物神经网络的结构和功能的数学模型,用于对函数进行估计和近似。
和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如机器视觉和语音识别。
神经元的概念
神经网络中的基础单元,相互连接,组成神经网络。
一个简单的神经元如下图所示:
可见,一个神经元的功能是求得输入向量和权向量的内积后,经过一个非线性传递函数得到一个标量的结果。
单层神经网络
它是最基本的神经元网络形式,由有限个神经元组成,所有神经元的输入向量都是同一个向量,由于每一个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数目。
示意图如下:
感知机
感知机是由两层神经网络组成,输入层接受外界输入信号后传递给输出层。上部分的单层神经网络的示意图可以理解为有三个感知机。
感知机的作用:
简单的二分类模型,给定阈值,判断数值属于哪一部分。
把一个n维向量空间用一个超平面分割成两部分,给定一个输入向量,超平面可以判断出这个向量位于超平面的哪一边,得到输入是正类还是反类。对应到2维空间就是一条直线把一个平面分成两个部分。
多层神经网络
多层神经网络就是由单层神经网络进行叠加之后得到的,所以就形成了层的概念,常见的多层神经网络有如下结构:
- 输入层(Input layer),众多神经元接受大量输入消息。输入的消息称为输入向量。
- 输出层(Output layer),消息在神经元链接中传输、分析、权衡,形成输出结果,输出的消息称为输出向量。
- 隐藏层(Hidden layer),是输入层和输出层之间众多神经元和链接组成的各个层面,隐层可以有一层或多层,隐层的节点数目不定,但数目越多神经网络的非线性越显著,从而神经网络的强健性更显著。
示意图如下:
全连接层
第N层和第N-1层每个神经元相互连接,我们成为当前这一层为全连接层。
所谓的全连接层就是在前一层输出的基础上进行一次Y=Wx+bY=Wx+bY=Wx+b的变化(不考虑激活函数的情况下就是一次线性变化,所谓线性变化就是平移(+b)和缩放(*W)的组合)
激活函数
假设我们现在有这样一组数据,需要将他们分为两类。
通过感知机模型我们可以划出一条线,把平面分割开。
假设我们确定了参数w和b之后,可以看出无法通过直线完全分开,此时该如何做?
可以考虑使用多层神经网络来尝试,比如在前面的感知机模型中再增加一层。
增加一层后发现求y的公式类似,这样操作后依然只能绘制出直线,相比于前面的感知机,没有任何改进。
非线性的特征:已知有函数f(x)=yf(x)=yf(x)=y满足以下公式:
f(x1+x2)=y1+y2和f(kx1)=ky1f(x1+x2) = y1+y2和 f(kx1) = ky1 f(x1+x2)=y1+y2和f(kx1)=ky1
如果我们在感知机的基础上加上非线性的激活函数后,输出的结果就不再是一条直线了。
如上图,右边是sigmoid函数,对感知机的结果,通过sigmoid函数进行处理。
如果我们给定合适的参数w和b,就可以得到合适的曲线,能够完成对最开始问题的非线性分割,所以激活函数很重要的一个作用就是增加模型的非线性分割能力。如果你觉的没有效果不够明显,可以使用多层的隐藏层来使效果更加显著。
常见的激活函数有:
从图中可以看出:
- simoid的结果只有正数,靠近0的输出变化率最大
- tanh和sigmoid不同的是,tanh输出可以是负数
- Relu是输入只能大于0,如果你输入含有负数,Relu就不适合,如果你的输入是图片格式,Relu就挺常用的,因为图片的像素值作为输入时取值为[0,255]。
激活函数的全部作用:
- 增加模型的非线性分割能力
- 提高模型鲁棒性(稳健性)
- 缓解梯度消失问题
- 加速模型收敛
深度学习与人工神经网络的介绍相关推荐
- [python] 深度学习基础------人工神经网络实现鸢尾花分类(一)
人工神经网络实现鸢尾花分类(一) 人工神经网络实现鸢尾花分类(二) 人工神经网络实现鸢尾花分类(三) 人工神经网络实现鸢尾花分类(四) 人工神经网络实现鸢尾花分类(五) 目录 人工智能主 ...
- 吴恩达.深度学习系列-C1神经网络与深度学习-W1介绍
什么是神经网络 用神经网络进行监督学习 why is Deep Learning taking off?为啥神经网络能流行起来? About this Course Heroes of Deep Le ...
- 零基础入门深度学习(7) - 递归神经网络
无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...
- 深度学习(7): 卷积神经网络2——网络结构
文章目录 1 卷积神经网络的结构 1.1 输入层 1.2 卷积层 1.3 Pooling层 1.4 全连接层 1.5 输出层 2 卷积操作 2.1 Padding操作 2.2 滑动窗口卷积操作 2.3 ...
- 独家思维导图!让你秒懂李宏毅2020深度学习(三)——深度学习基础(神经网络和反向传播部分)
独家思维导图!让你秒懂李宏毅2020深度学习(三)--深度学习基础(神经网络和反向传播部分) 长文预警!!!前面两篇文章主要介绍了李宏毅视频中的机器学习部分,从这篇文章开始,我将介绍李宏毅视频中的深度 ...
- 【深度学习】卷积神经网络速成
[深度学习]卷积神经网络速成 文章目录 [深度学习]卷积神经网络速成 1 概述 2 组成 2.1 卷积层 2.2 池化层 2.3 全连接层 3 一个案例 4 详细分析 1 概述 前馈神经网络(feed ...
- 谷歌新 AI 实验室主管 Hugo 深度学习教程:神经网络、CV、NLP 难点解析
谷歌新 AI 实验室主管 Hugo 深度学习教程:神经网络.CV.NLP 难点解析 [日期:2016-12-16] 来源:新智元 作者: [字体:大 中 小] 11月22日,谷歌在蒙特利尔的 ...
- 深度学习之循环神经网络(11)LSTM/GRU情感分类问题实战
深度学习之循环神经网络(11)LSTM/GRU情感分类问题实战 1. LSTM模型 2. GRU模型 前面我们介绍了情感分类问题,并利用SimpleRNN模型完成了情感分类问题的实战,在介绍完更为强 ...
- 深度学习之循环神经网络(10)GRU简介
深度学习之循环神经网络(10)GRU简介 1. 复位门 2. 更新门 3. GRU使用方法 LSTM具有更长的记忆能力,在大部分序列任务上面都取得了比基础RNN模型更好的性能表现,更重要的是,LST ...
- 深度学习之循环神经网络(8)长短时记忆网络(LSTM)
深度学习之循环神经网络(8)长短时记忆网络(LSTM) 0. LSTM原理 1. 遗忘门 2. 输入门 3. 刷新Memory 4. 输出门 5. 小结 循环神经网络除了训练困难,还有一个更严重的问 ...
最新文章
- 如何用Visual Studio Code远程调试运行在服务器上的nodejs应用
- QT的QTextStream类的使用
- mysql006添加外键约束
- php 水平测试,测试您的 PHP 水平的题目_PHP教程
- 【计算机网络复习 数据链路层】3.6.1 局域网
- Django上传文件,制作文件上传按钮,form上传文件
- 最近很火的桌面小猫代打器 人性化UI设置界面
- IOS开发之手势——UIGestureRecognizer 共存
- POJ 2287 田忌赛马 贪心算法
- python 实现 画图器_python实现画图工具
- 测试进阶必备,这5款http接口自动化测试工具真的很香
- Error while executing: am start -n(更换包名)
- Google Play评论抓取
- cad调了比例因子没反应_大神们都在用的9个CAD制图技巧,你会用几个?
- Kubernetes HPA 的三个误区与避坑指南
- ERROR:Session/line number was not unique in database. History logging moved to new session.
- VR,正在上演一出“风月宝鉴”
- EasyExcel大批量数据导出OOM,个人案例和解决办法
- TF-IDF 词向量
- 基于 Python django 的小型论坛系统