php 神经网络,神经网络算法基础入门
眼下最热门的技术,绝对是人工智能。
人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。
一、感知器
历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。
1、外部刺激通过神经末梢,转化为电信号,转导到神经细胞(又叫神经元)。
2、无数神经元构成神经中枢。
3、神经中枢综合各种信号,做出判断。
4、人体根据神经中枢的指令,对外部刺激做出反应。
二、权重和阈值
看到这里,你肯定会问:如果某些因素成立,另一些因素不成立,输出是什么?比如,周末是好天气,门票也不贵,但是小明找不到同伴,他还要不要去参观呢?
现实中,各种因素很少具有同等重要性:某些因素是决定性因素,另一些因素是次要因素。因此,可以给这些因素指定权重(weight),代表它们不同的重要性。
天气:权重为8
同伴:权重为4
价格:权重为4
上面的权重表示,天气是决定性因素,同伴和价格都是次要因素。
如果三个因素都为1,它们乘以权重的总和就是 8 + 4 + 4 = 16。如果天气和价格因素为1,同伴因素为0,总和就变为 8 + 0 + 4 = 12。这时,还需要指定一个阈值(threshold)。如果总和大于阈值,感知器输出1,否则输出0。假定阈值为8,那么 12 > 8,小明决定去参观。阈值的高低代表了意愿的强烈,阈值越低就表示越想去,越高就越不想去。
上面的决策过程,使用数学表达如下。
三、决策模型
单个的感知器构成了一个简单的决策模型,已经可以拿来用了。真实世界中,实际的决策模型则要复杂得多,是由多个感知器组成的多层网络。
上图中,底层感知器接收外部输入,做出判断以后,再发出信号,作为上层感知器的输入,直至得到最后的结果。(注意:感知器的输出依然只有一个,但是可以发送给多个目标。)
这张图里,信号都是单向的,即下层感知器的输出总是上层感知器的输入。现实中,有可能发生循环传递,即 A 传给 B,B 传给 C,C 又传给 A,这称为"递归神经网络"(recurrent neural network)
四、矢量化
为了方便后面的讨论,需要对上面的模型进行一些数学处理。
外部因素 x1、x2、x3 写成矢量 ,简写为 x
权重 w1、w2、w3 也写成矢量 (w1, w2, w3),简写为 w
定义运算 w⋅x = ∑ wx,即 w 和 x 的点运算,等于因素与权重的乘积之和
定义 b 等于负的阈值 b = -threshold
感知器模型就变成了下面这样。
五、神经网络的运作过程
一个神经网络的搭建,需要满足三个条件。
1、输入和输出
2、权重(w)和阈值(b)
3、多层感知器的结构
也就是说,需要事先画出上面出现的那张图
其中,最困难的部分就是确定权重(w)和阈值(b)。目前为止,这两个值都是主观给出的,但现实中很难估计它们的值,必需有一种方法,可以找出答案。
这种方法就是试错法。其他参数都不变,w(或b)的微小变动,记作Δw(或Δb),然后观察输出有什么变化。不断重复这个过程,直至得到对应最精确输出的那组w和b,就是我们要的值。这个过程称为模型的训练。
因此,神经网络的运作过程如下。
1、确定输入和输出
2、找到一种或多种算法,可以从输入得到输出
3、找到一组已知答案的数据集,用来训练模型,估算w和b
4、一旦新的数据产生,输入模型,就可以得到结果,同时对w和b进行校正
六、输出连续性
上面的模型有一个问题没有解决,按照假设,输出只有两种结果:0和1。但是,模型要求w或b的微小变化,会引发输出的变化。如果只输出0和1,未免也太不敏感了,无法保证训练的正确性,因此必须将"输出"改造成一个连续性函数。这就需要进行一点简单的数学改造。
首先,将感知器的计算结果wx + b记为z。
z = wx + b
然后,计算下面的式子,将结果记为σ(z)。
σ(z) = 1 / (1 + e^(-z))
这是因为如果z趋向正无穷z → +∞(表示感知器强烈匹配),那么σ(z) → 1;如果z趋向负无穷z → -∞(表示感知器强烈不匹配),那么σ(z) → 0。也就是说,只要使用σ(z)当作输出结果,那么输出就会变成一个连续性函数。
原来的输出曲线是下面这样。
现在是这样:
实际上,还可以证明Δσ满足下面的公式。
即Δσ和Δw和Δb之间是线性关系,变化率是偏导数。这就有利于精确推算出w和b的值了。
php 神经网络,神经网络算法基础入门相关推荐
- 【神经网络】零基础入门神经网络:从原理、主要类型到行业应用
原作 Jay Shah Root 编译自 Jay Shah寄几的博客 量子位 出品 | 公众号 QbitAI 最近,神经网络这个词特别火,吸引不少眼球.但是神经网络是个啥?有啥用? 这篇文章和大家唠唠 ...
- 算法基础入门——数论(数学知识基础)
文章目录 一.质数 分解质因数 题目 代码 筛选质数 埃氏筛法 题目 代码 线性筛法 二.约数 约数个数 试除法求约数个数(时间复杂度:O(sqrt(N)) ) 未完待续 一.质数 质数即因子只有1和 ...
- 算法基础入门—求圆面积
求圆面积 圆面积求法很简单:πr2 但对于新手须注意的是对于π的值不能取简单的3.1415926.例如.这题要求保留小数位后7位,π的值必须能保证面积后8位都是精确的值.π可以取PI=3.141592 ...
- 零基础入门深度学习(3) - 神经网络和反向传播算法
无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...
- 零基础入门深度学习(5) - 循环神经网络
往期回顾 在前面的文章系列文章中,我们介绍了全连接神经网络和卷积神经网络,以及它们的训练和使用.他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的.但是,某些任务需要能够更好的 ...
- 零基础入门深度学习(7) - 递归神经网络
无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...
- 零基础入门深度学习(4) - 卷积神经网络
无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...
- 长短时记忆神经网络python代码_零基础入门深度学习(6) - 长短时记忆网络(LSTM)
无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...
- 零基础入门深度学习(5) - 循环神经网络【转】
本文转载自:https://zybuluo.com/hanbingtao/note/541458 在前面的文章系列文章中,我们介绍了全连接神经网络和卷积神经网络,以及它们的训练和使用.他们都只能单独的 ...
最新文章
- 51nod 1287: 加农炮 好题啊好题
- 解析BW:数据源提取数据的原理
- mysql数据库入门教程(3):图形化用户界面SQLyog 的安装和介绍
- OpenGL Tessellated Triangle镶嵌三角形的实例
- 暴雪应该从《争霸艾泽拉斯》中吸取什么教训?
- 每日程序C语言2-判断某日期是这一年的第几天
- Self Introduction
- qt中设置QCheckBox的文本与勾选框之间的距离
- [Spring+SpringMVC+Mybatis]框架学习笔记(四):Spring实现AOP
- Android成长日记-Activity
- AVL树原理理解:旋转与平衡
- spss数据调整后重新计算
- assert函数_类成员函数指针在成员函数内部的调用
- 知乎--LSTM(挺全的)
- 2018.10.31 NOIP模拟 一串数字(数论+贪心)
- PHP拼团人数不能超过,怎么解决拼团、抽奖难以凑齐人数这个大问题?
- psp测试电池软件,PSP 电池使用时间测试
- 关于DVD的VOB文件的认识
- 5.入律古风、排律与柏梁体
- 安装和使用IBM PowerVP和IBM AIX