sigmoid函数作为激活函数,在每一次W和B处理X之后在进行非线性变化,以便传到下一层。
def feed_forward_nuero(x):
f = lambda x: 1/(1+np.exp(-x))
x = np.random.randn(1,3)
h1 = f(np.dot(W1,x)+bias1)
h2 = f(np.dot(W2,h1)+bias2)
out_put = np.dot(W3,h2)+bias3
¥
支付方式
请使用微信扫一扫 扫描二维码支付
请使用支付宝扫一扫 扫描二维码支付
sigmoid函数作为激活函数,在每一次W和B处理X之后在进行非线性变化,以便传到下一层。
def feed_forward_nuero(x):
f = lambda x: 1/(1+np.exp(-x))
x = np.random.randn(1,3)
h1 = f(np.dot(W1,x)+bias1)
h2 = f(np.dot(W2,h1)+bias2)
out_put = np.dot(W3,h2)+bias3
fully-connected neural networks(conditional neural networks)
convolutional neural networks(部分连接与权值共享)
import numpy as np from numpy.random import randn N,D_in,H,D_out=64,1000,100,10 x,y=randn(N,D_in),randn(N,D_out) w1,w2=randn(D_in,H),randn(H,D_out) for t in range(2000): h=1/(1+np.exp(-x.dot(w1))) y_pred=h.dot(w2) loss=np.square(y_pred-y).sum() print(t,loss) grad_y_pred=2.0*(y_pred-y) grad_w2=h.T.dot(grad_y_pred) grad_h=grad_y_pred.dot(w2.T) grad_w1=x.T.dot(grad_h*h*(1-h)) w1-=1e-4*grad_w1 w2-=1e-4*grad_w2 class Neuron: # ... def neuron_tick(inputs): """ assume inputs and weights are 1-D numpy arrays and bias is a number""" cell_body_sum=np.sum(inputs*self.weights)+self.bias firing_rate=1.0/(1.0+math.exp(-cell_body_sum)) return firing_rate # forward-pass of a 3-layer neural network: f=lambda x:1.0/(1.0+np.exp(-x)) x=np.random.randn(3,1) h1=f(np.dot(W1,x)+b1) h2=f(np.dot(W2,h1)+b2) out=np.dot(W3,h2)+b3
神经网络就是一堆简单的Function组合或者堆叠在一起,形成一个很复杂的function,所以说神经网络可以逼近任何function。 当然这些复杂的function都是非线性的。 多阶段分层计算。。。
激活函数就是尽可能地模拟大脑神经元处理信号的方法。但是真实的神经网络的处理过程是相当的复杂,很难进行模拟。
1.W1乘以x的一个矩阵,然后我们得到这个中间变量,这个0和W取最大值的非线性函数,将线性层的最大值作为输出
2.神经网络就是由简单函数构成的一组函数,在顶层堆叠在一起,我们用一种层次化的方式将它们堆叠起来为了形成一个更复杂的非线性函数,这就是简单的多阶段分层计算,我们实现它的主要手段就是矩阵乘法,我们只是将多个线性层堆在顶层和其他非线性函数结合在一起
3.对每个计算节点,你会发现,方法都是类似的,计算图里的节点相互连接,我们需要输入或是信号x传入神经元,所有x输入量,比如x0,x1,x2等,采用比如赋予权重W的方法,叠加汇合到一起,也就是说我们做了某种类型的运算,再把所有的结果整合起来,我们得到一个激活函数,我们将激活函数应用在神经元的端部,得到的值作为输出,最后将该值传输到和相关联的神经元
4.全连接神经网络层:每一层都是矩阵相乘计算,之前我们叫的是两层神经网络,具体来讲我们有两个线性层,针对每个线性层我们做了一次矩阵乘法,我们称之为两个全连接层,我们也会称为单隐藏层神经网络
5.当我们做正向运算时,正向的通过神经网络,神经网络中的节点,主要进行神经元各种运算,你可以认为每一个隐藏层是一个向量,一组神经元的集合,利用矩阵乘法来计算神经元的值,所以通过一次矩阵乘法我们得出了该层所有神经元输出结果
W1用来寻找模板
W2用来加权