【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

时间:2022-04-11 20:26:18

第二课 传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

《深度学习》整体结构:

线性回归 -> 神经网络 -> 卷积神经网络(CNN)-> 循环神经网络(RNN)- LSTM

目标分类(人脸识别,物品识别,场景识别,文字识别),目标检测(安防,自动驾驶),视频分类(视频检索),语句生成(自动翻译,智能对话)

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

提纲:

1. 神经网络起源:线性回归

2. 从线性到非线性

3. 神经网络的构建

4. 神经网络的“配件”

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

 期待目标:

1. 了解从线性到非线性回归的转化

2. 明白如何构建神经网络,了解不同激励函数的区别联系

3. 掌握“配件”对神经网络性能的影响(损失函数 Cost,学习率 Learning Rate,动量,过拟合),会“调参”

4. 明白本节所有的“面试题”

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

线性回归:

1. 概念:线性关系来描述输入到输出的映射关系

2. 应用场景:网络分析,银行风险分析,基金股价预测,天气预报

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

线性回归:

一个线性回归问题

目标方程:y = ax1 + bx2 + cx3 + d

参数: m = [a, b, c, d]

数据:[(x1,1, x2,1,x3,1), (), (), ()]

预测:yt = ax1,t + bx2,t + cx3,t + d

目标:minimize (yt - yt)

总结:线性函数是一维函数,y = ax1 + bx2 + cx3 + d

现在要计算最佳参数 m = [a, b, c, d]

给定数据,计算出预测值,预测值与真实值计算Cost,当Cost最小的时候计算出 m = [a, b, c, d]

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

优化方法:梯度下降法

模型参数

当前 m0 = [a0, b0, c0, d0]

每一步 m?

参数 m = [a, b, c, d]

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

梯度下降:梯度计算

Loss = ax1 + bx2 + cx3 + d -y

梯度下降:参数更新

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

梯度下降法总结:

1. 随机初始化参数

开启循环 t= 0, 1, 2

带入数据求出结果 yt

与真值比较得到loss = y - yt

对各个变量求导得到 m

更新变量 m

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

线性回归的局限性:线性回归能够清楚的描述分割线性分布的数据,对非线性分布的数据描述较弱

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

非线性激励

考量标准:

1. 正向对输入的调整

2. 反向梯度损失

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

神经网络构建

神经元的“并联”和“串联”

从第一层神经网络到最终输出,每一个神经元的数值由前一层神经元数值,神经元参数W,b以及激励函数共同决定第n+1层,第k个神经元的方程,可由公式表示为:

在这里,m表示第n层神经网络的宽度,n为当前神经网络的深度

并联:深度,串联:宽度

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

MINIST 神经网络分类:

course_2_tf_nn.py

结构变化影响:

1. “并联”宽度影响

2. “串联”层数影响

3. Dropout

4. Learning rate

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

1. 损失函数 - Loss

影响深度学习性能最重要因素之一。是外部世界对神经网络模型训练的直接指导。

合适的损失函数能够确保深度学习模型收敛

设计合适的损失函数是研究工作的主要内容之一

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

总结:

1. 神经网络起源:线性回归

2. 从线性到非线性

3. 神经网络的构建

4. 神经网络的“配件”

下节课预告:链式规则反向求导,SGD优化原理,卷积神经网络(CNN)各个layers介绍

第二节课的代码

https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_2_tf_nn.py

https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_2_tf_nn.ipynb

具体通过TensorFlow构建神经网络的过程,通过Pycharm和 Python Notebook来完成实验,调参还部署很熟练。

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

TensorFlow 对数据进行简单的可视化实验:

 http://playground.tensorflow.org/

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络

