本文来自以下内容:
- Hinton coursera《neural network for machine learning》课程主页 第一周第三个视频
在下不才,专业水平、 写作水平都很次,若有意见或建议, 欢迎通过下方微博或邮箱联系。
原则上应该——我规定——从什么开始?
A. 问题
B. 定义
C. 故事
D. 历史
问题是什么?能吃吗?
我们已经学习过两类典型的神经元模型, 感知机 和 逻辑回归。
很明显,这种模型不少,按一定规则可以创造出新的模型,所以不值得为每一个模型都写上一篇教程,所以在这里我们将一口气学习若干个模型, 作为一个合集, 总结其中规律,最好是了解下各种模型的优劣、做个对比(然而我没做到)。
废话说太多,开始正文。
首先明确一下我们的目标—— 学习若干神经元的简单的抽象模型
重复一遍,我们已经学习过 感知机 和 逻辑回归 , 接下来我们要有信心, 重新造出这些轮子。
感知机和逻辑回归,哪个简单?
A. 感知机
B. 逻辑回归
很简单的感知机
回顾感知机的模型, 数学式如下:
f(x)=sign(w∗x+b)={+1w∗x+b≥0−1w∗x+b<0
现在要把它看作是一个神经元, 所以得到下一部分内容
二元阈值神经元
二元阈值神经元 binary threshold neurons, 于1943年由McCulloch 和 Pitts 提出,这两位是生物学家,研究神经生理学的。 而我们知道 感知机(perceptron)感知器(perceptron)1957年由Rosenblatt提出。 它俩的数学模型是一样的, 但感知机还有一套完整的模型有策略有算法, 区别应该是在这里。
二元阈值神经元binary threshold neurons有两类形式, 一种如上, 另一种简单变换下就是:
f(x)=sign(w∗x)={+1w∗x≥θ−1w∗x<0
其中θ=-b。
来个命题作文,看了二元阈值神经元和感知机,你有何感想?
个人感想
题外话, 两个神经学家(好怪的感觉)1943年提出的神经元模型,直接影响到了1957年的计算机算法 感知机, 而且据 Hinton 说也影响到了冯诺依曼设计电子计算机。
所以,一个人的命运当然要靠个人的奋斗,也要考虑到历史的进程。
不对, 学习和研究要做到触类旁通、 举一反三, 所以知识面广是有好处的, 可以从其他领域借鉴思想。
新瓶装新酒当然是最好的, 但能做到旧瓶装新酒甚至新瓶装旧酒也是有意义、有很大贡献的。
接下来回归正题。
如何继续?
知道了二元阈值神经元或感知机, 下一步可以做什么?
A. 对它进行扩展、变化
B. 另起炉灶
从XX说开去
标题很套路,个人感觉中小学时期看了若干篇这名字的作文。
我们确实可以另起炉灶, 从其他领域模仿(借鉴)到新的想法,但确实不在这篇文章的范围之内了。
还是从 二元阈值神经元 开始,作为切入点。 找到切入点后, 做什么呢?对一个原型有些什么方案来进行扩展呢?比较尴尬,我本来以为六顶思考帽有讲如何做扩展、变化,结果不是这本书,不知道是哪本书讲的了。只能说说自己的观点, 不太靠谱。
扩展、变化 不外乎三种结果:
- 简化
- 复杂化
- 等价、难度相当
扩展、变化的方案我记得(难不成真是我自己编的?)有几种:
- 替换
- 逆向分析
- 加一点
- 减一点
以上都是指导性原则(如果是前人、大师总结的,那很好,但现在是我总结的就尴尬了), 我们记住这些原则,有意识地、刻意地使用, 进而形成良好的习惯、本能。
我们现在是不是要对 二元阈值神经元(感知机)进行扩展啦?
A. 是
B. 不是
扩展的方向
还记得这篇教程的名字吧? 《一些简单的神经元模型》, 没有人知道正确、准确的数学化神经元模型是什么样。
所以可以发挥自己的想像力,创造出各式各样的神经元模型,就好比DNA结构发现之前,生物学家提出过很多种模型,但DNA证明是双螺旋结构后,还跳出来说DNA是其他结构就成笑柄了。
扩展先看目标, 有简化、复杂化、等价三种结果。
找句名言壮壮胆, 爱因斯坦说过 "Everything Should Be Made as Simple as Possible, But Not Simpler"(这句从Udacity的机器学习导论上看到的)。 复杂化肯定是有无限可能的, 等价不好说多少种可能,一种没有都可能。
那我们希望找找最简单、最原始的方案,问题就来了。
二元阈值神经元是不是最简单的神经元模型?
A. 是
B. 不是
怎么简?
要简化, 主要思路肯定是“减一点”; 替换能不能成功简化,不好说; “加一点”却简化原问题的例子太少, 我也就能想到 17个东西分给3个人的智力题。
好,我们来做简化, 二元阈值神经元 f(x)=sign(w⋅x+b),
简化后f(x)=
线性神经元
所以我们得到了f(x)=w∗x+b
如果读者学过机器学习,或看了 机器学习系列 就知道,这个又对应到 线性回归
接下来不能再化简了吧, 线性函数已经是最简了, 那我们接下来就转向到复杂化。
可以从哪个开始扩展、复杂化?
A. 线性神经元
B. 二元阈值神经元
很明显,都可以,但我们还是考虑从 线性神经元进行扩展吧, 毕竟是基础,变化形式要更多样点。
sigmoid神经元
没有前后逻辑, 逻辑回归 是一种神经元方案, 对应模型:
对应数学式:
z=w∗x+by=11+e−z
叫做 sigmoid 神经元, 因为 y=g(x) 这个函数叫 sigmoid 函数。 好处、优势不在这里讨论。
对比线性和sigmoid,二元阈值神经元,这种扩展的思想是什么?
扩展方案
对比线性神经元, 就是 y=g(f(x)),f(x)=w⋅x+b, 给线性回归加了个包装,多加了那么一点东西。可以看出, 二元阈值神经元也是一个对线性神经元的包装 y=g(x) = sign(x)。
你还可以自行扩展, 比如 Hinton 视频里提的 Rectified Linear Neurons,我不打算扯了。
完了吗?
A. 完了
B. 没完
概率化
视频不太看得明白的一块,也不讲, stochastic binary neurons,是对 sigmoid的概率化扩展。
z=w∗x+bP(s=1)=11+e−z
把sigmoid的输出看作出 P(s=1)的概率, 所以,最后的结果应该是sigmoid求出概率后,再加一个 softmax 得到最可能输出, 也可以说是再过了一遍 threshold。
完了吗?
A. 完了
B. 没完
概率化
视频不太看得明白的一块,也不讲, stochastic binary neurons,是对 sigmoid的概率化扩展。
z=w∗x+bP(s=1)=11+e−z
把sigmoid的输出看作出 P(s=1)的概率, 所以,最后的结果应该是sigmoid求出概率后,再加一个 softmax 得到最可能输出, 也可以说是再过了一遍 threshold。
{%radio|完了吗?&完了&没完%}
恭喜
Hinton的视频里提了5种模型, 我这里主要提到了四种神经元的模型, 想把这种东西不割裂地串到一起,确实有点困难, 写得不好, 请多多包涵。
有了神经元模型, 下面就让我们来把神经元连起来组成神经网络,进而用于机器学习吧!
下一篇 前向传播