进度汇总
- 目前已经学习了前 3 篇文章。
- 过了一遍 python 的官方中文教程。
知识汇总
前言
知识汇总只是个人见解,每一句话前都可以加上“我认为”三个字,定有不正确之处,望见谅。
人工智能——概念关系
人工智能领域里,机器学习是它的一种实现方法,机器学习中有一类算法叫神经网络,三者是包含关系。
机器学习
我认为,机器学习的目的是:根据输入训练学习模型,然后根据模型预测结果。
分类:
- 监督学习:训练样本有输入,也有相应的实际值作对照。
- 无监督学习:训练样本只有输入,没有相应的实际值作对照。
神经网络的组成
神经网络是按照一定规则把神经元连接在一起而构成的网络,不同的神经网络有不同的连接规则。
按层次划分神经网络:最左边一层输入层 + 中间多层隐藏层 + 最右边一层输出层。
深度神经网络:隐藏层层数大于 2 层的神经网络。
全连接神经网络的连接规则如下:
- 同一层的神经元之间没有连接。
- 第 n 层的每个神经元和第 n-1 层的所有神经元相连(全连接的含义),第 n-1 层神经元的输出就是第 n 层神经元的输入。
- 每个连接都有一个权值。
神经元(感知器)的组成
神经元也叫感知器。
- 输入与权值:输入 ,权值
- 输出:神经元的输出 ,b 为偏置值,若令 ,则可以把偏置值视为输入永远为 1 的权值。
- 激活函数:可以说是激活函数决定了神经元的作用,根据上述输出的计算公式,可以计算出自变量的值,因变量 y 到底是多少还不知道,这时候就要选择一个函数来把自变量和因变量映射起来了,这个函数的选取可能涉及许多学科的知识,以下是把一个阶跃函数作为激活函数的例子:
感知器的训练规则:
由神经元的组成的可知,若想根据输入预测输出,需要确定两样东西:权值和激活函数。
激活函数的确定过于深奥,这里就直接用给出的阶跃函数;感知器的迭代规则如下:
初始 w 和 b 置 0
:称为学习效率的常数,作用是控制每一步调整权的幅度。
:训练样本中输入对应的实际输出值。
:感知器的输出值。
线性单元
激活函数为可导线性函数的神经元。
线性单元用来解决回归问题。
线性模型
模型的目的就是根据输入预测输出。
输入 称为输入特征
输出 称为假设,其中
目标函数
线性单元的目标函数的作用是:确定合适的,以提高模型的准确度(即使得模型输出 y’ 与实际值 y,也称 label 的尽可能接近),有关概念如下:
单个样本误差:
模型误差:就是所有样本误差之和
输出 y’ 的计算公式 与 有关,当输入 确定时,E 是 w 的函数,即
现在的目标就是求取合适的 w 使得 E 最小,数学上称为优化问题,E 称为目标函数。
优化算法
优化算法就是用来解决优化问题的,即求取合适的 w 使得 E 最小。
梯度下降优化算法和随机梯度下降算法,前者需要遍历所有样本,而后者只计算一个样本。
数学知识过于硬核,就不抄教程了。
运行实例
与运算感知器
运行与运算感知器的例子,使用插桩法打印输出观察权值变化。
可以看到,从第 4 轮迭代的第 3 次训练开始,感知器的权值和偏置值已经稳定,结果和测试如下:
线性单元
这里仅展示了部分迭代结果,由此可知 10 次迭代内 w 和 b 没有稳定下来。
拟合结果如下: