打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
神经网络基础


           http://m.toutiaocdn.cn/group/6553392960484934157/?iid=31905368003&app=news_article&timestamp=1525859579


今天给大家介绍一份非常好的神经网络入门资料,有基础的同学可能会觉得啰嗦,不如推公式来的直接。但个人觉得直觉式的去理解概念,有时候能更清晰的理解概念的细节和背后的逻辑。而这份资料的作者将概念和直觉联系的特别好,仔细看一遍,加深理解。本篇不是翻译,而是鉴于原文太长,整理一个摘要。当然,英文好的同学可以直接看原文,通俗易懂,链接在文末。

网络基石--perceptrons

为何要从感知机(perceptrons)开始讲,可能是由于它是非常早期被提出来,理解它对于理解后续的概念非常有帮助。台大的林老师在机器学习基石这么课里也花了很多时间来讲它,感知机的定义非常简单:

公式1

林老师在课程里介绍了一个非常简单的模型迭代办法,有兴趣的同学可以去看下。本文要重点指出的是它的另一种定义:

重点理解这里的w和b,b可以理解成是公式1的-threshold,这样改的好处是大家不用关心threshold,且后面b也是可以训练的。另外,大家可以想下,对w和b同时乘以一个正数,上述式子的性质不发生变化。

特别指出,作者举了一个例子:

当输入是00,(−2)∗0+(−2)∗0+3=3(−2)∗0+(−2)∗0+3=3为正,即为1,10,01输入的输出也是1,而11输出是0,性质可以看做是一个NAND门,NAND的特质是能够表达出any logical function,比如:

即能说明神经网络能模拟任何函数。当然,如果只是像NAND门一样,通过各种组合能表达任意函数,也没有什么意思,但神经网络是可以学习的,这个就神奇了。

为何sigmoid这么重要

虽然sigmoid会造成梯度消失、爆炸等问题,现在已经不推荐使用了。但它对于理解概念很有帮助。

首先我们了解下机器学习里面使用最广泛的隐式先验,平滑先验(smoothness prior)或者局部不变性先验(local constancy prior)。这个先验表明我们学习的函数不应该在小区域内发生很大的变化。从直觉上理解,当两个样本离得近,大概率是比较像的,即small weight change cause small output change,f(x) 约等于f(x+delta)。其中KNN就是一个极端的例子。

这个先验要求我们的函数最好是smoothness的,我们看下sigmoid函数的图:

它将感知机在threshold上的跳变变成了连续的了,很合适做一个激活函数,再来看:

其中:

可以看出output的变化和w,b的变化是一个线性函数的关系。

到这里才讲了本章的三分之一内容,后面讲了网络结构,梯度下降,最后用python的numpy库实现了一个简单的神经网络,识别mnist的手写数字识别任务。太晚了,剩下的部分后面找机会再写吧。

英文原文:Neural networks and deep learning

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
当我们在谈深度学习时,到底在谈论什么(一)
李世石的对手远比他想象的更强大!AI学习的深奥逻辑令人悚然
神经网络详解,正向传播和反向传播
常用激活函数比较
深度学习笔记二:多层感知机(MLP)与神经网络结构
理解神经网络的激活函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服