sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程,QQ:231469242)

https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

http://www.hahack.com/reading/ann1/

什么是M-P模型

所谓M-P模型,其实是按照生物神经元的结构和工作原理构造出来的一个抽象和简化了的模型。简单点说,它是对一个生物神经元的建模。它实际上是两位科学家的名字的合称,1943年心理学家W.McCulloch和数学家W.Pitts合作提出了这个模型,所以取了他们两个人的名字(McCulloch-Pitts)。类似这样合作取名的情况很普遍,比如安全学里著名的RSA非对称加密算法,就是由Rivest、Shamir和Adleman三位大神合作的。在The Bigbang Theory里,我们的Sheldon同志就找到了诺贝尔奖得主Dr.Smoot希望进行合作,瞧瞧他的伟大计划:

生物神经元的结构

在谈M-P模型的内容之前,我们先得了解一下人脑中的神经元的结构,然后再研究M-P对人脑的神经元是如何建模的。右图是一张生物神经元的简化示意图。

神经元在结构上由细胞体、树突、轴突和突触4部分组成。

(1)细胞体

细胞体是神经元的主体,由细胞核、细胞质和细胞膜3部分组成。细胞体的外部是细胞膜,将膜内外细胞液分开。由于细胞膜对细胞液中的不同离子具有不同的通透性,这使得膜内外存在着离子浓度差,从而出现内负外正的静息电位。这种电位差称为膜电位。

(2)树突

从细胞体向外延伸出许多突起的神经纤维。负责接收来自其他神经元的输入信号,相当于细胞体的输入端(input)。

(3)轴突

由细胞体伸出的最长的一条突起称为轴突。轴突比树突长而细。轴突也叫神经纤维,末端处有很多细的分支称为神经末梢,每一条神经末梢可以向四面八方传出信号,相当于细胞体的输出端(output)。

(4)突触

一个神经元通过其轴突的神经末梢和和另一个神经元的细胞体或树突进行通信连接,这种连接相当于神经元之间的输入/输出接口(I/O),称为突触。

突触使神经细胞的膜电位发生变化,且电位的变化是可以累加的,单个神经元可以与多达上千个其他神经元的轴突末梢形成突触连接,接受从各个轴突传来的脉冲输入。这些输入可到达神经元的不同部位,输入部位不同,对神经元影响的权重也不同。输入部位不同,该神经细胞膜电位是它所有突触产生的电位总和,当该神经细胞的膜电位升高到超过一个阈值时,就会产生一个脉冲,从而总和的膜电位直接影响该神经细胞兴奋发放的脉冲数。

神经元的信息是宽度和幅度都相同的脉冲串,若某个神经细胞兴奋,其轴突输出的脉冲串的频率就高;若某个神经细胞抑制,其轴突输出的脉冲串的频率就低,甚至无脉冲输出。因此,突触可以分为兴奋性和抑制性两种,兴奋性的突触可能引起下一个神经细胞兴奋,抑制性的突触使下一个神经细胞抑制。脉冲的传递是正向的,不允许逆向传播。另外,突触传递信息需要一定的延迟。

关于上面的电位变化过程,我一直在想用一个更加通俗易懂的模型1 图 1 水桶与神经元来介绍。我们可以把一个神经元想象成一个水桶,这个水桶侧边接着很多条水管(神经末梢),水管既可以将桶里的水输出去(抑制性),也可以将其他水桶的水输进来(兴奋性)。当桶里的水达到一个高度时,就会通过另一条管子(轴突)将水输送出去。由于水管的粗细不同,对桶里的水的影响程度(权重)也不同。水管对水桶里的水位的改变(膜电位)自然就是这些水管输水量的累加。当然,这样来理解并不是很完美,因为神经元中的信号是采用一个个脉冲串的离散形式,而这里的水则是连续的。

关于权值的理解,还有人做出一个非常形象的比喻。比如现在我们要选一个餐厅吃饭,于是对于某一个餐厅,我们有好几种选择因素e.g.口味、位置、装潢、价格等等,这些选择因素就是输入,而每一个因素占的比重往往不同,比如我们往往会把口味和价格放在更重要的位置,装潢和位置则稍微不那么重要。很多个候选餐厅的选择结果最终汇总之后,就可以得到最后的决策。

综上所述,我们可以概括出生物神经网络的假定特点:

  1. 每个神经元都是一个多输入单输出的信息处理单元;
  2. 神经元输入分兴奋性输入和抑制性输入两种类型;
  3. 神经元具有空间整合特性和阈值特性;
  4. 神经元输入与输出间有固定的时滞,主要取决于突触延搁。图 2 M-P模型示意图

M-P模型

按照生物神经元,我们建立M-P模型。为了使得建模更加简单,以便于进行形式化表达,我们忽略时间整合作用、不应期等复杂因素,并把神经元的突触时延和强度当成常数。图2就是一个M-P模型的示意图。

那么接下来就好类比理解了。我们将这个模型和生物神经元的特性列表来比较:

结合M-P模型示意图来看,对于某一个神经元 jj (注意别混淆成变量了,在这里 jj 只是起到标识某个神经元的作用),它可能接受同时接受了许多个输入信号,用 χiχi 表示,前面说过,由于生物神经元具有不同的突触性质和突触强度(水管粗细不同),所以对神经元的影响不同,我们用权值 ωijωij 来表示,其正负模拟了生物神经元中突出的兴奋和抑制(进水和出水),其大小则代表了突出的不同连接强度。由于累加性,我们对全部输入信号进行累加整合,相当于生物神经元中的膜电位(水的变化总量),其值就为:

net′j(t)=∑i=1nωijχi(t)netj′(t)=∑i=1nωijχi(t)

神经元激活与否(外接专用水管流出与否)取决于某一阈值电平(水位高度),即只有当其输入总和超过阈值 TjTj 时,神经元才被激活而发放脉冲,否则神经元不会发生输出信号。整个过程可以用下面这个函数来表示:

oj(t+1)=f{[∑i=1nωijχi(t)]−Tj}oj(t+1)=f{[∑i=1nωijχi(t)]−Tj}

由此我们可以得到总结出M-P模型的6个特点:

  1. 每个神经元都是一个多输入单输出的信息处理单元;
  2. 神经元输入分兴奋性输入和抑制性输入两种类型;
  3. 神经元具有空间整合特性和阈值特性;
  4. 神经元输入与输出间有固定的时滞,主要取决于突触延搁;
  5. 忽略时间整合作用和不应期;
  6. 神经元本身是非时变的,即其突触时延和突触强度均为常数。

前面4点和生物神经元保持一致。结合公式(2)来看,公式(2)中的输入 xixi 的下标 i=1,2,...,ni=1,2,...,n ,输出 ojoj 的下标 jj体现了第1个特点“多输入单输出”;权重值 ωijωij 的正负体现了第2个特点中“突触的兴奋与抑制”; TjTj 代表第3个特点 中的阈值,当 net′j(t)−Tj>0netj′(t)−Tj>0 时,神经元才能被激活;为了简单起见,对膜电位的 计算 net′j(t)netj′(t) 并没有考虑时间整合,只考虑了空间整合,即只对每条神经末梢传来的信 号根据权重进行累加整合,而没有考虑输入输出间的突触时延。体现了第5个特点。

如果 χ0=−1χ0=−1 , ω0j=Tjω0j=Tj ,则有 −Tj=χ0ω0j−Tj=χ0ω0j 。

公式(1)和(2)还可以简化成公式(3)和(4)的形式:

python风控评分卡建模和风控常识(博客主亲自录制视频教程)

