【霏艺所思】神经网络的本质(草稿中。。。)

https://www.youtube.com/watch?v=jh9MvxjG0PA
结论:神经网络的本质是用来求“面积”的!

# 入门
y = x 是平面上一条直线。当x取值[0, 1]的时候,问直线和x轴所围成的三角形面积是多少?
方法1: 长 x 高 / 2 = 1x1/2 = 0.5
方法2: 先求y=x的积分函数 ,得到 Y = (1/2)x^2,把x=1 带入得到 0.5
方法3: 根据微积分的思想,把三角形划分成m个边长为n的正方形,面积等于nxnxm
当n足够小,则这个答案越逼近三角形面积
方法4: 画一个边长为1的正方形,随机在正方形里挑选一个点P,点P在三角形里的概率,就是三角形的面积。概率可以通过模拟得到。

方法4,是一种蒙特卡洛算法。蒙特卡洛的核心,就是用概率去逼近面积。
类似笛卡尔坐标【直角坐标系】,把代数和几何建立了“桥梁”
蒙特卡洛算法,把概率和微积分建立了“桥梁”,微积分问题都可以用对应的概率来模拟。

# 归一化
很多人会说,如果面积大于1怎么办?
根据相似的原理,nxn的正方形的面积是1x1的正方形面积的n²倍,所以把原来的图形,缩小n倍来处理
通过归一化,将一组数据缩小到 [0,1]之间,面积缩小了n²倍,这样概率=面积/n²
一般考虑问题,都会把问题归约到[0,1]之间的问题,用概率描述。

# 激活函数
当 点P落到三角形里的时候,称为激活,标记为1
如果落到三角形外面,则没有激活,标记为0
落到三角形的面积 = 激活的次数/总次数

问题在于怎么判定在P是不是在三角形里?
举个例子吧!!!
随便找了个点P(0.3, 0.1),在不在三角形里呢?
把x=0.3带入 y = x,得到 y = 0.3 比 0.1 大,所以P一定在三角形里。。。

然后把y = x 用 f(x) 表示【以后都用f(x)表示了】
激活函数记为 A(x)
A(x) = 1 if (f(x) -y) > 0 else 0

别问我为什么这里你们看不懂了。。。[哪怕不懂,也麻烦你们后面说不懂的地方,我来补充!]

总结,激活函数的意思,就是随机得到的点P在不在三角形里的判定函数
现在开始飙车:以后不用 y = x了,改成 y = f(x) 其中f(x) 表示任意曲线,不再是直线了!
因为f(x) 不是 直线了,所以 A(x) 必然也就不是直线了!
然后,大佬们就各自思考如何设计【非线性的激活函数】
最容易想到的就是 A(x) = x if x > 0 else 0
这个就是relu激活函数的由来!!!

至于sigmoid tanh 以及现在很火的 gelu
我日后解释下他们的由来吧。。。【草稿中,后续补充】

f(x)的面积 = 激活的概率 = 激活的次数/总次数

因为relu是最好理解的激活函数,同时计算量非常低,所以我更推荐用relu作为激活函数!
7
分享 2020-06-25

8 个评论

窝觉得不管Coursera还是其他的网课都有一个问题,虽然讲的其实都很不错,但是课后练习和项目太少,也没有考试,总感觉自己学的没什么积极性,大概刷了视频过去就自我满足了,其实还有好多不会。

要发言请先登录注册

要发言请先登录注册