Week4 神经网络模型表示

神经网络——模型

摘要

本周主要介绍了神经网络的模型,只学习模型表示,需要好好熟悉才能避免后面看不懂。练习中对其加以实现。

练习实现了上周未实现的多分类问题,实例为手写数字识别,效率是个问题,所以会对效率加以讨论。

神经网络模型

动机

看起来逻辑回归已经足够解决所有分类问题。但是,像在练习中处理图像,特征真的太多,所以训练效率极其低,可以参考下一节对多分类逻辑回归效率的思考。所以神经网络分层的结构可以解决这个问题,当然,神经网络不只是为了优化逻辑分类而存在。

模型表示

细节太多,很难说清楚,还是需要系统的学习。但其实只要熟悉几次,基本就不会觉得晕,本质上,只是下面一张图。

在这里插入图片描述

对里面提到的变量,写法,以及各层θ的大小,要很熟悉才行,确实挺多东西,但并不难。

定义

a i ( j ) a_{i}^{(j)} ai(j) = “activation” of unit i in layer j

Θ ( j ) \Theta^{(j)} Θ(j) = matrix of weights controlling function mapping from layer j to layer j+1

以下是每一层的详细公式
a 1 ( 2 ) = g ( Θ 10 ( 1 ) x 0 + Θ 11 ( 1 ) x 1 + Θ 12 ( 1 ) x 2 + Θ 13 ( 1 ) x 3 ) a 2 ( 2 ) = g ( Θ 20 ( 1 ) x 0 + Θ 21 ( 1 ) x 1 + Θ 22 ( 1 ) x 2 + Θ 23 ( 1 ) x 3 ) a 3 ( 2 ) = g ( Θ 30 ( 1 ) x 0 + Θ 31 ( 1 ) x 1 + Θ 32 ( 1 ) x 2 + Θ 33 ( 1 ) x 3 ) h Θ ( x ) = a 1 ( 3 ) = g ( Θ 10 ( 2 ) a 0 ( 2 ) + Θ 11 ( 2 ) a 1 ( 2 ) + Θ 12 ( 2 ) a 2 ( 2 ) + Θ 13 ( 2 ) a 3 ( 2 ) ) \begin{array}{r}{a_{1}^{(2)}=g\left(\Theta_{10}^{(1)} x_{0}+\Theta_{11}^{(1)} x_{1}+\Theta_{12}^{(1)} x_{2}+\Theta_{13}^{(1)} x_{3}\right)} \\ {a_{2}^{(2)}=g\left(\Theta_{20}^{(1)} x_{0}+\Theta_{21}^{(1)} x_{1}+\Theta_{22}^{(1)} x_{2}+\Theta_{23}^{(1)} x_{3}\right)} \\ {a_{3}^{(2)}=g\left(\Theta_{30}^{(1)} x_{0}+\Theta_{31}^{(1)} x_{1}+\Theta_{32}^{(1)} x_{2}+\Theta_{33}^{(1)} x_{3}\right)} \\ {h_{\Theta}(x)=a_{1}^{(3)}=g\left(\Theta_{10}^{(2)} a_{0}^{(2)}+\Theta_{11}^{(2)} a_{1}^{(2)}+\Theta_{12}^{(2)} a_{2}^{(2)}+\Theta_{13}^{(2)} a_{3}^{(2)}\right)}\end{array} a1(2)=g(Θ10(1)x0+Θ11(1)x1+Θ12(1)x2+Θ13(1)x3)a2(2)=g(Θ20(1)x0+Θ21(1)x1+Θ22(1)x2+Θ23(1)x3)a3(2)=g(Θ30(1)x0+Θ31(1)x1+Θ32(1)x2+Θ33(1)x3)hΘ(x)=a1(3)=g(Θ10(2)a0(2)+Θ11(2)a1(2)+Θ12(2)a2(2)+Θ13(2)a3(2))

小结——关于神经网络模型的思考

神经网络模型,应该就是一个分层进行训练,极大降低训练量的分层模型,每一个神经元都是一条公式,每一条边是一个权重仅此而已。注意,这里说的是模型表示本身。其实还有诸多大问题,比如,现在能想到的,参数怎么训练?怎么用损失函数反馈,用什么损失函数?这些才是这个模型的关键。

模型表示本身就是感知机——另一个形式的函数。请看使用神经网络完成的NOR机。太复杂的话,其实只看第一个就可以,h = 20 * x1 + 20 * x2 - 30,结果就是,只有x1,x2同时为一,输出才是正数,经过sigmoid才会等于1。所以这个是AND机。

在这里插入图片描述

多分类逻辑回归效率思考

练习中,用逻辑回归进行多分类训练,做的是手写数字,每个数字是20 x 20 象数,也就是400个特征,所以数据为5000 x 400,共有5000个数据。

逻辑回归运行时,对于每个分类,每个数字,大概需要400 x 50 x 400 x 5000 ——400个参数进行梯度下降,迭代50次,每次梯度下降都需要带入求和400 x 5000个数据。大概就是这样,和特征数量N成平方增长。

上面可能不是很直观,仔细想一下,400个未知数的方程求解系数,是非常恐怖的。所以我突然叶觉得梯度下降真的强。

练习

  1. 矩阵化上周的逻辑回归
  2. 利用上面程序,进行多分类实现,包括多分类模型训练和多分类预测,效率问题值得思考
  3. 神经网络模型实现,只实现模型,提供训练完成的参数。

代码参考github https://github.com/KDL-in/MachineLearningOnCoursera

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值