深度学习Python学习笔记(一)

news/2024/7/23 18:39:14

         我们都知道电路设计上是有一定的逻辑性,最基本的就是门电路单元。无论是与、非、或门,最终都会输出一个1(是)或0(不是)的值。然后我们从生物的角度看神经网络,神经网络的最基础单元就是神经元,当神经元接收到刺激信号并能够做出相应的应激性反应。我们可以将神经元信号分为传递或是不传递。

概念引入

          有时可能一个神经元会接收到多个刺激,那么如何去判别神经元需要做出什么反应?假设有且仅有x1与x2是两个输入信号,而y为输出信号。而x1与x2代表的含义不一样,或者说权重不一样,我们用w1、w2来分别表示。所以这个神经元接收到的刺激总和是(x1w1,x2w2),用图可以是一下表示(○表示神经元,——表示连接并且有方向):

                                                         

        当这个两个刺激的综合满足一个阈值的时候,我们可以认为神经元y满足产生反应的条件,反之无反应,可以以一下数学公式1表示(其中θ为阈值大小):

                                                                                 公式1

感知机引入

        那么和门电路是不是很像,比如与门只有x1与x2都为1的时候y就为1。我们引入一个感知机的概念,什么是感知机?感知机是接收多个信号,通过一定规律输出一个信号。所以门也可以叫做感知机,我们实例一段与门的python代码:

def AND(x1, x2)
	w1, w2, theta = 0.5, 0.5, 0.7
	tmp = x1*w1 + x2*w2
	if tmp <= theta:
		return 0
	elif tmp > theta:
		return 1

        根据上面函数,我们只有运行AND(1, 1)的时候输出才为1,也就是我们实现了与门。

        数学是个神奇的东西,我们将公式1的式子变化一下就可以得到另一个公式2和说法:

                                                                       公式2

        我们一般习惯性将式子右边变为0,所以这里的b可以当作(-θ),这里称它为偏置,w为权重,与上面代码实现与门不同,上面两个权重是相当的,很多时候我们会遇到两个变量权重不同并且所得到的值有一定的偏移才是我们想要的结果。通过公式2我们就能够更好的理解感知机的概念:感知机是接收多个信号,通过一定规律(权重与偏置)输出一个信号。

多层感知机与计算机

       单层感知机也就是类似于公式2一样,只能是线性的关系。它只能是如下图1所示的样子,以直线为分隔,线以下是1(0),线以上是0(1)。

                                                         

                                                                                        图  1

        但我们其实更多的要求是类似与下图2,曲线以下是1(0),曲线以上是0(1)。

                                                              

                                                                                         图  2

          参考门电路,当我们实现复杂电路的时候,很多情况是多个简单门电路的叠加从而实现更复杂的功能。那我们感知机也可以通过多层叠加的方式来实现更加复杂的功能,也就是我们将第一层感知机的输出同时又作为了第二层感知机的输入,以此类推,最终获得我们想要的值。如图3所示:为两层感知机,可以实现异或门的逻辑。

                             

                                                                                                图3

       那我们计算机的逻辑是不是可以通过上述的逻辑实现呢?可以,而且理论上可以两层就实现。

总结

       通过神经网络作为铺垫,门电路作为参考,最终的得到感知机的概念。


http://www.niftyadmin.cn/n/2815722.html

相关文章

extern使用注意事项与语法简述

1.使用extern时要严格对应声明的格式&#xff0c;定义的是数组类型&#xff0c;extern char a[];而不能是extern char *a; 2.如果要在*.c文件中引用另一个文件中的一个全局变量&#xff0c;那就应该放在*.h中用extern来声明这个全局变量。 3.函数声明和定义前面extern没有实际…

sourceTree回滚代码到指定版本

1、打开sourceTree&#xff0c;选中分支&#xff0c;找到需要回滚的版本&#xff0c;右击选择“将xx重置到此次提交” 2、选择强行合并 3、找到最新的版本&#xff0c;右击&#xff0c;选择“将xx重置到此这提交”选择“软合并” 4、提交代码&#xff0c;这时候你会发现修改了…

Trafodion值得放入工具箱,因为有以下优点

Trafodion是Apache基金会的一个开源项目&#xff0c;提供了一个成熟的企业级SQL-on-HBase解决方案。Trafodion的主要设计思想是处理operational类型的工作负载&#xff0c;或者是传统的OLTP应用。此外&#xff0c;对于需要保证数据一致性、需要标准SQL开发接口&#xff0c;或者…

static注意事项与语法简述

1.存在语言&#xff1a;Static存在多个语言当中&#xff0c;Java、C、C、C#等语言中都有该变量 面向过程&#xff1a; 1.静态变量在全局数据区分配内存 2.静态全局变量不能被其他文件引用&#xff0c;并且其他文件可以定义相同名字的变量&#xff0c;并不会发生冲突。全局变量默…

剖析ES类的constructor及static,public,private,protected区别

ES6引入了class类的概念&#xff0c;创建的每一个class类&#xff0c;都会有一个constructor()方法&#xff0c;该方法是一种用于创建和初始化class创建的对象的特殊方法–构造函数方法。 class Animal(){} 等同于 class Animal(){constructor(){} //默认的constructor方法 }…

剖析ES类的Generator函数语法与异步应用

Generator 函数是 ES6 提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同 1、基本使用 function* helloWorldGenerator() {yield hello;yield world;return ending; }var hw helloWorldGenerator();hw.next() // { value: hello, done: false }hw.next() /…

回调函数使用详解

转载自&#xff1a;https://blog.csdn.net/miao19920101/article/details/75648491 回调函数的使用 回调函数在C语言中是通过函数指针来实现的,通过将回调函数的地址传给被调函数从而实现回调。因此&#xff0c;要实现回调&#xff0c;必须首先定义函数指针。 1. 回调指针 概…

moment.js使用方法总结

Moment.js是一个轻量级的JavaScript时间库&#xff0c;它方便了日常开发中对时间的操作&#xff0c;提高了开发效率。日常开发中&#xff0c;通常会对时间进行下面这几个操作&#xff1a;比如获取时间&#xff0c;设置时间&#xff0c;格式化时间&#xff0c;比较时间等等。下面…