zoukankan      html  css  js  c++  java
  • 机器学习之人工神经网络

    人工神经网络由一系列神经元组成:

    每个神经元都代表了一个特定的线性函数:

    每个单元都会进行以下的计算过程:

    ini = ΣWj,iaj
    ai = g(ini)

    通过调整每一个神经元的权值W,可以使得整个神经网络非常好的拟合数据。

    激活函数

    每个神经元中都有一个激活函数,通常使用Sigmoid函数:

    f(x) = 1/(1+e-x)

    dy/dx = y(1-y)

    因为它在定义域内光滑且连续,输出十分平缓。

    训练过程

    function ANN(examples) returns a neural network
    
        network = a network with random weights
        repeat do
        	for each example in examples do
        		FeedForward(network, example)
            	BackPropagation(network, example)
            error = CalError(network, examples)
        until error is small enough
        return network
    

    可以看到训练过程包括两个主要步骤:

    1. 前向传播(Feed Forward):将样例输入神经网络中获得每个神经元的输出;
    2. 后向反馈(Back Propagation):根据每个神经元的输出调整权值。

    前向传播

    在前向传播过程中,我们将输入经过两层神经元后获得每一个神经元的输出,每一层都执行以下计算:

    ini = ΣWj,iaj
    ai = g(ini)

    function FeedForward(network, example) return a output vector
    	
        for L = 2 to layer_num do
        	for each node i in layer L do:
    		sum = weight_L_i × a_L-1 // dot product
            	a_L_i = g(sum)
    

    后向反馈

    在后向反馈中,我们根据输出结果与正确结果相比较后,对各个神经元的权值进行修正。

    function BackPropagation(network, example)
    
        for each node j in the output layer do
        	b_j = g'(a_j)*(rightanswer_j-a_j)
        
        for L = layer_num-1 to 1 do
        	for each node i in layer L do
            	b_i = g'(a_i)*(w × b_j)
                
        for each weight w_i,j in network do
        	w_i,j = w_i, j + alpha*ai*b_j // alpha 为学习率
    
  • 相关阅读:
    CSS3的常用属性(一)
    Shiro授权认证原理和流程
    mysql存储引擎
    mysql索引的注意事项
    CSS的常用属性(三)
    CSS的常用属性(二)
    CSS的常用属性(一)
    常用文档站点
    Spring和SpringMVC父子容器关系初窥
    内部类学习资料分享
  • 原文地址:https://www.cnblogs.com/bgmind/p/4299882.html
Copyright © 2011-2022 走看看