博客
关于我
想要成为高级程序员,你得先学数学才行
阅读量:320 次
发布时间:2019-03-03

本文共 1055 字,大约阅读时间需要 3 分钟。

傍晚,忙了一天的 Ray 终于下班,摘下眼镜休息双眼。他走到公交车站等23路公交车回家。在这里,作为一个高度近视眼的人,Ray 每天都面临着不小的困扰。每次公交车驶来,他都看不清车身上的号码,这严重影响了他的挤车效率。

这让他不禁思索,为什么别人都能轻松看清,而自己却要戴着眼镜?想起在国外出差时,公交车上的号码总是印在车身上,字号很大,即使视力不好也能看得很清楚。"如果能做一个手机App,拍摄车身照片并自动识别号码,那就太方便了!"这念头突然在他脑海中闪现。

他立刻想到了朋友 Cavy,决定与他共谋此事。Cavy对深度学习算法赞不绝口,甚至提到过曾打败人类顶尖围棋高手的深度学习。Ray虽然对深度学习的原理感到好奇,但还是决定先从基础开始学习。

深度学习的核心在于神经网络,而神经网络又建立在人脑的神经元网络之上。Cavy简单解释道:"神经元通过细胞体接收信息,树突传递信号,轴突输出结果。点火过程可以用数学式子表示:"

z = w1x1 + w2x2 + ... + wn xn

y = u(z)

为了避免单位阶跃函数的间断点,神经网络通常使用 Sigmoid 函数作为激活函数,将输出光滑化。Cavy还提到,神经网络的结构通常包括输入层、隐藏层和输出层。以公交车号码识别为例,我们可以设计一个包含4x3像素的二值图像识别网络,分3层组织:

  • 输入层:12个神经单元,每个对应一个像素位置。
  • 隐藏层:3个神经单元,负责提取特征。
  • 输出层:2个神经单元,判断数字0或1。
  • 通过数学推导,我们可以得到神经网络的关系式:

    输入层:a = z

    隐藏层:b = a(z)
    输出层:c = b(z)

    为了实现这一目标,我们需要预先准备64张图像作为训练数据,并标记好答案。目标函数是最小化平方误差:

    C = Σ( t1 - c1 )² + Σ( t2 - c2 )²

    为了避免繁琐的偏导数计算,误差反向传播法可以用神经单元误差递推关系来简化梯度计算:

    δl = m_{l+1} * f'(z_{l+1}) * δ_{l+1}

    这样,我们就可以一步步计算出各层的误差,从而调整权重和偏置参数,最终达到最小化代价函数的目的。

    Ray对这个方法赞不绝口,但也提出了自己的疑问:"公交车号码由0-9组成,需要更大的网络结构。"Cavy建议使用卷积神经网络(CNN),通过局部感受野和池化层显著减少神经元数量,提高识别效率。

    Ray随后表示需要进一步深入学习,Cavy送给他一本《深度学习的数学》,以帮助他更好地掌握相关知识。

    转载地址:http://mxol.baihongyu.com/

    你可能感兴趣的文章
    php输出数据到csv文件
    查看>>
    php输出语句
    查看>>
    php运行原理详细说明
    查看>>
    php运行环境出现Undefined index 或variable时解决方法
    查看>>
    php进程通信
    查看>>
    R&Python Data Science 系列:数据处理(2)
    查看>>
    php递归算法总结
    查看>>
    PHP递归遍历文件夹
    查看>>
    R&Python Data Science 系列:数据处理(1)
    查看>>
    php错误日志文件
    查看>>
    PHP错误解决:Array and string offset access syntax with curly braces is deprecated
    查看>>
    php隐藏手机号中间4位方法总结
    查看>>
    php面向对象三大特征封装、多态、继承
    查看>>
    php面向对象全攻略
    查看>>
    php面向对象的基础题
    查看>>
    php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)...
    查看>>
    php页面增加自选项,php-在Woocommerce中添加新的自定义默认订购目录选项
    查看>>
    php页面静态化技术;学习笔记
    查看>>
    php项目心得以及总结
    查看>>
    R&Python Data Science 系列:数据处理(4)长宽格式数据转换
    查看>>