?? history_todo
字號:
[簡介]
項目名稱: ANN
項目全稱: Artificial neuron net
項目開始: 2004年3月份
發 起 者: 單蘭山 (slsLingJing@sohu.com)
項目描述: 發展一套函數庫,用來支持神經網絡運算。
當前版本: 0.01.11
[當前任務]
完善hopfield網絡的基本功能
[歷史]
2004-06-01 0.01.011
- 在文件neuron_group.cpp中添加了新的類:NeuronSimpleGroup,用來描述一組神經元
- 文件bp/bpneuron.h和bp/bpneuron.cpp中的類BPLayer即BP網絡神經元層改由NeuronSimpleGroup派生
原來從NeuronGroup派生, 該類即包括簡單的神經元組,也包括由神經元組組成的組,
因此從前者派生能獲得更詳細的能力
- 在文件hopfield/hfneuron.h, hopfiled/hfneuron.cpp.cpp中實現了類:HFSimpleGroup
用于描述一組hopfield神經元, 該類從NeuronSimpleGroup派生
2004-05-24 0.01.010
- 樣本文件的讀寫
- 添加了設置BP網絡學習速率的函數
2004-05-16 0.01.009
- 實現了一個讀取和存儲BMP文件的類Bitmap,并實現了簡單的讀寫想素的函數
目前支持24位真彩圖像和單色位圖兩種Bmp文件
- 實現了一個從特定類型的Bitmap類抽取輸入向量接口的類
2004-05-11 0.01.008
- 添加了新的函數族:正弦函數sin和一階導數為雙取正切函數六次方的函數sech6
- 為每個神經元、BP網絡及其層都添加了設置輸出函數的方法
- BP網絡的序列化更新,考慮了神經元的輸出函數名稱
- 實現了樣本集類AnnSampleSet, 并提供了一些常見的樣本:比如與、或運算,宇稱2~9運算的訓練樣本
- 實現了專么為計算函數提供緩存的類FuncCache,并用它緩存了sech6函數, 但是效果并不理想
2004-05-08 0.01.007
- 網絡隨機化的時候加大了隨機的程度,否則不容易落到收斂區,特別是小的隨機值往往是難收斂的地區
- 向量類添加了判斷兩個向量相等和輸出到標準輸出的方法
- 向量容器類添加了方法順序地訪問每個向量,以前只能隨機地
- 添加了新的函數族:階躍函數 - 符號函數
- 處理多個值的函數進行了擴展,如果目標數組為NULL,則直接在輸入數組更改
- BP網絡的轉化函數converse更正為convert
- BP網絡增加了轉化和學習計數
2004-05-06 0.01.006
- BP神經元網絡的序列化
- 編寫一個例程來使用這個庫
- 向量容器接口和類
- 向量接口擴充了一下,可以一次設置和取多個值
- 為每個層增加了輸出值固定為1的神經元,結果發現沒有它,網絡就只會在一個中間的位置擺來擺去
2004-05-04 0.01.005
- 實現了BP網絡的學習的基本算法
- BP神經元網絡的初始化
- 神經元網絡的隨機化
2004-05-02 0.01.004
- 在文件vector.h, vector.cpp中寫了一個類AnnVecotr實現向量接口IAnnVector
- 雙曲正切函數導數的推導有錯誤,忘記了一個因子2,
發現我經常把數學公式推倒錯了,看來以后要盡量用書上的
- 將各個函數組成函數族,并定義了函數族類和函數族工廠來依據名稱取得函數族
- 計算函數在原來的主函數和其導數的基礎上增加了由主函數值到導數值的計算函數,
并為這三種函數各添加了對于向量的計算,原來的是針對單個值的。
因此現在每個函數族有6個計算函數
2004-04-25 0.01.003
- 使用Visual Studio 2003 編譯通過了整個庫
- 在文件neuron.h, neuron.cpp中為Neuron類添加了另外一個函數接受其他神經元的連接
- 定義了向量和轉換器的接口
- 定義了BP網絡的神經元、層和網絡的類
- BP網絡對輸入向量響應的計算
- BP網絡層與向量間的導入與導出
2004-03-07 0.01.002
- 推導了雙曲正切函數和S型函數的導數,推導完后,我驚訝地發現,他們是一樣的。并用函數實現了他們:
adf_hyperbola_tangent, adf_sigmoid
- 在文件neuronobj.h, neuronobj.cpp中實現了類NeuronObj作為神經元和神經元組的統一基類
- 在文件neuron_group.h, neuron_group.cpp中實現了類神經元組NeuronGroup, 并為其實現了一個添加神經元的函數:
2004-03-01 開始:0.01.001
- 在文件neuron.h, neuron.cpp中實現了類:
軸突類 Axone
突觸類 Synapse
神經元基類 Neuron
- 在文件annfunc.h, annfunc.cpp中實現了神經元輸出函數:
雙曲正切函數: af_hyperbola_tangent
S型函數: af_sigmoid
正弦函數和余弦函數: af_sin, af_cos
閥值函數: af_value
[長期任務]
- Hopfield網絡
- 自適應網絡
- 元胞自動機的實現
- 節奏和結構的學習
- 按照梯度下降的學習算法
- 網絡群
- 網絡速度優化裝箱器
- 測試單精度的速度
- BP神經網絡學習速度的優化
- 位圖處理和GUI接口
- 樣本的批量學習
[疑問]
- 為什么BP網絡從文件中讀出來的雖然隨機化了,但是總有相同的訓練步數
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -