1. 简单的神经网络
![](https://img.haomeiwen.com/i8553141/f0cb6bdb6e5cd4c1.png)
第一层
上面这个神经网络展示的是一个隐藏层和一个输出层。
我们输入四个变量到输入层,然后这个输入层有三个神经单元,每个神经单元室一个逻辑函数。
然后就会输出三个值,给到输出层,最终给一个总值。
我们在变量的右上角以一个中括号里的数字来标识神经网络层数。
第二层
![](https://img.haomeiwen.com/i8553141/029801150265ece6.png)
![](https://img.haomeiwen.com/i8553141/0b0a760cacd278c6.png)
2. 复杂的神经网络
![](https://img.haomeiwen.com/i8553141/e4dbb8c9a192c150.png)
3. 神经网络向前传播
把所学的整合到一个算法中,让神经网络进行推测或者预测,这个算法叫做向前传播。
3.1 手写数字判断
![](https://img.haomeiwen.com/i8553141/50c60558208533a3.png)
![](https://img.haomeiwen.com/i8553141/0ba699661d76d9a2.png)
4. 如何用代码实现推理
![](https://img.haomeiwen.com/i8553141/233a10b2e1447374.png)
举个例子,比如烘焙咖啡豆的时候,温度和持续时间是两个很重要的参数,我们看上图,如果温度过低那么显然是会导致咖啡豆没有熟,如果持续时间过少,也是一样的道理。如果持续时间或者温度过高就会导致咖啡豆烤过头。
那么得到中间三角区域的数据才是我们真正需要机器学习的。
![](https://img.haomeiwen.com/i8553141/6b774e64c286ec93.png)
解读一下前三行:
- 创建一个二维数组
- 创建一层神经网络,其中有3个单元,激活函数使用sigmoid也就是逻辑回归函数。
- 将x的数据代入到神经网络中计算。
我们回到手写数字识别的问题中:
就可以这么写:
![](https://img.haomeiwen.com/i8553141/5678fb3c92d489b7.png)
Tensorflow中的数据形式
![](https://img.haomeiwen.com/i8553141/035c034cecf097ed.png)
Tensorflow惯用的是二维以及以上的数字矩阵,因为Tensorflow是被设计用来处理非常大的数据集的。
而第三种写法只是一个线性的数组,既不是1行2列的矩阵也不是1列2行的矩阵。
1.numpy与Tensorflow中数据形式的不兼容
在矩阵的表示上,两者不一样。
![](https://img.haomeiwen.com/i8553141/a1ceee5f226d097a.png)
如果要将tensor转换为adarray需要使用a1.numpy()函数来转换。
所以在使用numpy与Tensorflow的时候,我们一般都使用numpy来处理数据,然后将numpy数组传入Tensorflow时,Tensorflow喜欢将其转为自己的内部格式。
网友评论