🍿*★,°*:.☆歡迎您/$:*.°★* 🍿 |
目錄
背景
正文
總結
背景描述
一直想和困惑的是為什麼深度學習需要 梯度下降 ,有沒有 可以替代的方法終于在使用 等比向量 解決了一個輸入輸出 隻能求解一個權重解的時候,發現可以 求解權重個行數的通解,雖然暫時不能像梯度下降那樣求解,多個權重層 ,但是單一的權重層是可以求解的,可以 增權重重的行數來 增權重重的表達能力 |
正文
下面是寫了一個求解的簡單例子,由于等差向量求解隻能針對一個資料,說以就不寫例子了
from sympy import Symbol,solve
import numpy as np
def new_weight(row_dim,col_dim):
weight=[]
for i in range(row_dim):
col_weight=[]
for j in range(col_dim):
col_weight.append(Symbol('x{}{}'.format(i,j)))
weight.append(col_weight)
return weight
def get_weight(input_data,output_data,weight):
weight_list=[]
weight=np.array(weight)
for j, one_weight in enumerate(weight.transpose([1, 0])):
f_list = []
for i,d in enumerate(input_data):
f=np.sum(one_weight*np.array(d))-output_data[i][j]
f_list.append(f)
res_weight=solve(f_list,one_weight.tolist())
weight_list.append(list(res_weight.values()))
return np.array(weight_list).astype("float").transpose([1,0])
if __name__ == '__main__':
weight=new_weight(2,4)
# 權重有2行 是以隻需兩資料方可解方程得到 所有權重參數
input_data=[[3,6],[5,9]]
output_data=[[7,9,12,14],[14,18,24,28]]
# 求解weight
weight_data=get_weight(input_data,output_data,weight)
# 結果驗證
print(np.array(input_data)@weight_data)
總結
這個應該可以解決一些,拟合的問題的求解,至少不需要 梯度下降了,也提供了一個
拟合求解的新思路,或許你的大腦就是這樣的确定性的求解不斷的拼接而成的。比起梯度
- 📢歡迎點贊 👍 收藏 ⭐留言 📝 如有錯誤敬請指正!
- 📢本文由東方佑原創
- 📢停下休息的時候不要忘了别人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活✨