DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率
生活随笔
收集整理的這篇文章主要介紹了
DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DL之NN:NN算法(本地數據集50000張訓練集圖片)進階優化之三種參數改進,進一步提高手寫數字圖片識別的準確率
導讀
上一篇文章,比較了三種算法實現對手寫數字識別,其中,SVM和神經網絡算法表現非常好準確率都在90%以上,本文章進一步探討對神經網絡算法優化,進一步提高準確率,通過測試發現,準確率提高了很多。
相關文章
CNN:人工智能之神經網絡算法進階優化,六種不同優化算法實現手寫數字識別逐步提高,應用案例自動駕駛之捕捉并識別周圍車牌號
?
?
思路設計
首先,改變之一:
先在初始化權重的部分,采取一種更為好的隨機初始化方法,我們依舊保持正態分布的均值不變,只對標準差進行改動,
初始化權重改變前,
def large_weight_initializer(self): self.biases = [np.random.randn(y, 1) for y in self.sizes[1:]]self.weights = [np.random.randn(y, x) for x, y in zip(self.sizes[:-1], self.sizes[1:])]初始化權重改變后,
def default_weight_initializer(self): self.biases = [np.random.randn(y, 1) for y in self.sizes[1:]]self.weights = [np.random.randn(y, x)/np.sqrt(x) for x, y in zip(self.sizes[:-1], self.sizes[1:])]改變之二:
為了減少Overfitting,降低數據局部噪音影響,將原先的目標函數由?quadratic cost?改為?cross-enrtopy cost
class CrossEntropyCost(object): def fn(a, y):return np.sum(np.nan_to_num(-y*np.log(a)-(1-y)*np.log(1-a)))def delta(z, a, y):return (a-y)改變之三:
將S函數改為Softmax函數
class SoftmaxLayer(object):def __init__(self, n_in, n_out, p_dropout=0.0):self.n_in = n_inself.n_out = n_outself.p_dropout = p_dropoutself.w = theano.shared(np.zeros((n_in, n_out), dtype=theano.config.floatX),name='w', borrow=True)self.b = theano.shared(np.zeros((n_out,), dtype=theano.config.floatX),name='b', borrow=True)self.params = [self.w, self.b]def set_inpt(self, inpt, inpt_dropout, mini_batch_size):self.inpt = inpt.reshape((mini_batch_size, self.n_in))self.output = softmax((1-self.p_dropout)*T.dot(self.inpt, self.w) + self.b)self.y_out = T.argmax(self.output, axis=1)self.inpt_dropout = dropout_layer(inpt_dropout.reshape((mini_batch_size, self.n_in)), self.p_dropout)self.output_dropout = softmax(T.dot(self.inpt_dropout, self.w) + self.b)def cost(self, net):"Return the log-likelihood cost."return -T.mean(T.log(self.output_dropout)[T.arange(net.y.shape[0]), net.y])def accuracy(self, y):"Return the accuracy for the mini-batch."return T.mean(T.eq(y, self.y_out))總結
以上是生活随笔為你收集整理的DL之NN:NN算法(本地数据集50000张训练集图片)进阶优化之三种参数改进,进一步提高手写数字图片识别的准确率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DL之NN/Average_Darkne
- 下一篇: DL之NN/CNN:NN算法进阶优化(本