前言
如何深入理解基本神经网络模型,对于使用机器学习框架的理解十分重要。本文主要参照 Milo Spencer 与 Trask 的论文进行阐述,感谢两位作者的辛勤付出。
以下内容,将带你一步步的从一个简单问题,从头构建一个神经网络。一旦你理解了,你可以喜欢的编程语言去实现它,本文使用Python作为示例。
最终代码
你可能发现这有点难以理解,好吧我们从头开始。继续下一章节。
我们在做什么?
理解基本问题至关重要,如果不理解最终目的,也就没法理解整个模型在干什么。
我们主要从数据输入、数据输出、优化,都在干什么来入手,一步步的构建一个神经网络。
数据输入输出
想象有一只狗,懒洋洋的躺在地上,你用手挠它身上三个部位(比如后背、头、肚子),它有可能会很兴奋。来看看如何用用数字量化我们的一次逗狗行为,架设输入1代表挠这个位置,0代表不挠这个位置;输出1代表狗狗兴奋,0代表没反应。 那么:
输入(后背、头、肚子) | 输出(兴奋、没反应) | ||
---|---|---|---|
1 | 1 | 1 | 1 |
从上表可见,我们同时刺激这条可怜小狗的后背、头、肚子,结果是它很兴奋! 下面的这个表就是我们实验4次的结果:
输入(后背、头、肚子) | 输出(兴奋、没反应) | ||
---|---|---|---|
0 | 0 | 1 | 0 |
1 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 |
以上表格中的输入区域,每一行的三个值就是我们的一次尝试。四次分别用了不同的组合,比如第一次至挠肚子,狗狗没反应。以此类推。
那么,我们怎么确定一种刺激方法,能让狗狗兴奋呢?(逗狗狂魔)换句话说,怎么刺激这条狗的三个部位,哪个地方轻,哪个地方重?是摸摸头和摸摸背组合,还是摸摸头和摸摸肚子组合?
我们需要确定这三个部位的权重!
基本神经网络
未完待续…