神经网络3_M-P模型的更多相关文章

  1. 漫谈四种神经网络序列解码模型【附示例代码】 glimpse attention

    漫谈四种神经网络序列解码模型[附示例代码] http://jacoxu.com/encoder_decoder/ [视觉注意力的循环神经网络模型]http://blog.csdn.net/leo_xu ...

  2. [重磅]Deep Forest,非神经网络的深度模型,周志华老师最新之作,三十分钟理解!

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 深度学习最大的贡献,个人认为就是表征 ...

  3. 深度学习方法(五):卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术感兴趣的同学加入. 关于卷积神经网络CNN,网络和文献中 ...

  4. 吴裕雄 python 神经网络——TensorFlow训练神经网络:全模型

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_NODE = 784 ...

  5. Adam Harley的卷积神经网络3D视觉化模型

    https://m.huxiu.com/article/138857/1.html 最近 Google Tensorflow 做了一个非常直观的神经网络 playground.不夸张地说,现在每个人都 ...

  6. 卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning(转)

    参考:http://blog.csdn.net/xbinworld/article/details/45619685

  7. 卷积神经网络 CNN 系列模型阐述

    http://www.sohu.com/a/134347664_642762 Lenet,1986年 https://github.com/BVLC/caffe/blob/master/example ...

  8. 深度学习原理与框架-猫狗图像识别-卷积神经网络(代码) 1.cv2.resize(图片压缩) 2..get_shape()[1:4].num_elements(获得最后三维度之和) 3.saver.save(训练参数的保存) 4.tf.train.import_meta_graph(加载模型结构) 5.saver.restore(训练参数载入)

    1.cv2.resize(image, (image_size, image_size), 0, 0, cv2.INTER_LINEAR) 参数说明:image表示输入图片,image_size表示变 ...

  9. BP神经网络-- 基本模型

    转载:http://www.cnblogs.com/jzhlin/archive/2012/07/28/bp.html BP 神经网络中的 BP 为 Back  Propagation 的简写,最早它 ...

  10. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

随机推荐

  1. js字符串String提取方法比较

    JavaScript: Slice, Substring, or Substr的选择! 在JavaScript中,字符串主要通过以下String方法之一提取: // slice // syntax: ...

  2. China Tightens Recycling Import Rules

    China Tightens Recycling Import Rules We have all seen the pictures of cities in China with air poll ...

  3. centos7下 svn的配置

    安装svn yum install subversion 查看安装版本 svnserve --version 创建svn版本库目录 mkdir -p /root/svn/test 创建svn版本库 s ...

  4. 【Linux基础】判断当前机器是虚拟机还是物理机

    1.使用dmidecode命令查看(root权限) DMI (Desktop Management Interface, DMI)的主要组成部分是Management InformationForma ...

  5. SQL SUM() 函数

    SUM() 函数 SUM 函数返回数值列的总数(总额). SQL SUM() 语法 SELECT SUM(column_name) FROM table_name SQL SUM() 实例 我们拥有下 ...

  6. JAVA工程师-蚂蚁金服电话面试

    今天5点半接到一个杭州的电话,是蚂蚁金服打来的,当时心里一阵发慌,由于还在上班,就和面试官约定6点下班之后再来.挂完电话,心里忐忑的不行,感觉自己这也没准备好,那也没准备好.剩下半个小时完全没有心思再 ...

  7. 关于hibernate查询结果类的封装

    实际应用中,我们查询的结果有时候会需要其他的类或者是一个新的包装类,即希望映射到一个DTO(即使hibernate早在很久就不推荐使用..)但我还是说一下吧 如 我有这样子的两个类 //get和set ...

  8. UEFI和Legacy及UEFI+Legacy启动的区别

    uefi和legacy是两种不同的引导方式,uefi是新式的BIOS,legacy是传统BIOS.你在UEFI模式下安装的系统,只能用UEFI模式引导:同理,如果你是在Legacy模式下安装的系统,也 ...

  9. iview库表table组件内嵌套Select组件

    表格内render函数渲染Select组件   { title: '属性值', key: 'values', render:(h,params)=>{ return h('Select',{   ...

  10. 关于mysql中的count()函数

    1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数. 2.count()语法: (1)count(*)---包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会 ...