神经网络(一)

继续发公式~~。有兴趣阅读能正常显示公式的版本请移步 http://blog.kamidox.com/neural-networks-1.html

动机

为什么我们需要神经网络?

对非线性分类问题,当特征的个数很大的时候,计算量将会非常大。比如对有 100 个特征($x_1, x_2, \cdots, x_100$)的问题,如果我们只算二阶多项多项式,我们将得到大概 5000 个特征 ($O(n^2)$)。而如果按照三阶多项式来模拟,将得到将近 300,000 个特征 ($O(n^3)$)。再比如,针对一个 100 x 100 分辨率的图片,我们假设每个象素点只用黑白来表示,那么将得到 100,000 个特征值。这个时候如果用二阶多项式来拟合,我们将得到 50,000,000,000 个特征值组合。这是非常巨大的计算量。

显然,用线性回归和逻辑回归来解决这类问题是不现实的。

神经网络模型

神经网络模型是依照大脑的神经网络的结构建模的。即多个神经元构成一个层,这些神经元是输入,层的目标值为输出。一个神经网络包含多个层。神经元是神经网络中的运算单位。

神经元

神经元是神经网络中的最小运算单位,多个神经元构成一个层。神经网络依然使用逻辑回归算法里介绍的 Sigmoid Function 作为基本模型。

$$
g(z) = \frac{1}{1 + e^{-z}} \\
z = \theta^T x \\
h_\theta(x) = \frac{1}{1 + e{-\thetaT x}}
$$

其中,$x$ 称作神经元的输入 (input wires or Dendrite),是个列向量 $[x_1, x_2, ... x_n]$。$\theta$ 称为权重 (weights),也可以按照逻辑回归算法里的叫法,称为参数 (parameters)。$h_\theta(x)$ 称为输出 (output wires or Axon)。这个是神经网络模型中的基本运算单元。

类似逻辑回归,我们也会增加一个输入 $x_0=1$,在这里称作偏置单元 (bias unit)。

神经网络

神经网络可以划分成多个层,每个层有一定数量的神经元。其中第一层叫输入层,最后一层叫输出层,一个或多个中间层叫隐藏层。

neural networks
neural networks

几个索引的含义

$a_i^{(j)}$: 表示第 j 层的第 i 个神经元 (unit i in layer j)
$\Theta^{(j)}$: 控制神经元网络中从第 j 层转化到第 j + 1 层的权重矩阵。这个矩阵里的元素经常写成 $\Theta_{ik}^{(j)}$ 其中 j 表示第 j 层,i 表示第 j 层神经元的单元索引值,k 表示第 j 层第 i 个神经元的输入项索引值。

这段索引的描述很抽像。看一下上图的神经网络,他们的元素满足如下关系。从下面的关系中去正确地理解各个变量的索引值的含义。其中 $g(z) = \frac{1}{1 + e^{-z}}$ 就是 Sigmoid Function。

$$
a_1^{(2)} = g(\Theta_{10}^{(1)} x_0 + \Theta_{11}^{(1)} x_1 + \Theta_{12}^{(1)} x_2 + \Theta_{13}^{(1)} x_3) \\
a_2^{(2)} = g(\Theta_{20}^{(1)} x_0 + \Theta_{21}^{(1)} x_1 + \Theta_{22}^{(1)} x_2 + \Theta_{23}^{(1)} x_3) \\
a_3^{(2)} = g(\Theta_{30}^{(1)} x_0 + \Theta_{31}^{(1)} x_1 + \Theta_{32}^{(1)} x_2 + \Theta_{33}^{(1)} x_3) \\
h_\Theta(x) = a_1^{(3)} = g(\Theta_{10}^{(2)} a_0 + \Theta_{11}^{(2)} a_1 + \Theta_{12}^{(2)} a_2 + \Theta_{13}^{(2)} a_3)
$$

假设 j 层有 $s_j$ 个单元,j + 1 层有 $s_{j+1}$ 个单元。那么 $\Theta^{(j)}$ 将是一个 $s_{j+1} \times (s_j + 1)$ 的矩阵。

向前传播 (Forward Propagation) 算法的向量化实现

针对上图的三层神经网络,其元素之前的关系按照向量化写法如下:

$$
let: z_1^{(2)} = \Theta_{10}^{(1)} x_0 + \Theta_{11}^{(1)} x_1 + \Theta_{12}^{(1)} x_2 + \Theta_{13}^{(1)} x_3 = \Theta^{(1)} x \\
\Rightarrow a_1^{(2)} = g\left( z_1^{(2)} \right) \\
a_2^{(2)} = g\left( z_2^{(2)} \right) \\
a_3^{(2)} = g\left( z_3^{(2)} \right) \\
\Rightarrow a^{(2)} = g\left( z^{(2)} \right) \\
z^{(3)} = \Theta^{(2)} a^{(2)} \\
\Rightarrow h_\Theta(x) = a^{(3)} = g\left( z^{(3)} \right)
$$

上述关系的本质上,就是从第二层开始,每个神经元,都把上一层的神经元当作输入,他们之间满足逻辑回归算法。即从上一层的神经元可以计算出下一层的神经元。这也形象地称为向前传播算法。