【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络的更多相关文章

  1. 【原创 深度学习与TensorFlow 动手实践系列 - 4】第四课:卷积神经网络 - 高级篇

    [原创 深度学习与TensorFlow 动手实践系列 - 4]第四课:卷积神经网络 - 高级篇 提纲: 1. AlexNet:现代神经网络起源 2. VGG:AlexNet增强版 3. GoogleN ...

  2. 【原创 深度学习与TensorFlow 动手实践系列 - 3】第三课:卷积神经网络 - 基础篇

    [原创 深度学习与TensorFlow 动手实践系列 - 3]第三课:卷积神经网络 - 基础篇 提纲: 1. 链式反向梯度传到 2. 卷积神经网络 - 卷积层 3. 卷积神经网络 - 功能层 4. 实 ...

  3. 【原创 深度学习与TensorFlow 动手实践系列 - 1】第一课:深度学习总体介绍

    最近一直在研究机器学习,看过两本机器学习的书,然后又看到深度学习,对深度学习产生了浓厚的兴趣,希望短时间内可以做到深度学习的入门和实践,因此写一个深度学习系列吧,通过实践来掌握<深度学习> ...

  4. 分享《机器学习实战基于Scikit-Learn和TensorFlow》中英文PDF源代码&plus;《深度学习之TensorFlow入门原理与进阶实战》PDF&plus;源代码

    下载:https://pan.baidu.com/s/1qKaDd9PSUUGbBQNB3tkDzw <机器学习实战:基于Scikit-Learn和TensorFlow>高清中文版PDF+ ...

  5. 深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装

    一.硬件采购 近年来,人工智能AI越来越多被人们所了解,尤其是AlphaGo的人机围棋大战之后,机器学习的热潮也随之高涨.最近,公司采购了几批设备,通过深度学习(TensorFlow)来研究金融行业相 ...

  6. ML平台&lowbar;微博深度学习平台架构和实践

    ( 转载至: http://www.36dsj.com/archives/98977)  随着人工神经网络算法的成熟.GPU计算能力的提升,深度学习在众多领域都取得了重大突破.本文介绍了微博引入深度学 ...

  7. 深度学习之TensorFlow构建神经网络层

    深度学习之TensorFlow构建神经网络层 基本法 深度神经网络是一个多层次的网络模型,包含了:输入层,隐藏层和输出层,其中隐藏层是最重要也是深度最多的,通过TensorFlow,python代码可 ...

  8. 深度学习(TensorFlow)环境搭建:(三)Ubuntu16&period;04&plus;CUDA8&period;0&plus;cuDNN7&plus;Anaconda4&period;4&plus;Python3&period;6&plus;TensorFlow1&period;3

    紧接着上一篇的文章<深度学习(TensorFlow)环境搭建:(二)Ubuntu16.04+1080Ti显卡驱动>,这篇文章,主要讲解如何安装CUDA+CUDNN,不过前提是我们是已经把N ...

  9. 深度学习(TensorFlow)环境搭建:(二)Ubuntu16&period;04&plus;1080Ti显卡驱动

    前几天把刚拿到了2台GPU机器组装好了,也写了篇硬件配置清单的文章——<深度学习(TensorFlow)环境搭建:(一)硬件选购和主机组装>.这两台也在安装Ubuntu 16.04和108 ...

随机推荐

  1. 引用项目外dll时不显示注释的解决方案

    在引用项目外的dll时,显示类库中的注释可按以下步骤: 方法或变量用summary添加注释,如:         /// <summary>发送post请求         /// &lt ...

  2. ln 命令使用

    今天在工作中遇到了“ln -sf”命令,发觉很久没用基本忘光,遂重拾鸟哥神书温补了一把. 简单描述的话,ln是linux中用来链接文件的,存在两种不同的连接: 1) Hard Link 实现该操作很简 ...

  3. zabbix使用介绍

    zabbix自定义监控项 1.创建主机组,可以根据redis.mysql.web等创建对于的主机组 2.创建主机 3.创建Screens 4.自定义监控项 zabbix_agentd.conf配置文件 ...

  4. QTP实现功能测试的时候,当新版本的页面都改变了,应该如何解决

    去更改对象仓库的属性和更改对象仓库.

  5. POJ C程序设计进阶 编程题#6:流感传染

    编程题#6:流感传染 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 有一批 ...

  6. Java任务调度

    最近项目要用到任务调度的相关知识,昨天信心满满的去官网学习,结果被坑个半死,我用的最新版的quartz,文档里说是兼容所有版本,但是代码连编译都报错,无奈只好从网上找资料,摸着石头过河总算有点眉目,在 ...

  7. 创建支持CRUD&lpar;增删改查&rpar;操作的Web API&lpar;二&rpar;

    一:准备工作 你可以直接下载源码查看 Download the completed project.     下载完整的项目 CRUD是指“创建(C).读取(R).更新(U)和删除(D)”,它们是四个 ...

  8. &lbrack;Jmeter&rsqb;jmeter之初体验(windows下的jmeter)

    一.环境准备 1.安装JDK(传送门:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

  9. intersect for multiple vectors in R

    Say you have a <- c(1,3,5,7,9) b <- c(3,6,8,9,10) c <- c(2,3,4,5,7,9) A straightforward way ...

  10. for循环去重排序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...