Ref: StatQuest with Josh starmer
目前教学材料都用了好看但不太容易理解的图片以及复杂的数学公式来重现神经网络,此教程在神经网络上标记每一个小的数据来让跟踪细节变得容易一些, 数学公式也会尽可能简单但能保持算法的真实度。
设计一个药物,对三个group给药,分别为低、中、高剂量的三个group。
- 低剂量没有效果,设置成0
- 中剂量有效, 设置为1
-
高剂量没有效果,设置成0
我们想利用这些数据来预测将来一个剂量是否有效。但我们不能用一条直线拟合数据用来预测,因为无论如何旋转直线,它只能准确预测2/3的剂量。
用直线拟合
神经网络的好处是可以用蜿蜒的曲线(squiggle)来拟合数据。甚至有更复杂的数据我们也可以用squiggle来拟合。
squiggle
1. What neural networks do and how they do it.
A neural network consists of nodes and connections between the nodes.
每个connection的数字是神经网络拟合数据的estimate parameter值。

Estimate parameter值是类似于当我们用直线来拟合时,斜率和截距的值。类似的,用神经网络拟合数据时,用了一个back propagation的方法来estimate unknown parameter。如何用这个方法估计参数值会在part2讲,现在我们假设已经用神经网络拟合了这个数据集(低中高剂量),这意味着我们已经估计了这些参数(图中的数字)以及有curved line的node。这些curved line 是 building blocks 用于给数据拟合一条squiggle(之前绿色的)。
这个笔记讲的是如何通过参数值重塑这些相同的曲线,然后将其相加,得到一个符合数据的绿色squiggle。注意对于一个神经网络来说,我们可以选择很多curved lines,如softplus, ReLU, sigmoid型等(见下图)。



这些 curved/bent lines 叫做activation functions。当我们构建神经网络的时候,需要决定使用哪一种activation functions。 大多数人在讲授神经网络时一般选择S型曲线,但实际上,ReLU Activation function / softplus actication function更常用。 本笔记使用softplus。

图中有一个输入节点,我们在那里代入剂量;一个输出节点,告诉我们预测的有效性(第二张绿色的图中的y轴);两个介于输入和输出间的节点。实际上神经网络要比这个例子更加fancy:

上图中有2个input nodes, 2个output nodes, 在输入和输出节点间不同的hidden layers,以及网状connections。
当构建一个神经网络的时候,首先要决定有多少个hidden layer以及每个hidden layer中有多少个nodes。有经验法则来帮助决定,只需要先估计一下然后测试神经网络拟合得怎么样,如果需要增加更多的layer和nodes。
虽然神经网络看起来复杂,但都是通过类似于简单的例子构建的。
-
how neural network creates new shapes from the curved or bent lines in the hidden layer and then adds them together to get a green squiggle that fits the data?
注意:为了让计算容易,我们假设剂量的范围是(0,1)
首先把最低的剂量(0)代入神经网络,
(0*-34.1 +2.14) =2.14, 是 activation function的 x轴坐标,纵坐标是代入f(x) = log(1+ e^x)=2.25 的值。如果选择的是s曲线则代入对应的曲线方程。
注意:在统计/机器学习/大多数编程语言中,log() 值得是 natural log,即ln, e为底的log。
依次讲剂量的值(0,1)代入,得到蓝色曲线。注意代入神经网络中时 x的坐标值集中在红色部分,只有红色部分中对应的y值用来生成蓝色曲线。


接下来把蓝色曲线的y轴的值放大-1.3倍。比如将上一步的2.25 * -1.3 = -2.93。依次放大得到一个新的blue curve。

类似地,得到 另一个hidden node的橙色曲线。

我们可以看到用fit a neural network to data 在connection上给我们了不同的估计参数值,以及在每个hidden layer中node在activation function的占比也不同。

将蓝色和橙色曲线相加,最终-0.58使得green squiggle。
e.g. 如果剂量为0.5,代入蓝色框,通过运算后得到绿色的框(efficiency)为1.03,比起0离1更近,我们可以得到结论这个剂量是有效的。

-
为什么叫神经网络?
nodes - > neuron(神经元)
connection -> synapses(突触) -
parameter
用作乘法的parameter -> weights
用作加法的parameter -> bias
注意: 神经网络起源于两个identical activation functions, 但connections上的weights 和 biases 将它们分割、翻转、拉伸到新的形状,最终将它们加起来的到新的squiggle,squiggle最终移动到可以fit data。
理论上神经网络可以对任意数据集(无论多么复杂)fit green squiggle。
2. how neural networks are fit to data with backpropagation
how backpropagation estimates these parameters?
网友评论