机器学习(十一) ——神经网络基础

机器学习(十一)——神经网络基础

(原创内容,转载请注明来源,谢谢)

一、概述

神经网络,可以理解为输入的内容,经过一系列的内部的处理,得到输出的假设函数。简单的神经网络如下图:

可以看出,三个输入,经过中间的变化,得到输出。中间橙色的圈,称为神经元。神经元可以分层,下图是三层神经网络模型:

其中,第一层蓝色的圈,叫做输入层;中间一层橙色的圈叫做隐藏层;右边的橙色圈叫做输出层。神经网络有一个输入层和一个输出层,隐藏层可以有多层。神经元的连接方式,称为神经网络的架构。

二、基本公式

上图的三层神经网络,ai(j)表示的是第j层、第i个变量。每个变量都是由上一层计算得到的,计算公式如下图:

用zi(j)表示对应的ai(j)的式子中的g函数内部的式子,可以看出,神经元实质上就是输入的变量经过若干个线性变换,得到输出。

上图的xi,都省略了x0,x0一直都是1。另外,g(z)即logistic回归中的g(z)函数,即g(z)=1/(1+e-θTx)

三、具体例子

现要使用神经网络实现与、或、非、异或的逻辑运算。

1、与

假设有两个特征值x1、x2,他们的取值范围是0或1,y=x1&&x2,由g(z)的公式,可以大致推导出,z=4时y约等于1,z=-4时y约等于0。则可以假设h(x)=g(z)=g(-30+20x1+20x2)(其中x0=1),神经网络如下图所示:

则此时即表示实现了一个具有“与”功能的神经元。

2、或

类似与,或可以用如下假设方式:

3、非

非的表示方式如下:

4、非异或

非异或(XNOR),即异或的结果再进行非操作。此时,用到了三层的神经网络,中间一层是隐藏层,用于计算异或,并把结果传到第三层进行处理后输出。

根据异或的公式,可以知道x1XOR x2,则x1或x2中1个是1的时候结果是1,否则是0,则XNOR则是x1和x2都是1,或者x1和x2都不是1的情况。

因此,第二层,则计算了x1和x2都是1,或者x1和x2都不是1的情况。分别是红色的圈和蓝色的圈的表示。

第三层进行或运算,接收第二层的结果。

四、多变量情况

多变量情况,类似上面的内容,下面是例如要区分一个图片是轿车、人、摩托车、卡车的简易神经网络(没有具体过程,就是粗略模型)。

实际上,就是将输入的图片的像素点,经过若干隐藏层的处理后,进行输出。

——written by linhxx 2018.01.09

原文发布于微信公众号 - 决胜机器学习(phpthinker)

原文发表时间:2018-01-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏赵俊的Java专栏

从源码上分析 ArrayList

1161
来自专栏Java Edge

AbstractList源码解析1 实现的方法2 两种内部迭代器3 两种内部类3 SubList 源码分析4 RandomAccessSubList 源码:AbstractList 作为 Lis

它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方法的集合类,但不支持添加和替换

402
来自专栏Phoenix的Android之旅

Java 集合 Vector

List有三种实现,ArrayList, LinkedList, Vector, 它们的区别在于, ArrayList是非线程安全的, Vector则是线程安全...

652
来自专栏alexqdjay

HashMap 多线程下死循环分析及JDK8修复

1K4
来自专栏xingoo, 一个梦想做发明家的程序员

Spark踩坑——java.lang.AbstractMethodError

百度了一下说是版本不一致导致的。于是重新检查各个jar包,发现spark-sql-kafka的版本是2.2,而spark的版本是2.3,修改spark-sql-...

1190
来自专栏desperate633

LeetCode Invert Binary Tree题目分析

Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9 to4 / \ 7 2 / \ / \9 6 3 1 Tri...

831
来自专栏拭心的安卓进阶之路

Java 集合深入理解(12):古老的 Vector

今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这么相...

2437
来自专栏学海无涯

Android开发之奇怪的Fragment

说起Android中的Fragment,在使用的时候稍加注意,就会发现存在以下两种: v4包中的兼容Fragment,android.support.v4.ap...

3155
来自专栏刘君君

JDK8的HashMap源码学习笔记

3008
来自专栏聊聊技术

原 初学图论-Kahn拓扑排序算法(Kah

2878

扫码关注云+社区