原文链接:https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/

神经网络是更复杂版本的特征组合。实质上,神经网络会学习适合相应特征组合。

1- 剖析

“非线性问题”意味着无法使用形式为“$b + w_1x_1 + w_2x_2$”的线性模型准确预测标签。
对非线性问题可以用特征组合的方法进行建模。

隐藏层

“隐藏层”表示中间值。
如果构建一个多层模型,“隐藏层”每个节点是上一层输入节点值的加权和,输出是“隐藏层”节点的加权和,那么此模型仍是线性的。
因为当将输出表示为输入的函数并进行简化时,只是获得输入的另一个加权和而已。
       

激活函数

要对非线性问题进行建模,可以直接引入非线性函数。
可以用非线性函数将每个隐藏层节点像管道一样连接起来。
在隐藏层中的各个节点的值传递到下一层进行加权求和之前,采用一个非线性函数对其进行了转换,这种非线性函数称为激活函数。
       
通过在非线性上堆叠非线性,能够对输入和预测输出之间极其复杂的关系进行建模。
简而言之,每一层均可通过原始输入有效学习更复杂、更高级别的函数。

常见激活函数

S型激活函数

S型激活函数将加权和转换为介于 0 和 1 之间的值。
S 型函数的响应性在两端相对较快地减少。
公式:
       $F(x)=\frac{1} {1+e^{-x}}$
曲线图:
      

修正线性单元激活函数(简称为 ReLU)

ReLU 的优势:基于实证发现(可能由 ReLU 驱动),拥有更实用的响应范围。
相较于 S 型函数等平滑函数,效果通常要好一点,同时还非常易于计算。
公式:
        $F(x)=max(0,x)$
曲线图:
       

其他激活函数

实际上,所有数学函数均可作为激活函数。
TensorFlow 为各种激活函数提供开箱即用型支持。建议从 ReLU 着手。

2- 总结

通常所说的“神经网络”的所有标准组件:

  • 一组节点,类似于神经元,位于层中。
  • 一组权重,表示每个神经网络层与其下方的层之间的关系。下方的层可能是另一个神经网络层,也可能是其他类型的层。
  • 一组偏差,每个节点一个偏差。
  • 一个激活函数,对层中每个节点的输出进行转换。不同的层可能拥有不同的激活函数。

3- 练习

xxx

4- 关键词

激活函数 (activation function)
一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

隐藏层 (hidden layer)
神经网络中的合成层,介于输入层(即特征)和输出层(即预测)之间。神经网络包含一个或多个隐藏层。

神经网络 (neural network)
一种模型,灵感来源于脑部结构,由多个层构成(至少有一个是隐藏层),每个层都包含简单相连的单元或神经元(具有非线性关系)。

神经元 (neuron)
神经网络中的节点,通常会接收多个输入值并生成一个输出值。
神经元通过将激活函数(非线性转换)应用于输入值的加权和来计算输出值。

修正线性单元 (ReLU, Rectified Linear Unit)
一种激活函数,其规则如下:

    • 如果输入为负数或 0,则输出 0。
    • 如果输入为正数,则输出等于输入。

S 型函数 (sigmoid function)
一种函数,可将逻辑回归输出或多项回归输出(对数几率)映射到概率,以返回介于 0 到 1 之间的值。
S 型函数的公式:$y = \frac{1}{1 + e^{-\sigma}}$
在逻辑回归问题中, $\sigma$非常简单:$\sigma = b + w_1x_1 + w_2x_2 + … w_nx_n$
换句话说,S 型函数可将$\sigma$转换为介于 0 到 1 之间的概率。
在某些神经网络中,S 型函数可作为激活函数使用。

机器学习入门14 - 神经网络简介 (Introduction to Neural Networks)的更多相关文章

  1. 今天开始学模式识别与机器学习(PRML),章节5.1,Neural Networks神经网络-前向网络。

    今天开始学模式识别与机器学习Pattern Recognition and Machine Learning (PRML),章节5.1,Neural Networks神经网络-前向网络. 话说上一次写 ...

  2. 卷积神经网络用于视觉识别Convolutional Neural Networks for Visual Recognition

    Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalizat ...

  3. [翻译]用神经网络做回归(Using Neural Networks With Regression)

    本文英文原文出自这里, 这个博客里面的内容是Java开源, 分布式深度学习项目deeplearning4j的介绍学习文档. 简介: 一般来说, 神经网络常被用来做无监督学习, 分类, 以及回归. 也就 ...

  4. cs231n spring 2017 lecture4 Introduction to Neural Networks 听课笔记

    1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...

  5. CS231n笔记 Lecture 4 Introduction to Neural Networks

    这一讲主要介绍了神经网络,基本内容之前如果学习过Andrew的Machine learning应该也都有所了解了.不过这次听完这一讲后还是有了新的一些认识. 计算图 Computational gra ...

  6. cs231n spring 2017 lecture4 Introduction to Neural Networks

    1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...

  7. 机器学习入门 - Google机器学习速成课程 - 笔记汇总

    机器学习入门 - Google机器学习速成课程 https://www.cnblogs.com/anliven/p/6107783.html MLCC简介 前提条件和准备工作 完成课程的下一步 机器学 ...

  8. 卷积神经网络(Convolutional Neural Networks)CNN

     申明:本文非笔者原创,原文转载自:http://www.36dsj.com/archives/24006 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural ...

  9. 一目了然卷积神经网络 - An Intuitive Explanation of Convolutional Neural Networks

    An Intuitive Explanation of Convolutional Neural Networks 原文地址:https://ujjwalkarn.me/2016/08/11/intu ...

随机推荐

  1. mysql导出导入数据

    使用sql语句导出数据: 导出时如果不写绝对路径,会提示The MySQL server is running with the --secure-file-priv option so it can ...

  2. mac查看当前调用tcp的进程并关闭指定进程

    查看所有tcp进程 监听的端口 lsof -iTCP -sTCP:LISTEN 查看指定端口信息 lsof -i: 关闭指定进程 kill -

  3. 面向对象(特殊成员 组合 self)

  4. 使用ajax实现html页面产品详情页文字具体内容

    <script type="text/javascript" src="Assets/js/jquery.min.js"></script&g ...

  5. ili 一例业务系统框架

    ili即ilinei的简称,像名字一样,是ILINEI团队的内部项目简化而来.2017年金鸡报晓,我们为同行送来了一个简单.快速.轻量级的PHP开源系统,它的任务当然也是唯一的任务,就是提高WEB开发 ...

  6. 在IIS7上导出所有应用程序池的方法批量域名绑定

    在IIS7+上导出所有应用程序池的方法:%windir%/system32/inetsrv/appcmd list apppool /config /xml > c:/apppools.xml ...

  7. Hibernate框架:CRM练习--保存客户

    crm:customer ralation manager 客户关系管理系统 一.准备 1.创建web项目 2.导包 最终为: 3.引入静态页面 将文件复制放入项目的WebContent目录下面: 4 ...

  8. Java中十六进制转换 Integer.toHexString()

    为了显示一个byte型的单字节十六进制(两位十六进制表示)的编码,请使用: Integer.toHexString((byteVar & 0x000000FF) | 0xFFFFFF00).s ...

  9. 线程中的队列(queue)

    队列的类型和常用方法 队列是一种数据结构,它类似于列表.但列表是线程不安全的,而队列是线程安全的. python的queue(python3,python2为Queue)提供了3种队列: Queue: ...

  10. vs C++ scanf 不安全

    项目->属性-> c/c++->预处理器->预处理器定义->加入下面这句: _CRT_SECURE_NO_DEPRECATE