进度汇总

  1. 目前已经学习了前 3 篇文章。
  2. 过了一遍 python 的官方中文教程

知识汇总

前言

知识汇总只是个人见解,每一句话前都可以加上“我认为”三个字,定有不正确之处,望见谅。

人工智能——概念关系

人工智能领域里,机器学习是它的一种实现方法,机器学习中有一类算法叫神经网络,三者是包含关系

机器学习

我认为,机器学习的目的是:根据输入训练学习模型,然后根据模型预测结果
分类:

  1. 监督学习:训练样本有输入,也有相应的实际值作对照。
  2. 无监督学习:训练样本只有输入,没有相应的实际值作对照。

神经网络的组成

神经网络是按照一定规则把神经元连接在一起而构成的网络,不同的神经网络有不同的连接规则。
按层次划分神经网络:最左边一层输入层 + 中间多层隐藏层 + 最右边一层输出层
深度神经网络:隐藏层层数大于 2 层的神经网络。
全连接神经网络的连接规则如下:

  1. 同一层的神经元之间没有连接。
  2. 第 n 层的每个神经元和第 n-1 层的所有神经元相连(全连接的含义),第 n-1 层神经元的输出就是第 n 层神经元的输入。
  3. 每个连接都有一个权值。

神经元(感知器)的组成

神经元也叫感知器。

  1. 输入与权值:输入 周报一 - 图1,权值 周报一 - 图2
  2. 输出:神经元的输出 周报一 - 图3,b 为偏置值,若令 周报一 - 图4,则可以把偏置值视为输入永远为 1 的权值。
  3. 激活函数可以说是激活函数决定了神经元的作用,根据上述输出的计算公式,可以计算出自变量的值,因变量 y 到底是多少还不知道,这时候就要选择一个函数来把自变量和因变量映射起来了,这个函数的选取可能涉及许多学科的知识,以下是把一个阶跃函数作为激活函数的例子:

周报一 - 图5
感知器的训练规则
由神经元的组成的可知,若想根据输入预测输出,需要确定两样东西:权值和激活函数。
激活函数的确定过于深奥,这里就直接用给出的阶跃函数;感知器的迭代规则如下:
周报一 - 图6
初始 w 和 b 置 0
周报一 - 图7:称为学习效率的常数,作用是控制每一步调整权的幅度。
周报一 - 图8:训练样本中输入对应的实际输出值。
周报一 - 图9:感知器的输出值。

线性单元

激活函数为可导线性函数的神经元。
线性单元用来解决回归问题。

线性模型

模型的目的就是根据输入预测输出。
输入 周报一 - 图10称为输入特征
输出 周报一 - 图11称为假设,其中 周报一 - 图12

目标函数

线性单元的目标函数的作用是:确定合适的周报一 - 图13,以提高模型的准确度(即使得模型输出 y’ 与实际值 y,也称 label 的尽可能接近),有关概念如下:
单个样本误差:周报一 - 图14
模型误差:就是所有样本误差之和 周报一 - 图15
输出 y’ 的计算公式 周报一 - 图16周报一 - 图17 有关,当输入 周报一 - 图18 确定时,E 是 w 的函数,即
周报一 - 图19
现在的目标就是求取合适的 w 使得 E 最小,数学上称为优化问题,E 称为目标函数。

优化算法

优化算法就是用来解决优化问题的,即求取合适的 w 使得 E 最小。
梯度下降优化算法随机梯度下降算法,前者需要遍历所有样本,而后者只计算一个样本。
数学知识过于硬核,就不抄教程了。

运行实例

与运算感知器

运行与运算感知器的例子,使用插桩法打印输出观察权值变化。
image.png
image.png
image.png
可以看到,从第 4 轮迭代的第 3 次训练开始,感知器的权值和偏置值已经稳定,结果和测试如下:
image.png

线性单元

image.png
这里仅展示了部分迭代结果,由此可知 10 次迭代内 w 和 b 没有稳定下来。
拟合结果如下:
image.png