人工智能与神经网络-数学与编程语言
人工智能与神经网络基础概念
什么是人工智能?通俗来讲,就是让机器能像人一样思考。这个无需解释太多,因为通过各种科幻电影我们已经对人工智能很熟悉了。大家现在感兴趣的应该是——如何实现人工智能?
从1956年夏季首次提出“人工智能”这一术语开始,科学家们尝试了各种方法来实现它。这些方法包括专家系统,决策树、归纳逻辑、聚类等等,但这些都是假智能。直到人工神经网络技术的出现,才让机器拥有了“真智能”。
为什么说之前的方法都是假智能呢?因为我们人类能清清楚楚地知道它们内部的分析过程,它们只是一个大型的复杂的程序而已;而人工神经网络则不同,它的内部是一个黑盒子,就像我们人类的大脑一样,我们不知道它内部的分析过程,我们不知道它是如何识别出人脸的,也不知道它是如何打败围棋世界冠军的。我们只是为它构造了一个躯壳而已,就像人类一样,我们只是生出了一个小孩而已,他脑子里是如何想的我们并不知道!这就是人工智能的可怕之处,因为将来它有可能会觉得我们人类不应该活在这个世界上,而把我们消灭掉;为此,世界上已经成立了不少安全协会来防范人工智能。
人工神经网络是受到人类大脑结构的启发而创造出来的,这也是它能拥有真智能的根本原因。在我们的大脑中,有数十亿个称为神经元的细胞,它们连接成了一个神经网络。
人工神经网络正是模仿了人类大脑的网络结构。下面是一个人工神经网络的构造图。每一个圆代表着一个神经元,他们连接起来构成了一个网络。
人类大脑神经元细胞的树突接收来自外部的多个强度不同的刺激,并在神经元细胞体内进行处理,然后将其转化为一个输出结果。
人工神经元也有相似的工作原理。如下图所示。
上面的x是神经元的输入,相当于树突接收的多个外部刺激。w是每个输入对应的权重,它影响着每个输入x的刺激强度。
大脑的结构越简单,那么智商就越低。单细胞生物是智商最低的了。人工神经网络也是一样的,网络越复杂它就越强大,所以我们需要深度神经网络。这里的深度是指层数多,层数越多那么构造的神经网络就越复杂。
训练深度神经网络的过程就叫做深度学习。网络构建好了后,我们只需要负责不停地将训练数据输入到神经网络中,它内部就会自己不停地发生变化不停地学习。打比方说我们想要训练一个深度神经网络来识别猫。我们只需要不停地将猫的图片输入到神经网络中去。训练成功后,我们任意拿来一张新的图片,它都能判断出里面是否有猫。但我们并不知道他的分析过程是怎样的,它是如何判断里面是否有猫的。就像当我们教小孩子认识猫时,我们拿来一些白猫,告诉他这是猫,拿来一些黑猫,告诉他这也是猫,他脑子里会自己不停地学习猫的特征。最后我们拿来一些花猫,问他,他会告诉你这也是猫。但他是怎么知道的?他脑子里的分析过程是怎么样的?我们无从知道~~
编程语言基础知识支持
人工智能和神经网络学科,离不开基础知识的支持:
Python 基本操作 (赋值、分支及循环语句、使用 import 导入库);Python 的 With 语句 ;
NumPy ,Python 下常用的科学计算库。
Matplotlib,Python语言及其数值计算库NumPy的绘图库
SciPy,开源的Python演算法库和数学工具包
Pandas
数学基础知识支持
高等数学/线性代数/微积分
导数
- 导数(Derivative),也叫导函数值。又名微商,是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x0)或df(x0)/dx。
- 一个函数在某一点的导数描述了这个函数在这一点附近的变化率。如果函数的自变量和取值都是实数的话,函数在某一点的导数就是该函数所代表的曲线在这一点上的切线斜率。导数的本质是通过极限的概念对函数进行局部的线性逼近。
- 不是所有的函数都有导数,一个函数也不一定在所有的点上都有导数。若某函数在某一点导数存在,则称其在这一点可导,否则称为不可导。然而,可导的函数一定连续;不连续的函数一定不可导。
对于可导的函数f(x),x↦f'(x)也是一个函数,称作f(x)的导函数(简称导数)。寻找已知的函数在某点的导数或其导函数的过程称为求导。实质上,求导就是一个求极限的过程,导数的四则运算法则也来源于极限的四则运算法则。反之,已知导函数也可以反过来求原来的函数,即不定积分。
微积分基本定理说明了求原函数与积分是等价的。求导和积分是一对互逆的操作,它们都是微积分学中最为基础的概念。
- 函数y=f(x)在x0点的导数f'(x0)的几何意义:表示函数曲线在点P0(x0,f(x0))处的切线的斜率(导数的几何意义是该函数曲线在这一点上的切线斜率)。
积分
积分是微积分学与数学分析里的一个核心概念。通常分为定积分和不定积分两种。直观地说,对于一个给定的正实值函数,在一个实数区间上的定积分可以理解为在坐标平面上,由曲线、直线以及轴围成的曲边梯形的面积值(一种确定的实数值)
对于只有一个变量x的实值函数f,f在闭区间[a,b]上的积分记作
微分
由函数B=f(A),得到A、B两个数集,在A中当dx靠近自己时,函数在dx处的极限叫作函数在dx处的微分,微分的中心思想是无穷分割。微分是函数改变量的线性主部。微积分的基本概念之一。
设函数y = f(x)在x的邻域内有定义,x及x + Δx在此区间内。如果函数的增量Δy = f(x + Δx) - f(x)可表示为 Δy = AΔx + o(Δx)(其中A是不随Δx改变的常量,但A可以随x改变),而o(Δx)是比Δx高阶的无穷小(注:o读作奥密克戎,希腊字母)那么称函数f(x)在点x是可微的,且AΔx称作函数在点x相应于因变量增量Δy的微分,记作dy,即dy = AΔx。函数的微分是函数增量的主要部分,且是Δx的线性函数,故说函数的微分是函数增量的线性主部(△x→0)。
当自变量X改变为X+△X时,相应地函数值由f(X)改变为f(X+△X),如果存在一个与△X无关的常数A,使f(X+△X)-f(X)和A·△X之差是△X→0关于△X的高阶无穷小量,则称A·△X是f(X)在X的微分,记为dy,并称f(X)在X可微。
线性回归
梯度下降方法 求函数的局部最小值。
基本初等函数
幂函数
一般地,形如y=xα(α为有理数)的函数,即以底数为自变量,幂为因变量,指数为常数的函数称为幂函数。例如函数y=x0 、y=x1、y=x2、y=x-1(注:y=x-1=1/x y=x0时x≠0)等都是幂函数。一般形式为 y=
指数函数
- 指数函数是数学中重要的函数。应用到值e上的这个函数写为exp(x)。还可以等价的写为ex,这里的e是数学常数,就是自然对数的底数,近似等于 2.718281828,还称为欧拉数。一般形式为y= (a>0, a≠1)
对数函数
函数y=logax(a>0,且a≠1)叫做对数函数,也就是说以幂(真数)为自变量,指数为因变量,底数为常量的函数,叫对数函数。其中x是自变量,函数的定义域是(0,+∞),即x>0。它实际上就是指数函数的反函数,可表示为x=。因此指数函 数里对于a的规定,同样适用于对数函数。一般形式为(a>0, a≠1, x>0,特别当α=e时,记为y=ln x)
(1)常用对数:lg(b)=log10b(10为底数)。
(2)自然对数:ln(b)=logeb(e为底数)。
e为无限不循环小数,通常情况下只取e=2.71828。
同底的对数函数与指数函数互为反函数。对数函数的图形是指数函数的图形关于y=x对称的图形
当a>0且a≠1时,=N <===> x=㏒aN。
三角函数
正弦函数 :y =sinx
余弦函数 :y =cos x
正切函数 :y =tan x
余切函数 :y =cot x
正割函数 :y =sec x
余割函数 :y =csc x
向量与行列式
向量的记法:印刷体记作黑体(粗体)的字母(如a、b、u、v),书写时在字母顶上加一小箭头“→”
向量可以用有向线段来表示。有向线段的长度表示向量的大小,向量的大小,也就是向量的长度。长度为0的向量叫做零向量,记作长度等于1个单位的向量,叫做单位向量。箭头所指的方向表示向量的方向
在平面直角坐标系中,分别取与x轴、y轴方向相同的两个单位向量i,j作为一组基底。a为平面直角坐标系内的任意向量,以坐标原点O为起点P为终点作向量a。由平面向量基本定理可知,有且只有一对实数(x,y),使得a=xi+yj,因此把实数对(x,y)叫做向量a的坐标,记作a=(x,y)。这就是向量a的坐标表示。其中(x,y)就是点P的坐标。向量a称为点P的位置向量
向量的大小,也就是向量的长度(或称模)。向量a的模记作|a|。向量的模是非负实数,向量的模是可以比较大小的。向量 而
方向相同或相反的非零向量叫做平行(或共线)向量.向量a、b平行(共线),记作a∥b。零向量长度为零,是起点与终点重合的向量,其方向不确定。我们规定:零向量与任一向量平行。平行于同一直线的一组向量是共线向量
直线l⊥α,取直线l的方向向量a,则向量a叫做平面α的法向量
向量运算
交换律:a+b=b+a;
结合律:(a+b)+c=a+(b+c)。
数乘
- 实数λ和向量a的叉乘乘积是一个向量,记作λa,且|λa|=|λ|*|a|
数量积(内积 点积 点乘)
- 两个向量的数量积(内积、点积)是一个数量(没有方向),记作a·b
a·b=b·a(交换律)
(λa)·b=λ(a·b)(关于数乘法的结合律)
(a+b)·c=a·c+b·c()
- 向量积(叉积)
- 两个向量a和b的向量积(外积、叉积)是一个向量,记作a×b(这里“×”并不是乘号,只是一种表示方法,与“·”不同,也可记做“∧”)
- 若a、b不共线,则a×b的模是:∣a×b∣=|a|·|b|·sin〈a,b〉;a×b的方向是:垂直于a和b,且a、b和a×b按这个次序构成右手系。
- |a×b|是以a和b为边的平行四边形面积。
a×b=-b×a
(λa)×b=λ(a×b)=a×(λb)
a×(b+c)=a×b+a×c.
(a+b)×c=a×c+b×c.
混合积
给定空间三向量a、b、c,向量a、b的向量积a×b,再和向量c作数量积(a×b)·c,所得的数叫做三向量a、b、c的混合积,记作(a,b,c)或(abc),即(abc)=(a,b,c)=(a×b)·c
矩阵(矩阵的加减法、矩阵与向量相乘、矩阵与矩阵相乘、矩阵的转置等)
- 由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵
- 这m×n 个数称为矩阵A的元素,简称为元,数aij位于矩阵A的第i行第j列,称为矩阵A的(i,j)元,以数 aij为(i,j)元的矩阵可记为(aij)或(aij)m × n,m×n矩阵A也记作Amn。
矩阵的线性运算
加法/减法
- 结果的每个元素是A和B相应元素的和/差
A+B=B+A
(A+B)+C=A+(B+C)
- 结果的每个元素是A和B相应元素的和/差
- 数乘
- 标量C与矩阵A的数乘:cA的每个元素是A的相应元素与c的乘积,
-
- 标量C与矩阵A的数乘:cA的每个元素是A的相应元素与c的乘积,
- 转置
- 把矩阵A的行和列互相交换所产生的矩阵称为A的转置矩阵
-
- 矩阵乘法
- 两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。如A是m×n矩阵和B是n×p矩阵,它们的乘积C是一个m×p矩阵
C=AB
矩阵乘法可以看做是A的第i行和B的第j列之间的点积。
几个特殊矩阵
对角矩阵: 只有主对角线上含有非零元素
单位矩阵:行数与列数相等的方阵,并且所有沿着主对角线的元素都是1,其他位置的元素都是0。
范数
范数有很多种,L0范数,p=0;L1范数,p=1。
对于Lx范数,其中p=x
L0范数表示向量X中非0元素的个数
L1范数表示向量中所有元素绝对值的和
L2范数表示向量的元素平方和再求平方根
概率论
- 期望
- 定义是以概率(或密度)为权重的加权平均值
-
- 定义是以概率(或密度)为权重的加权平均值
- 方差
- 方差刻画了概率分布的分散度。方差的定义是一个随机变量与它的期望之间的差的平方的加权平均值。这里的权重仍然是概率(或者密度)。
-
- 贝叶斯公式
- 期望
人工智能与神经网络-数学与编程语言相关推荐
- python与人工智能编程-Python是人工智能和机器学习的最佳编程语言,证据在此!...
人工智能与机器学习是IT行业的新兴热门领域.虽然有关其发展安全性的讨论日益增多,但开发人员仍在不断扩展人工智能的能力与存储容量.如今,人工智能已远远地超出科幻小说中的构想,成为了现实.人工智能技术广泛 ...
- python语言开发的软件有哪些-最适合人工智能开发的5种编程语言,你知道几种?...
原标题:最适合人工智能开发的5种编程语言,你知道几种? 私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包. 人工智能技术的提升不仅为企业的运营带来了效率,而且为人民的生活带来了便利. 迄 ...
- python与人工智能编程-最适合人工智能开发的5种编程语言,Python排第一
原标题:最适合人工智能开发的5种编程语言,Python排第一 文章转载自超图集团,版权归原作者和刊载媒体所有. 近年来,人工智能(AI)正在不断释放科技革命和产业变革积蓄的巨大能量,深刻改变着人类生产 ...
- python与人工智能编程-最适合人工智能开发的5种编程语言,你知道几种?
原标题:最适合人工智能开发的5种编程语言,你知道几种? 私信我或关注微信号:猿来如此呀,回复:学习,获取免费学习资源包. 人工智能技术的提升不仅为企业的运营带来了效率,而且为人民的生活带来了便利. 迄 ...
- 神经网络 数学_神经网络与纯数学之间的联系
神经网络 数学 by Marco Tavora 由Marco Tavora 神经网络与纯数学之间的联系 (Connections between Neural Networks and Pure Ma ...
- 人工智能要学习哪些数学知识?
近些年,随着人工智能的又一次崛起,越来越多的人选择加入人工智能的学习行列.在学习人工智能的时候,我们首先需要学习和掌握一定的数学知识.可能会有人问了,人工智能要学习哪些数学知识呢?大致来讲就是三大核心 ...
- python人工智能开发语言_哪些编程语言最适合开发人工智能?
这两年,"一只狗"AlphaGo打遍天下棋手无对手,让我们认识了什么叫人工智能.在刚刚过去的IT领袖峰会上,BAT三位大佬都表示看好人工智能的未来发展.今年年初,百度就做了一个大动 ...
- 人工智能和神经网络区别,人工神经网络有哪几种
人工智能的分类包括哪些呀? 人脑计算机对接技术项目名称:小发猫 人工智能领域六大分类: 1.深度学习: 深度学习是基于现有的数据进行学习操作,是机器学习研究中的一个新的领域,机在于建立.模拟人脑进行分 ...
- 除了python人工智能还可以用哪些编程语言实现?
关注人工智能技术方面的朋友看到这个标题肯定会说,人工智能首选编程语言就是python.是的,不可否认python因为简单易学,而且它可以无缝的与数据结构和其他常用的AI算法同时使用.很多机遇pytho ...
- 计算机语言的发明者,人工智能之父与Lisp编程语言发明人麦卡锡去世
人工智能之父与Lisp编程语言发明人麦卡锡去世 网易科技讯 10月25日消息,据国外媒体报道,Lisp语音发明者,人工智能之父约翰·麦卡锡(John McCarthy)于昨天晚上去世,享年84岁. 约 ...
最新文章
- 你不应该关注区块链的“杀手级应用”
- c# 操作文件_小练习(音乐播放器)
- 互联网协议 — SCTP 流控制传输协议
- IT职场中外企面试最爱提的问题TOP10
- linux常用特殊符号大全
- Smobiler实现扫描条码和拍照功能(开发日志八)
- 01背包模板、全然背包 and 多重背包(模板)
- 《系统集成项目管理工程师》必背100个知识点-77配置审计的功能
- python自然语言处理库_Python自然语言处理工具库(含中文处理)
- pla3d打印材料密度_口腔修复体制作用3D打印金属粉末的成型工艺与性能控制要点概述...
- 毕业3年,我换了4份工作:好工作,是这样“熬”出来的
- python函数支持哪些参数类型_如何记录python函数参数类型?
- 象棋名手手机版2019最新版_象棋名手超强版下载
- 中级职称考试 计算机 英语考试,中级职称工程师职称计算机考试需要考过哪些模块...
- 【python】2022年618一起抢优惠券
- uva 10099 The Tourist Guide nyoj 1019 亲戚来了【单个路线最大流【最短路算法】】
- SystemUI Monkey测试原生代码报错:MLand类NullPointerException
- 从2009到2020,世界编程语言排行榜分析
- 哈尔滨海鹰机器人_哈尔滨机器人产业园:机器人让“未来”照进现实
- kb4023057安装失败_kb4023057是什么补丁?
热门文章
- 网页压缩算法deflate揭秘
- 如何彻底解决Variable used in lambda expression should be final or effectively final
- 这是一个没有标题的故事
- Pandas知识点-详解转换函数transform
- go1.13 中 errors 包的 Is 与 As 方法
- WebGoat攻略 for Mac(1)
- 破解中小企业“生产、设计、销售”三大痛点,网易推出“时尚工业互联网”
- java声音变音代码实现_大话音频变声原理 附简单示例代码
- python高级变量类型
- c语言达内月考试题,达内C培训第一次月考〔附答案〕.doc