大数据文摘出品
作者:蒋宝尚
很多同学入门机器学习之后,直接用TensorFlow调包实现神经网络,对于神经网络内在机理知之甚少。
编程语言与技术框架变化更新非常之快,理解背后的原理才是王道。下面文摘菌和大家一起用Numpy实现一步一步实现神经网络。
此篇文章旨在帮大家梳理神经网络知识点,且此篇文章是第一部分,只是简单搭一个简单的框架。暂时不涉及梯度下降、学习率调参等知识点。
最简单的神经网络包含三个要素,输入层,隐藏层以及输出层。关于其工作机理其完全可以类比成一个元函数:Y=W*X+b。
一个简单的神经网络可以理解为两次一元函数的输入和输出。
第一次:Y1=A1(W1*X+b1) ,其中X是原始数据的输入,A1代表激活函数。
第二次:Y2=A2(W2*Y1+b2),其中Y1是第一次的输出,A2是激活函数。参数W1、W2、b1、b2原则上各不相同。
本篇文章我们用到的激活函数有两个,一个是tan(x),另一个是softmax。两者的函数曲线如下。
两个函数都有相同的特点,即函数值在零点左右变化较大,当输入值远离零点,其输出较稳定。
首先导入相关的库,需要两个库,一个用于科学计算的Numpy,另一个是math。
import numpy as np
import math
然后定义激活函数,