本章讨论一种全新的建模理念,它不关心模型的假设以及相应的数学推导,也就是说不关心模型的可解释性,其核心内容是模型实现,虽然到目前为止,人们还无法理解,但在某些特定场景里预测效果却非常好。我们把这种模型称为神经网络,深度学习,人工智能等。


神经元

模型的输入是数据里的自变量

接收输入变量的是一个线性模型

接下来是一个非线性激活函数

,这是神经元模型的核心,常用的激活函数有很多,如sigmoid,ReLU,tanh,maxout等

模型各部分联结起来得到输出

,传递给下一个神经元

sigmoid 神经元与二元逻辑回归

sigmoid 函数作为神经元激活函数的两个好处:

实用:能将任意实数映射到(0,1)区间

理论:模拟了两种效应的竞争关系,可近似表达正效应大于负效应的概率

当模型被用于二元分类时,sigmoid神经元模型就是逻辑回归

softmax 函数与多元逻辑回归

独热编码:对于k元分类问题,用一个k维行向量来表示它的类别

Softmax 函数:给定输入数据,输出这个数据的类别概率

(softmax 函数)

对于k元逻辑回归,某个数据点的损失可以写成softmax函数与行向量的乘积形式

其中

是独热编码向量,

是Softmax函数


神经网络

神经元按层组织,每一层包含若干神经元,层内神经元相互独立,但相邻两层之间是全连接的

神经网络不同层按功能分为3类,分别是输入层,隐藏层,和输出层。

隐藏层里每一个圆圈包含线性模型和激活函数,统称神经元

输入层不对数据做处理

输出层只包含线性模型,没有激活函数

代码实现

借助第三方库tensorflow实现


反向传播算法(BP)

反向传播算法是神经网络的基石,但其本身却饱受质疑,因为没有生物学的支持,违背神经网络的建模理念,BP算法的核心是利用链式法则计算多元函数偏导数

计算的起点:

反向传播:

模型训练梯度:

BP算法和最大期望EM算法类似,可分为向前计算和向后计算

  • 首先随机生成模型参数

  • 根据现有的模型参数和训练数据,计算每个神经元的

  • 根据随机梯度下降法更新参数

提高神经网络的学习效率

改进激活函数

学习效率正比于激活函数的导数

sigmoid函数:非0中心;自变量远离0时导数接近0

tanh函数:以0为中心但是自变量远离0时导数接近0

ReLU函数:自变量小于0时,导数恒小于0,自变量大于0时,导数恒大于0

参数初始化:令

,其中m是上一层神经元个数,可以提高学习效率

梯度消失和梯度爆炸是同一个问题的两个极端,是神经网络的权重项叠加效应导致。

bp神经网络代码_精通数据科学笔记 神经网络相关推荐

  1. 图神经网络代码_第一篇:图神经网络(GNN)计算框架绪论

    写在开头: 这个专栏是为了总结我本科毕业设计中所设计的题目<基于GPU的图神经网络算法库的设计钰实现>.这半年来一直在这个方向上啃代码,读论文,真的学到了很多东西.尤其是阅读了大佬团队写的 ...

  2. 线性回归数据_数据科学笔记(三)——线性回归

    1. 机器学习眼中的线性回归 左图是原始建模数据,目的是用来寻找玩偶数量和成本的某种关系.右图将数据可视化得到散点图. 第一步 进行场景确定 第二步 定义损失函数 建模的目的:模型预测值与真实值之间的 ...

  3. 精通数据科学_10篇文章变得更加精通数据科学

    精通数据科学 当领英发布其第三份年度新兴工作报告时 ,各地的工程师都说:"阿们". 超过一半的清单是工程角色,并且首次出现了新的领域,例如机器人技术. 但是数据科学也有很强的表现. ...

  4. python神经网络算法pdf_高清图解:神经网络、机器学习、数据科学一网打尽|附PDF...

    原标题:高清图解:神经网络.机器学习.数据科学一网打尽|附PDF [导读]完全图解人工智能.NLP.机器学习.深度学习.大数据!这份备忘单涵盖了上述领域几乎全部的知识点,并使用信息图.脑图等多种可视化 ...

  5. 数据科学学习心得_学习数据科学时如何保持动力

    数据科学学习心得 When trying to learn anything all by yourself, it is easy to lose motivation and get thrown ...

  6. 精通数据科学的奥义:腰椎间盘突出防治

    每个数据工作者都需要一本从入门到腰椎间盘突出的参考书. 或者 再牛逼的技术也需要防治腰椎间盘突出. 一.什么是腰椎间盘突出? 首先看图说话,不专业的定义,腰椎间盘突出就是脊椎与脊椎之间的椎间盘变形了. ...

  7. 数据科学的应用案例_应用数据科学

    数据科学的应用案例 数据科学如何改善产品? (How can data science improve products?) 什么是预测模型? (What are predictive models? ...

  8. bp神经网络代码_机器学习(周志华)课后习题——第五章——神经网络

    5.1 试述将线性函数 用作神经元激活函数的缺陷. 答: 使用线性函数作为激活函数时,无论是在隐藏层还是在输出层(无论传递几层),其单元值(在使用激活函数之前)都还是输入 的线性组合,这个时候的神经网 ...

  9. 美团脱颖而出的经验_使数据科学项目脱颖而出的6种方法

    美团脱颖而出的经验 The global COVID-19 pandemic has left many with a lot of time on their hands to work on th ...

最新文章

  1. Linuxshell之高级Shell脚本编程-创建函数
  2. sqlalchemy 使用mysql_使用SQLALchemy连接MySql数据库并进行操作
  3. ASP.NET Core 介绍和项目解读
  4. Altium Designer 铺地
  5. VBA实战技巧精粹011:新建只有1张工作表的工作簿
  6. 在windows下使用Xming+Putty显示Linux下软件图形界面
  7. LDAP TLS配置
  8. mapreduce代码示例_MapReduce算法示例
  9. 关于IOS屏幕的旋转问题
  10. 使用PHP实现请求响应和MySql访问
  11. hibernate框架搭建与使用
  12. callback回调使用 vue_Vue实现剪切板图片压缩
  13. vray渲染里服务器信息,vray云服务器渲染部署(vray怎么渲染su)
  14. 杭州一般纳税人和小规模纳税人的区别
  15. 【STM32】 JR6001语音播放
  16. 前端小白仿写小米官网首页(静态页面+jquery轮播图)
  17. 中国剩余定理证明及代码实现
  18. Java如何实现贪吃蛇小游戏
  19. 拥有梦想的时候 拿出勇气和行动
  20. python程序中每条语句以分号结尾,在Python程序中,每条语句末尾必须添加分号。...

热门文章

  1. OO真经——关于面向对象的哲学体系及科学体系的探讨(下)
  2. Linux下载安装一个源码包
  3. 剑指offer66题 -- 输入一个链表,从尾到头打印链表每个节点的值
  4. C/C++通用Makefile
  5. 当选51CTO技术论坛2010年度十大杰出版主感言
  6. 酷我音乐盒里的MV怎么下载
  7. SecureCRT 连接虚拟机Linux
  8. retargeting PHP,Retargeting the Animation 教学
  9. 【转载】OpenCV(C++ 与 Python 的比较)与 MATLAB 的比较
  10. Python的seaborn库(图比较炫)