更一般的情况,假设待训练的数据集 $X$ 是 m x n 矩阵,记作 $X \in R^{m \times n}$,其中 m 是数据集个数,n 是输入的特征数,此处假设 $X$ 里已经加入了偏置单元 (bias unit)。假设隐藏层有 s2 个单元,$\Theta^{(1)}$ 为输入层到隐藏层的转换参数。则 $\Theta^{(1)} \in R^{s2 \times n}$。输出层有 s3 个单元,$\Theta^{(2)}$ 为隐藏层到输出层的转换参数。则 $\Theta^{(2)} \in R^{s3 \times (s2 + 1)}$。我们记 $a^{(2)}$ 为隐藏层,$a^{(3)}$ 为输出层,则:

$$
a^{(2)} = g\left( X * \left( \Theta^{(1)} \right)^T \right)
$$

算出后,给 $a^{(2)}$ 加上偏置单元。为了书写方便,此处我们仍然将加上偏置单元后的隐藏层记作 $a^{(2)}$。则:

$$
a^{(3)} = g\left( a^{(2)} * \left( \Theta^{(2)} \right)^T \right)
$$

这几个公式就是神经网络向量化运算的重要规则。其中 $g(z) = \frac{1}{1 + e^{-z}}$ 是 Sigmoid Function。熟悉矩阵运算的同学可以验证一下上述运算在矩阵维度上的一致性。

神经网络通过学习来决定其特征

单单从 $h_\Theta(x) = g\left(\Theta^{(2)} a^{(2)}\right)$ 式子来看,神经网络的输出就是由特征 $a_1^{(2)}, a_2^{(2)}, a_3^{(2)}$ 的逻辑回归模型表述的。但这里的每个特征 $a_1^{(2)}, a_2^{(2)}, a_3^{(2)}$ 都是分别由 $x_1, x_2, x_3$ 的逻辑回归模型学习出来的。这就是神经网络的精髓所在。

神经网络的应用实例

运用神经网络来模拟逻辑运算

假设 $\Theta = [-30, 20, 20]$,

$$
h_\Theta(x) = g(\Theta^T x) = g(-30 + 20x_1 + 20x_2)
$$

$g(z)$ 是 Sigmoid Function,其图形近似于 S 形。假设 $x_1, x_2 \in [0, 1]$ 是逻辑值。当 $x_1 = 0, x_2 = 0$ 时,$h_\Theta(x) = g(-30) \approx 0$。同理可以写出下面的真值表:

x_1 x_2 h(x)
0 0 0
1 0 0
0 1 0
1 1 1

这样就模拟了逻辑 AND 的运算,即 h(x) = x1 AND x2。同理可以推算出当 $\Theta = [-10, 20, 20]$ 时,h(x) = x1 OR x2。还可以推断出当 $\Theta = [10, -20, -20]$ 时,h(x) = (NOT x1) AND (NOT x2)。当需要计算 x1 NXOR x2 时,可以用神经网络模型,即 x1 NXOR x2 = (x1 AND x2) OR ((NOT x1) AND (NOT x2))。我们把 x1, x2 当作输入,a1 = (x1 AND x2), a2 = (NOT x1) AND (NOT x2) 当作隐藏层,而最终的输出由 a1 OR a2 来计算得来了。这样我们就可以使用神经网络模拟复杂的逻辑运算。

运用神经网络来处理多类别的分类问题

上文介绍的神经网络只能输出 0, 1 二元问题。扩展到多个类别时,我们输出一个向量,比如针对最终结果是四种类别的问题时,输出 [1, 0, 0, 0] 表示第一种类别,输出 [0, 1, 0, 0] 表示是第二种类别,依此类推。

问:为什么不用 1, 2, 3, 4 四个不同的值来表示四种类别,而要用一个四维的向量来表示?
答:从神经网络模拟逻辑运算的例子可以看出来,一个神经元可以输出只能是从 0 到 1 的之间的值,回忆逻辑回归算法里的描述,这个值表示的是出现 0 或 1 的概率,我们可以选择一个临界点,比如 0.5。当输出值大于等于 0.5 时判定为 1,当输出值小于 0.5 时判定为 0,一个神经元不能输出整其他整数值。逻辑回归就是用来解决分类问题的离散函数,而不是对值进行预测的连续函数。针对四个类别的分类问题时,我们可以把输出层神经元个数定为 4 个,这样这四个输出层神经元的值就构成了一个有四个元素的列向量。所以,我们使用四维的列向量来表示。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容

  • 继续发公式。有兴趣阅读能正常显示公式的版本请移步 http://blog.kamidox.com/neural-n...
    kamidox阅读 826评论 1 2
  • 成功的教育,就是孩子走到哪里,父母都放心。 首先,是生活上的放心。孩子的生活能力需要从小培养,而家长们常常忽视这一...
    人在旅途云在天阅读 238评论 2 1
  • 每个时代与每个时代的交替变迁不一致,每个时代的君臣在领导时代进步或结束时不能同日而语。 中国上下五千年的历史进化,...
    灵动不惑阅读 149评论 0 1
  • 想想刚进入大二的我, 仍然对自己的未来一片迷茫。 我对自己的专业好像并不感冒, 也并不了解自己真正的兴趣。 每天倒...
    李欣桐S阅读 658评论 0 1
  • 约翰·克利斯朵夫 创作背景 作品鉴赏 编辑
    wyfddml阅读 1,101评论 0 1