官术网_书友最值得收藏!

2.4 如何初始化神經網絡的權重

震撼人心的時刻到了,接下來講解本節中實現多層次神經網絡的最大難點:創建權重的值。

chapter2_Create_AI_Framework版本的NetworkConnection.py(v1)權重源代碼如下:

第44~45行代碼:設置區域最小值、區域最大值。

range_min=0

range_max=1

第47行代碼:設置ε的值,ε根據特征數決定,這里只有2個特征x1、x2,因此特征數為2,經過計算得到ε的值等于1.014 611 872 354 576 5。

第49行代碼:使用random方法獲取一個取值范圍在[0,1]的隨機數。

0≤random.random()<1

因為rand = range_min + (range_max – range_min) * random.random()

所以

0≤rand<1

-1≤2*rand-1<1

第50行代碼:因為rand = rand * (2 * init_epsilon) – init_epsilon=(2 * rand – 1) init_epsilon

所以隨機數rand的取值范圍為

-init_epsilon≤rand<init_epsilon

-ε≤and<ε

第52行代碼:通過weight.set_value(rand)代碼將隨機數rand賦值給權重值。權重值初始化的隨機取值范圍為[-ε,ε),即[-1.0146118723545765,1.0146118723545765)。

盤古人工智能框架使用rand設置隨機數,聽上去是隨機,其實并不隨機,因為這將影響訓練多少次及每次訓練的難度。我們設置最小值是-ε,最大值是ε,權重值取值范圍為[-ε,ε),對其進行處理使其更符合實際的情況,盡量可能使其隨機。這也是TensorFlow、PyTorch內部實現的核心。

主站蜘蛛池模板: 抚顺县| 开远市| 石棉县| 敦化市| 株洲市| 苍山县| 南川市| 淮滨县| 上蔡县| 会泽县| 安康市| 武冈市| 会昌县| 滁州市| 观塘区| 扶风县| 威远县| 盐源县| 冷水江市| 五莲县| 浮山县| 大邑县| 中牟县| 孟村| 太白县| 石柱| 井冈山市| 大宁县| 浠水县| 安国市| 凤冈县| 平泉县| 玉山县| 双辽市| 松原市| 虎林市| 饶河县| 黎川县| 连城县| 江口县| 柘城县|