当前位置:网站首页>李宏毅机器学习(2017版)_P13:深度学习
李宏毅机器学习(2017版)_P13:深度学习
2022-07-26 22:42:00 【北海虽赊,扶摇可接】
目录

相关资料
开源内容:https://linklearner.com/datawhale-homepage/index.html#/learn/detail/13
开源内容:https://github.com/datawhalechina/leeml-notes
开源内容:https://gitee.com/datawhalechina/leeml-notes
视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef
官方地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
1、深度学习的三个步骤
1.1、神经网络(Neural Network)
1.1.1、概念
神经网络(Neural network)里面的节点,类似我们的神经元。
神经网络:不同的连接方式会产生不同的结构(structure)。
神经网络里面有很多逻辑回归函数,其中每个逻辑回归都有自己的权重和自己的偏差,这些权重和偏差就是可以优化的参数。
1.1.2、全连接前馈神经网络(Fully Connect Feed forwardNetwork)
前馈or前向(feedforward):输入信号进入网络后,信号流动是单向的,无反馈流动。即信号从前一层流向后一层,一直到输出层。
神经网络如果权重和偏差都知道的话就可以看成一个函数。这个函数输入是一个向量(输入层维度),对应的输出也是一个向量(输出层维度)。不论是做回归模型(linear model)还是逻辑回归(logistics regression)都是定义了一个函数集(function set)。
1.1.3、隐藏层

结构:
- 输入层(Input Layer):1层
- 隐藏层(Hidden Layer):N层
- 输出层(Output Layer):1层
- 全连接:layer之间两两都有连接,所以叫做Fully Connect;
- 前馈or前向:传递的方向是由后往前传,所以叫做Feedforward。
通过隐藏层进行特征转换:
使用隐藏层进行特征提取,替代原来的特征工程。最后一个隐藏层输出的就是一组新的处理过的特征;对于输出层,其实是把前面的隐藏层的输出(最好的特征)当做输入,然后通过一个多分类器(可以是softmax函数)得到最后的输出y。
Example:Minist
输入:一个16*16=256维的向量,每个pixel对应一个dimension,有颜色用(ink)用1表示,没有颜色(no ink)用0表示
输出:10个维度,每个维度代表一个数字的置信度。
Tips:
- 对于有些机器学习相关的问题,一般用特征工程来提取特征。但是对于深度学习,我们只需要设计神经网络模型来进行就可以了。对于语音识别和影像识别,深度学习是个好的方法,因为特征工程提取特征并不容易。
- 有很多设计方法可以让机器自动找到神经网络的结构的,比如进化人工神经网络(Evolutionary Artificial Neural
Networks)但是这些方法并不是很普及 。 - 可以自己设计网络结构,例如 CNN卷积神经网络(Convolutional Neural Network)
2、模型评估(Goodness of function)
2.1、单个数据损失

对于神经网络来说,采用交叉熵(cross entropy)函数来对 y y y和 y ^ \hat{y} y^的损失进行计算,接下来就是调整优化参数,让交叉熵越小越好。
2.2、模型数据总体损失

对于总损失,计算整体所有训练数据的损失,然后把所有的训练数据的损失都加起来,得到一个总体损失L。接下来就是在function set里面找到一组函数能最小化这个总体损失L,即是找一组神经网络的参数 θ \theta θ,来最小化总体损失L。
3、选择最优函数(Pick best function)

使用梯度下降找到最优的函数和最好的一组参数,计算偏微分,并不断自身迭代优化参数。
在神经网络中计算损失最好的方法就是反向传播,可以用很多框架来进行计算损失,比如说TensorFlow,Pytorch等。
深度学习框架,核心是对于反向传播的计算。
4、思考
- 理论上,隐藏层越多越好。我认为实际可能不是。一方面是会存在过拟合问题,另一方面,例如ResNet,隐藏层过多,如果不采用残差结构,可能无法训练计算。
- 对于任何一个连续的函数,都可以用足够多的隐藏层来表示。
边栏推荐
猜你喜欢

MySQL index optimization: under what circumstances do you need to build an index (several situations suitable for building an index)

Solve the problem of direct blue screen restart when VMware Workstation virtual machine starts

基于Flink实时项目:用户行为分析(二:实时流量统计)

Doris或StarRocks Jmeter压测

One of the Flink requirements - processfunction (requirement: alarm if the temperature rises continuously within 30 seconds)

Neo4j Basic Guide (installation, node and relationship data import, data query)

VMware Workstation 虚拟机启动就直接蓝屏重启问题解决

深入理解Pod对象:基本管理

基于Flink实时计算Demo:用户行为分析(四:在一段时间内到底有多少不同的用户访问了网站(UV))

Understanding of Flink checkpoint source code
随机推荐
ADB shell screen capture command
flink需求之—ProcessFunction(需求:如果30秒内温度连续上升就报警)
Write the changed data in MySQL to Kafka through flinkcdc (datastream mode)
深度学习汇报(2)
数据库表连接的简单解释
基于Flink实时计算Demo:用户行为分析(四:在一段时间内到底有多少不同的用户访问了网站(UV))
Golang切片make与new的区别
解决rsyslog服务占用内存过高
Spark----- RDD 的 Shuffle 和分区
MySQL index optimization: under what circumstances do you need to build an index (several situations suitable for building an index)
Redisson working principle - source code analysis
onSaveInstanceState和onRestoreInstanceState方法的调用
Based on Flink real-time project: user behavior analysis (III: Statistics of total website views (PV))
Valueerror: the device should not be 'GPU', since paddepaddle is not compiled with CUDA
Flink based real-time project: user behavior analysis (I: real-time popular product statistics)
短视频App开发有哪些必备的功能?
Which securities company has a low stock commission and which stock is safe to open an account
Redisson 工作原理-源码分析
移动直播选择 RTMP 还是RTC协议
flinksql 窗口提前触发