DL roam

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(直观印象)
(直观印象)
第33行: 第33行:
  
  
那下一层的神经元怎么得到自己的 '可能性' 值, 有两个步骤. 第一步,线性影射值, Z<sup>l</sup> = (W<sup>l-1</sup><sub>1</sub>a<sup>l-1</sup><sub>1</sub> +b<sub>1</sub>) + ( W<sup>l-1</sup><sub>2</sub>*a<sup>l-1</sup><sub>2</sub> + b<sub>1</sub> ) ...   
+
那下一层的神经元怎么得到自己的 '可能性' 值, 有两个步骤. 第一步,线性影射值, Z<sup>l</sup> = w<sup>l-1</sup><sub>1</sub>a<sup>l-1</sup><sub>1</sub> <sub>1</sub> + w<sup>l-1</sup><sub>2</sub>*a<sup>l-1</sup><sub>2</sub> + ... + b  
  
 
这个式子的意思是有好几个:
 
这个式子的意思是有好几个:
* 每个神经元里有两个变量,一个叫w ( weight), 另一个叫做 b (bias 偏致).
+
* 每个神经元都被上一层的神经元以某种权重激活 (activation). 权重值是w (weight)
* 每个神经元都被上一层的神经元以某种权重激活 (activation).
+
* 上一层的一个神经元, 贡献给下一层的某个神经元的线性值"z"(小写代表某一个神经元), 用z=a*w计算.
* 上一层的一个神经元, 贡献给下一层的某个神经元的线性值"z"(小写代表某一个神经元), 用z=a*w+b,一个最简单的线性方程计算.
+
* Z 是所有上一层的神经元对这层的一个神经元贡献的和, 加上一个bias值 (b)
* Z 是所有上一层的神经元对这层的一个神经元贡献的和.
+
* 这层里每一个神经元都含有对应上一层的所有神经元的数字对(w<sub>i</sub>,a<sub>i</sub>).
+
 
* 第一层的激活直接从数据, 这里是784个像素的值获得.
 
* 第一层的激活直接从数据, 这里是784个像素的值获得.
  
第49行: 第47行:
  
  
所谓训练神经网络,就是找到每一层每一个神经元里所有(w<sub>i</sub>,a<sub>i</sub>)的最合适的值.
+
所谓训练神经网络,就是找到每一层每一个神经元里所有w<sub>i</sub>和b 的最合适的值.
  
 
== 最小值 ==
 
== 最小值 ==
  
 
== 卷积 ==
 
== 卷积 ==

2018年7月3日 (二) 14:36的版本

目录

1 接触 Deep Learning

Jack 给我普及Deep learning已经是一两年前的事情了. 作为酒桌的谈资,自然是没往心里去. 直到我最爱的几个youtube频道相继开始聊起Deep learning的话题,才想起来探个究竟.

  • 3Blue1Brown on youtube [1]

2 直观印象

无论是jack给的连接还是youtube频道3Blue1Brown, 都是用下面这个例子来作为介绍deep learning.

直接跳到这个神经元结构示意图, 是下面的这个样子.

Deep learning hw fnn.png


什么意思呢, 就是假设每个手写数字都是28x28个像素的小图片, 总共784个点, 每个点的像素值按照一行行配列好,变成一个输入数组对应 input layer的784个神经元, 非常的直接和暴力.

神经元有四层, 中间两层称作 hidden layer.

最右边是输出层, 对应0到9 10个数字. 如果已经训练好了, 一个手写的'3'的图片,在输出层将会得到 3这个神经元的值最接近1(最大可能性), 其他神经元,理想状态, 可能性最接近0 (或-1).

而且,有一个事情必须提到,每个神经元有一个可能性的度量值, 从[-1, +1],或者从[0,1], 一层层传递下去,构成正向反馈.


好了, 一共有四层, 算是'深了', 所以叫 'deep learning', 而层数很少的呢叫 'shallow learning'.

每一层的每一个结点都全链接到下一层的所有神经元, 同样,靠右的神经元也全链接到上一层的所有神经元, 这样的结构叫 "FNN" 全链接神经网络.


那下一层的神经元怎么得到自己的 '可能性' 值, 有两个步骤. 第一步,线性影射值, Zl = wl-11al-11 1 + wl-12*al-12 + ... + b

这个式子的意思是有好几个:

  • 每个神经元都被上一层的神经元以某种权重激活 (activation). 权重值是w (weight)
  • 上一层的一个神经元, 贡献给下一层的某个神经元的线性值"z"(小写代表某一个神经元), 用z=a*w计算.
  • Z 是所有上一层的神经元对这层的一个神经元贡献的和, 加上一个bias值 (b)
  • 第一层的激活直接从数据, 这里是784个像素的值获得.


第二步是, 根据Z计算神经元的 "可能性" 值, Z可能是任何值, 但是可能性的值, 一般是[0,1] (或者[-1,1]), 这个步骤是非线性的, 也是最重要的, 神经元必须有非线性过程. 这个函数应该能把任意实数值影射到0-1这个区间( 或者 [-1,1]). 这样的函数有很多,最常见的是 σ

00.jpg


所谓训练神经网络,就是找到每一层每一个神经元里所有wi和b 的最合适的值.

3 最小值

4 卷积

个人工具
名字空间

变换
操作
导航
工具箱