多层神经网络的Python实现。
代码先贴上,编程的东西不解释。
基本理论参考下一篇:Deep Learning 学习笔记(三):神经网络反向传播算法推导
代码中出现的SupervisedLearningModel、NNLayer和SoftmaxRegression,请参考上一篇笔记:Deep Learning 学习笔记(一)——softmax Regression
多层神经网络:
import numpy as np
from NNBase import NNLayer
from softmax import SoftmaxRegression
from dp.supervised import NNBase
from time import time
class MNN(NNBase.SupervisedLearningModel):
'''
classdocs
'''
def __init__(self, params):
'''
Constructor
parameters:
params - the network configuration, dict
params.inputSize - dimension of input features
params.outputSize - number of output classes
params.layerSizes - an array, sizes of all layer, including all hidden layers and output layer
params.Lambda -scaling parameter for l2 weight regularization penalty
params.activitionFunc -which type of activation function to use in hidden layers
'''
layerSizes = params['layerSizes']
self.numLayers = len(layerSizes)
self.allLayers = []
self.X=0
#initialize all hidden layers
inputSize = params['inputSize']
for i in range(self.numLayers-1):
layer = NNLayer(inputSize,layerSizes[i],params['Lambda&#