Encog入門學習(一)

2021-07-07 09:30:30 字數 1600 閱讀 5919

這段時間對史丹福大學的stanford nlp挺感興趣,stanford nlp的一大亮點就是他們團隊採用深度學習的方法對一些傳統的方法進行改進,比如建立語法樹採用了遞迴神經網路(rnn),情感分析採用了遞迴神經伸張網路(rntn)……所以呢,我又把注意點放到了神經網路上面,想要自己實現一些簡單的神經網路演算法,因此注意到了encog,encog最強大的地方,就是提供了豐富的神經網路演算法的實現。

國內關於encog的資料比較少,因此就按照encog提供的手冊開始學習了。以下是第乙個例子:

import org.encog.encog;

import org.encog.engine.network.activation.activationsigmoid;

import org.encog.ml.data.mldata;

import org.encog.ml.data.mldatapair;

import org.encog.ml.data.mldataset;

import org.encog.ml.data.basic.basicmldataset;

import org.encog.neural.networks.basicnetwork;

import org.encog.neural.networks.layers.basiclayer;

import org.encog.neural.networks.training.propagation.resilient.resilientpropagation;

public class helloworld , , ,

}; /**

* the ideal data necessary for xor

* */

public static double xor_ideal = , , ,

}; /**

* @param no arguments are used

* */

public static void main(string args) while(train.geterror()>0.01);

train.finishtraining();

//test the neural network

system.out.println("neural network results: ");

for(mldatapair pair: trainingset)

encog.getinstance().shutdown();

}}

從這個例子可以看出,使用encog實現乙個神經網路主要分為三個部分:

1.建立神經網路的結構

2.訓練網路

3.使用網路進行**

第一部分中,建立了乙個三層的神經網路,basiclayer的構造器中有三個重要的引數,第乙個數啟用函式的型別,第二個是確定是否存在偏移,第三個是該層有多少個神經元。可選的啟用函式有以下幾種,在例子中採用的是sigmoid函式,這個函式和logistic回歸採用的核函式是一樣的。

第二部分首先設定輸入的訓練資料集和目標資料集,然後在乙個迴圈中進行神經網路的訓練,直到誤差小於0.01才結束。

第三部分**,這裡使用訓練資料進行**,執行結果如下:

Encog3 2學習筆記(二)

predict,從sample中分離出來的子專案,使用tanh函式作為啟用函式 預設,可以選擇sigmoid 下圖為encog支援的各種啟用函式 好吧,高斯函式,不論是作為核函式還是正態分佈,都能找到它 public static final string af bipolar bipolar pu...

Spring入門學習(一,入門案例)

bean ioc di aop具體每個是什麼意思,這裡不再解釋,可以參考官方文件,以及大牛部落格,下面我直接講解入門案例 user public class user public string getname public void setname string name public void ...

MySQL入門學習 一

1 啟動mysql伺服器 兩種方法 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。二是在dos方式下執行 d mysqlbinmysqld 2 進入mysql互動操作介面 在dos方式下,執行 d mysqlbinmysql 出現 mysql 的提示符,此時已進...