1.人工智能三学派
人工智能:让机器具备人的思维和意识
神经元示意图:
当前人工智能的主流方向:连接主义
前向传播
损失函数
梯度下降
学习率
反向传播更新参数
Tensorflow 2 常用函数
人工智能的三学派:
行为主义:基于控制论,构建感知-动作控制系统。 (控制论,如平衡、行走、避障等自适应控制系统)
符号主义:基于算数逻辑表达式,求解问题时先把问题描述为表达式,再求解表达式。(可用公式描述、实现理性思维,如专家系统)
连接主义:仿生学,模拟神经元的连接关系。(仿脑神经元连接,实现感性思维,如神经网络)
人类从出生到成年,神经网络的变化
用计算机仿出神经网络连接关系,让计算机具备感性思维
- 准备数据:采集大量 ”特征标签” 数据
- 搭建网络:搭建神经网络结构
- 优化参数:训练网络获取最佳参数(反传)
- 应用网络:将网络保存为模型,输入新数据,输出分类或预测结果(前传)
2.神经网络设计过程
给鸢尾花分类(lris)
- 0 狗尾草鸢尾
- 1 杂色鸢尾
- 2 弗吉尼亚鸢尾
人们通过经验总结了规律:通过测量花的花萼长、花萼宽、花瓣长、花瓣宽,可以得出鸢尾花的类别。
神经网络:采集大量 (花萼长、花萼宽、花瓣长、花瓣宽,对应的类别(标签,需人工标定))数据对构成数据集。
把数据集喂入搭建好的神经网络结构,网络优化参数得到模型,模型读入新输入特征,输出识别结果
2.1用神经网络实现鸢尾花分类:搭建网络
这里引入了MP模型
x是输入特征,即花萼长、花萼宽、花瓣长、花瓣宽。
w为权重
b为偏执
2.2用神经网络实现鸢尾花分类:前向传播
前向传播得到计算结果
1 | import tensorflow as tf |
2.3用神经网络实现鸢尾花分类:损失函数
用损失函数,定义预测值 y 和标准答案(标签)y_的差距,损失函数可以定量的判断当前这组参数 w 和 b 的优劣,当损失函数最小时,即可得到最优 w 的值和 b 的值。
损失函数的定义有多种方法,均方误差就是一种常用的损失函数:
$$
\operatorname{MSE}\left(y, y_{-}\right)=\frac{\sum_{k=0}^{n}(y-y)^{2}}{n}
$$
2.4用神经网络实现鸢尾花分类:梯度下降
目标:寻找一组参数 w 和 b 使得损失函数最小
梯度:表示损失函数对各参数求偏导后的向量,损失函数梯度下降的方向,就是损失函数减小的方向。
梯度下降:沿着损失函数梯度下降的方向,寻找损失函数的最小值,从而得到最优的参数。
学习率 lr:是一个超参数,表征梯度下降的速度。如学习率设置过小,参数更新会很慢,如果学习率设置过大,参数更新可能会跳过最小值。
2.5用神经网络实现鸢尾花分类:反向传播
从后向前,逐层求损失函数对每层神经元参数的偏导数,迭代更新所有参数。
2.6Tensorflow + py代码实现
3.张量生成
TensorFlow 中的 Tensor 表示张量,是多维数组、多维列表,用阶表示张量的维数。0 阶张量叫做标量,表示的是一个单独的数,如 123;1 阶张量叫作向量,表示的是一个一维数组如[1,2,3];2 阶张量叫作矩阵,表示的是一个二维数组,它可以有 i 行 j 列个元素,每个元素用它的行号和列号共同索引到,如在[[1,2,3],[4,5,6],[7,8,9]]中,2 的索引即为第 0 行第 1 列。
创建张量
利用 tf.constant(张量内容,dtype=数据类型(可选)),第一个参数表示张量内容,第二个参数表示张量的数据类型。
示例:
1 |
部分内容待补充